TY - GEN
T1 - A compiler and run-time system for network programming languages
AU - Monsanto, Christopher
AU - Foster, Nate
AU - Harrison, Rob
AU - Walker, David
N1 - Copyright:
Copyright 2012 Elsevier B.V., All rights reserved.
PY - 2012
Y1 - 2012
N2 - Software-defined networks (SDNs) are a new kind of network architecture in which a controller machine manages a distributed collection of switches by instructing them to install or uninstall packet-forwarding rules and report traffic statistics. The recently formed Open Networking Consortium, whose members include Google, Facebook, Microsoft, Verizon, and others, hopes to use this architecture to transform the way that enterprise and data center networks are implemented. In this paper, we define a high-level, declarative language, called NetCore, for expressing packet-forwarding policies on SDNs. Net-Core is expressive, compositional, and has a formal semantics. To ensure that a majority of packets are processed efficiently on switches-instead of on the controller-we present new compilation algorithms for NetCore and couple them with a new run-time system that issues rule installation commands and traffic-statistics queries to switches. Together, the compiler and run-time system generate efficient rules whenever possible and outperform the simple, manual techniques commonly used to program SDNs today. In addition, the algorithms we develop are generic, assuming only that the packet-matching capabilities available on switches satisfy some basic algebraic laws. Overall, this paper delivers a new design for a high-level network programming language; an improved set of compiler algorithms; a new run-time system for SDN architectures; the first formal semantics and proofs of correctness in this domain; and an implementation and evaluation that demonstrates the performance benefits over traditional manual techniques.
AB - Software-defined networks (SDNs) are a new kind of network architecture in which a controller machine manages a distributed collection of switches by instructing them to install or uninstall packet-forwarding rules and report traffic statistics. The recently formed Open Networking Consortium, whose members include Google, Facebook, Microsoft, Verizon, and others, hopes to use this architecture to transform the way that enterprise and data center networks are implemented. In this paper, we define a high-level, declarative language, called NetCore, for expressing packet-forwarding policies on SDNs. Net-Core is expressive, compositional, and has a formal semantics. To ensure that a majority of packets are processed efficiently on switches-instead of on the controller-we present new compilation algorithms for NetCore and couple them with a new run-time system that issues rule installation commands and traffic-statistics queries to switches. Together, the compiler and run-time system generate efficient rules whenever possible and outperform the simple, manual techniques commonly used to program SDNs today. In addition, the algorithms we develop are generic, assuming only that the packet-matching capabilities available on switches satisfy some basic algebraic laws. Overall, this paper delivers a new design for a high-level network programming language; an improved set of compiler algorithms; a new run-time system for SDN architectures; the first formal semantics and proofs of correctness in this domain; and an implementation and evaluation that demonstrates the performance benefits over traditional manual techniques.
KW - Domain specific languages
KW - Frenetic
KW - Network programming languages
KW - OpenFlow
KW - Software-defined networking
UR - http://www.scopus.com/inward/record.url?scp=84857889275&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=84857889275&partnerID=8YFLogxK
U2 - 10.1145/2103656.2103685
DO - 10.1145/2103656.2103685
M3 - Conference contribution
AN - SCOPUS:84857889275
SN - 9781450310833
T3 - Conference Record of the Annual ACM Symposium on Principles of Programming Languages
SP - 217
EP - 230
BT - POPL'12 - Proceedings of the 39th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages
T2 - 39th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL'12
Y2 - 25 January 2012 through 27 January 2012
ER -