P4Runtime Release v1.0.0
This is the official v1.0.0 release. All backward-compatibility guarantees listed in the specification will be enforced from now on.
Changelog:
- API
- removed obsolete references to P4_14 in proto files
- fixed signed int (
int<W>
) representation: we now mandate sign-bit padding to be able to differentiate between positive & negative values while preserving our original goal of "non-disruptive P4 program updates" - ensured canonical representation of compound types (e.g. stacks) with
P4Data
- required
idle_timeout_ns
field to be set in thetable_entry
fields of theIdleTimeoutNotification
message - major overhaul of Value Set programming, which was very much out-of-sync with the P4_16 spec: support for multi-field matches, support for
@match
annotation - added support for numeric translation of Counter / Meter / Register indices
- corrected out-of-date comment in p4runtime.proto regarding match entry priority
- better semantics for
max_group_size
field (P4Info) andmax_size
(P4Runtime)
- specification
- typos & formatting issues fixed all over the place
- clarified the meaning of the
alias
field in the P4InfoPreamble
message - described documentation annotations:
@brief
,@description
and@pkginfo
, which influence P4Info generation - added appendix listing all annotations primarily relevant to P4Info / P4Runtime; for each annotation we include a link to the relevant section in the spec
- explicitly documented order of error statuses in
WriteResponse
- changed description of scenarios where P4 program is not available to emphasize usefulness of P4 program to build robust / correct systems
- clarified how each P4Runtime client is identified to the server
- improved description of master-slave arbitration and terminology used
- clarifications regarding action profile programming: 0 is not a valid weight for members, members cannot be repeated in an action profile group (although action specifications can be "repeated" when doing one-shot programming), members can be shared across different groups
- called out that idle timeout is not supported for default entries
- refined the definition of read-write symmetry: the order of
repeated
fields is no longer required to be preserved for "entity programming", unless explicitly specified on a case-by-case basis - added information about which operations are allowed for immutable tables
- included some security considerations & recommendations in the spec