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.
Supplemental Material
Available for Download
Technical appendix including proofs of correctness for the PLDI 2016 paper entitled "Temporal NetKAT" by Ryan Beckett, Michael Greenberg and David Walker.
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- V. M. Antimirov and P. D. Mosses. Rewriting extended regular expressions. Theoretical Computer Science, 143:195–209, 1994. Google Scholar
Digital Library
- M. Ben-Ari. Mathematical Logic for Computer Science. Springer Publishing Company, Incorporated, 3rd edition, 2012. ISBN 1447141288, 9781447141280. Google Scholar
Digital Library
- 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 Scholar
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- J. Desharnais, B. Mller, and G. Struth. Modal kleene algebra and applications – a survey, 2004.Google Scholar
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- S. Gutz, A. Story, C. Schlesinger, and N. Foster. Splendid isolation: A slice abstraction for software-defined networks. In HotSDN, 2012. Google Scholar
Digital Library
- 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 Scholar
Cross Ref
- D. Harel, J. Tiuryn, and D. Kozen. Dynamic Logic. MIT Press, Cambridge, MA, USA, 2000. ISBN 0262082896. Google Scholar
Digital Library
- P. Kazemian. Mini-Stanford, 2012 (accessed July 27, 2015). URL https://bitbucket.org/peymank/hasselpublic/wiki/Mini-Stanford.Google Scholar
- P. Kazemian, G. Varghese, and N. McKeown. Header space analysis: Static checking for networks. In NSDI, 2012. Google Scholar
Digital Library
- 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 Scholar
Digital Library
- A. Khurshid, X. Zou, W. Zhou, M. Caesar, and P. B. Godfrey. VeriFlow: Verifying network-wide invariants in real time. In NSDI, 2013. Google Scholar
Digital Library
- 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 Scholar
Cross Ref
- 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 Scholar
Digital Library
- 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 Scholar
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- N. Lopes, N. Bjorner, P. Godefroid, K. Jayaraman, and G. Varghese. Checking beliefs in dynamic networks. In NSDI, 2015. Google Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- J. McClurg, H. Hojjat, P. ˇ Cern´y, and N. Foster. Efficient synthesis of network updates. In PLDI, pages 196–207, 2015. Google Scholar
Digital Library
- 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 Scholar
Digital Library
- C. Monsanto, N. Foster, R. Harrison, and D. Walker. A compiler and run-time system for network programming languages. In POPL, January 2012. Google Scholar
Digital Library
- C. Monsanto, J. Reich, N. Foster, J. Rexford, and D. Walker. Composing software-defined networks. In NSDI, April 2013. Google Scholar
Digital Library
- M. Moshref, M. Yu, R. Govindan, and A. Vahdat. DREAM: dynamic resource allocation for software-defined measurement. In SIGCOMM, 2014. Google Scholar
Digital Library
- 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 Scholar
Digital Library
- T. Nelson, A. Guha, D. J. Dougherty, K. Fisler, and S. Krishnamurthi. A balance of power: Expressive, analyzable controller programming. In HotSDN, 2013. Google Scholar
Digital Library
- H. Nishimura. Descriptively complete process logic. Acta Inf., 14(4):359–369, 1980. doi: 10.1007/BF00286492. Google Scholar
Digital Library
- O. Padon, N. Immerman, A. Karbyshev, O. Lahav, M. Sagiv, and S. Shoham. Decentralizing SDN policies. In POPL, 2015. Google Scholar
Digital Library
- V. R. Pratt. Process logic: Preliminary report. In Proceedings of the 6th ACM SIGACT-SIGPLAN Symposium on Principles of Programming Languages, 1979. Google Scholar
Digital Library
- M. Reitblatt, N. Foster, J. Rexford, C. Schlesinger, and D. Walker. Abstractions for network update. In SIGCOMM, 2012. Google Scholar
Digital Library
- S. Smolka, S. Eliopoulos, N. Foster, and A. Guha. A fast compiler for NetKAT. In ICFP, ICFP 2015, 2015. Google Scholar
Digital Library
- 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 Scholar
- A. Voellmy and P. Hudak. Nettle: Functional reactive programming of OpenFlow networks. In PADL, 2011.Google Scholar
- A. Voellmy, J. Wang, Y. R. Yang, B. Ford, and P. Hudak. Maple: Simplifying SDN programming using algorithmic policies. In SIGCOMM, 2013. Google Scholar
Digital Library
- M. Yu, L. Jose, and R. Miao. Software-defined traffic management with opensketch. In NSDI, 2013. Google Scholar
Digital Library
Index Terms
Temporal NetKAT
Recommendations
Temporal NetKAT
PLDI '16: Proceedings of the 37th ACM SIGPLAN Conference on Programming Language Design and ImplementationOver 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—...
NetKAT: semantic foundations for networks
POPL '14Recent 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 ...
NetKAT: semantic foundations for networks
POPL '14: Proceedings of the 41st ACM SIGPLAN-SIGACT Symposium on Principles of Programming LanguagesRecent 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 ...







Comments