Skip to content

PSA Meeting Minutes Dec 20, 2017

Calin Cascaval edited this page Dec 21, 2017 · 1 revision

Attendees:

  • AndyF, Antonin, Chris, Han, Vladimir, Calin
  • online: Samar, AndyK, James

Agenda

Discussion

Truncation

  • 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

Counters/meters in action profile/selectors

AI (Andy): do not support counters/meters together with action profiles or selectors.

Direct actions in addition to action selector

  • 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.

Fungibility

  • closed by Samar

Virtual functions

  • needs language support and decide on how we capture context AI: language meeting. It's experimentally supported in the compiler.

Liveness/Fail-over

  • 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

Dynamic field selection

  • 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 P416? Not fully specified in the P414 and so not clear which values were to be used. Names get lost in P416 in 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)

Idle timeout

  • 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)

64-bit limit

  • AI (Andy): enforce in the PSA spec.
Clone this wiki locally