Don’t Configure the Network, Program It! Domain-Specific Programming Languages for Network Systems


Andreas Voellmy, Ashish Agarwal, Paul Hudak, Nick Feamster, Sam Burnett, and John Launchbury


Network operators must configure networks to accomplish critical, complex, and often conflicting requirements: they must ensure good performance while maintaining security, and satisfy contractual obligations while ensuring profitable use of interdomain connections. Unfortunately, today they have no choice but to implement these high-level goals by configuring hundreds of individual network devices. These interact in complex and unexpected ways, often resulting in misconfigurations or downtime. We propose a new approach: rather than configure individual network devices, operators should program the network holistically, according to high-level policies.

Towards this goal, we present Nettle, a system for clearly and concisely expressing network requirements, together with mechanisms to control the network accordingly. At the lowest level, we rely on OpenFlow switches for programmable network hardware. On top of this layer, we build an extensible family of embedded domain-specific languages (EDSLs), each aimed at different operational concerns, and provide convenient ways to sensibly combine expressions in these languages. We present a case study demonstrating a DSL for networks that provides fine-grained, dynamic access control policies.


 author = {Voellmy, Andreas and Agarwal, Ashish and Hudak, Paul and Feamster, Nick and Burnett, Sam and Launchbury, John},
 title = {Don't Configure the Network, Program It! Domain-Specific Programming Languages for Network Systems},
 institution = {Yale University},
 year = {2010},
 month = {July},
 number = {YALEU/DCS/RR-1432}