In the past year i was working on a graphical interface for Netfloc – the SDK for SDN developed in the SDN initiative. Just to remind you, the aim of Netflogi is to: (1) make the SDK itself easy to use and (2) expose the Netfloc APIs and functional features to the network application developers and datacenter service providers.

With the initial version of Netflogi, the user was able to create a Service Function Chain only by using Neutron port IDs. This was done by choosing the number and the order of the Neutron ports used in the Chain. The current version of Netflogi allows to create Virtual Network Functions (VNFs) and a Service Chain using those VNFs. This blog post describes the updated functionalities of Netflogi that take part of the development work i did as part of my final exam, called IPA in Switzerland.

The novel functionality added in Netflogi is the VNF management (create & delete). Creating VNF includes choosing a name, a description of the functionality and assigning ingress and egress ports. Once the VNF is successfully created, it appears automatically in the list of the existing VNFs. The VNFs can be used in different services offered by Netfloc. Currently Service Function Chaining is fully implemented and can be done by combining one or more VNFs. The VNFs can be deleted, as well as the Service Chains. Help page and messaging system for the performed actions is also included in this version.

Features of the new version:

  • VNFs list
  • Create VNF
  • Create Service Chain
  • Delete VNF & delete SFC
  • New GUI elements
  • Help Page

Figure 1 shows the system architecture diagram including the building blocks of the GUI and their interfaces with the OpenStack services and Netfloc.


Figure 1: Netflogi diagram

Netflogi includes a Server that manages the REST HTTP requests for VNF and chain management. The data model is shown in Figure 2.


Figure 2: Netflogi data model

Every Neutron port has a fixed IP consisting of one or multiple subnet IDs and IP addresses. To create a VNF, the user has to give a name and the description, as well as associate two Neutron ports as ingress and egress ports for the traffic. Chain creation is available out of two or more VNFs.
The frontend is implemented using JavaScript, AngularJS, and NodeJS for the Web-server. The views and the templates are implemented using HTML and CSS. Error handling is done via Bootstrap alert messages.

Following is a sneak peak from the VNF and SFC views form Netflogi.

Figure 3 shows the popup window for creating VNF. The user can create a VNF from Services->Service Function Chaining menu. One or multiple selected VNFs can be deleted.

Figure 3: Netflogi view for VNF creation

Image 4 presents Service Function Chaining view. To create a service chain, the user can choose the number and the order of VNFs as they appear in the chain.


Figure 4: Netflogi view for SFC creation

Finally it was fun working on Netflogi, especially that it brought a useful tool for the ICCLab and all SDN crowd out there who is bored of terminals for managing their SDN services. Just to note that Netflogi is yet a project under development. It has a modular design, so that the functionality can be easily extended with new views and templates on demand. Here is the github repository. All contributions are welcomed.