p4-api@lists.p4.org

P4-API: "Discussion list for P4 API Working Group

View all threads

Intro and proposal

DN
Donald Newton
Thu, Jun 24, 2021 3:38 PM

Hi,
I know some of you but not all, I am Don Newton and I joined Brian O'Connor at ONF specifically to work on the PINS project last summer.

There has been some talk about building a platform agnostic P4Runtime service library suitable for embedding in any programmable switch stack. Over the last couple weeks I have extracted such a library from the P4Runtime implementation we are using within the PINS project. We have done some basic testing with it in the ONF lab and it works well. To date we have focused on L3 Routing both single and multi path.
Please See https://github.com/donNewtonAlpha/p4rt_standalone (https://link.getmailspring.com/link/84A386EE-F56E-4BE8-912F-1005C2EFDA39@getmailspring.com/0?redirect=https%3A%2F%2Fgithub.com%2FdonNewtonAlpha%2Fp4rt_standalone&recipient=cDQtYXBpQGxpc3RzLnA0Lm9yZw%3D%3D)
In our minds the best outcome would be for P4.org (https://link.getmailspring.com/link/84A386EE-F56E-4BE8-912F-1005C2EFDA39@getmailspring.com/1?redirect=P4.org&recipient=cDQtYXBpQGxpc3RzLnA0Lm9yZw%3D%3D) to host and curate this library for many reasons which include:
1: It is more likely to stay faithful to the spec.
2: Provides a easy feedback mechanism for evolving the spec to resolve ambiguities and feature enhancements
3: Lower the barrier of entry for (soft)switch stack implementations
4: Attract more vendors to the technology
etc.

Legally the library is a derivation of work authored by Google. We have a verbal understanding of the benefits above and agreement to allow publishing but are still waiting on the go - ahead. Feel free to locally clone and build but it shouldn't be publicly forked yet. We do believe approval is imminent.
Future:
1: I want to build a "dummy" switch that exposes the P4Runtime interface that would implement the logic of a switch implementation
2: I wrote a Golang P4Runtime client that allows basic testing of all features except packet-io. I plan to extract a library and publish that for use with new Sdn Controllers

I plan to start attending the monthly api meetings beginning next Friday and would be happy to discuss this proposal then, time permitting.
I will be on vacation next Monday thru Thursday so likely won't respond timely to mailing list questions.
Thanks,
Don

Hi, I know some of you but not all, I am Don Newton and I joined Brian O'Connor at ONF specifically to work on the PINS project last summer. There has been some talk about building a platform agnostic P4Runtime service library suitable for embedding in any programmable switch stack. Over the last couple weeks I have extracted such a library from the P4Runtime implementation we are using within the PINS project. We have done some basic testing with it in the ONF lab and it works well. To date we have focused on L3 Routing both single and multi path. Please See https://github.com/donNewtonAlpha/p4rt_standalone (https://link.getmailspring.com/link/84A386EE-F56E-4BE8-912F-1005C2EFDA39@getmailspring.com/0?redirect=https%3A%2F%2Fgithub.com%2FdonNewtonAlpha%2Fp4rt_standalone&recipient=cDQtYXBpQGxpc3RzLnA0Lm9yZw%3D%3D) In our minds the best outcome would be for P4.org (https://link.getmailspring.com/link/84A386EE-F56E-4BE8-912F-1005C2EFDA39@getmailspring.com/1?redirect=P4.org&recipient=cDQtYXBpQGxpc3RzLnA0Lm9yZw%3D%3D) to host and curate this library for many reasons which include: 1: It is more likely to stay faithful to the spec. 2: Provides a easy feedback mechanism for evolving the spec to resolve ambiguities and feature enhancements 3: Lower the barrier of entry for (soft)switch stack implementations 4: Attract more vendors to the technology etc. Legally the library is a derivation of work authored by Google. We have a verbal understanding of the benefits above and agreement to allow publishing but are still waiting on the go - ahead. Feel free to locally clone and build but it shouldn't be publicly forked yet. We do believe approval is imminent. Future: 1: I want to build a "dummy" switch that exposes the P4Runtime interface that would implement the logic of a switch implementation 2: I wrote a Golang P4Runtime client that allows basic testing of all features except packet-io. I plan to extract a library and publish that for use with new Sdn Controllers I plan to start attending the monthly api meetings beginning next Friday and would be happy to discuss this proposal then, time permitting. I will be on vacation next Monday thru Thursday so likely won't respond timely to mailing list questions. Thanks, Don