Message ID | 51165D66.5090200@linux-ipv6.org |
---|---|
State | Accepted, archived |
Delegated to: | David Miller |
Headers | show |
On Sat, Feb 09, 2013 at 11:29:58PM +0900, YOSHIFUJI Hideaki wrote: > RFC4291 (IPv6 addressing architecture) says that interface-Local scope > spans only a single interface on a node. We should not join L2 device > multicast list for addresses in interface-local (or smaller) scope. > > Signed-off-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org> Had this patch in my tree while testing and it is definitely the right thing to do: Acked-by: Hannes Frederic Sowa <hannes@stressinduktion.org> -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
From: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org> Date: Sat, 09 Feb 2013 23:29:58 +0900 > RFC4291 (IPv6 addressing architecture) says that interface-Local scope > spans only a single interface on a node. We should not join L2 device > multicast list for addresses in interface-local (or smaller) scope. > > Signed-off-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org> Applied. -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/net/ipv6/mcast.c b/net/ipv6/mcast.c index e5de4855..3a2849f 100644 --- a/net/ipv6/mcast.c +++ b/net/ipv6/mcast.c @@ -661,6 +661,10 @@ static void igmp6_group_added(struct ifmcaddr6 *mc) struct net_device *dev = mc->idev->dev; char buf[MAX_ADDR_LEN]; + if (IPV6_ADDR_MC_SCOPE(&mc->mca_addr) < + IPV6_ADDR_SCOPE_LINKLOCAL) + return; + spin_lock_bh(&mc->mca_lock); if (!(mc->mca_flags&MAF_LOADED)) { mc->mca_flags |= MAF_LOADED; @@ -687,6 +691,10 @@ static void igmp6_group_dropped(struct ifmcaddr6 *mc) struct net_device *dev = mc->idev->dev; char buf[MAX_ADDR_LEN]; + if (IPV6_ADDR_MC_SCOPE(&mc->mca_addr) < + IPV6_ADDR_SCOPE_LINKLOCAL) + return; + spin_lock_bh(&mc->mca_lock); if (mc->mca_flags&MAF_LOADED) { mc->mca_flags &= ~MAF_LOADED;
RFC4291 (IPv6 addressing architecture) says that interface-Local scope spans only a single interface on a node. We should not join L2 device multicast list for addresses in interface-local (or smaller) scope. Signed-off-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org> --- net/ipv6/mcast.c | 8 ++++++++ 1 file changed, 8 insertions(+)