[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20200427151310.3950411-1-idosch@idosch.org>
Date: Mon, 27 Apr 2020 18:12:57 +0300
From: Ido Schimmel <idosch@...sch.org>
To: netdev@...r.kernel.org
Cc: davem@...emloft.net, jiri@...lanox.com, mlxsw@...lanox.com,
Ido Schimmel <idosch@...lanox.com>
Subject: [PATCH net-next 00/13] mlxsw: Rework matchall offloading plumbing
From: Ido Schimmel <idosch@...lanox.com>
Jiri says:
Currently the matchall and flower are handled by registering separate
callbacks in mlxsw. That leads to faulty indication "in_hw_count 2" in
filter show command for every inserted flower filter. That happens
because matchall callback just blindly returns 0 for it and it is
wrongly accounted for as "the offloader".
I inspected different ways to fix this problem. The only clean solution
is to rework handling of matchall in mlxsw a bit. The driver newely
registers one callback for bound block which is called for both matchall
and flower filter insertions.
On the way, iron out the matchall code a bit, push it into a separate
file etc.
Jiri Pirko (13):
mlxsw: spectrum_acl: Move block helpers into inline header functions
mlxsw: spectrum: Rename acl_block to flow_block
mlxsw: spectrum: Push flow_block related functions into a separate
file
mlxsw: spectrum: Push matchall bits into a separate file
mlxsw: spectrum_acl: Use block variable in mlxsw_sp_acl_rule_del()
mlxsw: spectrum_matchall: Pass mall_entry as arg to
mlxsw_sp_mall_port_mirror_add()
mlxsw: spectrum_matchall: Pass mall_entry as arg to
mlxsw_sp_mall_port_sample_add()
mlxsw: spectrum_matchall: Move ingress indication into mall_entry
mlxsw: spectrum_matchall: Push per-port rule add/del into separate
functions
mlxsw: spectrum: Avoid copying sample values and use RCU pointer
direcly instead
mlxsw: spectrum_matchall: Process matchall events from the same cb as
flower
mlxsw: spectrum: Move flow offload binding into spectrum_flow.c
selftests: forwarding: tc_actions.sh: add matchall mirror test
drivers/net/ethernet/mellanox/mlxsw/Makefile | 1 +
.../net/ethernet/mellanox/mlxsw/spectrum.c | 463 +-----------------
.../net/ethernet/mellanox/mlxsw/spectrum.h | 167 ++++---
.../mellanox/mlxsw/spectrum2_mr_tcam.c | 14 +-
.../ethernet/mellanox/mlxsw/spectrum_acl.c | 207 +-------
.../ethernet/mellanox/mlxsw/spectrum_flow.c | 303 ++++++++++++
.../ethernet/mellanox/mlxsw/spectrum_flower.c | 24 +-
.../mellanox/mlxsw/spectrum_matchall.c | 278 +++++++++++
.../selftests/net/forwarding/tc_actions.sh | 26 +-
9 files changed, 756 insertions(+), 727 deletions(-)
create mode 100644 drivers/net/ethernet/mellanox/mlxsw/spectrum_flow.c
create mode 100644 drivers/net/ethernet/mellanox/mlxsw/spectrum_matchall.c
--
2.24.1
Powered by blists - more mailing lists