package p4.v1

Mouse Melon logoGet desktop application:
View/edit binary Protocol Buffers messages

service P4Runtime

p4runtime.proto:22

message Action

p4runtime.proto:269

Used in: ActionProfileAction, ActionProfileActionSet, ActionProfileMember, TableAction

message Action.Param

p4runtime.proto:271

Used in: Action

message ActionProfileAction

p4runtime.proto:312

Used in: ActionProfileActionSet

message ActionProfileActionSet

p4runtime.proto:278

Used in: TableAction

enum ActionProfileActionSet.ActionSelectionMode

p4runtime.proto:288

Added in v1.5.0.

Used in: ActionProfileActionSet

enum ActionProfileActionSet.SizeSemantics

p4runtime.proto:298

Added in v1.5.0.

Used in: ActionProfileActionSet

message ActionProfileGroup

p4runtime.proto:330

------------------------------------------------------------------------------

Used in: Entity

message ActionProfileGroup.Member

p4runtime.proto:333

Used in: ActionProfileGroup

message ActionProfileMember

p4runtime.proto:323

------------------------------------------------------------------------------

Used in: Entity

message BackupReplica

p4runtime.proto:475

A backup replica used as a fallback when the primary replica port goes down. Added in v1.5.0.

Used in: Replica

message CloneSessionEntry

p4runtime.proto:523

A packet may be cloned by setting the clone_session_id field of PSA ingress/egress output metadata to session_id of a programmed clone session entry. Multiple clones may be created via a single clone session entry by using the replicas message. The clones may be distinguished in the egress using the instance field. The class_of_service field of the clone's egress input metadata will be set to the respective value programmed in the clone session entry. Note that in case of multiple clones, all clones, defined for a clone session, will get the same class of service. The packet_length_bytes field must be set to a non-zero value if the clone packet(s) should be truncated to the given value (in bytes). The packet length is also common to all clones in the clone session. If the packet_length_bytes field is 0, no truncation on the clone(s) will be performed.

Used in: PacketReplicationEngineEntry

message CounterData

p4runtime.proto:451

Used in: CounterEntry, DirectCounterEntry, MeterCounterData, TableEntry

message CounterEntry

p4runtime.proto:430

------------------------------------------------------------------------------ For WriteRequest, Update.Type must be MODIFY. For ReadRequest, the scope is defined as follows: - All counter cells for all counters if counter_id = 0 (default). - All counter cells for given counter_id if index is unset (default).

Used in: Entity

message DigestEntry

p4runtime.proto:565

------------------------------------------------------------------------------ Used to configure the digest extern only, not to stream digests or acks

Used in: Entity

message DigestEntry.Config

p4runtime.proto:572

a DigestList message is streamed when the following conditions are met: - there is at least one digest ready - the oldest digest in the list has been waiting for at least max_timeout_ns nanoseconds or we have gathered max_list_size digests already

Used in: DigestEntry

message DigestList

p4runtime.proto:630

Used in: StreamMessageResponse

message DigestListAck

p4runtime.proto:603

Used by the controller to ack a DigestList message. To avoid flooding the controller, the switch must not generate digest notifications for the same data until a DigestListAck message with the same list_id is received or the ack timeout (ack_timeout_ns field in DigestEntry.Config) expires.

Used in: DigestListAckError, StreamMessageRequest

message DigestListAckError

p4runtime.proto:724

Used in: StreamError

message DirectCounterEntry

p4runtime.proto:444

------------------------------------------------------------------------------ For WriteRequest, Update.Type must be MODIFY. INSERT and DELETE on direct counters is not allowed and will return an error. The insertion/deletion should happen as part of INSERT/DELETE on the associated table-entry. For ReadRequest, the scope is defined as follows: - All counter cells for all tables if table_entry.table_id = 0. - All counter cells of a table if table_entry.table_id is present and table_entry.match is empty.

Used in: Entity

message DirectMeterEntry

p4runtime.proto:384

------------------------------------------------------------------------------ For WriteRequest, Update.Type must be MODIFY. INSERT and DELETE on direct meters is not allowed and will return an error. The insertion/deletion should happen as part of INSERT/DELETE on the associated table-entry. For ReadRequest, the scope is defined as follows: - All meter cells for all tables if table_entry.table_id = 0. - All meter cells of a table if table_entry.table_id is present and table_entry.match is empty.

Used in: Entity

message Entity

p4runtime.proto:116

Used in: ReadRequest, ReadResponse, Update

message Error

p4runtime.proto:827

Error message used to report a single P4-entity error for a Write RPC.

message ExternEntry

p4runtime.proto:133

Used in: Entity

message FieldMatch

p4runtime.proto:219

field_match_type ::= exact | ternary | lpm | range | optional

Used in: TableEntry, ValueSetMember

message FieldMatch.Exact

p4runtime.proto:224

Matches can be performed on arbitrarily-large inputs; the protobuf type 'bytes' is used to model arbitrarily-large values.

Used in: FieldMatch

message FieldMatch.LPM

p4runtime.proto:231

Used in: FieldMatch

message FieldMatch.Optional

p4runtime.proto:243

If the Optional match should be a wildcard, the FieldMatch must be omitted. Otherwise, this behaves like an exact match.

Used in: FieldMatch

message FieldMatch.Range

p4runtime.proto:237

A Range is logically a set that contains all values numerically between 'low' and 'high' inclusively.

Used in: FieldMatch

message FieldMatch.Ternary

p4runtime.proto:227

Used in: FieldMatch

message ForwardingPipelineConfig

p4runtime.proto:788

Used in: GetForwardingPipelineConfigResponse, SetForwardingPipelineConfigRequest

message ForwardingPipelineConfig.Cookie

p4runtime.proto:799

