Nettle: Functional Reactive Programming for OpenFlow Networks


Andreas Voellmy, Ashish Agarwal, Paul Hudak


We describe a language-centric approach to solving the complex, low-level, and error-prone nature 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 designed in layers to accommodate a family of DSLs targeted for specific network applications. The primary core of Nettle is based on the principles of functional reactive programming (FRP). Aside from its useful signal abstraction, FRP facilitates the integration of components written in different higher-level DSLs. We demonstrate our methodology by writing several non-trivial OpenFlow controllers.



 author = {Voellmy, Andreas and Agarwal, Ashish and Hudak, Paul},
 title = {Nettle: Functional Reactive Programming for OpenFlow Networks},
 institution = {Yale University},
 year = {2010},
 month = {July},
 number = {YALEU/DCS/RR-1431}