Skip to content

PSA meeting minutes: Aug 7, 2017

Calin Cascaval edited this page Aug 7, 2017 · 1 revision

Attendees:

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

Agenda

  1. 10 min -- review AIs from last meeting
  2. 30 min -- PSA portability
  3. 30 min - clone/resubmit/recirc
  4. 20 min - Classes of service for queues, readable queue lenghts (and other queue introspection)

Discussion

AIs:

PSA portability:

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

clone/resubmit/recirc (Han)

  • 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

Queueing (Andy)

  • 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

Reminders

Roadmap

(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

Forums for discussion:

  • p4-arch@lists.p4.org email list
  • Github issues on p4lang/p4-spec, for which people will be assigned issues they will drive to completion.
Clone this wiki locally