You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
While reading the P4 runtime specification to understand the property of read-write symmetry and the use of canonical encodings, it felt like the specification could be clarified and strengthened around these topics. Specifically, the following concerns were identified and solutions proposed:
Concern 0: Clarify that read-write symmetry excludes read-only property,in other words, it applies only to writable properties. Introduce the notion of read-only vs writable properties. An example of a read-only property is counters. Concern 1: Read-write symmetry is not strictly required today; would be nice if it was. Concern 2: Without imposing additional constraints on the client, we cannot ensure canonical forms & read-write symmetry at the same time. Need to decide which one to prefer or be willing to make a breaking change.
Straw-man Proposal:
Server guarantees read-write symmetry, regardless of whether writes were in canonical representation or not. Proposal 1:
Assuming last write/update was in canonical form, server guarantees that read will be in canonical form (and hence read-write symmetry) for a writable property; otherwise all bets are off (with respect to canonicity & read-write symmetry)
-Weakest approach
-Harder to express
-Not a breaking change Proposal 2:
Servers must unconditionally use canonical encodings. Similar to proposal 1, read-write symmetry is achieved when clients write/update in canonical form.
-Stronger approach
-Easier to express
-Not a breaking change (although more likely for servers to be non-compliant) Proposal 3:
Clients and servers must both unconditionally use canonical encodings therefore always ensuring read-write symmetry. Servers return an error message when receiving non-canonical messages from clients.
-Strongest approach
-Easiest to express
-Breaking change
The text was updated successfully, but these errors were encountered:
While reading the P4 runtime specification to understand the property of read-write symmetry and the use of canonical encodings, it felt like the specification could be clarified and strengthened around these topics. Specifically, the following concerns were identified and solutions proposed:
Concern 0: Clarify that read-write symmetry excludes read-only property,in other words, it applies only to writable properties. Introduce the notion of read-only vs writable properties. An example of a read-only property is counters.
Concern 1: Read-write symmetry is not strictly required today; would be nice if it was.
Concern 2: Without imposing additional constraints on the client, we cannot ensure canonical forms & read-write symmetry at the same time. Need to decide which one to prefer or be willing to make a breaking change.
Straw-man Proposal:
Server guarantees read-write symmetry, regardless of whether writes were in canonical representation or not.
Proposal 1:
Assuming last write/update was in canonical form, server guarantees that read will be in canonical form (and hence read-write symmetry) for a writable property; otherwise all bets are off (with respect to canonicity & read-write symmetry)
-Weakest approach
-Harder to express
-Not a breaking change
Proposal 2:
Servers must unconditionally use canonical encodings. Similar to proposal 1, read-write symmetry is achieved when clients write/update in canonical form.
-Stronger approach
-Easier to express
-Not a breaking change (although more likely for servers to be non-compliant)
Proposal 3:
Clients and servers must both unconditionally use canonical encodings therefore always ensuring read-write symmetry. Servers return an error message when receiving non-canonical messages from clients.
-Strongest approach
-Easiest to express
-Breaking change
The text was updated successfully, but these errors were encountered: