-
Notifications
You must be signed in to change notification settings - Fork 108
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
Try to support wildcard PacketReplicationEngine reads. #610
base: main
Are you sure you want to change the base?
Conversation
I am not sure #609 is a bug according to the spec.
It is mostly up to individual entities to define what a wildcard read means. For the One issue with that change is that if we ever add a new PRE entry type (by adding a new field to the We actually discuss this issue with |
Very interesting. I wasn't aware of this subtle backward-compatibility issue, here and in general for protos. |
@jonathan-dilorenzo and I discussed this an agree that |
I don't think that's a particularly reasonable read of the specification @antoninbas, though this suggests we should clarify it. The main wildcard read section pretty clearly suggests that any empty top-level entity should read all entities of that type with this example:
And the TableEntry section on Wildcard reads only mentions a possibility that provides way more fields:
So it would be reasonable to expect that the full wildcard case (where you specify almost nothing) was similarly left out of the PacketReplicationEngineEntry section. That said, I agree that this is actually an unacceptable interpretation based on the backwards compatibility issue. Which either would mean that the server should return everything if it doesn't know to return something specific, or (as we did with entities) that any oneof must always be set (if it's at the next level of an entity you want to read I guess). |
Opened up an issue against the P4Runtime to discuss this: p4lang/p4runtime#476 and fix the specification in some direction before submitting this PR. |
Fixes #609.