1
0
mirror of https://git.FreeBSD.org/src.git synced 2024-12-16 10:20:30 +00:00

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
This commit is contained in:
Andrey V. Elsukov 2015-05-29 10:24:16 +00:00
parent 6b6b47d0e3
commit 4e870f943f
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=283696
2 changed files with 2 additions and 3 deletions

View File

@ -1279,6 +1279,7 @@ in6_broadcast_ifa(struct ifnet *ifp, struct in6_aliasreq *ifra,
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);
}

View File

@ -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));