-
Notifications
You must be signed in to change notification settings - Fork 89
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Sharpen the notion of read-write symmetry #407
Comments
@jafingerhut @antoninbas @jonathan-dilorenzo @verios-google @kishanps for visibility. |
To me, there is also a question about (i) read-only entities and (ii) writable entities that were never written. One possibility would be to exempt both from read-write symmetry, by having the guarantee we provide take the form of an implication, as follows: If a client wrote This would allow the switch to come up in an arbitrary initial state. My sense is this is something we want to allow? |
I am pretty sure that most P4 implementations (in the absence of Maybe said differently, I think the initial state is not currently arbitrary, but it isn't necessarily spelled out by the read-write symmetry requirement, but other requirements elsewhere (some of which might not be written down explicitly in a P4.org specification yet, but could be). |
As discussed in today's WG meeting, the definition of read-write symmetry in the spec is currently fuzzy, and the spec makes no gurantees ("reads and writes [...] should be symmetrical and unambiguous"). Opening this bug to track the effort to improve this.
With #406, we are planning to require servers to use canonical encodings in all responses. At that point, we should be able to strengthen the gurantees around read-write symmetry, i.e. by strictly requesting the server to guarantee the property.
However, as discussed in the meeting, we must exclude certain fields/messages from read-write symmetry, as they can be modified by the dataplane; for example, counter, registers, and perhaps certain tables in the NIC space. In the WG meeting, we discussed introducing a notion of "dataplane-volatile" entities for that purpose, and explicitly exempting dataplane-volatile entities from the read-write symmetry requirement.
The text was updated successfully, but these errors were encountered: