1. |
- Canini, Marco, et al.
(author)
-
A NICE Way to Test OpenFlow Applications
- 2012
-
In: Proceedings of the 9th USENIX Symposium on Networked Systems Design and Implementation (NSDI). - : Association for Computing Machinery (ACM).
-
Conference paper (peer-reviewed)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.
|
|
2. |
- Canini, Marco, et al.
(author)
-
Automating the Testing of OpenFlow Applications
- 2011
-
In: Proceedings of the 1st International Workshop on Rigorous Protocol Engineering (WRiPE).
-
Conference paper (peer-reviewed)abstract
- Software-defined networking, and the emergence of OpenFlow-capable switches, enables a wide range of new network functionality. However, enhanced programmability inevitably leads to more software faults (or bugs). We believe that tools for testing OpenFlow programs are critical to the success of the new technology. However, the way OpenFlow applications interact with the data plane raises several challenges. First, the space of possible inputs (e.g., packet headers and inter-packet timings) is huge. Second, the centralized controller has a indirect view of the traffic and experiences unavoidable delays in installing rules in the switches. Third, external factors like user behavior (e.g., mobility) and higher-layer protocols (e.g., the TCP state machine) affect the correctness of OpenFlow programs. In this work-in-progress paper, we extend techniques for symbolic execution to generate inputs that systematically explore the space of system executions. First, we analyze controller applications to identify equivalence classes of packets that exercise different parts of the code. Second, we propose several network models with increasing precision, ranging from simple traffic models to live testing on the target network. Initial experiences with our prototype, which symbolically executes OpenFlow applications written in Python, suggest that our techniques can help programmers identify bugs in their OpenFlow programs.
|
|
3. |
- Fu, Jing, et al.
(author)
-
Efficient IP-Address Lookup with a Shared Forwarding Table for Multiple Virtual Routers
- 2008
-
In: 2008 ACM CoNEXT Conference. - New York, New York, USA : ACM Press. - 9781605582108
-
Conference paper (peer-reviewed)abstract
- Virtual routers are a promising way to provide network services such as customerspecificrouting, policy-based routing, multi-topology routing, and network virtulization.However, the need to support a separate forwarding information base (FIB)for each virtual router leads to memory scaling challenges. In this paper, wepresent a small, shared data structure and a fast lookup algorithm that capitalize onthe commonality of IP prefixes between each FIB. Experiments with real packettraces and routing tables show that our approach achieves much lower memoryrequirements and considerably faster lookup times. Our prototype implementationin the Click modular router, running both in user space and in the Linux kernel,demonstrates that our data structure and algorithm are an interesting solution forbuilding scalable routers that support virtualization.
|
|
4. |
- Koponen, Teemu, et al.
(author)
-
Architecting for Innovation
- 2011
-
In: Computer communication review. - : Association for Computing Machinery (ACM). - 0146-4833 .- 1943-5819. ; 41:3, s. 24-36
-
Journal article (peer-reviewed)abstract
- We argue that the biggest problem with the current Internet architecture is not a particular functional deficiency, but its inability to accommodate innovation. To address this problem we propose a minimal architectural "framework" in which comprehensive architectures can reside. The proposed Framework for Internet Innovation (FII) - which is derived from the simple observation that network interfaces should be extensible and abstract - allows for a diversity of architectures to coexist, communicate, and evolve. We demonstrate FII's ability to accommodate diversity and evolution with a detailed examination of how information flows through the architecture and with a skeleton implementation of the relevant interfaces.
|
|