Index: sys/netinet6/nd6.c =================================================================== --- sys/netinet6/nd6.c +++ sys/netinet6/nd6.c @@ -906,7 +906,7 @@ psrc = nd6_llinfo_get_holdsrc(ln, &src); LLE_FREE_LOCKED(ln); ln = NULL; - nd6_ns_output(ifp, psrc, pdst, dst, NULL); + nd6_ns_output_fib(ifp, psrc, pdst, dst, NULL, ifp->if_fib); } if (ln != NULL) @@ -2423,7 +2423,7 @@ } LLE_WUNLOCK(lle); if (send_ns != 0) - nd6_ns_output(ifp, psrc, NULL, &dst->sin6_addr, NULL); + nd6_ns_output_fib(ifp, psrc, NULL, &dst->sin6_addr, NULL, ifp->if_fib); return (EWOULDBLOCK); } Index: sys/netinet6/nd6_nbr.c =================================================================== --- sys/netinet6/nd6_nbr.c +++ sys/netinet6/nd6_nbr.c @@ -600,7 +600,7 @@ const struct in6_addr *daddr6, const struct in6_addr *taddr6,uint8_t *nonce) { - nd6_ns_output_fib(ifp, saddr6, daddr6, taddr6, nonce, RT_DEFAULT_FIB); + nd6_ns_output_fib(ifp, saddr6, daddr6, taddr6, nonce, ifp->if_fib); } #endif /* @@ -1532,8 +1532,8 @@ * should work well in almost all cases. */ } - nd6_ns_output(ifp, NULL, NULL, &ia->ia_addr.sin6_addr, - (uint8_t *)&dp->dad_nonce[0]); + nd6_ns_output_fib(ifp, NULL, NULL, &ia->ia_addr.sin6_addr, + (uint8_t *)&dp->dad_nonce[0], ifp->if_fib); } static void