Octopus: Practical Equivalence Checking of P4 Packet Parsers
Jort van Leenen, Tobias Kappé
Abstract
P4 is a domain-specific language for programming protocol-independent packet processors, where packet parsers describe how incoming bit-streams are structured into headers and fields. Building on work by Doenges et al. (2022), we present Octopus, a tool that translates P4 packet parsers into automata and then attempts to (symbolically) check their equivalence. Octopus produces evidence, either in the form of a bisimulation demonstrating equivalence, or a counterexample bit-stream witnessing a behavioral difference between the two parsers. In contrast with earlier work, our tool can check equivalence between non-trivial parsers within minutes, on consumer hardware. We report on the tool's implementation and evaluate its usability in networking contexts.
Create a lesson
Related papers
MightyPPL : Towards model checking MTL
Hsi-Ming Ho, Shankara Narayanan Krishna, Khushraj Madnani et al.
Counting on Nowhere Dense Classes
Steffen van Bergerem, Nicole Schweikardt
Towards a Proof-Theoretic Analysis of Incorrect/Incomplete Proofs
Matthias Baaz, Mariami Gamsakhurdia
Descriptive Complexity in Lean: Completeness by First-Order Reductions
Pierre Senellart, Anton Gnatenko
Predictable Modelling and Analysis of Software-defined Vehicle Implementations
Pavlo Tokariev, Yosri Ayari, Julien Deantoni
Refining Timing Uncertainty from Logical Time Specification to Operation
Pavlo Tokariev, Julien Deantoni