This series consolidates the behavior of the 2 drivers that implement the ethtool MAC Merge layer by making NXP ENETC commit its preemptible traffic classes to hardware only when MM TX is active (same as Ocelot).
Then, after resolving an issue with the ENETC driver, it restricts user space from entering 2 states which don't make sense:
- pmac-enabled off tx-enabled on verify-enabled * - pmac-enabled * tx-enabled off verify-enabled on
Then, it introduces a selftest (ethtool_mm.sh) which puts everything together and tests all valid configurations known to me.
This is simultaneously the v2 of "[PATCH net-next 0/2] ethtool mm API improvements": https://lore.kernel.org/netdev/20230415173454.3970647-1-vladimir.oltean@nxp.... which had caused some problems to openlldp. Those were solved in the meantime, see: https://github.com/intel/openlldp/commit/11171b474f6f3cbccac5d608b7f26b32ff7...
and of "[RFC PATCH net-next] selftests: forwarding: add a test for MAC Merge layer": https://lore.kernel.org/netdev/20230210221243.228932-1-vladimir.oltean@nxp.c...
Petr Machata (2): selftests: forwarding: sch_tbf_*: Add a pre-run hook selftests: forwarding: generalize bail_on_lldpad from mlxsw
Vladimir Oltean (7): net: enetc: fix MAC Merge layer remaining enabled until a link down event net: enetc: report mm tx-active based on tx-enabled and verify-status net: enetc: only commit preemptible TCs to hardware when MM TX is active net: enetc: include MAC Merge / FP registers in register dump net: ethtool: mm: sanitize some UAPI configurations selftests: forwarding: introduce helper for standard ethtool counters selftests: forwarding: add a test for MAC Merge layer
drivers/net/ethernet/freescale/enetc/enetc.c | 23 +- drivers/net/ethernet/freescale/enetc/enetc.h | 5 +- .../ethernet/freescale/enetc/enetc_ethtool.c | 94 +++++- .../net/ethernet/freescale/enetc/enetc_hw.h | 3 + net/ethtool/mm.c | 10 + .../drivers/net/mlxsw/qos_headroom.sh | 3 +- .../selftests/drivers/net/mlxsw/qos_lib.sh | 28 -- .../selftests/drivers/net/mlxsw/qos_pfc.sh | 3 +- .../selftests/drivers/net/mlxsw/sch_ets.sh | 3 +- .../drivers/net/mlxsw/sch_red_core.sh | 1 - .../drivers/net/mlxsw/sch_red_ets.sh | 2 +- .../drivers/net/mlxsw/sch_red_root.sh | 2 +- .../drivers/net/mlxsw/sch_tbf_ets.sh | 6 +- .../drivers/net/mlxsw/sch_tbf_prio.sh | 6 +- .../drivers/net/mlxsw/sch_tbf_root.sh | 6 +- .../testing/selftests/net/forwarding/Makefile | 1 + .../selftests/net/forwarding/ethtool_mm.sh | 288 ++++++++++++++++++ tools/testing/selftests/net/forwarding/lib.sh | 60 ++++ .../net/forwarding/sch_tbf_etsprio.sh | 4 + .../selftests/net/forwarding/sch_tbf_root.sh | 4 + 20 files changed, 486 insertions(+), 66 deletions(-) create mode 100755 tools/testing/selftests/net/forwarding/ethtool_mm.sh