skip to main content
10.1145/2535838.2535862acmconferencesArticle/Chapter ViewAbstractPublication PagespoplConference Proceedingsconference-collections
research-article

NetKAT: semantic foundations for networks

Published:08 January 2014Publication History

ABSTRACT

Recent years have seen growing interest in high-level languages for programming networks. But the design of these languages has been largely ad hoc, driven more by the needs of applications and the capabilities of network hardware than by foundational principles. The lack of a semantic foundation has left language designers with little guidance in determining how to incorporate new features, and programmers without a means to reason precisely about their code.

This paper presents NetKAT, a new network programming language that is based on a solid mathematical foundation and comes equipped with a sound and complete equational theory. We describe the design of NetKAT, including primitives for filtering, modifying, and transmitting packets; union and sequential composition operators; and a Kleene star operator that iterates programs. We show that NetKAT is an instance of a canonical and well-studied mathematical structure called a Kleene algebra with tests (KAT) and prove that its equational theory is sound and complete with respect to its denotational semantics. Finally, we present practical applications of the equational theory including syntactic techniques for checking reachability, proving non-interference properties that ensure isolation between programs, and establishing the correctness of compilation algorithms.

Skip Supplemental Material Section

Supplemental Material

d1_right_t6.mp4

mp4

184.1 MB

