Skip to content

PSA Meeting Minutes Aug 15, 2018

Andy Fingerhut edited this page Aug 18, 2018 · 1 revision

Attendees:

  • Incomplete list: Gordon Brebner (Xilinx), Criag Jiange (VMware), Guolin Yang (VMware), Philip Romanov (Barefoot), Han Wang (Barefoot), Konstantin Weitz (Google), Andy Fingerhut (Cisco), Chris Sommers (Keysight), JK Lee (Barefoot)

Agenda

  • Portable NIC architecture
  • Clone multicasting
  • Empty action selector groups
  • Direct and indirect actions
  • Inband Network Telemetry

Portable NIC architecture

Andy: Some thoughts on how a Portable NIC architecture (PNA) might go. All of the points below are given as food for thought only, not intended to be prescriptive. All of it is open for discussion in the PNA working group.

  • PSA counters, meters, registers, and several other externs are likely to be just as useful in a programmable NIC as in a programmable switch, so perhaps a PNA might simply reference those from the PSA document, rather than repeating them.

  • Two common cases for pakcet processing in a NIC are "from a network interface to the host memory", which some call the ingress direction of a NIC, and "from the host memory to a network interface", which some call the egress direction of a NIC. While the names "ingress" and "egress" might be used in PNA as well as PSA, their meanings in the target device are fairly independent of each other.

  • PNA might define that a control block named "ingress" is used to program the behavior of packet processing in the NIC's ingress direction, and similarly for an "egress" control block.

Gordon: Definitely interested in forming and participating in this working group.

Chris: Should look for other NIC vendors who might be interested.

Guolin: Interested in SmartNIC, and think that P4 would be a good language for specifying packet processing behavior there.

Philip: Wondering about features like TCP offload, Infiniband checksum, and other more stateful features that tend not be implemented in switches.

Han: Some recent research papers proposing smartNIC arch/features that should be investigated.

AI Andy: Send out invites for first few months worth of meetings. Add Han Wang.

Chris: Recommend sending at least first meeting announcement to p4-announce email list.

Han: Should we start with a list of use cases for SmartNICs?

1st meeting: Gordon can give presentation on features distinctive to programmable NIC vs switch.

Start with 1 hour on different day than existing P4 meetings.

Clone multicasting

https://github.com/p4lang/p4-spec/pull/665

  • Han will update PR to associate a set of (egress_port, instance) pairs with each clone session. Remove egress_port and do not add a multicast group id, to allow PSA implementations to implement this how they wish, perhaps not using a multicast group id at all.

Empty action selector groups

https://github.com/p4lang/p4-spec/pull/662

Andy to update PR to make it a "standard extension" (i.e. recommended behavior, but not yet required by PSA spec) to have a default action for a table with action selector implementation, and this default action will be executed if a table entry is matched that points at an empty group. The PR was updated after the meeting to reflect the discussion.

Direct and indirect actions

Konstantin summarized issue with direct and indirect actions on tables. No changes to PSA desired. All changes will be in P4Runtime API. Follow Konstantin's changes there if you are interested.

Search for "August 15th 2018", at the link below, and for that date the notes on "One-shot" action selector programming, for more details:

https://docs.google.com/document/d/1yMOzmIOJo4_q2yCc1_eGcniag-Q7w2F_f3kKu9JB64c/edit#

Inband Network Telemetry

JK Lee presented INT (Inband Network Telemetry)

The P4 applications working group, chaired by JK and Mukesh Hira, has published a specification for this after several months of discussion and work. JK presented the basics of INT, including the current list of data about the packet that an INT-capable network device can record into packets.

Andy's primary interest in having JK talk about this at the arch working group meeting was to determine whether there were any capabilities required to create a full INT implementation that do not yet have a PSA-portable way to write them. From the talk, it appears that the issue below, created in Dec 2017, is still up to date with the capabilities that the base P4 language and PSA enable today with their 1.0 specs, and which capabilities are not there yet:

https://github.com/p4lang/p4-spec/issues/510

JK updated the issue with a comment after the meeting to clarify that it might be useful in INT to have not only one queue occupancy measurement per packet, but two: one length at the time the packet was enqueued, and a separate one at the time the packet was dequeued.

Clone this wiki locally