bridge: Only flood unregistered groups to routers
The bridge currently floods packets to groups that we have never seen before to all ports. This is not required by RFC4541 and in fact it is not desirable in environment where traffic to unregistered group is always present. This patch changes the behaviour so that we only send traffic to unregistered groups to ports marked as routers. The user can always force flooding behaviour to any given port by marking it as a router. Note that this change does not apply to traffic to 224.0.0.X as traffic to those groups must always be flooded to all ports. Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Родитель
b997d79a91
Коммит
bd4265fe36
|
@ -1379,8 +1379,11 @@ static int br_multicast_ipv4_rcv(struct net_bridge *br,
|
|||
if (unlikely(ip_fast_csum((u8 *)iph, iph->ihl)))
|
||||
return -EINVAL;
|
||||
|
||||
if (iph->protocol != IPPROTO_IGMP)
|
||||
if (iph->protocol != IPPROTO_IGMP) {
|
||||
if ((iph->daddr & IGMP_LOCAL_GROUP_MASK) != IGMP_LOCAL_GROUP)
|
||||
BR_INPUT_SKB_CB(skb)->mrouters_only = 1;
|
||||
return 0;
|
||||
}
|
||||
|
||||
len = ntohs(iph->tot_len);
|
||||
if (skb->len < len || len < ip_hdrlen(skb))
|
||||
|
|
Загрузка…
Ссылка в новой задаче