Composing Software-Defined Networks

Joshua Reich, Postdoctoral Research Scientist, Princeton University, Network Systems Group

Video of lecture
PowerPoint presentation slides


Joshua Reich

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 pro- grammers to extend packets with virtual fields that may be used to associate packets with high-level meta-data. We realize these abstractions in Pyretic, an imperative, domain-specific language embedded in Python. This talk will introduce the Pyretic system, covering in detail Pyretic’s composition operators and topology abstraction mechanisms. Concrete examples will be given, including a short demo.


Dr. Joshua Reich is a postdoctoral researcher working with Professor Jen Rexford at the Department of Computer Science, Princeton University. He designs and then builds systems to utilize networked infrastructure more easily and efficiently – currently focusing on Software Defined Networks. His other research interests include cloud computing, mobile/wireless systems, and green networks. Joshua was selected as an NSF/CRA Computing Innovation Fellow in the 2011 Cohort. He received Best Student Demo at ACM MobiCom/MobiHoc 2007 and was an ACM SRC Finalist at SIGCOMM 2010. Joshua’s dissertation work on scalable P2P virtual machine streaming led to the founding of a startup, Infinio Systems Inc. Joshua earned his BA (Magna Cum Laude, Mathematics, 2002), MS (Computer Science, 2004), and PhD (Computer Science, 2011) from Columbia University, where he was co-advised by Professors Vishal Misra and Dan Rubenstein. During his PhD studies, Joshua interned with Sandia National Labs (NM and CA), Microsoft Research (Bangalore and Redmond) and Technicolor (Paris).