Skip to content

PSA Meeting Minutes Oct 4, 2017

Calin Cascaval edited this page Oct 6, 2017 · 1 revision

Attendees:

  • AndyF, Bapi, Tom, Han, Vladimir, Calin
  • online: Samar, AndyK, James Coole, Heidi Ou, Joe Tardo, Thomas

Discussion

  • default action: is it an action, a member of the group?
  • in PSA: we should say that the combination of action profile and default action are not supported together
  • and then the default action is inline with P4_16's NoAction
  • AI Samar to update the PR based on the discussion
  • only open question is incremental update for TCP checksum
  • add initialization method?
    • AI: Andy to follow up with Nate
  • Bapi: what is the order of replacing?
    • asked about cross-packet and computing over a certain window -- not supported by PSA
    • might be appropriate for a NIC architecture
  • Vladimir: CRC?
    • do Hash and InternetChecksum cover most of the cases?
    • remove Checksum if we don't have a use case?
    • should we have a CRC extern that can define a nicer API to compute different CRCs (init + polynomial)
    • AI: leave CRC specific externs for v1.1
  • two different metadata field for each of normal packet and clone
  • AI: ready for final review

Random extern (Andy)

  • created PR: Uniform only, min-max range
  • AI: ready for final review
  • refer to figures: https://github.com/p4lang/p4-spec/pull/423/commits/938b1237dbf0b7403fba8c50ef1eaacc606769d4
  • data can be added in controls/deparser using the add method
    • copy-in semantics for the fields -- which implies that we should call add only once into deparser
    • call addonly once
    • how many digests externs can you instantiate per packet?
  • constructor includes port id -- should turn into receiverId
  • if the target supports only a digest, can the compiler merge multiple instantiations into a single larger digest?
    • it is convenient to have multiple instantiations (one per feature)
    • examples?
  • AI Andy to review
  • structs used in the ingress control preserved and materialized in the egress without any programmer intervention
  • compiler hints on performance implications of packing loads of bits
  • alternative: manually creating headers and serializing them
  • what happens for clones/resubmit/recirc?
    • resubmit/recirc -- not passed
    • clones?
  • normal packets -- implicit, everything else doesn't
    • disable to allow manual override?
    • global flag that inhibits bridging + annotation on headers that allows for more freedom on serialization
    • Tom: danger of creating giant structs and subsetting/overlaying for special cases

Clone, resubmit, recirculate: examples and emit semantics (10 min) - https://github.com/p4lang/p4-spec/pull/423, https://github.com/p4lang/p4-spec/pull/428

  • mental model of cloning

    • I2E -- there are two packets -- the normal packet and the original packet
    • deparser sees both and both can be added to (prepend clone metadata to original packet)
  • AI: Han to follow with more examples

    • receive packet and has a parser error, drop the forwarding and send to cpu
    • receive and forward normally and send to cpu/mirror/forward a different port
  • AI Andy and Calin to review the current PRs and merge some.

Agenda for next time

  • More bridging discussion
Clone this wiki locally