-
Notifications
You must be signed in to change notification settings - Fork 80
PSA Meeting Minutes Aug 21, 2017
- On Stanford campus: Tom Rodeheffer (Google), Han Wang (Barefoot)
- Remote: Andy Fingerhut (Cisco), Vladimir Gurevich (Barefoot), Samar Abdi (Google), Nate Foster (Cornell)
- 20 min — review AIs from last meeting.
- 20 min — #370 default port id type.
- 20 min — #385 restrictions on use of checksum extern
- 20 min — #339 ‘reject' state semantics
- 10 min — #372 selective dropping of cloned packet in PRE
- Parser Error (Vlad/Han): https://github.com/p4lang/p4-spec/pull/391
- Proposal for clone/resubmit/recirc (Han): proposal to include clone_port
- to be merged https://github.com/p4lang/p4-spec/pull/393
- Proposal for PRE metadata ordering (Andy): merged
Samar: Port ID could be hardware-centric or logical port
Andy: p4runtime to translate logic port to hardware port number.
Samar: If define port type as logical port in PSA, e.g., 0xFFFF_FFFF in P4 program, vendor can implement mapping from bit<32> to the type in control plane software.
Vlad: PSA should not define logical port type. From P4 program perspective, but not clear what to do in PSA?
Samar: what about 32-bit as port type in PSA?
Vlad: P4Runtime is provided by vendor, the message between controller and vendor p4runtime can be 32 bit. Vendor internally maps 32-bit to bit in hardware.
Samar: what does port type id in PSA represents?
Vlad: physical port
Samar: how to define match on port?
Vlad: use exact match on the port, not range/ternary.
Andy: if you use P4runtime + PSA, expect remapping port number.
Vlad: program should not make the assumption about the representation of port number.
Andy: If the port number is a special case in PSA, does it mean the table entries are not remapped?
Vlad: PortId_t is always remapped.
Samar: If I want to save PortId_t in metadata, and use the metadata, then I need to remap the port in data plane.
Vlad: You do need to have a mapping table in dataplane.
Andy: Does the software agent between P4runtime and p4 device need to inject themselves into the punt-to-cpu path?
Vlad: Perform remapping in program is difficult. PSA program should not make any assumption about the device port structure. P4runtime agent is vendor specific, it should perform the remapping.
Samar: I am worried about controller will need N different programs for N different types of devices. For example, the P4 pipeline configuration is generated from the p4 program.
Vlad: P4 program for different vendor need to generate different binary. Another issue is PSA has not standardized meter color encoding, we did not specify meter encoding. There is a need for translation layer to translate enum anyway.
Andy: How about treat PortId_t as enum type.
Vlad: A logic port can be port + lag OR virtual port in vxlan. There are fixed function components that only understand physical port number. p4runtime will have to do the remap. switch.p4 uses logical port number.
Samar: How about proposing PSA to specify both logic port id, physical port id?
Andy: Will a 32-bit port number be enough? what if PortId_t is always treated as 32-bit port id type.
AI: Samar to think more and make a proposal about PortId_t.
AI: Samar to work on action profile.
AI: Nate to write up a proposal for checksum. AI: Han to provide more info to Nate.
AI: Vlad to provide example of checksum extern uses parser error
Proposal is merged in https://github.com/p4lang/p4-spec/issues/372
AI: None
Andy: counter = 0, meter color? Vlad: we can put GREEN in spec.
AI: Samar to make a proposal for action_profile
(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.