[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20200715082733.429610-1-idosch@idosch.org>
Date: Wed, 15 Jul 2020 11:27:22 +0300
From: Ido Schimmel <idosch@...sch.org>
To: netdev@...r.kernel.org
Cc: davem@...emloft.net, kuba@...nel.org, jiri@...lanox.com,
petrm@...lanox.com, mlxsw@...lanox.com,
Ido Schimmel <idosch@...lanox.com>
Subject: [PATCH net-next 00/11] mlxsw: Offload tc police action
From: Ido Schimmel <idosch@...lanox.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
Powered by blists - more mailing lists