GUI for Netfloc – An OpenSource SDK for SDN

Inside the Software Defined Networking initiative we are developing a Software Development Kit for SDN, called Netfloc.

NETwork FLOws for Clouds (Netfloc) is a programmable framework solution for software defined datacenter networks. It leverages network management by offering to the network developers a set of libraries packed as Java bundles for the OpenDaylight controller. Netfloc also exposes REST API abstractions and Java interfaces to enable optimal integration in cloud datacenters and customized end-to-end management of OpenFlow equipment. For references and current status, please feel free to visit the Github repository. We will come back with a detailed post on the SDK very soon, so stay tuned.

And yes being the networking guys, we are mainly dealing with command line management in the whole process of development and testing. But only until to date, when we realized that it is time to think as well of the UX side and start a design process for a graphical user interface (GUI) for Netfloc.

The aim of the GUI is to not only make the SDK itself easy to use (display all relevant network data and topology), but also to expose the entire set of APIs and functional features and make them accessible to the network application developers and datacenter service providers. The GUI will provide a visual representation of the complete networking topology: networking nodes, switches, links, respective OpenFlow identifiers etc., as well as the available libraries for developing a complete end-to-end solution. It will guide the user towards performing operations within the network in an easy and intuitive manner. Since the GUI will be a modular component, adding new features will be done in an easy plug-n-play fashion.

To be aligned with the existing solutions on the market and with the open source community, we have observed the current GUIs for SDN SDKs to figure out the gaps and the requirements from a user perspective and potentially address them within the Netfloc GUI. Just to mention few, HP and Cisco have GUIs for their HP VAN SDN and onePK SDN solutions respectively, while the EU project netIDE has delivered an open source, Eclipse-integrated IDE for the development of SDN applications.

Figure 1 shows how the HP developed SDK’s interface looks like. It helps to simply set up a developer environment and to create applications on the top of their own SDN controller (HP VAN SDN Controller). The design reminds a bit of the Openstack Dashboard in terms of simplistic tabular organization of the applications in the left menu, and a content representation of the currently selected application/feature on the right.

hp_sdk_gui[Fig 1 – HP VAN SDN Controller GUI]

The OpenDaylight GUI, Figure 2, looks quite similar to the one from HP and it is also a very good example on how our GUI could look like at the end, exposing the underlying network topology, the connections between the nodes and their assigned Open Flow identifiers.

odl_gui[Fig 2 – OpenDaylight Dlux]

Although the final representation is very similar across solutions, the idea under the hood is different. The GUI we are working on is based on the Netfloc’s native libraries and applications that are tightly coupled to the networking model and concepts offered in the SDK. We want to develop a dedicated GUI for Netfloc, but also to enable the addition of new extensions in a uniform manner.

From toolset for this development we use: HTML, CSS, JavaScript and Angularjs. AngularJS is a structural framework used for the development of dynamic Web applications. It is browser-based and works with any server technology. AngularJS can be used with HTML as a template language and its syntax can be extended to express the components of an application in a clear way. Due to dependency injection and data binding, AngularJS is able to reduce a lot of the code you would otherwise have to write.

netfloc_gui_diagram

[Fig 3 – High level diagram of Netfloc SDK & GUI ]

Figure 3 shows a diagram of the Netfloc components and their relations to the GUI. The top level navigation from the GUI will include a list of services offered as a final product solutions (ex. Service Function Chaining). Other view will be dedicated to the features such as: topology (including API specification and possibility to edit), connections, bridges etc. Log and monitoring status will be included in the management view. Bellow are listed some of the features currently offered by the SDK.

Services:  

  • Service Function Chaining:

The Service Function Chaining section will enable visual representation of the chain. In the same time it will offer to the end user a construction of a new chain by performing drag and drop of the virtual network function (NAT, firewall, traffic classifier, etc.) from the dedicated functions’ toolbox.

  • Chain Patterns:

In the Chain Patterns section of the SFC service, the user will be offered the possibility to Create / Enable / Disable different chain patterns. Patterns are automatically applied to new service chains and generate the Open Flow messages for each of the bridges in the chain.

Connection:

  • Flow Path, Flow Patterns, Chain Patterns:

For the connection based Flow paths, the GUI will offer sections to Enable / Disable Flow Paths and to Enable / Disable / Create Flow Patterns, and Chain Patterns.

Bridges:

  • Bridges, Bridge Patterns:

The same as for the connections applies to the Bridge specific flows.

Topology:

The Topology section will show the current network topology of the selected service with a detailed info of the network nodes, links and ports.

Logs:

The Logs section will show specific log messages for the current status of the network components.

Follow us to know about the release of the GUI alpha version.


Leave a Reply

Your email address will not be published. Required fields are marked *