Nettle: Taking the Sting Out of Programming Network Routers
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.
KeywordsSignal Function Internet Service Provider Event Stream Address Resolution Protocol Forwarding Table
Unable to display preview. Download preview PDF.
- 4.Elliott, C., Hudak, P.: Functional reactive animation. In: International Conference on Functional Programming, pp. 263–273 (June 1997)Google Scholar
- 5.Foster, N., Harrison, R., Meola, M.L., Freedman, M.J., Rexford, J., Walker, D.: Frenetic: A high-level langauge for openflow networks. In: ACM Workshop on Programmable Routers for Extensible Services of Tomorrow (PRESTO) (November 2010)Google Scholar
- 6.Griffin, T.G., Jaggard, A.D., Ramachandran, V.: Design principles of policy languages for path vector protocols. In: SIGCOMM 2003: Proceedings of the 2003 Conference on Applications, Technologies, Architectures, and Protocols for Computer Communications. pp. 61–72. ACM, New York(2003)Google Scholar
- 7.Hinrichs, T.L., Gude, N.S., Casado, M., Mitchell, J.C., Shenker, S.: Practical declarative network management. In: WREN 2009: Proceedings of the 1st ACM Workshop on Research on Enterprise Networking, pp. 1–10. ACM, New York (2009)Google Scholar
- 10.Loo, B.T., Hellerstein, J.M., Stoica, I., Ramakrishnan, R.: Declarative routing: extensible routing with declarative queries. In: SIGCOMM 2005: Proceedings of the 2005 Conference on Applications, Technologies, Architectures, and Protocols for Computer Communications, pp. 289–300. ACM, New York (2005)CrossRefGoogle Scholar
- 11.Mahajan, R., Wetherall, D., Anderson, T.: Understanding BGP misconfiguration. In: SIGCOMM, Pittsburgh, PA, pp. 3–17 (August 2002)Google Scholar
- 13.Peterson, J., Hager, G., Hudak, P.: A language for declarative robotic programming. In: International Conference on Robotics and Automation (1999)Google Scholar
- 14.Ramachandran, V.: Foundations of Inter-Domain Routing. Ph.D. thesis, Yale University (May 2005)Google Scholar
- 15.Voellmy, A., Agarwal, A., Hudak, P., Feamster, N., Burnett, S., Launchbury, J.: Don’t configure the network, program it! domain-specific programming languages for network systems. Tech. Rep. YALEU/DCS/RR-1432, Yale University (July 2010)Google Scholar