mbox series

[net-next,0/6] mlxsw: PFC and headroom selftests

Message ID cover.1601462261.git.petrm@nvidia.com
Headers show
Series mlxsw: PFC and headroom selftests | expand

Message

Petr Machata Sept. 30, 2020, 10:49 a.m. UTC
Recent changes in the headroom management code made it clear that an
automated way of testing this functionality is needed. This patchset brings
two tests: a synthetic headroom behavior test, which verifies mechanics of
headroom management. And a PFC test, which verifies whether this behavior
actually translates into a working lossless configuration.

Both of these tests rely on mlnx_qos[1], a tool that interfaces with Linux
DCB API. The tool was originally written to work with Mellanox NICs, but
does not actually rely on anything Mellanox-specific, and can be used for
mlxsw as well as for any other NIC-like driver. Unlike Open LLDP it does
support buffer commands and permits a fire-and-forget approach to
configuration, which makes it very handy for writing of selftests.

Patches #1-#3 extend the selftest devlink_lib.sh in various ways. Patch #4
then adds a helper wrapper for mlnx_qos to mlxsw's qos_lib.sh.

Patch #5 adds a test for management of port headroom.

Patch #6 adds a PFC test.

[1] https://github.com/Mellanox/mlnx-tools/

Petr Machata (6):
  selftests: forwarding: devlink_lib: Split devlink_..._set() into save
    & set
  selftests: forwarding: devlink_lib: Add devlink_cell_size_get()
  selftests: forwarding: devlink_lib: Support port-less topologies
  selftests: mlxsw: qos_lib: Add a wrapper for running mlnx_qos
  selftests: mlxsw: Add headroom handling test
  selftests: mlxsw: Add a PFC test

 .../drivers/net/mlxsw/qos_ets_strict.sh       |   9 +
 .../drivers/net/mlxsw/qos_headroom.sh         | 379 ++++++++++++++++
 .../selftests/drivers/net/mlxsw/qos_lib.sh    |  14 +
 .../drivers/net/mlxsw/qos_mc_aware.sh         |   5 +
 .../selftests/drivers/net/mlxsw/qos_pfc.sh    | 403 ++++++++++++++++++
 .../selftests/drivers/net/mlxsw/sch_ets.sh    |   6 +
 .../drivers/net/mlxsw/sch_red_core.sh         |   1 +
 .../selftests/net/forwarding/devlink_lib.sh   |  72 +++-
 8 files changed, 876 insertions(+), 13 deletions(-)
 create mode 100755 tools/testing/selftests/drivers/net/mlxsw/qos_headroom.sh
 create mode 100755 tools/testing/selftests/drivers/net/mlxsw/qos_pfc.sh

Comments

David Miller Sept. 30, 2020, 9:07 p.m. UTC | #1
From: Petr Machata <petrm@nvidia.com>
Date: Wed, 30 Sep 2020 12:49:06 +0200

> Recent changes in the headroom management code made it clear that an
> automated way of testing this functionality is needed. This patchset brings
> two tests: a synthetic headroom behavior test, which verifies mechanics of
> headroom management. And a PFC test, which verifies whether this behavior
> actually translates into a working lossless configuration.
> 
> Both of these tests rely on mlnx_qos[1], a tool that interfaces with Linux
> DCB API. The tool was originally written to work with Mellanox NICs, but
> does not actually rely on anything Mellanox-specific, and can be used for
> mlxsw as well as for any other NIC-like driver. Unlike Open LLDP it does
> support buffer commands and permits a fire-and-forget approach to
> configuration, which makes it very handy for writing of selftests.
> 
> Patches #1-#3 extend the selftest devlink_lib.sh in various ways. Patch #4
> then adds a helper wrapper for mlnx_qos to mlxsw's qos_lib.sh.
> 
> Patch #5 adds a test for management of port headroom.
> 
> Patch #6 adds a PFC test.
> 
> [1] https://github.com/Mellanox/mlnx-tools/

These look fine, series applied, thank you.