Skip to content

PSA Meeting Minutes Aug 21, 2017

Han Wang edited this page Aug 21, 2017 · 2 revisions

Attendees:

  • On Stanford campus: Tom Rodeheffer (Google), Han Wang (Barefoot)
  • Remote: Andy Fingerhut (Cisco), Vladimir Gurevich (Barefoot), Samar Abdi (Google), Nate Foster (Cornell)

Agenda

  1. 20 min — review AIs from last meeting.
  2. 20 min — #370 default port id type.
  3. 20 min — #385 restrictions on use of checksum extern
  4. 20 min — #339 ‘reject' state semantics
  5. 10 min — #372 selective dropping of cloned packet in PRE

Discussion

AIs:

Default Port ID type:

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.

restrictions on use of checksum extern

AI: Nate to write up a proposal for checksum. AI: Han to provide more info to Nate.

‘reject' state semantics

AI: Vlad to provide example of checksum extern uses parser error

selective dropping of cloned packet in PRE

Proposal is merged in https://github.com/p4lang/p4-spec/issues/372

AI: None

counter, meter initialization?

Andy: counter = 0, meter color? Vlad: we can put GREEN in spec.

AI: Samar to make a proposal for action_profile

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