Skip to main content

Systematically testing OpenFlow controller applications

Author(s): Perešíni, Peter; Kuźniar, Maciej; Canini, Marco; Venzano, Daniele; Kostić, Dejan; et al

Download
To refer to this page use: http://arks.princeton.edu/ark:/88435/pr1bz7p
Full metadata record
DC FieldValueLanguage
dc.contributor.authorPerešíni, Peter-
dc.contributor.authorKuźniar, Maciej-
dc.contributor.authorCanini, Marco-
dc.contributor.authorVenzano, Daniele-
dc.contributor.authorKostić, Dejan-
dc.contributor.authorRexford, Jennifer-
dc.date.accessioned2021-10-08T19:50:11Z-
dc.date.available2021-10-08T19:50:11Z-
dc.date.issued2015-12en_US
dc.identifier.citationPerešíni, Peter, Maciej Kuźniar, Marco Canini, Daniele Venzano, Dejan Kostić, and Jennifer Rexford. "Systematically testing OpenFlow controller applications." Computer Networks 92 (2015): pp. 270-286. doi:10.1016/j.comnet.2015.03.019en_US
dc.identifier.issn1389-1286-
dc.identifier.urihttps://people.kth.se/~dejanko/documents/publications/nice-comnet15.pdf-
dc.identifier.urihttp://arks.princeton.edu/ark:/88435/pr1bz7p-
dc.description.abstractThe 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 13 bugs.en_US
dc.format.extent270 - 286en_US
dc.language.isoen_USen_US
dc.relation.ispartofComputer Networksen_US
dc.rightsAuthor's manuscripten_US
dc.titleSystematically testing OpenFlow controller applicationsen_US
dc.typeJournal Articleen_US
dc.identifier.doi10.1016/j.comnet.2015.03.019-
pu.type.symplectichttp://www.symplectic.co.uk/publications/atom-terms/1.0/journal-articleen_US

Files in This Item:
File Description SizeFormat 
OpenFlow.pdf538.29 kBAdobe PDFView/Download


Items in OAR@Princeton are protected by copyright, with all rights reserved, unless otherwise indicated.