Re: [net-next v2 09/11] net: bridge: mcast: split multicast router state for IPv4 and IPv6
From: Nikolay Aleksandrov
Date: Tue May 11 2021 - 05:33:21 EST
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.
>