Extending Open vSwitch to Facilitate Creation of Stateful SDN Applications (Timothy Hoff Undergraduate Thesis)

Software-Defined Networks (SDNs) have become increasingly popular as complements to existing networks. SDNs can be very helpful in certain tasks such as debugging because they have a global view of the network. Although SDN is an abstract concept, a concrete controller application protocol called OpenFlow has dominated recent developmental efforts. OpenFlow enables controller applications to specify a set of criteria to match a packet and perform a specific action (e.g., dropping a packet). Open vSwitch (OVS) is an open-source switching software that supports OpenFlow. The OVS community is very active and routinely proposes and implements new functionality. Although it is possible to implement arbitrarily complex features, and migrate these changes to a switch, switches have relatively limited memory and computational resources. The limited resources, and the fundamental requirement that switches process packets quickly, remove the viability of resource-intensive applications. Furthermore, many developers and network administrators expect switches to be “dumb” devices and adding more complicated features may be perceived as antithetical to the simplicity requirement. This paper details an addition to Open vSwitch that allows for certain applications to run with reduced controller interaction. Reducing this communication reduces overall network load, and can make applications faster by reducing communication time. After establishing the need for reduced controller interaction, this paper proposes a set of changes to Open vSwitch.