Message ID | 20201110094900.1920158-1-idosch@idosch.org (mailing list archive) |
---|---|
Headers | show |
Series | mlxsw: spectrum: Prepare for XM implementation - prefix insertion and removal | expand |
On Tue, 10 Nov 2020 11:48:45 +0200 Ido Schimmel wrote: > 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. Applied, thanks!
From: Ido Schimmel <idosch@nvidia.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(-)