mbox series

[net-next,00/14] mlxsw: Preparations for resilient nexthop groups

Message ID 20210322155855.3164151-1-idosch@idosch.org (mailing list archive)
Headers show
Series mlxsw: Preparations for resilient nexthop groups | expand

Message

Ido Schimmel March 22, 2021, 3:58 p.m. UTC
From: Ido Schimmel <idosch@nvidia.com>

This patchset contains preparations for resilient nexthop groups support in
mlxsw. A follow-up patchset will add support and selftests. Most of the
patches are trivial and small to make review easier.

Patchset overview:

Patch #1 removes RTNL assertion in nexthop notifier block since it is
not needed. The assertion will trigger when mlxsw starts processing
notifications related to resilient groups as not all are emitted with
RTNL held.

Patches #2-#9 gradually add support for nexthops with trap action. Up
until now mlxsw did not program nexthops whose neighbour entry was not
resolved. This will not work with resilient groups as their size is
fixed and the nexthop mapped to each bucket is determined by the nexthop
code. Therefore, nexthops whose neighbour entry is not resolved will be
programmed to trap packets to the CPU in order to trigger neighbour
resolution.

Patch #10 is a non-functional change to allow for code reuse between
regular nexthop groups and resilient ones.

Patch #11 avoids unnecessary neighbour updates in hardware. See the
commit message for a detailed explanation.

Patches #12-#14 add support for additional nexthop group sizes that are
supported by Spectrum-{2,3} ASICs.

Ido Schimmel (14):
  mlxsw: spectrum_router: Remove RTNL assertion
  mlxsw: spectrum_router: Consolidate nexthop helpers
  mlxsw: spectrum_router: Only provide MAC address for valid nexthops
  mlxsw: spectrum_router: Adjust comments on nexthop fields
  mlxsw: spectrum_router: Introduce nexthop action field
  mlxsw: spectrum_router: Prepare for nexthops with trap action
  mlxsw: spectrum_router: Add nexthop trap action support
  mlxsw: spectrum_router: Rename nexthop update function to reflect its
    type
  mlxsw: spectrum_router: Encapsulate nexthop update in a function
  mlxsw: spectrum_router: Break nexthop group entry validation to a
    separate function
  mlxsw: spectrum_router: Avoid unnecessary neighbour updates
  mlxsw: spectrum_router: Create per-ASIC router operations
  mlxsw: spectrum_router: Encode adjacency group size ranges in an array
  mlxsw: spectrum_router: Add Spectrum-{2, 3} adjacency group size
    ranges

 .../net/ethernet/mellanox/mlxsw/spectrum.c    |   6 +-
 .../net/ethernet/mellanox/mlxsw/spectrum.h    |   8 +-
 .../ethernet/mellanox/mlxsw/spectrum_dpipe.c  |  19 +-
 .../ethernet/mellanox/mlxsw/spectrum_router.c | 277 +++++++++++++-----
 .../ethernet/mellanox/mlxsw/spectrum_router.h |   9 +-
 5 files changed, 218 insertions(+), 101 deletions(-)

Comments

patchwork-bot+netdevbpf@kernel.org March 22, 2021, 8:50 p.m. UTC | #1
Hello:

This series was applied to netdev/net-next.git (refs/heads/master):

On Mon, 22 Mar 2021 17:58:41 +0200 you wrote:
> From: Ido Schimmel <idosch@nvidia.com>
> 
> This patchset contains preparations for resilient nexthop groups support in
> mlxsw. A follow-up patchset will add support and selftests. Most of the
> patches are trivial and small to make review easier.
> 
> Patchset overview:
> 
> [...]

Here is the summary with links:
  - [net-next,01/14] mlxsw: spectrum_router: Remove RTNL assertion
    https://git.kernel.org/netdev/net-next/c/08c99b92d76c
  - [net-next,02/14] mlxsw: spectrum_router: Consolidate nexthop helpers
    https://git.kernel.org/netdev/net-next/c/26df5acc275b
  - [net-next,03/14] mlxsw: spectrum_router: Only provide MAC address for valid nexthops
    https://git.kernel.org/netdev/net-next/c/c6a5011bec09
  - [net-next,04/14] mlxsw: spectrum_router: Adjust comments on nexthop fields
    https://git.kernel.org/netdev/net-next/c/248136fa251a
  - [net-next,05/14] mlxsw: spectrum_router: Introduce nexthop action field
    https://git.kernel.org/netdev/net-next/c/031d5c160656
  - [net-next,06/14] mlxsw: spectrum_router: Prepare for nexthops with trap action
    https://git.kernel.org/netdev/net-next/c/1be2361e3ca7
  - [net-next,07/14] mlxsw: spectrum_router: Add nexthop trap action support
    https://git.kernel.org/netdev/net-next/c/fc199d7c08c8
  - [net-next,08/14] mlxsw: spectrum_router: Rename nexthop update function to reflect its type
    https://git.kernel.org/netdev/net-next/c/424603ccdd5e
  - [net-next,09/14] mlxsw: spectrum_router: Encapsulate nexthop update in a function
    https://git.kernel.org/netdev/net-next/c/29017c643476
  - [net-next,10/14] mlxsw: spectrum_router: Break nexthop group entry validation to a separate function
    https://git.kernel.org/netdev/net-next/c/40f5429fce69
  - [net-next,11/14] mlxsw: spectrum_router: Avoid unnecessary neighbour updates
    https://git.kernel.org/netdev/net-next/c/c1efd50002c0
  - [net-next,12/14] mlxsw: spectrum_router: Create per-ASIC router operations
    https://git.kernel.org/netdev/net-next/c/d354fdd923e7
  - [net-next,13/14] mlxsw: spectrum_router: Encode adjacency group size ranges in an array
    https://git.kernel.org/netdev/net-next/c/164fa130dd16
  - [net-next,14/14] mlxsw: spectrum_router: Add Spectrum-{2, 3} adjacency group size ranges
    https://git.kernel.org/netdev/net-next/c/ea037b236a05

You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html