Thread (24 messages) 24 messages, 2 authors, 2021-05-11

Re: [net-next v2 09/11] net: bridge: mcast: split multicast router state for IPv4 and IPv6

From: Nikolay Aleksandrov <hidden>
Date: 2021-05-11 09:33:21
Also in: batman, bridge, lkml

On 11/05/2021 12:29, Nikolay Aleksandrov wrote:
On 09/05/2021 22:45, Linus Lüssing wrote:
quoted
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 <redacted>
---
 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]
quoted
+#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.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help