Nettle: Taking the Sting Out of Programming Network Routers


Andreas Voellmy, Paul Hudak


We describe a language-centric approach to solving the complex, low-level, and error-prone problem of network control. Specifically, we have designed a domain-specific language called Nettle, embedded in Haskell, that allows programming OpenFlow networks in an elegant, declarative style.  Nettle is based on the principles of functional reactive programming (FRP), and as such has both continuous and discrete abstractions, each of which is leveraged in the design. We have implemented Nettle and tested it on real OpenFlow switches. We demonstrate our methodology by writing several non-trivial OpenFlow controllers.



  author    = {Andreas Voellmy and
               Paul Hudak},
  title     = {Nettle: Taking the Sting Out of Programming Network Routers},
  booktitle = {PADL},
  year      = {2011},
  pages     = {235-249},
  ee        = {},
  crossref  = {DBLP:conf/padl/2011},
  bibsource = {DBLP,}
  editor    = {Ricardo Rocha and
               John Launchbury},
  title     = {Practical Aspects of Declarative Languages - 13th International
               Symposium, PADL 2011, Austin, TX, USA, January 24-25, 2011.
  booktitle = {PADL},
  publisher = {Springer},
  series    = {Lecture Notes in Computer Science},
  volume    = {6539},
  year      = {2011},
  isbn      = {978-3-642-18377-5},
  ee        = {},
  bibsource = {DBLP,}