Skip to main content

Composing Software Defined Networks

Author(s): Monsanto, Christopher; Reich, Joshua; Foster, Nate; Rexford, Jennifer; Walker, David

To refer to this page use:
Abstract: Managing a network requires support for multiple concurrent tasks, from routing and traffic monitoring, to access control and server load balancing. Software-Defined Networking (SDN) allows applications to realize these tasks directly, by installing packet-processing rules on switches. However, today’s SDN platforms provide limited support for creating modular applications. This paper introduces new abstractions for building applications out of multiple, independent modules that jointly manage network traffic. First, we define composition operators and a library of policies for forwarding and querying traffic. Our parallel composition operator allows multiple policies to operate on the same set of packets, while a novel sequential composition operator allows one policy to process packets after another. Second, we enable each policy to operate on an abstract topology that implicitly constrains what the module can see and do. Finally, we define a new abstract packet model that allows programmers to extend packets with virtual fields that maybe used to associate packets with high-level meta-data. We realize these abstractions in Pyretic, an imperative, domain-specific language embedded in Python.
Publication Date: 2013
Citation: Monsanto, Christopher, Joshua Reich, Nate Foster, Jennifer Rexford, and David Walker. "Composing software defined networks." In 10th USENIX Symposium on Networked Systems Design and Implementation (2013): pp. 1-13.
Pages: 1 - 13
Type of Material: Conference Article
Journal/Proceeding Title: 10th USENIX Symposium on Networked Systems Design and Implementation
Version: Final published version. This is an open access article.

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