Skip to main content

Advertisement

SpringerLink
Book cover

European Symposium on Programming

ESOP 2022: Programming Languages and Systems pp 575–602Cite as

  1. Home
  2. Programming Languages and Systems
  3. Conference paper
Concurrent NetKAT

Concurrent NetKAT

Modeling and analyzing stateful, concurrent networks

  • Jana Wagemaker  ORCID: orcid.org/0000-0002-8616-39059,
  • Nate Foster  ORCID: orcid.org/0000-0002-6557-684X10,
  • Tobias Kappé  ORCID: orcid.org/0000-0002-6068-880X11,
  • Dexter Kozen  ORCID: orcid.org/0000-0002-8007-472510,
  • Jurriaan Rot9 &
  • …
  • Alexandra Silva  ORCID: orcid.org/0000-0001-5014-978410 
  • Conference paper
  • Open Access
  • First Online: 29 March 2022
  • 2047 Accesses

  • 2 Citations

Part of the Lecture Notes in Computer Science book series (LNCS,volume 13240)

Abstract

We introduce Concurrent NetKAT (CNetKAT), an extension of NetKAT with operators for specifying and reasoning about concurrency in scenarios where multiple packets interact through state. We provide a model of the language based on partially-ordered multisets (pomsets), which are a well-established mathematical structure for defining the denotational semantics of concurrent languages. We provide a sound and complete axiomatization of this model, and we illustrate the use of CNetKAT through examples. More generally, CNetKAT can be understood as an algebraic framework for reasoning about programs with both local state (in packets) and global state (in a global store).

Keywords

  • Concurrent Kleene algebra
  • NetKAT
  • completeness
  • concurrency

Download conference paper PDF

