net: dcb: add new pcp selector to app object
authorDaniel Machon <daniel.machon@microchip.com>
Tue, 1 Nov 2022 09:48:29 +0000 (10:48 +0100)
committerPaolo Abeni <pabeni@redhat.com>
Thu, 3 Nov 2022 14:16:50 +0000 (15:16 +0100)
commitec32c0c42d0a7208571c4c77f140bffaa4e5e304
tree13db317151cdbbfbc106112090d82b736cd4b48c
parent71fa6887eeca7b631528f9c7a39815498de8028c
net: dcb: add new pcp selector to app object

Add new PCP selector for the 8021Qaz APP managed object.

As the PCP selector is not part of the 8021Qaz standard, a new non-std
extension attribute DCB_ATTR_DCB_APP has been introduced. Also two
helper functions to translate between selector and app attribute type
has been added. The new selector has been given a value of 255, to
minimize the risk of future overlap of std- and non-std attributes.

The new DCB_ATTR_DCB_APP is sent alongside the ieee std attribute in the
app table. This means that the dcb_app struct can now both contain std-
and non-std app attributes. Currently there is no overlap between the
selector values of the two attributes.

The purpose of adding the PCP selector, is to be able to offload
PCP-based queue classification to the 8021Q Priority Code Point table,
see 6.9.3 of IEEE Std 802.1Q-2018.

PCP and DEI is encoded in the protocol field as 8*dei+pcp, so that a
mapping of PCP 2 and DEI 1 to priority 3 is encoded as {255, 10, 3}.

Signed-off-by: Daniel Machon <daniel.machon@microchip.com>
Reviewed-by: Petr Machata <petrm@nvidia.com>
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
include/uapi/linux/dcbnl.h
net/dcb/dcbnl.c