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-idosch@xxxxxxxxxx/ [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