P4 Modularity – recent developments

Around May 2018, at the Stanford P4 Workshop, Mario Baldi and Cisco asked for P4 to be more modular. After the workshop, a sub-group was formed to tackle the problem. After three months, the sub-group activity stopped due to lack of proposals and maybe interest waned.

Fast-forward to summer of 2019, when we found time to look at the problem and solved most of it. We developed a prototype and showed how vendor and customer P4-16 programs are merged in the field. Our prototype (P4-Ansible) was released for trials around July 2019.

More fast-forward to June 2020 and the first P4 Brainstorming meeting. Vladimir Gurevich from Barefoot Academy asked for P4 code reuse and showed several use cases in his presentation. See https://github.com/p4lang/p4-spec/wiki/LDWG-Brainstorming,-June-22,-2020 and presentation 4. Seeing Vladimir’s ask, we saw code reuse as another application of our P4-Ansible.

At the second P4 Brainstorming meeting in August 2020, we presented the solution for P4 code reuse. See the third presentation at the link below.

https://github.com/p4lang/p4-spec/wiki/LDWG-Brainstorming,-August-17,-2020

Now that the modular P4 design is open to the public, please provide any screw case(s) for P4 parser code reuse. I think extending P4 Control is well covered in our design.

Leave a Reply

Close Menu