Petr4: formal foundations for p4 data planes
Ryan Doenges, Mina Tahmasbi Arashloo, Santiago Bautista, Alexander Chang, Newton Ni, Samwise Parkinson, Rudy Peterson, Alaia Solko-Breslin, Amanda Xu, Nate Foster
Abstract
P4 is a domain-specific language for programming and specifying packet-processing systems. It is based on an elegant design with high-level abstractions like parsers and match-action pipelines that can be compiled to efficient implementations in software or hardware. Unfortunately, like many industrial languages, P4 has developed without a formal foundation. The P4 Language Specification is a 160-page document with a mixture of informal prose, graphical diagrams, and pseudocode. The P4 reference implementation is a complex system, running to over 40KLoC of C++ code. Clearly neither of these artifacts is suitable for formal reasoning.
This paper presents a new framework, called Petr4, that puts P4 on a solid foundation. Petr4 consists of a clean-slate definitional interpreter and a calculus that models the semantics of a core fragment of P4. Throughout the specification, some aspects of program behavior are left up to targets. Our interpreter is parameterized over a target interface which collects all the target-specific behavior in the specification in a single interface.
The specification makes ad-hoc restrictions on the nesting of certain program constructs in order to simplify compilation and avoid the possibility of nonterminating programs. We captured the latter intention in our core calculus by stratifying its type system, rather than imposing unnatural syntactic restrictions, and we proved that all programs in this core calculus terminate.
We have validated the interpreter against a suite of over 750 tests from the P4 reference implementation, exercising our target interface with tests for different targets. We established termination for the core calculus by induction on the stratified type system. While developing Petr4, we reported dozens of bugs in the language specification and the reference implementation, many of which have been fixed.
Ask about this paper
Your agent reads all of it.
Lune indexed this paper to the last equation, along with the top-tier papers that cite it. Ask a question and the answer quotes them.
Your agent calls
Luneget_paper_fulltext
Free to start. No credit card required.
Terminal
Install the CLIlune papers fulltext 751c2f62-3753-4c57-a959-15659aeeea23Cited by top-tier papers10
- Gauntlet: Finding Bugs in Compilers for Programmable Packet ProcessingFabian Ruffy, Tao Wang, Anirudh SivaramanOSDI 2020 · 34 citations
- P4Testgen: An Extensible Test Oracle For P4-16Fabian Ruffy, Jed Liu, Prathima Kotikalapudi, Vojtech Havel et al.SIGCOMM 2023 · 20 citations
- Semantics and Scheduling for Machine Knitting CompilersJenny Lin, Vidya Narayanan, Yuka Ikarashi, Jonathan Ragan-Kelley et al.SIGGRAPH 2023 · 16 citations
- Dependently-typed data plane programmingMatthias Eichholz, Eric Hayden Campbell, Matthias Krebs, Nate Foster et al.POPL 2022 · 15 citations
- P4BID: information flow control in p4Karuna Grewal, Loris D'Antoni, Justin HsuPLDI 2022 · 5 citations
Builds on3
- Gauntlet: Finding Bugs in Compilers for Programmable Packet ProcessingFabian Ruffy, Tao Wang, Anirudh SivaramanOSDI 2020 · 34 citations
- Executable formal semantics for the POSIX shellMichael Greenberg, Austin J. BlattPOPL 2020 · 21 citations
- Proof-Carrying Network CodeChristian Skalka, John H. Ring, David Darais, Minseok Kwon et al.CCS 2019 · 6 citations
Related papers
- Composing Dataplane Programs with μP4Hardik Soni, Myriana Rifai, Praveen Kumar, Ryan Doenges et al.SIGCOMM 2020 · 54 citations
- Sequence Abstractions for Flexible, Line-Rate Network MonitoringAndrew Johnson, Ryan Beckett, Xiaoqi Chen, Ratul Mahajan et al.NSDI 2024 · 4 citations
- P4-SpecTec: Integrating a Language Mechanization Framework into the Real-World P4 SpecificationJaehyun Lee, Seokhun Jeong, Sehyuk Ahn, Haechan Kwon et al.OOPSLA 2026
- P4Inv: Inferring Packet Invariants for Verification of Stateful P4 ProgramsDelong Zhang, Chong Ye, Fei HeINFOCOM 2024 · 3 citations
- Hydra: Effective Runtime Network VerificationSundararajan Renganathan, Benny Rubin, Hyojoon Kim, Pier Luigi Ventre et al.SIGCOMM 2023 · 11 citations
