Abstract

NetKAT is a domain-specific language and logic for specifying and verifying network packet-processing functions. It consists of Kleene algebra with tests (KAT) augmented with primitives for testing and modifying packet headers and encoding network topologies. Previous work developed the design of the language and its standard semantics, proved the soundness and completeness of the logic, defined a PSPACE algorithm for deciding equivalence, and presented several practical applications.
This paper develops the coalgebraic theory of NetKAT, including a specialized version of the Brzozowski derivative, and presents a new efficient algorithm for deciding the equational theory using bisimulation. The coalgebraic structure admits an efficient sparse representation that results in a significant reduction in the size of the state space. We discuss the details of our implementation and optimizations that exploit NetKAT's equational axioms and coalgebraic structure to yield significantly improved performance. We present results from experiments demonstrating that our tool is competitive with state-of-the-art tools on several benchmarks including all-pairs connectivity, loop-freedom, and translation validation.
Supplemental Material
- Carolyn Jane Anderson, Nate Foster, Arjun Guha, Jean-Baptiste Jeannin, Dexter Kozen, Cole Schlesinger, and David Walker. NetKAT: Semantic foundations for networks. In POPL, pages 113--126, January 2014. Google Scholar
Digital Library
- Thomas Ball, Nikolaj Bjorner, Aaron Gember, Shachar Itzhaky, Aleksandr Karbyshev, Mooly Sagiv, Michael Schapira, and Asaf Valadarsky. Vericon: Towards verifying controller programs in software-defined networks. In PLDI, pages 282--293, June 2014. Google Scholar
Digital Library
- Filippo Bonchi, Marcello M. Bonsangue, Jan J. M. M. Rutten, and Alexandra Silva. Brzozowski's algorithm (co)algebraically. In Logic and Program Semantics--Essays Dedicated to Dexter Kozen on the Occasion of His 60th Birthday, pages 12--23, April 2012. Google Scholar
Digital Library
- Filippo Bonchi and Damien Pous. Checking NFA equivalence with bisimulations up to congruence. In POPL, pages 457--468, January 2013. Google Scholar
Digital Library
- Thomas Braibant and Damien Pous. Deciding Kleene algebras in Coq. Logical Methods in Computer Science, 8(1:16):1--42, 2012.Google Scholar
- Sabine Broda, António Machiavelo, Nelma Moreira, and Rogério Reis. On the average size of Glushkov and equation automata for KAT expressions. In FCT, pages 72--83, August 2013. Google Scholar
Digital Library
- Marco Canini, Daniele Venzano, Peter Peresíni, Dejan Kostić, and Jennifer Rexford. A NICE way to test OpenFlow applications. In NSDI, April 2012. Google Scholar
Digital Library
- Hubie Chen and Riccardo Pucella. A coalgebraic approach to Kleene algebra with tests. In CMCS, pages 94--109, July 2003.Google Scholar
Cross Ref
- Ernie Cohen, Dexter Kozen, and Frederick Smith. The complexity of Kleene algebra with tests. Technical Report TR96--1598, Computer Science Department, Cornell University, July 1996. Google Scholar
- Andrew D. Ferguson, Arjun Guha, Chen Liang, Rodrigo Fonseca, and Shriram Krishnamurthi. Participatory networking: An API for application control of SDNs. In SIGCOMM, pages 327--338, August 2013. Google Scholar
Digital Library
- Nate Foster, Rob Harrison, Michael J. Freedman, Christopher Monsanto, Jennifer Rexford, Alec Story, and David Walker. Frenetic: A network programming language. In ICFP, pages 279--291, September 2011. Google Scholar
Digital Library
- Arjun Guha, Mark Reitblatt, and Nate Foster. Machine-verified network controllers. In PLDI, pages 483--494, June 2013. Google Scholar
Digital Library
- John E. Hopcroft and Richard M. Karp. A linear algorithm for testing equivalence of finite automata. Technical Report 71--114, University of California, 1971.Google Scholar
- Sushant Jain, Alok Kumar, Subhasree Mandal, Joon Ong, Leon Poutievski, Arjun Singh, Subbaiah Venkata, Jim Wanderer, Junlan Zhou, Min Zhu, Jonathan Zolla, Urs Hölzle, Stephen Stuart, and Amin Vahdat. B4: Experience with a globally-deployed software defined WAN. In SIGCOMM, pages 3--14, August 2013. Google Scholar
Digital Library
- Ethan Katz-Bassett, Colin Scott, David R. Choffnes, Ítalo Cunha, Vytautas Valancius, Nick Feamster, Harsha V. Madhyastha, Thomas Anderson, and Arvind Krishnamurthy. LIFEGUARD: Practical repair of persistent route failures. In SIGCOMM, pages 395--406, August 2012. Google Scholar
Digital Library
- Peyman Kazemian, George Varghese, and Nick McKeown. Header space analysis: Static checking for networks. In NSDI, April 2012. Google Scholar
Digital Library
- Ahmed Khurshid, Xuan Zou, Wenxuan Zhou, Matthew Caesar, and P. Brighten Godfrey. VeriFlow: Verifying network-wide invariants in real time. In NSDI, April 2013. Google Scholar
Digital Library
- S. Knight, H.X. Nguyen, N. Falkner, R. Bowden, and M. Roughan. The internet topology zoo. IEEE Selected Areas in Communications, 29(9):1765--1775, October 2011.Google Scholar
Cross Ref
- Teemu Koponen, Keith Amidon, Peter Balland, Martín Casado, Anupam Chanda, Bryan Fulton, Igor Ganichev, Jesse Gross, Natasha Gude, Paul Ingram, Ethan Jackson, Andrew Lambeth, Romain Lenglet, Shih-Hao Li, Amar Padmanabhan, Justin Pettit, Ben Pfaff, Rajiv Ramanathan, Scott Shenker, Alan Shieh, Jeremy Stribling, Pankaj Thakkar, Dan Wendlandt, Alexander Yip, and Ronghua Zhang. Network virtualization in multi-tenant datacenters. In NSDI, April 2014. Google Scholar
Digital Library
- Teemu Koponen, Martin Casado, Natasha Gude, Jeremy Stribling, Leon Poutievski, Min Zhu, Rajiv Ramanathan, Yuichiro Iwata, Hiroaki Inoue, Takayuki Hama, and Scott Shenker. Onix: A distributed control platform for large-scale production networks. In OSDI, pages 351--364, October 2010. Google Scholar
Digital Library
- Dexter Kozen. A completeness theorem for Kleene algebras and the algebra of regular events. Information and Computation, 110(2):366--390, May 1994. Google Scholar
Digital Library
- Dexter Kozen. Kleene algebra with tests. Transactions on Programming Languages and Systems, 19(3):427--443, May 1997. Google Scholar
Digital Library
- Dexter Kozen. On the coalgebraic theory of Kleene algebra with tests. Technical Report http://hdl.handle.net/1813/10173, Computing and Information Science, Cornell University, March 2008.Google Scholar
- Dexter Kozen and Frederick Smith. Kleene algebra with tests: Completeness and decidability. In CSL, pages 244--259, September 1996. Google Scholar
Digital Library
- Boon Thau Loo, Joseph M. Hellerstein, Ion Stoica, and Raghu Ramakrishnan. Declarative routing: Extensible routing with declarative queries. In SIGCOMM, pages 289--300, August 2005. Google Scholar
Digital Library
- Christopher Monsanto, Nate Foster, Rob Harrison, and David Walker. A compiler and run-time system for network programming languages. In POPL, pages 217--230, January 2012. Google Scholar
Digital Library
- Christopher Monsanto, Joshua Reich, Nate Foster, Jennifer Rexford, and David Walker. Composing software-defined networks. In NSDI, April 2013. Google Scholar
Digital Library
- Tim Nelson, Andrew D. Ferguson, Michael J. G. Scheer, and Shriram Krishnamurthi. Tierless programming and reasoning for software-defined networks. In NSDI, April 2014. Google Scholar
Digital Library
- Amir Pnueli, Michael Siegel, and Eli Singerman. Translation validation. In TACAS, pages 151--166, March 1998. Google Scholar
Digital Library
- Damien Pous. Relational algebra and KAT in Coq, February 2013. Available at http://perso.ens-lyon.fr/damien.pous/ra.Google Scholar
- Damien Pous. Symbolic algorithms for language equivalence and Kleene algebra with tests. In POPL, January 2015. To appear. Google Scholar
Digital Library
- Jurriaan Rot, Marcello M. Bonsangue, and Jan J. M. M. Rutten. Coalgebraic bisimulation-up-to. In SOFSEM, pages 369--381, January 2013.Google Scholar
- Jan J. M. M. Rutten. Automata and coinduction (an exercise in coalgebra). In CONCUR, pages 194--218, September 1998. Google Scholar
Digital Library
- Jan J. M. M. Rutten. Universal coalgebra: a theory of systems. Theoretical Computer Science, 249:3--80, 2000. Google Scholar
Digital Library
- Colin Scott, Andreas Wundsam, Barath Raghavan, Aurojit Panda, Andrew Or, Jefferson Lai, Eugene Huang, Zhi Liu, Ahmed El-Hassany, Sam Whitlock, H.B. Acharya, Kyriakos Zarifis, and Scott Shenker. Troubleshooting blackbox SDN control software with minimal causal sequences. In SIGCOMM, pages 395--406, August 2014. Google Scholar
Digital Library
- Alexandra Silva. Kleene Coalgebra. PhD thesis, University of Nijmegen, 2010.Google Scholar
- Alexandra Silva. Position automata for Kleene algebra with tests. Scientific Annals of Computer Science, 22(2):367--394, 2012.Google Scholar
Cross Ref
- Alexandra Silva, Filippo Bonchi, Marcello M. Bonsangue, and Jan J. M. M. Rutten. Logical Methods in Computer Science, 9(1):9, 2013.Google Scholar
- Andreas Voellmy and Paul Hudak. Nettle: Functional reactive programming of OpenFlow networks. In PADL, pages 235--249, January 2011. Google Scholar
Digital Library
- Andreas Voellmy, Junchang Wang, Y. Richard Yang, Bryan Ford, and Paul Hudak. Maple: Simplifying SDN programming using algorithmic policies. In SIGCOMM, pages 87--98, August 2013. Google Scholar
Digital Library
- Geoffrey G. Xie, Jibin Zhan, David A. Maltz, Hui Zhang, Albert G. Greenberg, Gísli Hjálmtýsson, and Jennifer Rexford. On static reachability analysis of IP networks. In INFOCOM, March 2005.Google Scholar
Cross Ref
- Hongyi Zeng, Peyman Kazemian, George Varghese, and Nick McKeown. Automatic test packet generation. In CoNEXT, pages 241--252, December 2012. Google Scholar
Digital Library
Index Terms
A Coalgebraic Decision Procedure for NetKAT
Recommendations
A Coalgebraic Decision Procedure for NetKAT
POPL '15: Proceedings of the 42nd Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming LanguagesNetKAT is a domain-specific language and logic for specifying and verifying network packet-processing functions. It consists of Kleene algebra with tests (KAT) augmented with primitives for testing and modifying packet headers and encoding network ...
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 ...
A coalgebraic approach to Kleene algebra with tests
Selected papers of CMCS'03Kleene algebra with tests is an extension of Kleene algebra, the algebra of regular expressions, which can be used to reason about programs. We develop a coalgebraic theory of Kleene algebra with Tests, along the lines of the coalgebraic theory of ...







Comments