netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] bridge: prevent flooding IPv6 packets that do not have a listener
@ 2013-06-21 11:53 Linus Lüssing
  2013-07-22 20:05 ` Linus Lüssing
  0 siblings, 1 reply; 2+ messages in thread
From: Linus Lüssing @ 2013-06-21 11:53 UTC (permalink / raw)
  To: bridge
  Cc: Stephen Hemminger, netdev, Linus Lüssing, David S. Miller,
	linux-kernel

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 <linus.luessing@web.de>
---
 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

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [PATCH] bridge: prevent flooding IPv6 packets that do not have a listener
  2013-06-21 11:53 [PATCH] bridge: prevent flooding IPv6 packets that do not have a listener Linus Lüssing
@ 2013-07-22 20:05 ` Linus Lüssing
  0 siblings, 0 replies; 2+ messages in thread
From: Linus Lüssing @ 2013-07-22 20:05 UTC (permalink / raw)
  To: Herbert Xu
  Cc: netdev, bridge, linux-kernel, Stephen Hemminger,
	Linus Lüssing, David S. Miller

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

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2013-07-22 20:05 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-06-21 11:53 [PATCH] bridge: prevent flooding IPv6 packets that do not have a listener Linus Lüssing
2013-07-22 20:05 ` Linus Lüssing

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).