On 11/05/2021 12:29, Nikolay Aleksandrov wrote: > On 09/05/2021 22:45, Linus Lüssing wrote: >> A multicast router for IPv4 does not imply that the same host also is a >> multicast router for IPv6 and vice versa. >> >> To reduce multicast traffic when a host is only a multicast router for >> one of these two protocol families, keep router state for IPv4 and IPv6 >> separately. Similar to how querier state is kept separately. >> >> For backwards compatibility for netlink and switchdev notifications >> these two will still only notify if a port switched from either no >> IPv4/IPv6 multicast router to any IPv4/IPv6 multicast router or the >> other way round. However a full netlink MDB router dump will now also >> include a multicast router timeout for both IPv4 and IPv6. >> >> Signed-off-by: Linus Lüssing <linus.luessing@xxxxxxxxx> >> --- >> net/bridge/br_forward.c | 8 ++ >> net/bridge/br_mdb.c | 10 ++ >> net/bridge/br_multicast.c | 197 ++++++++++++++++++++++++++++++++++---- >> net/bridge/br_private.h | 6 +- >> 4 files changed, 201 insertions(+), 20 deletions(-) [snip] >> +#else >> +static inline void br_ip6_multicast_add_router(struct net_bridge *br, >> + struct net_bridge_port *port) >> +{ >> +} > > Actually that goes for multicast_add_router, too. > err, my bad - multicast_add_router is fine as is, sorry about that > I'm saying all this because soon I'll be adding per-vlan multicast router support > and these will be reusable there without any modification if they can take any list. > Also it'll be easier to maintain one set of functions instead of multiple identical ones. >