Software-Defined Networking (SDN) is an important innovation in networking. OpenFlow is a core SDN protocol that enables a centralized control to the data planes, standardizing the way the switches are controlled from a logical software controller. In this chapter, we will look into building Software-Defined Networks with various open source SDN controllers such as Ryu, OpenDaylight, Floodlight, ONOS, and POX.
SDN controllers are written in high-level languages such as Java and Python, and hence can easily be programmed by software developers. They can be used in conjunction with the physical networks as well as network emulators to control physical and emulated/virtual network data planes. We will use Mininet to emulate the network data plane in this chapter. We will further look into extending POX and Ryu, two of the controllers that are written in Python.
...