diff --git a/docs/v1/P4Runtime-Spec.mdk b/docs/v1/P4Runtime-Spec.mdk index 021d4b94..128bdd49 100755 --- a/docs/v1/P4Runtime-Spec.mdk +++ b/docs/v1/P4Runtime-Spec.mdk @@ -4596,12 +4596,14 @@ semantics. `instance` ID is also a `uint32`, and its value may not exceed the maximum allowed by the target for the `EgressInstance_t` type (0 is allowed), or the server must return an `INVALID_ARGUMENT` error. The egress port (`port` field) - must be an SDN port and must refer to a singleton port. No two replicas may - have identical values of *both* `port` and `instance`, or the server must - return `INVALID_ARGUMENT`. The `metadata` field is an arbitrary `bytes` value - which is opaque to the target. There is no requirement of where this is - stored, but it must be returned by the server along with the rest of the entry - when the client performs a read on the entry. + must be an SDN port and must refer to a singleton port. A replica cannot have + the same port as any of its backup replicas, or the server must return + `INVALID_ARGUMENT`. All replicas and backup replicas in a particular + multicast group requires uniqueness among all (port, instance)-pairs, or the + server must return `INVALID_ARGUMENT`. The `metadata` field is an arbitrary + `bytes` value, which is opaque to the target. There is no requirement of + where this is stored, but it must be returned by the server along with the + rest of the entry when the client performs a read on the entry. * `MODIFY`: Modify the set of replicas and metadata for a given multicast group entry, indexed by the given `multicast_group_id`. Same restrictions as `INSERT` apply here. @@ -4611,6 +4613,8 @@ semantics. metadata in the data plane set to the deleted `multicast_group_id` will be dropped. +The support for back replicas is optional by the target and if the target does +not support backup replicas, it must return an `UNIMPLEMENTED` error. When reading a multicast group, only `multicast_group_id` is considered. All other fields in `MulticastGroupEntry` are ignored. To perform a *wildcard* `Read` on all configured multicast group entries, the `multicast_group_id` field