Runtime Verification for Programmable Switches

Apoorv Shukla, Kevin Hudemann, Zsolt Vagi, Lily Hugerich, Georgios Smaragdakis, Artur Hecker, Stefan Schmid, Anja Feldmann

Research output: Contribution to journalArticleScientificpeer-review

32 Downloads (Pure)

Abstract

We introduce a runtime verification framework for programmable switches that complements static analysis. To evaluate our approach, we design and develop P6, a runtime verification system that automatically detects, localizes, and patches 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, namely, 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, e.g., switch.p4 without triggering any regressions.

Original languageEnglish
Pages (from-to)1822-1837
Number of pages16
JournalIEEE/ACM Transactions on Networking
Volume31
Issue number4
DOIs
Publication statusPublished - 2023

Bibliographical note

Green Open Access added to TU Delft Institutional Repository ‘You share, we take care!’ – Taverne project https://www.openaccess.nl/en/you-share-we-take-care
Otherwise as indicated in the copyright section: the publisher is the copyright holder of this work and the author uses the Dutch legislation to make this work public.

Keywords

  • P4
  • Programmable networks
  • verification

Fingerprint

Dive into the research topics of 'Runtime Verification for Programmable Switches'. Together they form a unique fingerprint.

Cite this