From: Ido Schimmel <ido...@mellanox.com>

This patch set adds support for tc police action in mlxsw.

Patches #1-#2 add defines for policer bandwidth limits and resource
identifiers (e.g., maximum number of policers).

Patch #3 adds a common policer core in mlxsw. Currently it is only used
by the policy engine, but future patch sets will use it for trap
policers and storm control policers. The common core allows us to share
common logic between all policer types and abstract certain details from
the various users in mlxsw.

Patch #4 exposes the maximum number of supported policers and their
current usage to user space via devlink-resource. This provides better
visibility and also used for selftests purposes.

Patches #5-#7 gradually add support for tc police action in the policy
engine by calling into previously mentioned policer core.

Patch #8 adds a generic selftest for tc-police that can be used with
veth pairs or physical loopbacks.

Patches #9-#11 add mlxsw-specific selftests.

Ido Schimmel (11):
  mlxsw: reg: Add policer bandwidth limits
  mlxsw: resources: Add resource identifier for global policers
  mlxsw: spectrum_policer: Add policer core
  mlxsw: spectrum_policer: Add devlink resource support
  mlxsw: core_acl_flex_actions: Work around hardware limitation
  mlxsw: core_acl_flex_actions: Add police action
  mlxsw: spectrum_acl: Offload FLOW_ACTION_POLICE
  selftests: forwarding: Add tc-police tests
  selftests: mlxsw: tc_restrictions: Test tc-police restrictions
  selftests: mlxsw: Add scale test for tc-police
  selftests: mlxsw: Test policers' occupancy

 drivers/net/ethernet/mellanox/mlxsw/Makefile  |   2 +-
 .../mellanox/mlxsw/core_acl_flex_actions.c    | 304 +++++++++++-
 .../mellanox/mlxsw/core_acl_flex_actions.h    |   8 +
 drivers/net/ethernet/mellanox/mlxsw/reg.h     |   9 +
 .../net/ethernet/mellanox/mlxsw/resources.h   |   2 +
 .../net/ethernet/mellanox/mlxsw/spectrum.c    |  20 +
 .../net/ethernet/mellanox/mlxsw/spectrum.h    |  46 +-
 .../ethernet/mellanox/mlxsw/spectrum_acl.c    |  33 +-
 .../mlxsw/spectrum_acl_flex_actions.c         |  27 +
 .../ethernet/mellanox/mlxsw/spectrum_flower.c |  30 +-
 .../mellanox/mlxsw/spectrum_policer.c         | 468 ++++++++++++++++++
 .../net/mlxsw/spectrum-2/resource_scale.sh    |   2 +-
 .../net/mlxsw/spectrum-2/tc_police_scale.sh   |  16 +
 .../net/mlxsw/spectrum/resource_scale.sh      |   2 +-
 .../net/mlxsw/spectrum/tc_police_scale.sh     |  16 +
 .../drivers/net/mlxsw/tc_police_occ.sh        | 108 ++++
 .../drivers/net/mlxsw/tc_police_scale.sh      |  92 ++++
 .../drivers/net/mlxsw/tc_restrictions.sh      |  76 +++
 .../selftests/net/forwarding/devlink_lib.sh   |   5 +
 .../selftests/net/forwarding/tc_police.sh     | 333 +++++++++++++
 20 files changed, 1575 insertions(+), 24 deletions(-)
 create mode 100644 drivers/net/ethernet/mellanox/mlxsw/spectrum_policer.c
 create mode 100644 
tools/testing/selftests/drivers/net/mlxsw/spectrum-2/tc_police_scale.sh
 create mode 100644 
tools/testing/selftests/drivers/net/mlxsw/spectrum/tc_police_scale.sh
 create mode 100755 tools/testing/selftests/drivers/net/mlxsw/tc_police_occ.sh
 create mode 100644 tools/testing/selftests/drivers/net/mlxsw/tc_police_scale.sh
 create mode 100755 tools/testing/selftests/net/forwarding/tc_police.sh

-- 
2.26.2

Reply via email to