skip to main content
article
Public Access

Temporal NetKAT

Published:02 June 2016Publication History
Skip Abstract Section

Abstract

Over the past 5-10 years, the rise of software-defined networking (SDN) has inspired a wide range of new systems, libraries, hypervisors and languages for programming, monitoring, and debugging network behavior. Oftentimes, these systems are disjoint—one language for programming and another for verification, and yet another for run-time monitoring and debugging. In this paper, we present a new, unified framework, called Temporal NetKAT, capable of facilitating all of these tasks at once. As its name suggests, Temporal NetKAT is the synthesis of two formal theories: past-time (finite trace) linear temporal logic and (network) Kleene Algebra with Tests. Temporal predicates allow programmers to write down concise properties of a packet’s path through the network and to make dynamic packet-forwarding, access control or debugging decisions on that basis. In addition to being useful for programming, the combined equational theory of LTL and NetKAT facilitates proofs of path-based correctness properties. Using new, general, proof techniques, we show that the equational semantics is sound with respect to the denotational semantics, and, for a class of programs we call network-wide programs, complete. We have also implemented a compiler for temporal NetKAT, evaluated its performance on a range of benchmarks, and studied the effectiveness of several optimizations.

Skip Supplemental Material Section

Supplemental Material

References

  1. C. J. Anderson, N. Foster, A. Guha, J.-B. Jeannin, D. Kozen, C. Schlesinger, and D. Walker. NetKAT: Semantic foundations for networks. In POPL, January 2014. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. H. Andréka, S. Mikulás, and I. Németi. The equational theory of kleene lattices. Theor. Comput. Sci., 412(52):7099–7108, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. V. M. Antimirov and P. D. Mosses. Rewriting extended regular expressions. Theoretical Computer Science, 143:195–209, 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. M. Ben-Ari. Mathematical Logic for Computer Science. Springer Publishing Company, Incorporated, 3rd edition, 2012. ISBN 1447141288, 9781447141280. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. P. Bosshart, D. Daly, M. Izzard, N. McKeown, J. Rexford, D. Talayco, A. Vahdat, G. Varghese, and D. Walker. Programming protocol-independent packet processors. See http: //arxiv.org/abs/1312.1719, December 2013.Google ScholarGoogle Scholar
  6. G. De Giacomo and M. Y. Vardi. Linear temporal logic and linear dynamic logic on finite traces. In Proceedings of the Twenty-Third International Joint Conference on Artificial Intelligence, pages 854–860, 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. G. De Giacomo, R. D. Masellis, and M. Montali. Reasoning on LTL on finite traces: Insensitivity to infiniteness. In Proceedings of the Twenty-Eighth AAAI Conference on Artificial Intelligence, July 27 -31, 2014, Québec City, Québec, Canada., pages 1027–1033, 2014. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. J. Desharnais, B. Mller, and G. Struth. Modal kleene algebra and applications – a survey, 2004.Google ScholarGoogle Scholar
  9. N. Foster, R. Harrison, M. J. Freedman, C. Monsanto, J. Rexford, A. Story, and D. Walker. Frenetic: A network programming language. In ICFP, September 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. N. Foster, D. Kozen, M. Milano, A. Silva, and L. Thompson. A coalgebraic decision procedure for NetKAT. In Proceedings of the 42Nd Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pages 343–355, 2015. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. M. Fujita, P. McGeer, and J.-Y. Yang. Multi-terminal binary decision diagrams: An efficient data structure for matrix representation. Formal Methods in System Design, 10(2):149–169. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. N. B. B. Grathwohl, D. Kozen, and K. Mamouras. KAT + B! In Proc. Joint Meeting of the 23rd EACSL Conf. Computer Science Logic (CSL 2014) and 29th ACM/IEEE Symp. Logic in Computer Science (LICS 2014), 2014. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. S. Gutz, A. Story, C. Schlesinger, and N. Foster. Splendid isolation: A slice abstraction for software-defined networks. In HotSDN, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. D. Harel, D. Kozen, and R. Parikh. Process logic: Expressiveness, decidability, completeness. Journal of Computer and System Sciences, 25(2):144 – 170, 1982. doi: http://dx.doi. org/10.1016/0022-0000(82)90003-4.Google ScholarGoogle ScholarCross RefCross Ref
  15. D. Harel, J. Tiuryn, and D. Kozen. Dynamic Logic. MIT Press, Cambridge, MA, USA, 2000. ISBN 0262082896. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. P. Kazemian. Mini-Stanford, 2012 (accessed July 27, 2015). URL https://bitbucket.org/peymank/hasselpublic/wiki/Mini-Stanford.Google ScholarGoogle Scholar
  17. P. Kazemian, G. Varghese, and N. McKeown. Header space analysis: Static checking for networks. In NSDI, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. P. Kazemian, M. Chang, H. Zeng, G. Varghese, N. McKeown, and S. Whyte. Real time network policy checking using header space analysis. In NSDI, 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. A. Khurshid, X. Zou, W. Zhou, M. Caesar, and P. B. Godfrey. VeriFlow: Verifying network-wide invariants in real time. In NSDI, 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. S. Knight, H. X. Nguyen, N. Falkner, R. Bowden, and M. Roughan. The internet topology zoo. In IEEE Journal on Selected Areas in Communications, 2011.Google ScholarGoogle ScholarCross RefCross Ref
  21. D. Kozen. A completeness theorem for kleene algebras and the algebra of regular events. Information and Computation, 110(2):366 – 390, 1994. doi: http://dx.doi.org/10.1006/inco. 1994.1037. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. D. Kozen and K. Mamouras. Automata, Languages, and Programming: 41st International Colloquium, ICALP 2014, Copenhagen, Denmark, July 8-11, 2014, Proceedings, Part II, chapter Kleene Algebra with Equations, pages 280–292. Springer Berlin Heidelberg, 2014.Google ScholarGoogle Scholar
  23. D. Kozen and F. Smith. Kleene algebra with tests: Completeness and decidability. In Proc. 10th Int. Workshop Computer Science Logic (CSL’96), volume 1258 of Lecture Notes in Computer Science, pages 244–259, 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. F. Kröger and S. Merz. Temporal Logic and State Systems (Texts in Theoretical Computer Science. An EATCS Series). Springer Publishing Company, Incorporated, 1 edition, 2008. ISBN 3540674012, 9783540674016. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. N. Lopes, N. Bjorner, P. Godefroid, K. Jayaraman, and G. Varghese. Checking beliefs in dynamic networks. In NSDI, 2015. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. H. Mai, A. Khurshid, R. Agarwal, M. Caesar, P. B. Godfrey, and S. T. King. Debugging the data plane with Anteater. In SIGCOMM, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. Z. Manna and A. Pnueli. The Temporal Logic of Reactive and Concurrent Systems. Springer-Verlag New York, Inc., New York, NY, USA, 1992. ISBN 0-387-97664-7. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. J. McClurg, H. Hojjat, P. ˇ Cern´y, and N. Foster. Efficient synthesis of network updates. In PLDI, pages 196–207, 2015. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. N. McKeown, T. Anderson, H. Balakrishnan, G. Parulkar, L. Peterson, J. Rexford, S. Shenker, and J. Turner. Open-Flow: Enabling innovation in campus networks. SIGCOMM Computing Communications Review, 38(2):69–74, 2008. doi: http://doi.acm.org/10.1145/1355734.1355746. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. C. Monsanto, N. Foster, R. Harrison, and D. Walker. A compiler and run-time system for network programming languages. In POPL, January 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. C. Monsanto, J. Reich, N. Foster, J. Rexford, and D. Walker. Composing software-defined networks. In NSDI, April 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. M. Moshref, M. Yu, R. Govindan, and A. Vahdat. DREAM: dynamic resource allocation for software-defined measurement. In SIGCOMM, 2014. Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. S. Narayana, M. Tahmasbi, J. Rexford, and D. Walker. Compiling path queries. In 13th USENIX Symposium on Networked Systems Design and Implementation (NSDI 16), pages 207–222, 2016. Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. T. Nelson, A. Guha, D. J. Dougherty, K. Fisler, and S. Krishnamurthi. A balance of power: Expressive, analyzable controller programming. In HotSDN, 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. H. Nishimura. Descriptively complete process logic. Acta Inf., 14(4):359–369, 1980. doi: 10.1007/BF00286492. Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. O. Padon, N. Immerman, A. Karbyshev, O. Lahav, M. Sagiv, and S. Shoham. Decentralizing SDN policies. In POPL, 2015. Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. V. R. Pratt. Process logic: Preliminary report. In Proceedings of the 6th ACM SIGACT-SIGPLAN Symposium on Principles of Programming Languages, 1979. Google ScholarGoogle ScholarDigital LibraryDigital Library
  38. M. Reitblatt, N. Foster, J. Rexford, C. Schlesinger, and D. Walker. Abstractions for network update. In SIGCOMM, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  39. S. Smolka, S. Eliopoulos, N. Foster, and A. Guha. A fast compiler for NetKAT. In ICFP, ICFP 2015, 2015. Google ScholarGoogle ScholarDigital LibraryDigital Library
  40. R. Soulé, S. Basu, P. J. Marandi, F. Pedone, R. Kleinberg, E. G. Sirer, and N. Foster. Merlin: A language for provisioning network resources. CoRR, abs/1407.1199, 2014.Google ScholarGoogle Scholar
  41. A. Voellmy and P. Hudak. Nettle: Functional reactive programming of OpenFlow networks. In PADL, 2011.Google ScholarGoogle Scholar
  42. A. Voellmy, J. Wang, Y. R. Yang, B. Ford, and P. Hudak. Maple: Simplifying SDN programming using algorithmic policies. In SIGCOMM, 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  43. M. Yu, L. Jose, and R. Miao. Software-defined traffic management with opensketch. In NSDI, 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Temporal NetKAT

    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

    Full Access

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader
    About Cookies On This Site

    We use cookies to ensure that we give you the best experience on our website.

    Learn more

    Got it!