-
Notifications
You must be signed in to change notification settings - Fork 80
PSA meeting minutes: Aug 7, 2017
Calin Cascaval edited this page Aug 7, 2017
·
1 revision
- On Stanford campus: Calin Cascaval (Barefoot), Ben Pfaff (VMWare), Tom Rodeheffer (Google), Han Wang (Barefoot), Mihai Budiu (VMWare), Vladimir Gurevich (Barefoot)
- Remote: Andy Fingerhut (Cisco), Heidi Ou (Alibaba), Andy Keep (Cisco), Antonin Bas (Barefoot), Tom Tofigh (AT&T), James Coole (Cisco), Samar Abdi (Google), Skip Booth (Cisco), Joe Tardo (Broadcom)
- 10 min -- review AIs from last meeting
- 30 min -- PSA portability
- 30 min - clone/resubmit/recirc
- 20 min - Classes of service for queues, readable queue lenghts (and other queue introspection)
- Counters (Andy): https://github.com/p4lang/p4-spec/pull/352
- to be merged
- Reject semantics (Vladimir): no PR yet
- Proposal for clone/resubmit/recirc (Han): https://github.com/p4lang/p4-spec/pull/373
- to be discussed
- Proposal for metadata and ordering semantics instead of PRE (Andy): no PR yet
- Proposal for index out of bounds (Calin): no PR yet
- Proposal for unspecified forwarding behavior (Andy): no PR yet
- port, mcast_group, dropped
- what happens on forwarding to a port that does not exist? Behave just the same
- Proposal for timestamps (Andy): https://github.com/p4lang/p4-spec/pull/366
- to be merged
- Skip: slippery slope, it is hard to agree on what should be the minimum resources
- Andy: there are sequences of operations that are not applicable which should be part of the PSA spec. switch.p4 is too complex
- Vladimir: there are two classes of constraints, table sizes and non-measurables: the type and number of operations that can be executed
- Skip: is there another application that we can write for PSA compliance?
- Vladimir: PSA compliance suite -- capture not only the sizes, but the non-measurables.
- Skip: for defining the structure and availability of externs and API definitions, you don't need the sizes
- Vladimir: is that PSA or just a reference definition?
- Skip: compared to OpenCL where there are no resources defined, only the structure
- Calin: OpenCL relies on hardware support to schedule, does not need to physically allocate resources
- Mihai: is BMv2 a PSA implementation?
- Vladimir: pick 3 hardware platforms and make sure that we at least can map them
- Han: FPGA -- some numbers in the proposal are quite challenging (e.g., 640 bits and 1M entries)
- Skip: PSA profiles -- tor, smart nic (Vlad: might need their own architecture), simple switch
- Andy/Skip: a common arch as PSA maps NICs as well
- Vladimir: clarify the goals
- Andy: define profiles later for different specifications
- Skip: profiles can be defined later
AI: clarify the goals -- Andy and Calin
AI: rewrite the PR in terms of future profiles (Andy)
- Han: proposed metadata setting to enable operation and clone/resubmit/recirc externs to specify the data that is sent to the PRE.
- relies on #369 to have separate ingress deparser/egress parser
- w/o these, they are methods on the PRE/BQE
- Mihai: when is emit evaluated?
- Han: the emits are just specifying the data, don't do the actual cloning
- TomR: what do these ops do?
- how does the parser tell this was a recirc packet
- how does the parser know which is the data that has been recirculated
- Han: data is prepended or tagged
- TomR/Vladimir: where is the standard metadata that identifies the recirc packet
- TomR: where is the port that the clone needs to go to
- TomR: not clear whether recirc/resubmit make copies
- Vladimir:
- TomR: can they be called more than once? can we emit multiple headers via multiple emit calls or put everything in a struct and emit only once.
- Vladimir: can we clone multiple times? Not with the current 1-bit implementation, but this could be enough
- Mihai: coupling with broadcast can create more complex patterns
- Mihai: good to see the diagrams
- Samar: what happens to the local metadata? Needs to be decided
- Samar: what about between ingress and egress? with #369 the user is responsible for the bridging
- Vladimir: add a header and parse/deparse explicitly or compiler generated
AI: Han - address discussion comments
- Andy: telemetry: length of queues -- should it be part of PSA?
- one FIFO queue for output port -- allow multiple queues, impl defined
- Samar: QoS queues? Would like that
- Vladimir: device diversity is so large, that priorities and queue ids are hard to reconcile
- Andy: Standardize names and types
- Vladimir: semantics is difficult
- Mihai: semantics in this case is performance
- Vladimir: issues with the ingress pipe -- egress would be easier
AI: Samar: volunteered to write something to seed the discussion
(will need adjusting)
-
initial draft of PSA document - 2017-Jul-31
-
PSA v1.0 - 2017-Sep-30
-
bmv2 support - 2017-Jul-31
-
p4c support - 2017-Aug-30
- [email protected] email list
- Github issues on p4lang/p4-spec, for which people will be assigned issues they will drive to completion.