Nettle: Taking the Sting Out of Programming Network Routers

  • Andreas Voellmy
  • Paul Hudak
Part of the Lecture Notes in Computer Science book series (LNCS, volume 6539)

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.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
  2. 2.
  3. 3.
    Caesar, M., Rexford, J.: BGP routing policies in ISP networks. IEEE Network 19(6), 5–11 (2005)CrossRefGoogle Scholar
  4. 4.
    Elliott, C., Hudak, P.: Functional reactive animation. In: International Conference on Functional Programming, pp. 263–273 (June 1997)Google Scholar
  5. 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. 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. 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)CrossRefGoogle Scholar
  8. 8.
    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)CrossRefGoogle Scholar
  9. 9.
    Hughes, J.: Generalising monads to arrows. Sci. Comput. Program. 37(1-3), 67–111 (2000)MATHCrossRefGoogle Scholar
  10. 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. 11.
    Mahajan, R., Wetherall, D., Anderson, T.: Understanding BGP misconfiguration. In: SIGCOMM, Pittsburgh, PA, pp. 3–17 (August 2002)Google Scholar
  12. 12.
    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)CrossRefGoogle Scholar
  13. 13.
    Peterson, J., Hager, G., Hudak, P.: A language for declarative robotic programming. In: International Conference on Robotics and Automation (1999)Google Scholar
  14. 14.
    Ramachandran, V.: Foundations of Inter-Domain Routing. Ph.D. thesis, Yale University (May 2005)Google Scholar
  15. 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
  16. 16.
    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)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2011

Authors and Affiliations

  • Andreas Voellmy
    • 1
  • Paul Hudak
    • 1
  1. 1.Yale University 

Personalised recommendations