[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20181210071056.3836-1-idosch@mellanox.com>
Date: Mon, 10 Dec 2018 07:11:31 +0000
From: Ido Schimmel <idosch@...lanox.com>
To: "netdev@...r.kernel.org" <netdev@...r.kernel.org>
CC: "davem@...emloft.net" <davem@...emloft.net>,
Jiri Pirko <jiri@...lanox.com>, Nir Dotan <nird@...lanox.com>,
Petr Machata <petrm@...lanox.com>,
Ido Schimmel <idosch@...lanox.com>
Subject: [PATCH net-next 0/9] mlxsw: Add Spectrum-2 multicast routing support
Nir says:
In Spectrum the firmware provided an abstraction for multicast routing
on top of the policy engine. In Spectrum-2 this is no longer the case
and the driver must interact directly with the policy engine in order to
program multicast routes. Every route is written as an ACL rule, its
priority set according to route type (*,G) or (S,G) and its action is an
appropriate multicast routing action. Multicast routes are written to a
specific ACL group which is bound to the appropriate IP protocol
IPv4/IPv6.
Patch #1 adds PEMRBT register needed to declare which ACL group is
dedicated for each IP protocol multicast routing function.
Patch #2 Changes initialization order and puts ACL before router as
multicast router now uses ACL module.
Patch #3 adds Spectrum-2 ACL keys needed for multicast route matching.
Patch #4 adds another ACL profile - in addition to existing flower
profile - which allows the multicast routing module to program rules
directly into the ACL block.
Patch #5 adds the ability to update ACL rules' action, since multicast
routes actions may be updated after being configured.
Patch #6 separates rule creation operation and rule action creation
operation as in multicast router the action is created before the route
is inserted.
Patch #7 sharpens priority handling in Spectrum-2, to ensure incorrect
values are not set to rule's priority.
Patch #8 adds the implementation of multicast routing for IPv4 and IPv6
over existing ACL rule programming
Finally, patch #9 adds a test for IPv4/IPv6 multicast routing.
Nir Dotan (9):
mlxsw: reg: Add Policy Engine Multicast Router Binding Table Register
mlxsw: spectrum: Change stage of ACL initialization
mlxsw: spectrum_acl: Add Spectrum-2 keys
mlxsw: spectrum_acl: Add multicast router profile operations
mlxsw: spectrum_acl: Add replace rule action operation
mlxsw: spectrum_acl: Support rule creation without action creation
mlxsw: spectrum_acl: Limit priority value
mlxsw: spectrum_router: Add Multicast routing support for Spectrum-2
selftests: forwarding: Add multicast routing test
.../mellanox/mlxsw/core_acl_flex_keys.h | 4 +
drivers/net/ethernet/mellanox/mlxsw/reg.h | 38 +++
.../net/ethernet/mellanox/mlxsw/spectrum.c | 18 +-
.../net/ethernet/mellanox/mlxsw/spectrum.h | 13 +-
.../mellanox/mlxsw/spectrum1_acl_tcam.c | 12 +-
.../mellanox/mlxsw/spectrum2_acl_tcam.c | 18 +
.../mellanox/mlxsw/spectrum2_mr_tcam.c | 281 +++++++++++++++-
.../ethernet/mellanox/mlxsw/spectrum_acl.c | 31 +-
.../mellanox/mlxsw/spectrum_acl_atcam.c | 61 ++++
.../mellanox/mlxsw/spectrum_acl_ctcam.c | 33 ++
.../mellanox/mlxsw/spectrum_acl_flex_keys.c | 6 +
.../mellanox/mlxsw/spectrum_acl_tcam.c | 171 +++++++++-
.../mellanox/mlxsw/spectrum_acl_tcam.h | 13 +
.../ethernet/mellanox/mlxsw/spectrum_flower.c | 2 +-
tools/testing/selftests/net/forwarding/lib.sh | 2 +
.../net/forwarding/router_multicast.sh | 311 ++++++++++++++++++
16 files changed, 996 insertions(+), 18 deletions(-)
create mode 100755 tools/testing/selftests/net/forwarding/router_multicast.sh
--
2.19.1
Powered by blists - more mailing lists