svn commit: r283696 - head/sys/netinet6
Andrey V. Elsukov
ae at FreeBSD.org
Fri May 29 10:24:18 UTC 2015
Author: ae
Date: Fri May 29 10:24:16 2015
New Revision: 283696
URL: https://svnweb.freebsd.org/changeset/base/283696
Log:
Move RTM announces into generic code to be independent from Layer2 code.
This fixes bug introduced in 274988, when announces about new addresses
don't sent for tunneling interfaces.
Reported by: tuexen@
MFC after: 1 week
Modified:
head/sys/netinet6/in6.c
head/sys/netinet6/nd6.c
Modified: head/sys/netinet6/in6.c
==============================================================================
--- head/sys/netinet6/in6.c Fri May 29 10:07:20 2015 (r283695)
+++ head/sys/netinet6/in6.c Fri May 29 10:24:16 2015 (r283696)
@@ -1279,6 +1279,7 @@ in6_broadcast_ifa(struct ifnet *ifp, str
nd6_dad_start((struct ifaddr *)ia, delay);
}
+ in6_newaddrmsg(ia, RTM_ADD);
ifa_free(&ia->ia_ifa);
return (error);
}
@@ -1327,6 +1328,7 @@ in6_purgeaddr(struct ifaddr *ifa)
ia->ia_flags &= ~IFA_ROUTE;
}
+ in6_newaddrmsg(ia, RTM_DELETE);
in6_unlink_ifa(ia, ifp);
}
Modified: head/sys/netinet6/nd6.c
==============================================================================
--- head/sys/netinet6/nd6.c Fri May 29 10:07:20 2015 (r283695)
+++ head/sys/netinet6/nd6.c Fri May 29 10:24:16 2015 (r283696)
@@ -2185,7 +2185,6 @@ nd6_add_ifa_lle(struct in6_ifaddr *ia)
ln->la_expire = 0; /* for IPv6 this means permanent */
ln->ln_state = ND6_LLINFO_REACHABLE;
LLE_WUNLOCK(ln);
- in6_newaddrmsg(ia, RTM_ADD);
return (0);
}
@@ -2205,8 +2204,6 @@ nd6_rem_ifa_lle(struct in6_ifaddr *ia)
struct sockaddr_in6 mask, addr;
struct ifnet *ifp;
- in6_newaddrmsg(ia, RTM_DELETE);
-
ifp = ia->ia_ifa.ifa_ifp;
memcpy(&addr, &ia->ia_addr, sizeof(ia->ia_addr));
memcpy(&mask, &ia->ia_prefixmask, sizeof(ia->ia_prefixmask));
More information about the svn-src-all
mailing list