kth.sePublications
Change search
CiteExportLink to record
Permanent link

Direct link
Cite
Citation style
  • apa
  • ieee
  • modern-language-association-8th-edition
  • vancouver
  • Other style
More styles
Language
  • de-DE
  • en-GB
  • en-US
  • fi-FI
  • nn-NO
  • nn-NB
  • sv-SE
  • Other locale
More languages
Output format
  • html
  • text
  • asciidoc
  • rtf
A NICE Way to Test OpenFlow Applications
EPFL.ORCID iD: 0000-0002-1256-1070
Show others and affiliations
2012 (English)In: Proceedings of the 9th USENIX Symposium on Networked Systems Design and Implementation (NSDI), Association for Computing Machinery (ACM), 2012Conference paper, Published paper (Refereed)
Abstract [en]

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.

Place, publisher, year, edition, pages
Association for Computing Machinery (ACM), 2012.
National Category
Computer Sciences
Identifiers
URN: urn:nbn:se:kth:diva-147107OAI: oai:DiVA.org:kth-147107DiVA, id: diva2:727682
Conference
The 9th USENIX Symposium on Networked Systems Design and Implementation (NSDI),
Note

QC 20140707

Available from: 2014-06-23 Created: 2014-06-23 Last updated: 2022-06-23Bibliographically approved

Open Access in DiVA

fulltext(306 kB)198 downloads
File information
File name FULLTEXT01.pdfFile size 306 kBChecksum SHA-512
fec5682329144b2932b8a8255297a05d5ed333901e6f935702bb1bd6bd110d00945913874654e0cbeb2f6d32cf9cf55f9ae0aa40918a9717940b47a2c13be56c
Type fulltextMimetype application/pdf

Other links

ACM Digital library

Authority records

Kostic, Dejan

Search in DiVA

By author/editor
Kostic, Dejan
Computer Sciences

Search outside of DiVA

GoogleGoogle Scholar
Total: 198 downloads
The number of downloads is the sum of all downloads of full texts. It may include eg previous versions that are now no longer available

urn-nbn

Altmetric score

urn-nbn
Total: 335 hits
CiteExportLink to record
Permanent link

Direct link
Cite
Citation style
  • apa
  • ieee
  • modern-language-association-8th-edition
  • vancouver
  • Other style
More styles
Language
  • de-DE
  • en-GB
  • en-US
  • fi-FI
  • nn-NO
  • nn-NB
  • sv-SE
  • Other locale
More languages
Output format
  • html
  • text
  • asciidoc
  • rtf