Bachelorarbeit: Implementation of a Northbound API for the Floodlight SDN Controller
In many networking scenarios it is highly desirable to be able to guarantee the availability of certain capabilities such as minimum bandwidth or maximum latency to the users of the network. For example, in online gaming you want to have a small maximum latency for every player to provide the best gaming experience. Since the applications’ requirements on the Quality of Service (QoS) of a network may vary over time (e.g., additional players join an online game and demand additional network resources), an adaption of the network is often necessary to fulfil these QoS requirements.
Traditional network structures are fairly static in their dealing with QoS. Usually, it is not possible for an application to directly affect the behaviour of network components like switches or routers based on its current demands. A recent approach to address this problem is Software Defined Networking (SDN). In a nutshell, SDN can be described as the separation of the data layer from the control layer. The data layer is the part of the network which is responsible for forwarding packets to their destinations. The control layer defines rules that manage how forwarding in the data layer takes place. In SDN, the control layer is decoupled from the individual network components and managed by a so-called SDN Controller. The controller (control layer) manages the behaviour of the switches (data layer) in a network using a so-called Southbound API such as OpenFlow1. On the other side, a controller provides a Northbound API for applications, which allows the applications to communicate with the controller. In response to the messages sent by the applications the controller can modify the behaviour of its attached switches and thus adapts the capabilities of the network dynamically.
The OFERTIE project focuses on managing QoS using SDN and has specified a Northbound API for QoS management as a Representational State Transfer (REST) API. It serves as a communication interface between the applications and the controller. Currently, OFERTIE relies on its own proprietary controller to adapt the requested QoS requirements. On the application side the API is implemented by the so called SDN Module.
Apart from QoS, a useful network feature is multicast. Multicast allows to communicate with several network endpoints at the same time by sending a single message to one virtual address. The network then takes care of distributing the message between the actual destinations. In case of SDN, multicast is installed by telling the controller to create a so-called multicast group, which is a set of network endpoints, and associate the multicast group with a virtual address in the network. Whenever a message is sent to the address of the multicast group, the switches in the network will deliver the message to all the endpoints contained in the multicast group because of the rules defined by the controller.
Since multicast reduces the network traffic and the time that an application needs to address multiple network endpoints, it is profitable for many network scenarios. For example, a game server wants to inform all clients of a change in the game’s state. Instead of sending the message to one client at a time, the server sends it to the multicast address, which has been installed before, and can take care of other tasks, afterwards.
This work focuses on implementing OFERTIE’s Northbound API for QoS management for the Floodlight Controller which is one of the most popular open source SDN controllers. It will allow the SDN Module of the OFERTIE project to directly communicate with Floodlight and thus adapt the network by reacting to changes in the network requirements. Furthermore, the existing REST API will be extended with a specification for access to multicast features.
Bachelorarbeit (6 Wochen Bearbeitungszeit).