Title
A NICE way to test openflow applications
Abstract
The emergence of OpenFlow-capable switches enables exciting new network functionality, at the risk of programming errors that make communication less reliable. 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. In this paper, we present efficient, systematic techniques for testing unmodified controller programs. Our NICE tool applies model checking to explore the state space of the entire system--the controller, the switches, and the hosts. Scalability is the main challenge, given the diversity of data packets, the large system state, and the many possible event orderings. To address this, we propose a novel way to augment model checking with symbolic execution of event handlers (to identify representative packets that exercise code paths on the controller). We also present a simplified OpenFlow switch model (to reduce the state space), and effective strategies for generating event interleavings likely to uncover bugs. Our prototype tests Python applications on the popular NOX platform. In testing three real applications--a MAC-learning switch, in-network server load balancing, and energy-efficient traffic engineering--we uncover eleven bugs.
Year
Venue
Keywords
2012
NSDI
large system state,openflow switch model,model checking,unmodified controller program,possible event ordering,centralized programming model,event handler,single controller program,openflow application,state space,entire system,computer science,openflow,testing
Field
DocType
Citations 
Asynchronous communication,Control theory,Model checking,Programming paradigm,Computer science,Load balancing (computing),Computer network,Real-time computing,Event (computing),OpenFlow,Symbolic execution,Distributed computing
Conference
183
PageRank 
References 
Authors
11.61
23
5
Search Limit
100183
Name
Order
Citations
PageRank
Marco Canini185760.21
Daniele Venzano222116.42
Peter Perešíni337521.98
Dejan Kostic41707119.11
Jennifer Rexford5143781195.34