mbox series

[RFC,net-next,0/2] Add PCP selector and new APPTRUST attribute

Message ID 20220908120442.3069771-1-daniel.machon@microchip.com (mailing list archive)
Headers show
Series Add PCP selector and new APPTRUST attribute | expand

Message

Daniel Machon Sept. 8, 2022, 12:04 p.m. UTC
This patch series adds support for offloading PCP-based queue
classification and introduces a new APPTRUST extension attribute to the
8021Qaz APP managed object.  Prior to implemenation, it has been
discussed on the netdev mailing list here:

https://lore.kernel.org/netdev/Yv9VO1DYAxNduw6A@DEN-LT-70577/

In summary: there currently exist no conveinent way to offload per-port
PCP-based queue classification to hardware. Similarly, there is no way
to indicate the notion of trust for APP table selectors. This patch series
addresses both topics.

PCP based queue classification:

	8021Q standardizes the Priority Code Point table (see 6.9.3 of
	IEEE Std 802.1Q-2018).  This patch series makes it possible, to
	offload the PCP classification to said table.  The new PCP
	selector is not a standard part of the APP managed object,
	therefore it has been assigned a value of 255 to avoid any
	clashes with future DCB standard extensions.

Selector trust:

	ASIC's often has the notion of trust DSCP and trust PCP. This
	new object makes it possible to specify a trust order of app
	selectors, which drivers can then react on.

Patch #1 introduces a new PCP selector to the APP object, which makes it
possible to encode PCP and DEI in the app triplet and offload it to the
PCP table of the ASIC.

Patch #2 Introduces the new extension attribute APPTRUST, which is a
list of trusted app selectors. Lower indexes has higher precedence.
selectors are stored consecutively, starting from index zero. With a
maximum number of 255 unique selectors, the list has the same maximum
size.

The userspace part of this will be posted in a separate patch series.

Daniel Machon (2):
  net: dcb: add new pcp selector to app object
  net: dcb: add new apptrust attribute

 include/net/dcbnl.h        |  2 ++
 include/uapi/linux/dcbnl.h | 15 +++++++++++++++
 net/dcb/dcbnl.c            | 17 +++++++++++++++++
 3 files changed, 34 insertions(+)

--
2.34.1