kirancodes.me
To Proof Maintenance & Beyond!

P4b: A Translator from P4 Programs to Boogie

Chong Ye, Fei He

Abstract

P4 is a mainstream language for Software Defined Network (SDN) data planes. P4 is designed to achieve target-independent, protocol-independent, and configurable SDN data planes. However, logic errors may occur in P4 programs, resulting in improper packet processing, which may cause serious network errors and information disclosure. In addition, P4 programs contain many branches and thus are more challenging to ensure correctness. Formal verification is a powerful technique to verify the correctness of P4 programs. Unfortunately, current P4 verification studies lack basic toolchains, and their intermediate languages are not expressive enough. We present P4b, an efficient translator from P4 programs to Boogie, a verification-oriented intermediate representation. We provide formal translation rules to ensure the correctness of the translation process. The translated results can be verified by the toolchain of Boogie. We conducted experiments on 170 P4 programs collected from GitHub, and the experimental results demonstrate that our translator is useful and practical. The screencast is available at https://youtu.be/8_rEj3QFQeM. The tool is available at https://github.com/Invincibleyc/P4B-Translator.

BibTeX
@inproceedings{Ye-He:FSE23,
  author    = {Chong Ye and
               Fei He},
  title     = {{P4b:} A Translator from {P4} Programs to Boogie},
  booktitle = {{ESEC/SIGSOFT} {FSE}},
  pages     = {2172--2176},
  publisher = {{ACM}},
  year      = {2023},
}

Related papers