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.
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.