This brings nd6_free() in line with arptfree() and adds a userland
notification for free.
ok?
Index: netinet6/nd6.c
===================================================================
RCS file: /cvs/src/sys/netinet6/nd6.c,v
retrieving revision 1.154
diff -u -p -r1.154 nd6.c
--- netinet6/nd6.c 18 Sep 2015 14:26:22 -0000 1.154
+++ netinet6/nd6.c 25 Sep 2015 11:05:38 -0000
@@ -787,7 +787,6 @@ nd6_is_addr_neighbor(struct sockaddr_in6
struct llinfo_nd6 *
nd6_free(struct rtentry *rt, int gc)
{
- struct rt_addrinfo info;
struct llinfo_nd6 *ln = (struct llinfo_nd6 *)rt->rt_llinfo, *next;
struct in6_addr in6 = satosin6(rt_key(rt))->sin6_addr;
struct nd_defrouter *dr;
@@ -879,11 +878,7 @@ nd6_free(struct rtentry *rt, int gc)
* caches, and disable the route entry not to be used in already
* cached routes.
*/
- bzero(&info, sizeof(info));
- info.rti_info[RTAX_DST] = rt_key(rt);
- info.rti_info[RTAX_NETMASK] = rt_mask(rt);
- rtrequest1(RTM_DELETE, &info, rt->rt_priority, NULL,
- rt->rt_ifp->if_rdomain);
+ rtdeletemsg(rt, rt->rt_ifp->if_rdomain);
splx(s);
return (next);