Nowadays users expect to experience highly dependable network connectivity and services. However, several recent episodes demonstrate that software errors and operator mistakes continue to cause undesired disturbances and outages. Software-defined networking (SDN) is a new kind of network architecture that decouples the control plane from the data plane – a vision currently embodied in OpenFlow. By logically centralizing the control-plane computation, SDN provides the opportunity to remove complexity from and introduce new functionality in our networks. On the other hand, as the network programmability enhances, risks arise that buggy software in network controllers may disrupt an entire network.
In this talk, I will present efficient, systematic techniques for testing unmodified OpenFlow 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, I 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), 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, we uncover eleven bugs. I will conclude the talk by describing future directions of network testing.
Who is Marco Canini?
Marco Canini is a postdoctoral researcher at EPFL, Switzerland. His current research focuses on increasing the reliability of OpenFlow networks and of distributed systems, in particular the reliability of the Internet’s inter-domain routing system. Other research interests include making the Internet energy-aware, methods for traffic classification based on application identification, and design of network monitoring applications. He holds a laurea degree with honors and a Ph.D. degree in Computer Science and Engineering from the University of Genoa, Italy. During his Ph.D., he was invited as a visitor to the University of Cambridge, Computer Laboratory. He also held positions at Intel Research and Google.
This event will be conducted in English