Abstract
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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Caesar, M., Rexford, J.: BGP routing policies in ISP networks. IEEE Network 19(6), 5–11 (2005)
Elliott, C., Hudak, P.: Functional reactive animation. In: International Conference on Functional Programming, pp. 263–273 (June 1997)
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)
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)
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)
Hudak, P., Courtney, A., Nilsson, H., Peterson, J.: Robots, arrows, and functional reactive programming. In: Jeuring, J., Jones, S.L.P. (eds.) AFP 2002. LNCS, vol. 2638. Springer, Heidelberg (2003)
Hughes, J.: Generalising monads to arrows. Sci. Comput. Program. 37(1-3), 67–111 (2000)
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)
Mahajan, R., Wetherall, D., Anderson, T.: Understanding BGP misconfiguration. In: SIGCOMM, Pittsburgh, PA, pp. 3–17 (August 2002)
Paterson, R.: A new notation for arrows. In: ICFP 2001: Proceedings of the sixth ACM SIGPLAN International Conference on Functional Programming, pp. 229–240. ACM, New York (2001)
Peterson, J., Hager, G., Hudak, P.: A language for declarative robotic programming. In: International Conference on Robotics and Automation (1999)
Ramachandran, V.: Foundations of Inter-Domain Routing. Ph.D. thesis, Yale University (May 2005)
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)
Voellmy, A., Hudak, P.: Nettle: A language for configuring routing networks. In: Taha, W.M. (ed.) DSL 2009. LNCS, vol. 5658, pp. 211–235. Springer, Heidelberg (2009)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2011 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Voellmy, A., Hudak, P. (2011). Nettle: Taking the Sting Out of Programming Network Routers. In: Rocha, R., Launchbury, J. (eds) Practical Aspects of Declarative Languages. PADL 2011. Lecture Notes in Computer Science, vol 6539. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-18378-2_19
Download citation
DOI: https://doi.org/10.1007/978-3-642-18378-2_19
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-18377-5
Online ISBN: 978-3-642-18378-2
eBook Packages: Computer ScienceComputer Science (R0)