-
Notifications
You must be signed in to change notification settings - Fork 80
PSA Meeting Minutes Dec 20, 2017
Calin Cascaval edited this page Dec 21, 2017
·
1 revision
- AndyF, Antonin, Chris, Han, Vladimir, Calin
- online: Samar, AndyK, James
-
Packet truncation support:
- PSA truncation options https://github.com/p4lang/p4-spec/issues/519, https://github.com/p4lang/p4-spec/issues/477
-
Action selector issues:
- Interaction between direct counters/meters and action profile/selector https://github.com/p4lang/p4-spec/issues/466 Previously discussed, need closing:
- Fungibility of action selector size https://github.com/p4lang/p4-spec/issues/456
- Using virtual functions to specify action chosen in action_selector https://github.com/p4lang/p4-spec/issues/446
- Liveness of action profile members https://github.com/p4lang/p4-spec/issues/457
- Mention anything in PSA about fast-failover aspect of ActionSelector extern? https://github.com/p4lang/p4-spec/issues/496
-
New externs:
- Dynamic field selection: select a small set of keys from large set of keys https://github.com/p4lang/p4-spec/issues/516
- idle_timeout for table entries: Support table entry idle_timeout in PSA? https://github.com/p4lang/p4-spec/issues/523
-
Document limits on parameter values of PSA externs:
- Capping the bitwidth of PSA core types to 64 https://github.com/p4lang/p4-spec/issues/518
- Document any limits on parameter values of Hash extern, and others https://github.com/p4lang/p4-spec/issues/478
- PortId_t value documentation: what, if anything, to document in PSA about PortId_t values? https://github.com/p4lang/p4-spec/issues/370
-
Other open issues:
- Document anything more about congestion-based drop mechanisms in PSA? https://github.com/p4lang/p4-spec/issues/497
- State of direct meters and counters when entries are added and removed https://github.com/p4lang/p4-spec/issues/359
- Is drop allowed in egress? (only remaining issue is I think creating an example suggested by Samar Abdi) https://github.com/p4lang/p4-spec/issues/444
- Document effect of multiple pipelines on PSA https://github.com/p4lang/p4-spec/issues/353
- Things not in PSA required to fully implement the INT draft https://github.com/p4lang/p4-spec/issues/510
- Digest extern small notes https://github.com/p4lang/p4-spec/issues/507
- Add requirements about control plane API atomicity relative to data plane operations https://github.com/p4lang/p4-spec/issues/525
- Document Checksum clear() method similarly to InternetChecksum clear() method? https://github.com/p4lang/p4-spec/issues/521
- is it sufficient to support truncation for clones vs. normal (and partially processed) packets?
- for packets that get errors, you want truncation in the clone i2e
- for netflow, you still send the original packet, and the sample (maybe truncated clone) to cpu
- digest vs. truncate
- Samar: pretty much all cases are sending truncated clones
AI (Andy): only clones should be truncated
- have a truncate field in clone session -- bytes from the beginning of the packet. don't include the metadata
AI (Andy): do not support counters/meters together with action profiles or selectors.
- https://github.com/p4lang/p4-spec/issues/527
- execute both a direct action and a selector member action
- can make it easier for the control plane to program groups vs. members, and at run-time
- unlikely that existing devices can support such mechanisms
- existing programming devices may require looping anyway Decision: not in PSA v1.
- closed by Samar
- needs language support and decide on how we capture context AI: language meeting. It's experimentally supported in the compiler.
- Punted to P4Runtime WG.
- may need an annotation on the selector
- AI (Andy): Add language to point to P4Runtime.
- close 457, keep 496 open until the language + annotation
- there are ways to change the program, recompile, and reload to modify what fields are used in a hash
- restricting the change to control plane operations allows high performance operation rather than changing dynamically based on packets
- you can use a different action selector that computes the hash
- you can use a table to filter down the fields
- if we want names, we need an extern
- extern: defines the full set of fields that can be used. Dynamically select a subset of the fields that participate in the hash (as a control plane operation)
- Andy (arguing for Nate): we don't need an extern. Why not use an action selector with byte offsets -- will lack the names
- Samar: if there is a target that supports such feature, add an annotation to a table and implement it as register config. This will enable support on fixed function devices.
- why were field lists not included in P4
16? Not fully specified in the P414and so not clear which values were to be used. Names get lost in P416in tuples. - can names be inferred from the tuple passed as an instantiation to the extern?
- Andy: if just hashes, then you can build a dynamic mask and zero out the bits
- Chris: an extern is good to restrict the functionality to something that is more meaningful for that particular operation AI (Vlad): will work out an extern example/proposal for the API group and attempt to formalize what language support is needed (field refs)
- Support OpenFlow scenario
- PSA to define a table attribute for this
- Similar to watch port
- Vlad: if it has control plane implications, better to define an attribute. Otherwise an annotation.
- Andy: can you age entries on the fast path? There are both categories of devices
- Chris/Samar: it seems that an annotation is more appropriate for this since it only control plane
- Vlad: resources need to be allocated in hw (bits to track age)
- Samar: if storage is required, attribute should specify what are the resources needed for the storage
- Antonin: extern that gives you the options of what should the hw do: delete the entry vs. let the control plane do it (notification), vs. sw polling the table for age,
- Chris: how much detail do we want to put in.
- Andy: control plane can do it with info in the p4runtime
- Antonin: can't implement efficiently
- Min impl: table attribute set to true. AI (Antonin): discuss in the p4runtime meeting whether we require tables to send notifications to sw, or we simply rely on the hw to delete entries (and/or polling)
- AI (Andy): enforce in the PSA spec.