2013-06-21 11:54:23

by Linus Lüssing

[permalink] [raw]
Subject: [PATCH] bridge: prevent flooding IPv6 packets that do not have a listener

Currently if there is no listener for a certain group then IPv6 packets
for that group are flooded on all ports, even though there might be no
host and router interested in it on a port.

With this commit they are only forwarded to ports with a multicast
router.

Just like commit bd4265fe36 ("bridge: Only flood unregistered groups
to routers") did for IPv4, let's do the same for IPv6 with the same
reasoning.

Signed-off-by: Linus Lüssing <[email protected]>
---
net/bridge/br_multicast.c | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/net/bridge/br_multicast.c b/net/bridge/br_multicast.c
index 81f2389..8bdfaf5 100644
--- a/net/bridge/br_multicast.c
+++ b/net/bridge/br_multicast.c
@@ -1465,8 +1465,14 @@ static int br_multicast_ipv6_rcv(struct net_bridge *br,
* - MLD has always Router Alert hop-by-hop option
* - But we do not support jumbrograms.
*/
- if (ip6h->version != 6 ||
- ip6h->nexthdr != IPPROTO_HOPOPTS ||
+ if (ip6h->version != 6)
+ return 0;
+
+ /* Prevent flooding this packet if there is no listener present */
+ if (ipv6_is_transient_multicast(&ip6h->daddr))
+ BR_INPUT_SKB_CB(skb)->mrouters_only = 1;
+
+ if (ip6h->nexthdr != IPPROTO_HOPOPTS ||
ip6h->payload_len == 0)
return 0;

--
1.7.10.4


2013-07-22 20:04:37

by Linus Lüssing

[permalink] [raw]
Subject: Re: [PATCH] bridge: prevent flooding IPv6 packets that do not have a listener

Hi Herbert,

Were there any reasons I might not be aware of which prevented you
from adding the same change you introduced in
"bridge: Only flood unregistered groups to routers" for IPv6, too?

If not and if no one else comes up with any objection, then I'd
still be happy if this patch could find its way upstream :).

Cheers, Linus