-
Notifications
You must be signed in to change notification settings - Fork 80
PSA Meeting Minutes Oct 4, 2017
Calin Cascaval edited this page Oct 6, 2017
·
1 revision
- AndyF, Bapi, Tom, Han, Vladimir, Calin
- online: Samar, AndyK, James Coole, Heidi Ou, Joe Tardo, Thomas
Action profiles (Samar) https://github.com/p4lang/p4-spec/pull/410
- 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
Checksum (Nate) - https://github.com/p4lang/p4-spec/pull/421
- 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
Traffic classes (Andy) - https://github.com/p4lang/p4-spec/pull/403
- two different metadata field for each of normal packet and clone
- AI: ready for final review
- created PR: Uniform only, min-max range
- AI: ready for final review
Digest (Han) - https://github.com/p4lang/p4-spec/pull/419
- 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
add
only 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?
Undefined values (Andy) - https://github.com/p4lang/p4-spec/pull/417
- AI Andy to review
Bridged metadata (20 min) - https://github.com/p4lang/p4-spec/issues/404
- 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.
- More bridging discussion