References

  1. Alglave, J., Maranget, L., Sarkar, S., Sewell, P.: Litmus: Running tests against hardware. In: TACAS. pp. 41–44 (2011). https://doi.org/10.1007/978-3-642-19835-9_5

  2. Alpernas, K., Manevich, R., Panda, A., Sagiv, M., Shenker, S., Shoham, S., Velner, Y.: Abstract interpretation of stateful networks. In: Static Analysis. pp. 86–106. Springer International Publishing (2018), https://doi.org/10.1007/978-3-319-99725-4_8

  3. Anderson, C.J., Foster, N., Guha, A., Jeannin, J., Kozen, D., Schlesinger, C., Walker, D.: NetKAT: semantic foundations for networks. In: POPL. pp. 113–126 (2014). https://doi.org/10.1145/2535838.2535862

  4. Bosshart, P., Daly, D., Gibb, G., Izzard, M., McKeown, N., Rexford, J., Schlesinger, C., Talayco, D., Vahdat, A., Varghese, G., Walker, D.: P4: Programming protocol-independent packet processors. SIGCOMM Comput. Commun. Rev. 44(3), 87–95 (jul 2014). https://doi.org/10.1145/2656877.2656890

  5. Brunet, P., Pous, D.: Petri automata. Logical Methods in Computer Science 13 (02 2017). https://doi.org/10.23638/LMCS-13(3:33)2017

  6. Brunet, P., Pous, D., Struth, G.: On decidability of concurrent Kleene algebra. In: CONCUR (2017), https://doi.org/10.4230/LIPIcs.CONCUR.2017.28

  7. Caltais, G., Hojjat, H., Mousavi, M.R., Tunc, H.C.: DyNetKAT: An algebra of dynamic networks (2021), https://arxiv.org/abs/2102.10035

  8. Conway, J.H.: Regular Algebra and Finite Machines. Chapman and Hall, Ltd., London (1971)

    Google Scholar 

  9. Dang, H.T., Bressana, P., Wang, H., Lee, K.S., Zilberman, N., Weatherspoon, H., Canini, M., Pedone, F., Soulé, R.: P4xos: Consensus as a network service. IEEE/ACM Trans. Netw. 28(4), 1726–1738 (2020). https://doi.org/10.1109/TNET.2020.2992106

  10. Foster, N., Kozen, D., Milano, M., Silva, A., Thompson, L.: A coalgebraic decision procedure for netkat. In: POPL. pp. 343–355 (2015). https://doi.org/10.1145/2676726.2677011

  11. Gischer, J.L.: The equational theory of pomsets. Theor. Comput. Sci. 61, 199–224 (1988). https://doi.org/10.1016/0304-3975(88)90124-7

  12. Grabowski, J.: On partial languages. Fundam. Inform. 4(2),  427 (1981)

    Google Scholar 

  13. Hoare, T., Möller, B., Struth, G., Wehrman, I.: Concurrent Kleene algebra. In: CONCUR. pp. 399–414 (2009). https://doi.org/10.1007/978-3-642-04081-8_27

  14. Jipsen, P., Moshier, M.A.: Concurrent Kleene algebra with tests and branching automata. J. Log. Algebr. Meth. Program. 85(4), 637–652 (2016). https://doi.org/10.1016/j.jlamp.2015.12.005

  15. Kappé, T., Brunet, P., Rot, J., Silva, A., Wagemaker, J., Zanasi, F.: Kleene algebra with observations. In: CONCUR. pp. 41:1–41:16 (2019). https://doi.org/10.4230/LIPIcs.CONCUR.2019.41

  16. Kappé, T., Brunet, P., Silva, A., Wagemaker, J., Zanasi, F.: Concurrent Kleene algebra with observations: From hypotheses to completeness. In: FOSSACS. pp. 381–400 (2020). https://doi.org/10.1007/978-3-030-45231-5_20

  17. Kappé, T., Brunet, P., Silva, A., Zanasi, F.: Concurrent Kleene algebra: Free model and completeness. In: ESOP. pp. 856–882 (2018). https://doi.org/10.1007/978-3-319-89884-1_30

  18. Kazemian, P., Varghese, G., McKeown, N.: Header space analysis: Static checking for networks. In: NSDI. pp. 113–126 (2012)

    Google Scholar 

  19. Khurshid, A., Zou, X., Zhou, W., Caesar, M., Godfrey, P.B.: VeriFlow: Verifying network-wide invariants in real time. In: NSDI. pp. 15–29 (2013)

    Google Scholar 

  20. Kozen, D.: A completeness theorem for Kleene algebras and the algebra of regular events. Inf. Comput. 110(2), 366–390 (1994). https://doi.org/10.1006/inco.1994.1037

  21. Kozen, D.: Kleene algebra with tests and commutativity conditions. In: TACAS. pp. 14–33 (1996). https://doi.org/10.1007/3-540-61042-1_35

  22. Kozen, D., Tseng, W.D.: The Böhm-Jacopini theorem is false, propositionally. In: MPC. pp. 177–192 (2008). https://doi.org/10.1007/978-3-540-70594-9_11

  23. Krob, D.: A complete system of B-rational identities. In: ICALP. pp. 60–73 (1990). https://doi.org/10.1007/BFb0032022

  24. Lamport, L.: How to make a correct multiprocess program execute correctly on a multiprocessor. IEEE Trans. Computers 46(7), 779–782 (1997). https://doi.org/10.1109/12.599898

  25. Laurence, M.R., Struth, G.: Completeness theorems for bi-Kleene algebras and series-parallel rational pomset languages. In: RAMiCS. pp. 65–82 (2014). https://doi.org/10.1007/978-3-319-06251-8_5

  26. Laurence, M.R., Struth, G.: Completeness theorems for pomset languages and concurrent Kleene algebras (2017), https://arxiv.org/abs/1705.05896

  27. Liu, J., Hallahan, W., Schlesinger, C., Sharif, M., Lee, J., Soulé, R., Wang, H., Caşcaval, C., McKeown, N., Foster, N.: p4v: Practical verification for programmable data planes. In: ACM SIGCOMM. pp. 490–503 (2018). https://doi.org/10.1145/3230543.3230582

  28. Lodaya, K., Weil, P.: Series-parallel languages and the bounded-width property. Theoretical Computer Science 237(1), 347–380 (2000). https://doi.org/10.1016/S0304-3975(00)00031-1

  29. Long, X.: Primitives for Match-Action in Theory and Practice. Ph.D. thesis, Cornell University (2021)

    Google Scholar 

  30. Mai, H., Khurshid, A., Agarwal, R., Caesar, M., Godfrey, P.B., King, S.T.: Debugging the data plane with Anteater. In: SIGCOMM. pp. 290–301 (2011). https://doi.org/10.1145/2018436.2018470

  31. McClurg, J., Hojjat, H., Foster, N., Cerný, P.: Event-driven network programming. In: PLDI. pp. 369–385 (2016). https://doi.org/10.1145/2908080.2908097

  32. Panda, A., Lahav, O., Argyraki, K., Sagiv, M., Shenker, S.: Verifying reachability in networks with mutable datapaths. In: NSDI. pp. 699–718. USENIX Association, Boston, MA (Mar 2017)

    Google Scholar 

  33. Reynolds, J.C.: Separation Logic: A Logic for Shared Mutable Data Structures. In: LICS (July 2002). https://doi.org/10.1109/LICS.2002.1029817

  34. Salomaa, A.: Two complete axiom systems for the algebra of regular events. J. ACM 13(1), 158–169 (1966). https://doi.org/10.1145/321312.321326

  35. Schlesinger, C., Greenberg, M., Walker, D.: Concurrent netcore: From policies to pipelines. In: ICFP. p. 11–24 (Aug 2014). https://doi.org/10.1145/2628136.2628157

  36. Smolka, S., Foster, N., Hsu, J., Kappé, T., Kozen, D., Silva, A.: Guarded Kleene algebra with tests: Verification of uninterpreted programs in nearly linear time. In: POPL (2020). https://doi.org/10.1145/3371129

  37. Wagemaker, J., Brunet, P., Docherty, S., Kappé, T., Rot, J., Silva, A.: Partially observable concurrent Kleene algebra. In: CONCUR. pp. 20:1–20:22 (2020). https://doi.org/10.4230/LIPIcs.CONCUR.2020.20

  38. Wagemaker, J., Foster, N., Kappé, T., Kozen, D., Rot, J., Silva, A.: Concurrent NetKAT: modeling and analyzing stateful, concurrent networks (2022), https://arxiv.org/abs/2201.10485, full version of this article

  39. Yang, H., Lam, S.S.: Real-time verification of network properties using atomic predicates. In: IEEE ICNP (2013), https://doi.org/10.1109/ICNP.2013.6733614

