P4Runtime 1.3.0 section 5.2 Role Config says:
The
role.config
field in theMasterArbitrationUpdate
message 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
Write
updates and receive notification messages (e.g.DigestList
andIdleTimeoutNotification
).- Whether the controller is able to receive
PacketIn
messages, along with a filtering mechanism based on the values of thePacketMetadata
fields to select whichPacketIn
messages should be sent to the controller.- Whether the controller is able to send
PacketOut
messages, along with a filtering mechanism based on the values of thePacketMetadata
fields to select whichPacketOut
messages are allowed to be sent by the controller.An unset
role.config
implies “full pipeline access” (similar to the default role explained above). In order to support different role definition schemes,role.config
is defined as anAny
Protobuf 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.