Nowadays, while most of the programmable network apparatus vendors support OpenFlow, a number of fragmented control plane solutions exist for proprietary software-defined networks (SDN). Thus, network application developers need to re-code their solutions every time they encounter a network infrastructure based on a different controller. Moreover, different network developers adopt different solutions as abstract control plane programming languages (e.g. Frenetic, Procera), leading to not reusable and shareable source code for network programs.
Despite having OpenFlow as the candidate for a standard interface between the controller and the network infrastructure, interworking between different controllers and network devices is hindered and walled gardens are emerging. NetIDE will deliver a single integrated development environment to support the whole development lifecycle of network controller programs in a vendor-independent fashion.
NetIDE will approach the problem by proposing an architecture that will allow the different representation to be used to program the network and different controllers to execute the network programs. In this respect, the core work will be the definition of a common language able to cover different network programming styles: the NetIDE IRF (Intermediate Representation Format). Around IRF we will explore fundamental research topics, such as: development of controller agnostic Network Apps (applications that control network behavior) and Network Services (services that support the task of network controllers); cross-controller debugging and profiling of network programs; heterogeneous network programming; network programming with simulators in the loop.
NetIDE IRF will be supported by a developer toolkit to allow creation of Network Apps and by a Network App Engine supporting the execution and testing of NetIDE IRF-based applications. NetIDE will result in one-stop solution for the development of SDN applications that covers all the development lifecycle.