References

  1. Ehab Al-Shaer and Saeed Al-Haj. FlowChecker: Configuration analysis and verification of federated OpenFlow infrastructures. In SafeConfig, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Allegra Angus and Dexter Kozen. Kleene algebra with tests and program schematology. Technical Report TR2001--1844, Computer Science Department, Cornell University, July 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Ernie Cohen. Using Kleene algebra to reason about concurrency control. Technical report, Telcordia, Morristown, N.J., 1994.Google ScholarGoogle Scholar
  4. John Horton Conway. Regular Algebra and Finite Machines. Chapman and Hall, London, 1971.Google ScholarGoogle Scholar
  5. Andrew D. Ferguson, Arjun Guha, Chen Liang, Rodrigo Fonseca, and Shriram Krishnamurthi. Participatory networking: An API for application control of SDNs. In SIGCOMM, 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Nate Foster, Rob Harrison, Michael J. Freedman, Christopher Monsanto, Jennifer Rexford, Alec Story, and David Walker. Frenetic: A network programming language. In ICFP, September 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Arjun Guha, Mark Reitblatt, and Nate Foster. Machine-verified network controllers. In PLDI, June 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Stephen Gutz, Alec Story, Cole Schlesinger, and Nate Foster. Splendid isolation: A slice abstraction for software-defined networks. In HotSDN, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. James Hamilton. Networking: The last bastion of mainframe computing, December 2009. Available at http://tinyurl.com/y9uz64e.Google ScholarGoogle Scholar
  10. Peyman Kazemian, George Varghese, and Nick McKeown. Header space analysis: Static checking for networks. In NSDI, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Ahmed Khurshid, Xuan Zou, Wenxuan Zhou, Matthew Caesar, and P. Brighten Godfrey. VeriFlow: Verifying network-wide invariants in real time. In NSDI, 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Dexter Kozen. A completeness theorem for Kleene algebras and the algebra of regular events. I&C, 110(2):366--390, May 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Dexter Kozen. Kleene algebra with tests and commutativity conditions. In TACAS, pages 14--33, Passau, Germany, March 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Dexter Kozen. Kleene algebra with tests. Transactions on Programming Languages and Systems, 19(3):427--443, May 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Dexter Kozen. Kleene algebras with tests and the static analysis of programs. Technical Report TR2003--1915, Computer Science Department, Cornell University, November 2003.Google ScholarGoogle Scholar
  16. Dexter Kozen and Maria-Cristina Patron. Certification of compiler optimizations using Kleene algebra with tests. In CL, July 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Dexter Kozen and Frederick Smith. Kleene algebra with tests: Completeness and decidability. In CSL, September 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Boon Thau Loo, Joseph M. Hellerstein, Ion Stoica, and Raghu Ramakrishnan. Declarative routing: Extensible routing with declarative queries. In SIGCOMM, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Haohui Mai, Ahmed Khurshid, Raghit Agarwal, Matthew Caesar, P. Brighten Godfrey, and Samuel Talmadge King. Debugging the data plane with Anteater. In SIGCOMM, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. James McCauley, Aurojit Panda, Martin Casado, Teemu Koponen, and Scott Shenker. Extending SDN to large-scale networks. In ONS, 2013.Google ScholarGoogle Scholar
  21. Nick McKeown, Tom Anderson, Hari Balakrishnan, Guru Parulkar, Larry Peterson, Jennifer Rexford, Scott Shenker, and Jonathan Turner. OpenFlow: Enabling innovation in campus networks. SIGCOMM Computing Communications Review, 38(2):69--74, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. B. Möller. Calculating with pointer structures. In Algorithmic Languages and Calculi. Proc. IFIP TC2/WG2.1 Working Conference, February 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Christopher Monsanto, Nate Foster, Rob Harrison, and David Walker. A compiler and run-time system for network programming languages. In POPL, January 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. Christopher Monsanto, Joshua Reich, Nate Foster, Jennifer Rexford, and David Walker. Composing software-defined networks. In NSDI, April 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. Tim Nelson, Arjun Guha, Daniel J. Dougherty, Kathi Fisler, and Shriram Krishnamurthi. A balance of power: Expressive, analyzable controller programming. In HotSDN, 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. Mark Reitblatt, Nate Foster, Jennifer Rexford, Cole Schlesinger, and David Walker. Abstractions for network update. In SIGCOMM, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. Andrei Sabelfeld and Andrew C. Myers. Language-based information-flow security. IEEE Journal on Selected Areas in Communications, 21(1):5--19, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. Gunther Schmidt. Relational Mathematics. Cambridge University Press, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. O. Shmueli. Decidability and expressiveness aspects of logic queries. In PODS, pages 237--249, 1987. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. The Frenetic Project, 2013. See http://frenetic-lang.org.Google ScholarGoogle Scholar
  31. Andreas Voellmy and Paul Hudak. Nettle: Functional reactive programming of OpenFlow networks. In PADL, 2011.Google ScholarGoogle Scholar
  32. Andreas Voellmy, Junchang Wang, Y. Richard Yang, Bryan Ford, and Paul Hudak. Maple: Simplifying SDN programming using algorithmic policies. In SIGCOMM, 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. Anduo Wang, Limin Jia, Changbin Liu, Boon Thau Loo, Oleg Sokolsky, and Prithwish Basu. Formally verifiable networking. In HotNets, 2009.Google ScholarGoogle Scholar
  34. Minlan Yu, Jennifer Rexford, Xin Sun, Sanjay G. Rao, and Nick Feamster. A survey of virtual LAN usage in campus networks. IEEE Communications Magazine, 49(7):98--103, 2011.Google ScholarGoogle ScholarCross RefCross Ref

Index Terms

  1. NetKAT: semantic foundations for networks

    Recommendations

    Comments

    Login options

    Check if you have access through your login credentials or your institution to get full access on this article.

    Sign in
    • Published in

      cover image ACM Conferences
      POPL '14: Proceedings of the 41st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages
      January 2014
      702 pages
      ISBN:9781450325448
      DOI:10.1145/2535838

      Copyright © 2014 ACM

      Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      • Published: 8 January 2014

      Permissions

      Request permissions about this article.

      Request Permissions

      Check for updates

      Qualifiers

      • research-article

      Acceptance Rates

      POPL '14 Paper Acceptance Rate51of220submissions,23%Overall Acceptance Rate824of4,130submissions,20%

      Upcoming Conference

      POPL '25

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader