Affiliation:
1. KTH Royal Institute of Technology, Stockholm, Sweden
2. KTH Royal Institute of Technology, Stockholm, Sweden / Saab, Järfälla, Sweden
Abstract
We present the first semantics of the network data plane programming language P4 able to adequately capture all key features of P4
16
, the most recent version of P4, including external functions (externs) and concurrency. These features are intimately related since, in P4, extern invocations are the only points at which one execution thread can affect another. Reflecting P4’s lack of a general-purpose memory and the presence of multithreading the semantics is given in small-step style and eschews the use of a heap. In addition to the P4 language itself, we provide an architectural level semantics, which allows the composition of P4-programmed blocks, models end-to-end packet processing, and can take into account features such as arbitration and packet recirculation. A corresponding type system is provided with attendant progress, preservation, and type-soundness theorems. Semantics, type system, and meta-theory are formalized in the HOL4 theorem prover. From this formalization, we derive a HOL4 executable semantics that supports verified execution of programs with partially symbolic packets able to validate simple end-to-end program properties.
Publisher
Association for Computing Machinery (ACM)
Reference29 articles.
1. Anoud Alshnakat Didrik Lundberg Roberto Guanciale Mads Dam Karl Palmskog and Arve Gengelbach. 2024. HOL4P4. https://doi.org/10.5281/zenodo.10796440 10.5281/zenodo.10796440
2. Anoud Alshnakat Didrik Lundberg Roberto Guanciale Mads Dam Karl Palmskog and Arve Gengelbach. 2024. HOL4P4. https://github.com/kth-step/HOL4P4/releases/tag/OOPSLA2024
3. P4
4. The P4 Language Consortium. 2023. P4subscript 16 Language Specification. https://p4.org/p4-spec/docs/P4-16-v1.2.4.html
5. Towards the formalization of SPARK 2014 semantics with explicit run-time checks using coq