LDWG Brainstorming, August 17, 2020
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 https://vod.video.cornell.edu/media/P4+Language+Design+Working+Group+-+Brainstorming/1_l8z9d16x.
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.
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.
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.
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.