Metadata (cookie) opaque to the target. A control plane may use this field to uniquely identify this config. There are no restrictions on how such value is computed, or where this is stored on the target, as long as it is returned with a GetForwardingPipelineConfig RPC. When reading the cookie, we need to distinguish those cases where a cookie is NOT present (e.g. not set in the SetForwardingPipelineConfigRequest, therefore we wrap the actual uint64 value in a protobuf message.

Used in: ForwardingPipelineConfig

enum GetForwardingPipelineConfigRequest.ResponseType

p4runtime.proto:807

Specifies the fields to populate in the response.

Used in: GetForwardingPipelineConfigRequest

message IdleTimeoutNotification

p4runtime.proto:683

Used in: StreamMessageResponse

message Index

p4runtime.proto:359

An index as a protobuf message. In proto3, fields cannot be optional and there is no difference between an unset integer field and an integer field set to 0. This is inconvenient for reading from P4 array-like structures, such as indirect counters and meters. We need a way to do a wildcard read on these but we cannot use a default zero index value to do so, as zero is a valid index (first entry in the array). We therefore wrap the index in a message.

Used in: CounterEntry, MeterEntry, RegisterEntry

message MasterArbitrationUpdate

p4runtime.proto:652

Used in: StreamMessageRequest, StreamMessageResponse

message MeterConfig

p4runtime.proto:411

Modeled to support both RFC 2698: A Two Rate Three Color Marker (trTCM) and RFC 2697: A Single Rate Three Color Marker (srTCM) based on the `type` of the corresponding MeterSpec. The trTCM meters a packet stream and marks its packets based on two rates, Peak Information Rate (PIR) and Committed Information Rate (CIR), and their associated burst sizes to be either green, yellow, or red. A packet is marked red if it exceeds the PIR. Otherwise it is marked either yellow or green depending on whether it exceeds or doesn't exceed the CIR. For this meter type, `eburst` must be unset. The srTCM meters a packet stream and marks its packets based on one rate, Committed Information Rate (CIR), and its associated burst size as well as an Excess Burst Size (EBS) to be either green, yellow, or red. Roughly, a packet is marked green if it doesn't exceed the CIR. Otherwise it is marked either yellow or green depending on whether it exceeds or doesn't exceed the EBS. For this meter type, it must be the case that `cir == pir && cburst == pburst`.

Used in: DirectMeterEntry, MeterEntry, TableEntry

message MeterCounterData

p4runtime.proto:457

Added in v1.4.0

Used in: DirectMeterEntry, MeterEntry, TableEntry

message MeterEntry

p4runtime.proto:368

------------------------------------------------------------------------------ For WriteRequest, Update.Type must be MODIFY. For ReadRequest, the scope is defined as follows: - All meter cells for all meters if meter_id = 0 (default). - All meter cells for given meter_id if index is unset (default).

Used in: Entity

message MulticastGroupEntry

p4runtime.proto:502

The (port, instance) pair must be unique for each replica in a given multicast group entry. A packet may be multicast by setting the multicast_group field of PSA ingress output metadata to multicast_group_id of a programmed multicast group entry. The port and instance fields of each replica's egress input metadata will be set to the respective values programmed in the multicast group entry.

Used in: PacketReplicationEngineEntry

message P4Data

p4data.proto:14

Used in: DigestList, P4StructLike, RegisterEntry

message P4Header

p4data.proto:40

Used in: P4Data, P4HeaderStack, P4HeaderUnion

message P4HeaderStack

p4data.proto:54

Used in: P4Data

message P4HeaderUnion

p4data.proto:47

Used in: P4Data, P4HeaderUnionStack

message P4HeaderUnionStack

p4data.proto:60

Used in: P4Data

message P4StructLike

p4data.proto:36

Used in: P4Data

message P4Varbit

p4data.proto:31

Used in: P4Data

message PacketIn

p4runtime.proto:622

Packet sent from the switch to the controller.

Used in: StreamMessageResponse

message PacketMetadata

p4runtime.proto:646

Any metadata associated with Packet-IO (controller Packet-In or Packet-Out) needs to be modeled as P4 headers carrying special annotations @controller_header("packet_out") and @controller_header("packet_in") respectively. There can be at most one header each with these annotations. These special headers are captured in P4Info ControllerPacketMetadata.

Used in: PacketIn, PacketOut

message PacketOut

p4runtime.proto:591

Packet sent from the controller to the switch.

Used in: PacketOutError, StreamMessageRequest

message PacketOutError

p4runtime.proto:719

Used in: StreamError

message PacketReplicationEngineEntry

p4runtime.proto:466

------------------------------------------------------------------------------ Only one instance of a Packet Replication Engine (PRE) is expected in the P4 pipeline. Hence, no instance id is needed to access the PRE.

Used in: Entity

message RegisterEntry

p4runtime.proto:557

------------------------------------------------------------------------------

Used in: Entity

message Replica

p4runtime.proto:481

Used for replicas created for cloning and multicasting actions.

Used in: CloneSessionEntry, MulticastGroupEntry

message Role

p4runtime.proto:669

Used in: MasterArbitrationUpdate

enum SdnPort

p4runtime.proto:846

------------------------------------------------------------------------------ Reserved controller-specified SDN port numbers for reference.

enum SetForwardingPipelineConfigRequest.Action

p4runtime.proto:743

Used in: SetForwardingPipelineConfigRequest

message StreamError

p4runtime.proto:695

Used by the server to asynchronously report errors which occur when processing StreamMessageRequest messages.

Used in: StreamMessageResponse

message StreamOtherError

p4runtime.proto:729

Used in: StreamError

message TableAction

p4runtime.proto:260

table_actions ::= action_specification | action_profile_specification

Used in: TableEntry

message TableEntry

p4runtime.proto:141

Used in: DirectCounterEntry, DirectMeterEntry, Entity, IdleTimeoutNotification

message TableEntry.IdleTimeout

p4runtime.proto:192

Used in: TableEntry

message Uint128

p4runtime.proto:734

Used in: MasterArbitrationUpdate, SetForwardingPipelineConfigRequest, WriteRequest

message Update

p4runtime.proto:105

Used in: WriteRequest

enum Update.Type

p4runtime.proto:106

Used in: Update

message ValueSetEntry

p4runtime.proto:551

------------------------------------------------------------------------------ For writing and reading matches in a parser value set. A state transition on an empty value set will never be taken. The number of matches must be at most the size of the value set as specified by the size argument of the value_set constructor in the P4 program. For Write Requests: - MODIFY will write the given matches in the repeated field to the value set. - INSERT and DELETE are not allowed. For Read Requests: - All matches for all value-set entries if value_set_id = 0 - All matches of the value-set if a valid value_set_id is specified - The 'match' field must never be set in the ReadRequest

Used in: Entity

message ValueSetMember

p4runtime.proto:532

A member in a P4 value set. Each member defines a list of matches, which can have different match types.

Used in: ValueSetEntry

enum WriteRequest.Atomicity

p4runtime.proto:63

Used in: WriteRequest