Our upcoming WRIPE paper, “Automating the Testing of OpenFlow Applications”
Our paper on Automating the Testing of OpenFlow Applications has been accepted at WRIPE 2011 (joint work with Jennifer Rexford from Princeton University). Marco will present the work in October.
Software-defined networking, and the emergence of OpenFlow-capable switches, enables a wide range of new network functionality. However, enhanced programmability inevitably leads to more software faults (or bugs). We believe that tools for testing OpenFlow programs are critical to the success of the new technology. However, the way OpenFlow applications interact with the data plane raises several challenges.
First, the space of possible inputs (e.g., packet headers and inter-packet timings) is huge. Second, the centralized controller has a indirect view of the traffic and experiences unavoidable delays in installing rules in the switches. Third, external factors like user behavior (e.g., mobility) and higher-layer protocols (e.g., the TCP state machine) affect the correctness of OpenFlow programs.
In this work-in-progress paper, we extend techniques for symbolic execution to generate inputs that systematically explore the space of system executions. Initial experiences with our prototype, which symbolically executes NOX applications written in Python, suggest that our techniques can help programmers identify bugs in their OpenFlow programs.