Practical Aspects of Declarative Languages

Volume 6539 of the series Lecture Notes in Computer Science pp 235-249

Nettle: Taking the Sting Out of Programming Network Routers

  • Andreas VoellmyAffiliated withYale University
  • , Paul HudakAffiliated withYale University

* Final gross prices may vary according to local VAT.

Get Access


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.