[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20201110094900.1920158-1-idosch@idosch.org>
Date: Tue, 10 Nov 2020 11:48:45 +0200
From: Ido Schimmel <idosch@...sch.org>
To: netdev@...r.kernel.org
Cc: davem@...emloft.net, kuba@...nel.org, jiri@...dia.com,
mlxsw@...dia.com, Ido Schimmel <idosch@...dia.com>
Subject: [PATCH net-next 00/15] mlxsw: spectrum: Prepare for XM implementation - prefix insertion and removal
From: Ido Schimmel <idosch@...dia.com>
Jiri says:
This is a preparation patchset for follow-up support of boards with
extended mezzanine (XM), which is going to allow extended (scale-wise)
router offload.
XM requires a separate PRM register named XMDR to be used instead of
RALUE to insert/update/remove FIB entries. Therefore, this patchset
extends the previously introduces low-level ops to be able to have
XM-specific FIB entry config implementation.
Currently the existing original RALUE implementation is moved to "basic"
low-level ops.
Unlike legacy router, insertion/update/removal of FIB entries into XM
could be done in bulks up to 4 items in a single PRM register write.
That is why this patchset implements "an op context", that allows the
future XM ops implementation to squash multiple FIB events to single
register write. For that, the way in which the FIB events are processed
by the work queue has to be changed.
The conversion from 1:1 FIB event - work callback call to event queue is
implemented in patch #3.
Patch #4 introduces "an op context" that will allow in future to squash
multiple FIB events into one XMDR register write. Patch #12 converts it
from stack to be allocated per instance.
Existing RALUE manipulations are pushed to ops in patch #10.
Patch #13 is introducing a possibility for low-level implementation to
have per FIB entry private memory.
The rest of the patches are either cosmetics or smaller preparations.
Jiri Pirko (15):
mlxsw: spectrum_router: Pass non-register proto enum to
__mlxsw_sp_router_set_abort_trap()
mlxsw: spectrum_router: Use RALUE-independent op arg
mlxsw: spectrum_router: Introduce FIB event queue instead of separate
works
mlxsw: spectrum: Propagate context from work handler containing RALUE
payload
mlxsw: spectrum_router: Push out RALUE pack into separate helper
mlxsw: spectrum: Export RALUE pack helper and use it from IPIP
mlxsw: spectrum_router: Pass destination IP as a pointer to
mlxsw_reg_ralue_pack4()
mlxsw: reg: Allow to pass NULL pointer to mlxsw_reg_ralue_pack4/6()
mlxsw: spectrum_router: Use RALUE pack helper from abort function
mlxsw: spectrum: Push RALUE packing and writing into low-level router
ops
mlxsw: spectrum_router: Prepare work context for possible bulking
mlxsw: spectrum_router: Have FIB entry op context allocated for the
instance
mlxsw: spectrum_router: Introduce fib_entry priv for low-level ops
mlxsw: spectrum_router: Track FIB entry committed state and skip
uncommitted on delete
mlxsw: spectrum_router: Introduce FIB entry update op
drivers/net/ethernet/mellanox/mlxsw/reg.h | 8 +-
.../ethernet/mellanox/mlxsw/spectrum_ipip.c | 34 +-
.../ethernet/mellanox/mlxsw/spectrum_ipip.h | 7 +-
.../ethernet/mellanox/mlxsw/spectrum_router.c | 761 +++++++++++++-----
.../ethernet/mellanox/mlxsw/spectrum_router.h | 59 ++
5 files changed, 635 insertions(+), 234 deletions(-)
--
2.26.2
Powered by blists - more mailing lists