Languages for Software-Defined Networks
Abstract
Modern computer networks perform a bewildering array of tasks, from routing and traffic monitoring, to access control and server load balancing. Yet, managing these networks is unnecessarily complicated and error-prone, due to a heterogeneous mix of devices (e.g., routers, switches, firewalls, and middleboxes) with closed and proprietary configuration interfaces. Software-Defined Networks (SDN) are poised to change this by offering a clean and open interface between networking devices and the software that controls them. In particular, many commercial switches support the OpenFlow protocol, and a number of campus, data-center, and backbone networks have deployed the new technology. Yet, while SDN makes it possible to program the network, it does not make it easy. Today's OpenFlow controllers offer low-level APIs that mimic the underlying switch hardware. To reach SDN's full potential, we need to identify the right higher-level abstractions for creating (and composing) applications. In the Frenetic project, we are designing simple and intuitive abstractions for programming the three main stages of network management: (i) monitoring network traffic, (ii) specifying and composing packet-forwarding policies, and (iii) updating policies in a consistent way. Overall, these abstractions make it dramatically easier for programmers to write and reason about SDN applications.
Document Details
- Document Type
- Technical Report
- Publication Date
- Feb 01, 2013
- Accession Number
- ADA579341
Entities
People
- Arjun Guha
- Christopher Monsanto
- Cole Schlesinger
- Jennifer Rexford
- Joshua Reich
- Mark Reitblatt
- Michael J. Freedman
- Naga P. Katta
- Nate Foster
- Rob Harrison
Organizations
- Princeton University