dc.description.abstract | Nowadays users expect and demand highly dependable network connectivity and services. However, several recent episodes demonstrate that software errors and operator mistakes continue to cause undesired disruptions and outages. It is crucial to have reliable networks, and this requirement does not change with Software Defined Networking (SDN). Unfortunately, as the network programmability enhances and software plays a greater role in it, risks that buggy software may disrupt an entire network also increase. The centralized programming model, where a single controller program manages the network, seems to reduce the likelihood of bugs. However, the system is inherently distributed and asynchronous, with events happening at different switches and end hosts, and inevitable delays affecting communication with the controller.
This extended abstract presents an overview of efficient, systematic techniques for testing the SDN software stack at both its highest and lowest layer. That is, our testing techniques target at the top layer, the OpenFlow controller programs (Section 1) and, at the bottom layer, the OpenFlow agents (Section 2)—the software that each switch runs to enable remote programmatic access to its forwarding tables. The papers describing these tools have been published in [2] and [3]. Our goal here is to increase the awareness of the ever-increasing number of SDN adopters to our tools. In doing so, we hope to: (1) enable faster adoption of OpenFlow/SDN due to accelerated switch interoperability testing, and (2) decrease the chance of encountering bugs in the deployment of OpenFlow controller applications. Combined, our tools should increase the confidence in SDN as a whole. | |