Message ID | 1311543874-16901-1-git-send-email-yoshfuji@linux-ipv6.org |
---|---|
State | Accepted, archived |
Delegated to: | David Miller |
Headers | show |
From: yoshfuji@linux-ipv6.org Date: Mon, 25 Jul 2011 06:44:34 +0900 > From: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org> > > Original commit 2bda8a0c8af... "Disable router anycast > address for /127 prefixes" says: > > | No need for matching code in addrconf_leave_anycast() as it > | will silently ignore any attempt to leave an unknown anycast > | address. > > After analysis, because 1) we may add two or more prefixes on the > same interface, or 2)user may have manually joined that anycast, > we may hit chances to have anycast address which as if we had > generated one by /127 prefix and we should not leave from subnet- > router anycast address unconditionally. > > CC: Bjørn Mork <bjorn@mork.no> > CC: Brian Haley <brian.haley@hp.com> > 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/addrconf.c b/net/ipv6/addrconf.c index a06c53c..a55500c 100644 --- a/net/ipv6/addrconf.c +++ b/net/ipv6/addrconf.c @@ -1481,6 +1481,8 @@ static void addrconf_join_anycast(struct inet6_ifaddr *ifp) static void addrconf_leave_anycast(struct inet6_ifaddr *ifp) { struct in6_addr addr; + if (ifp->prefix_len == 127) /* RFC 6164 */ + return; ipv6_addr_prefix(&addr, &ifp->addr, ifp->prefix_len); if (ipv6_addr_any(&addr)) return;