Nettle: A Language for Configuring Routing Networks

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


Interdomain routing is the task of establishing connectivity among the independently administered networks (called autonomous systems) that constitute the Internet. The protocol used for this task is the Border Gateway Protocol (BGP) [1], which allows autonomous systems to independently define their own route preferences and route advertisement policies. By careful design of these BGP policies, autonomous systems can achieve a variety of objectives.

Currently available configuration and policy languages are low-level and provide only a few basic constructs for abstraction, thus preventing network operators from expressing their intentions naturally.

To alleviate this problem, we have designed Nettle, a domain-specific embedded language (DSEL) for configuring BGP networks, using Haskell [3] as the host language. The embedding in Haskell gives users comprehensive abstraction and calculation constructs, allowing them to clearly describe the ideas generating their BGP policies and router configurations. Furthermore, unlike previous router configuration and policy languages, Nettle allows users to both specify BGP policies at an abstract, network-wide level, and specify vendor-specific router details in a single uniform language.

We have built a compiler that translates Nettle programs into configuration scripts for XORP [4] routers and a simulator that allows operators to test their network configurations before deployment.


Policy Language Community Attribute Border Gateway Protocol Route Network Open Short Path First 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


  1. 1.
    Rekhter, Y., Li, T., Hares, S.: A Border Gateway Protocol 4. Internet Engineering Task Force (2006)Google Scholar
  2. 2.
    Alaettinoglu, C., Villamizar, C., Gerich, E., Kessens, D., Meyer, D., Bates, T., Karrenberg, D., Terpstra, M.: Routing Policy Specification Language (RPSL). Internet Engineering Task Force (June 1999)Google Scholar
  3. 3.
    Peyton Jones, S., et al.: The Haskell 98 language and libraries: The revised report. Journal of Functional Programming 13(1), 0–255 (2003)Google Scholar
  4. 4.
    XORP, Inc.: Extensible Open Routing Platform, XORP User Manual, Version 1.6 (January 2009)Google Scholar
  5. 5.
    Varadhan, K., Govindan, R., Estrin, D.: Persistent route oscillations in inter-domain routing. Computer Networks 32(1), 1–16 (2000)CrossRefGoogle Scholar
  6. 6.
    Mahajan, R., Wetherall, D., Anderson, T.: Understanding BGP misconfiguration. SIGCOMM Comput. Commun. Rev. 32(4), 3–16 (2002)CrossRefGoogle Scholar
  7. 7.
    Hudak, P.: Building domain specific embedded languages. ACM Computing Surveys 28A (December 1996) (electronic)Google Scholar
  8. 8.
    Hudak, P.: Modular domain specific languages and tools. In: Proceedings of Fifth International Conference on Software Reuse, pp. 134–142. IEEE Computer Society, Los Alamitos (1998)Google Scholar
  9. 9.
    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)CrossRefGoogle Scholar
  10. 10.
    Zhang, R., Bartell, M.: BGP Design and Implementation. Cisco Press (2003)Google Scholar
  11. 11.
    Gao, L., Rexford, J.: Stable internet routing without global coordination. SIGMETRICS Perform. Eval. Rev. 28(1), 307–317 (2000)CrossRefGoogle Scholar
  12. 12.
    Caesar, M., Rexford, J.: BGP routing policies in isp networks. IEEE Network 19(6), 5–11 (2005)CrossRefGoogle Scholar
  13. 13.
    Ramachandran, V.: Foundations of Inter-Domain Routing. PhD thesis, Yale University (May 2005)Google Scholar
  14. 14.
    Sobrinho, J.L.: Network routing with path vector protocols: theory and applications. In: SIGCOMM 2003: Proceedings of the 2003 conference on Applications, technologies, architectures, and protocols for computer communications, pp. 49–60. ACM, New York (2003)CrossRefGoogle Scholar
  15. 15.
    Griffin, T.G., Sobrinho, J.L.: Metarouting. In: SIGCOMM 2005: Proceedings of the 2005 conference on Applications, technologies, architectures, and protocols for computer communications, pp. 1–12. ACM, New York (2005)CrossRefGoogle Scholar
  16. 16.
    Thau, B., Joseph, L., Hellerstein, M., Stoica, I., Ramakrishnan, R.: Declarative routing: Extensible routing with declarative queries. In: Proceedings of ACM SIGCOMM 2005 (2005)Google Scholar
  17. 17.
    Meyers, D., Schmitz, J., Orange, C., Prior, M., Alaettinoglu, C.: Using RPSL in Practice. Internet Engineering Task Force (August 1999)Google Scholar

Copyright information

© IFIP International Federation for Information Processing 2009

Authors and Affiliations

  • Andreas Voellmy
    • 1
  • Paul Hudak
    • 1
  1. 1.Department of Computer ScienceYale UniversityUSA

Personalised recommendations