This patchset was split from [1] and includes non-functional changes
aimed at making it easier to add additional netlink attributes later on.
Future extensions are available here [2].

The idea behind these patches is to create an MDB configuration
structure into which netlink messages are parsed into. The structure is
then passed in the entry creation / deletion call chain instead of
passing the netlink attributes themselves. The same pattern is used by
other rtnetlink objects such as routes and nexthops.

I initially tried to extend the current code, but it proved to be too
difficult, which is why I decided to refactor it to the extensible and
familiar pattern used by other rtnetlink objects.

Tested using existing selftests and using a new selftest that will be
submitted together with the planned extensions.

v2:
* Patch #1: Remove 'skb' argument from br_mdb_config_init().
* Patch #1: Mark 'nlh' argument as 'const'.
* Patch #4: Pass 'cfg' as 'const'.
* Patch #5: Pass 'cfg' as 'const'.
* Patch #9: New patch.

[1] https://lore.kernel.org/netdev/20221018120420.561846-1-ido...@nvidia.com/
[2] https://github.com/idosch/linux/commits/submit/mdb_v1

Ido Schimmel (9):
  bridge: mcast: Centralize netlink attribute parsing
  bridge: mcast: Remove redundant checks
  bridge: mcast: Use MDB configuration structure where possible
  bridge: mcast: Propagate MDB configuration structure further
  bridge: mcast: Use MDB group key from configuration structure
  bridge: mcast: Remove br_mdb_parse()
  bridge: mcast: Move checks out of critical section
  bridge: mcast: Remove redundant function arguments
  bridge: mcast: Constify 'group' argument in
    br_multicast_new_port_group()

 net/bridge/br_mdb.c       | 312 ++++++++++++++++++--------------------
 net/bridge/br_multicast.c |   2 +-
 net/bridge/br_private.h   |  10 +-
 3 files changed, 159 insertions(+), 165 deletions(-)

-- 
2.37.3

Reply via email to