Skip to content

LDWG Brainstorming, August 17, 2020

Nate Foster edited this page Aug 26, 2020 · 5 revisions
Clone this wiki locally

This was a session composed of 4 short presentations with ideas about future directions of the P4 language. A video recording is available at

P4++, by Leonid Ryzhyk, Mihai Budiu, Ben Pfaff (VMware Research)

This is a proposal to combine P4 with a declarative Datalog-based programming language for programming the control-plane. The combined language would have a unified type system and allow two-way communication between the dataplane and the control-plane using tables. The central operation of the control-plane is incremental view maintenance.

Presentation slides.

Constraints for P4Runtime APIs: Stefan Heule, Steffen Smolka, Konstantin Weitz (Google)

This proposal uses annotations on table actions to constrain the kinds of actions that can be inserted at runtime. Currently the annotations are written as strings that contain P4-like expressions.

Presentation slides

Extending P4 Parsers: Hemant Singh, Alex Bernstein (MNK Consulting)

This is a proposal using object-oriented techniques to allow parsers to be extended by "overriding" certain states and data structures. This would be a pure compile-time transformation (no dynamic dispatch needed). This has been tested in a prototype that does source-to-source translation.

Presentation slides

Tagged unions: Andy Fingerhut (Barefoot)

The proposal has two parts:

  • generalize switch statements to also operate on scalar values (bit, enum)
  • create a new type of safe tagged union which can be manipulated using switch statements.

Notes for this proposal are available in the following google docs document.