P4R-Type: A Verified API for P4 Control Plane Programs
summary
Library implements a verified Scala API that encodes P4Info as Scala types and statically rejects mismatches between P4 tables, allowed actions, and action parameters, overlaying the weakly typed P4Runtime. A formal FP4R calculus and typing rules prove that well-typed clients cannot issue invalid P4Runtime operations and show progress/preservation for whole networks. Implementation in Scala 3 comes with a type generator, prevents invalid P4Runtime operations, and is evaluated on three case studies with reusable artifacts.
AI-written summary · about
chapters (10)
- 0:00P4R-Type intro and verified APIs
- 1:22Verifying P4 config updates
- 2:48P4 Runtime API limits
- 5:21P4R-Type solution
- 6:24Live P4R-Type demo in Scala
- 7:28FP4R formal language
- 10:18FP4R semantics and type soundness
- 12:26Related work and contributions
- 13:06Future directions and conclusion
- 14:29Q&A
related talks
27mPetr4: Formal Foundations for P4 Data Planes
22mDependently-Typed Data Plane Programming
15mOn Temporal Verification of Stateful P4 Programs
18mP4Cub: A Little Language for Big Routers
19mHOL4P4: mechanized small-step semantics for P4
25mP4-SpecTec: A Language Mechanization Framework for P4
22mP4-Based Automated Reasoning (P4-BAR) using Symbolic Execution
15mWhen P4 Meets Run-to-completion Architecture
