Merge branch 'mlxsw-Add-Spectrum-2-multicast-routing-support'
authorDavid S. Miller <davem@davemloft.net>
Wed, 12 Dec 2018 07:01:34 +0000 (23:01 -0800)
committerDavid S. Miller <davem@davemloft.net>
Wed, 12 Dec 2018 07:01:34 +0000 (23:01 -0800)
commit3f9b7eeea0268eba57e2c18b48a9621f38c66101
tree837a93287c1714bbd80c573e4d04284d64a9866b
parente1a76515b0c20c3477200c1345c477cc0e68c4ad
parent6d4efada3b823b3e9019e50c40114abca43a677b
Merge branch 'mlxsw-Add-Spectrum-2-multicast-routing-support'

Ido Schimmel says:

====================
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.
====================

Signed-off-by: David S. Miller <davem@davemloft.net>