linux/drivers/net/ethernet/mscc
Vladimir Oltean 978777d0fb net: dsa: felix: configure default-prio and dscp priorities
Follow the established programming model for this driver and provide
shims in the felix DSA driver which call the implementations from the
ocelot switch lib. The ocelot switchdev driver wasn't integrated with
dcbnl due to lack of hardware availability.

The switch doesn't have any fancy QoS classification enabled by default.
The provided getters will create a default-prio app table entry of 0,
and no dscp entry. However, the getters have been made to actually
retrieve the hardware configuration rather than static values, to be
future proof in case DSA will need this information from more call paths.

For default-prio, there is a single field per port, in ANA_PORT_QOS_CFG,
called QOS_DEFAULT_VAL.

DSCP classification is enabled per-port, again via ANA_PORT_QOS_CFG
(field QOS_DSCP_ENA), and individual DSCP values are configured as
trusted or not through register ANA_DSCP_CFG (replicated 64 times).
An untrusted DSCP value falls back to other QoS classification methods.
If trusted, the selected ANA_DSCP_CFG register also holds the QoS class
in the QOS_DSCP_VAL field.

The hardware also supports DSCP remapping (DSCP value X is translated to
DSCP value Y before the QoS class is determined based on the app table
entry for Y) and DSCP packet rewriting. The dcbnl framework, for being
so flexible in other useless areas, doesn't appear to support this.
So this functionality has been left out.

Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2022-03-14 10:36:15 +00:00
..
Kconfig of: net: move of_net under net/ 2021-10-07 13:39:51 +01:00
Makefile net: ocelot: add FDMA support 2021-12-10 20:56:58 -08:00
ocelot_devlink.c net: update NXP copyright text 2021-09-17 13:52:17 +01:00
ocelot_fdma.c net: ocelot: use dma_unmap_addr to get tx buffer dma_addr 2021-12-13 14:51:21 +00:00
ocelot_fdma.h net: ocelot: add FDMA support 2021-12-10 20:56:58 -08:00
ocelot_flower.c flow_offload: reject offload for all drivers with invalid police parameters 2022-02-28 11:12:20 +00:00
ocelot_io.c net: mscc: ocelot: add ability to perform bulk reads 2022-02-14 13:24:29 +00:00
ocelot_mrp.c net: mscc: ocelot: enforce FDB isolation when VLAN-unaware 2022-02-27 11:06:14 +00:00
ocelot_net.c flow_offload: reject offload for all drivers with invalid police parameters 2022-02-28 11:12:20 +00:00
ocelot_police.c flow_offload: reject offload for all drivers with invalid police parameters 2022-02-28 11:12:20 +00:00
ocelot_police.h flow_offload: reject offload for all drivers with invalid police parameters 2022-02-28 11:12:20 +00:00
ocelot_ptp.c time64.h: Consolidated PSEC_PER_SEC definition 2021-04-06 16:32:17 -07:00
ocelot_qs.h
ocelot_rew.h
ocelot_vcap.c net: mscc: ocelot: use pretty names for IPPROTO_UDP and IPPROTO_TCP 2022-03-04 09:21:23 +00:00
ocelot_vcap.h net: dsa: felix: perform switch setup for tag_8021q 2021-01-29 21:25:27 -08:00
ocelot_vsc7514.c net: ocelot: add FDMA support 2021-12-10 20:56:58 -08:00
ocelot.c net: dsa: felix: configure default-prio and dscp priorities 2022-03-14 10:36:15 +00:00
ocelot.h net: mscc: ocelot: enforce FDB isolation when VLAN-unaware 2022-02-27 11:06:14 +00:00
vsc7514_regs.c net: mscc: ocelot: split register definitions to a separate file 2021-12-07 21:44:49 -08:00