Download references

Author information

Authors and Affiliations

  1. Radboud University, Nijmegen, The Netherlands

    Jana Wagemaker & Jurriaan Rot

  2. Cornell University, Ithaca, New York, USA

    Nate Foster, Dexter Kozen & Alexandra Silva

  3. ILLC, University of Amsterdam, Amsterdam, The Netherlands

    Tobias Kappé

Authors
  1. Jana Wagemaker
    View author publications

    You can also search for this author in PubMed Google Scholar

  2. Nate Foster
    View author publications

    You can also search for this author in PubMed Google Scholar

  3. Tobias Kappé
    View author publications

    You can also search for this author in PubMed Google Scholar

  4. Dexter Kozen
    View author publications

    You can also search for this author in PubMed Google Scholar

  5. Jurriaan Rot
    View author publications

    You can also search for this author in PubMed Google Scholar

  6. Alexandra Silva
    View author publications

    You can also search for this author in PubMed Google Scholar

Corresponding author

Correspondence to Jana Wagemaker .

Editor information

Editors and Affiliations

  1. National University of Singapore, Singapore, Singapore

    Ilya Sergey

Rights and permissions

Open Access This chapter is licensed under the terms of the Creative Commons Attribution 4.0 International License (http://creativecommons.org/licenses/by/4.0/), which permits use, sharing, adaptation, distribution and reproduction in any medium or format, as long as you give appropriate credit to the original author(s) and the source, provide a link to the Creative Commons license and indicate if changes were made.

The images or other third party material in this chapter are included in the chapter's Creative Commons license, unless indicated otherwise in a credit line to the material. If material is not included in the chapter's Creative Commons license and your intended use is not permitted by statutory regulation or exceeds the permitted use, you will need to obtain permission directly from the copyright holder.

Reprints and Permissions

Copyright information

© 2022 The Author(s)

About this paper

Verify currency and authenticity via CrossMark

Cite this paper

Wagemaker, J., Foster, N., Kappé, T., Kozen, D., Rot, J., Silva, A. (2022). Concurrent NetKAT. In: Sergey, I. (eds) Programming Languages and Systems. ESOP 2022. Lecture Notes in Computer Science, vol 13240. Springer, Cham. https://doi.org/10.1007/978-3-030-99336-8_21

Download citation

  • .RIS
  • .ENW
  • .BIB
  • DOI: https://doi.org/10.1007/978-3-030-99336-8_21

  • Published: 29 March 2022

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-030-99335-1

  • Online ISBN: 978-3-030-99336-8

  • eBook Packages: Computer ScienceComputer Science (R0)

Share this paper

Anyone you share the following link with will be able to read this content:

Sorry, a shareable link is not currently available for this article.

Provided by the Springer Nature SharedIt content-sharing initiative

  • The European Joint Conferences on Theory and Practice of Software.

    Published in cooperation with

    http://www.etaps.org/

Over 10 million scientific documents at your fingertips

Switch Edition
  • Academic Edition
  • Corporate Edition
  • Home
  • Impressum
  • Legal information
  • Privacy statement
  • California Privacy Statement
  • How we use cookies
  • Manage cookies/Do not sell my data
  • Accessibility
  • FAQ
  • Contact us
  • Affiliate program

Not affiliated

Springer Nature

© 2023 Springer Nature Switzerland AG. Part of Springer Nature.