P4Runtime 1.3.0 section 5.2 Role Config says:
The
role.configfield in theMasterArbitrationUpdatemessage sent by the controller describes the role configuration, i.e. which operations are in the scope of a given role. In particular, the definition of a role may include the following:
- A list of P4 entities for which the controller may issue
Writeupdates and receive notification messages (e.g.DigestListandIdleTimeoutNotification).- Whether the controller is able to receive
PacketInmessages, along with a filtering mechanism based on the values of thePacketMetadatafields to select whichPacketInmessages should be sent to the controller.- Whether the controller is able to send
PacketOutmessages, along with a filtering mechanism based on the values of thePacketMetadatafields to select whichPacketOutmessages are allowed to be sent by the controller.An unset
role.configimplies “full pipeline access” (similar to the default role explained above). In order to support different role definition schemes,role.configis defined as anAnyProtobuf message [31]. Such schemes are out-of-scope of this document. When partitioning of the control plane is desired, the P4Runtime client(s) and server need to agree on a role definition scheme in an out-of-band fashion.
Have any role definition schemas been defined? I’m writing a P4Runtime server implementation.