Closed CommitThis closed 3 years ago
Links: P4 Runtime: https://github.com/p4lang/p4runtime gNOI: https://github.com/openconfig/gnoi gNMI: https://github.com/openconfig/gnmi
And there is an unofficial Google project that has reference implementations of the various services, much in the same way Stratum likely has: https://github.com/google/gnxi
This was a "lets think about it" ticket, and since things we're pretty much looking at Stratum now, I'm closing this.
Stratum (the ONF operating system-in-a-container) exposes several APIs for management. Some of which may be of interest.
If we were running Stratum on Mion directly, having separate APIs for the following becomes a moot point, and I think further work is required before we even get to that stage, especially at this stage since my understanding is we would have to build Stratum from source with every image to work with
runc
. However, if we wanted to give customers the choice of not using Stratum, we could include our own versions of these APIs.I don't think the majority of these are needed, but it would be worth consideration post 1.0 release.
In any case, I think the easiest route would be to go down the Stratum path, but I think we would need to chat with ONF regarding how the integration currently works with existing switches.
The APIs as they are at the moment follow:
P4Runtime
This controls the tables on the switch ASIC for matching packets and selecting actions for them. This sits on top of the whatever P4 management software is running on the switch. This may already be included with Barefoot. More research is required to understand this.
gNOI
This is the gRPC Network Operations Interface. This includes the following:
gNMI
gRPC Network Management Service. Basically a service for steaming telemetry and counters, with associated paths that can be subscribed to. I believe this is the part of Stratum that using the ONLP platform code.