Fix with P6

Verifying programmable switches at runtime

Conference Paper (2021)
Author(s)

Apoorv Shukla (Huawei European Research Center)

Kevin Hudemann (SAP AG)

Zsolt Vagi (Swisscom)

Lily Hugerich (Technical University of Berlin)

Georgios Smaragdakis (Technical University of Berlin, MPI-Informatics)

Artur Hecker (Huawei European Research Center)

Stefan Schmid (University of Vienna)

Anja Feldmann (MPI-Informatics)

Affiliation
External organisation
DOI related publication
https://doi.org/10.1109/INFOCOM42981.2021.9488772 Final published version
More Info
expand_more
Publication Year
2021
Language
English
Affiliation
External organisation
Article number
9488772
ISBN (electronic)
9780738112817
Event
40th IEEE Conference on Computer Communications, INFOCOM 2021 (2021-05-10 - 2021-05-13), Vancouver, Canada
Downloads counter
215

Abstract

We design, develop, and evaluate P6, an automated approach to (a) detect, (b) localize, and (c) patch software bugs in P4 programs. Bugs are reported via a violation of pre-specified expected behavior that is captured by P6. P6 is based on machine learning-guided fuzzing that tests P4 switch non-intrusively, i.e., without modifying the P4 program for detecting runtime bugs. This enables an automated and real-time localization and patching of bugs. We used a P6 prototype to detect and patch existing bugs in various publicly available P4 application programs deployed on two different switch platforms: behavioral model (bmv2) and Tofino. Our evaluation shows that P6 significantly outperforms bug detection baselines while generating fewer packets and patches bugs in large P4 programs such as switch.p4 without triggering any regressions.