Skip to content

Releasing NICE 0.7

Are the bugs in your OpenFlow application keeping you up all night? Today, despair no more!

As promised in our upcoming NSDI paper, we are releasing the first public version (0.7) of NICE, our tool for testing OpenFlow applications for the popular NOX controller platform.

You can read about how to use it here or simply grab the sources here.

Our upcoming NSDI paper, “A NICE Way to Test OpenFlow Applications”

Our paper A NICE Way to Test OpenFlow Applications has been accepted at NSDI 2012 (joint work with Jennifer Rexford from Princeton University).

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.

Geneva fireworks explosions vs. state space explosion

We went to Geneva on August 13 to watch the famous fireworks. Some of the photos are available on our photos page. The video of the finale is below (Peter is joking that these explosions are nothing compared to the state space explosion we are facing in our work on automatically testing OpenFlow applications!)