Home | History | Annotate | Download | only in netinet6

Lines Matching refs:ifa

111 	struct ifaddr *ifa = NULL;
207 ifa = (struct ifaddr *)in6ifa_ifpwithaddr(ifp, &daddr6);
208 if (ifa && (((struct in6_ifaddr *)ifa)->ia6_flags & IN6_IFF_ANYCAST))
227 ifa = carp_iamatch6(ifp->if_carp, &taddr6);
228 if (ifa != NULL) {
229 ifa_acquire(ifa, &psref_ia);
230 if (ifa->ifa_ifp && ifa->ifa_ifp != ifp) {
231 ifpc = ifa->ifa_ifp;
238 ifa = NULL;
239 if (!ifa)
240 ifa = (struct ifaddr *)in6ifa_ifpwithaddr_psref(ifp, &taddr6,
243 ifa = (struct ifaddr *)in6ifa_ifpwithaddr_psref(ifp, &taddr6,
248 if (ifa == NULL) {
260 ifa = (struct ifaddr *)in6ifa_ifpforlinklocal_psref(ifp,
262 if (ifa) {
271 if (ifa == NULL) {
279 myaddr6 = *IFA_IN6(ifa);
280 anycast = ((struct in6_ifaddr *)ifa)->ia6_flags & IN6_IFF_ANYCAST;
281 tentative = ((struct in6_ifaddr *)ifa)->ia6_flags & IN6_IFF_TENTATIVE;
282 if (((struct in6_ifaddr *)ifa)->ia6_flags & IN6_IFF_DUPLICATED)
328 nd6_dad_input(ifa, ndopts.nd_opts_nonce, sdlp);
339 if (nd6_dad_ownnonce(ifa, ndopts.nd_opts_nonce))
343 ifa_release(ifa, &psref_ia);
344 ifa = NULL;
374 ifa_release(ifa, &psref_ia);
387 ifa_release(ifa, &psref_ia);
623 struct ifaddr *ifa;
701 ifa = (struct ifaddr *)in6ifa_ifpwithaddr_psref(ifp, &taddr6, &psref_ia);
712 if (ifa) {
713 if (((struct in6_ifaddr *)ifa)->ia6_flags & IN6_IFF_TENTATIVE) {
722 nd6_dad_input(ifa, NULL, sdlp);
727 ifa_release(ifa, &psref_ia);
728 ifa = NULL;
1105 nd6_dad_find(struct ifaddr *ifa, struct nd_opt_nonce *nonce, bool *found_nonce)
1113 KASSERT(ifa != NULL);
1115 myaddr6 = IFA_IN6(ifa);
1125 if (dp->dad_ifa != ifa)
1149 if_name(ifa->ifa_ifp), IN6_PRINT(ip6buf, myaddr6));
1160 nd6_dad_ownnonce(struct ifaddr *ifa, struct nd_opt_nonce *nonce)
1165 nd6_dad_find(ifa, nonce, &found_nonce);
1208 nd6_dad_start(struct ifaddr *ifa, int xtick)
1210 ifa;
1225 if_name(ifa->ifa_ifp));
1230 rt_addrmsg(RTM_NEWADDR, ifa);
1233 if (!(ifa->ifa_ifp->if_flags & IFF_UP))
1239 if (nd6_dad_find(ifa, NULL, NULL) != NULL) {
1252 if_name(ifa->ifa_ifp));
1263 dp->dad_ifa = ifa;
1264 ifaref(ifa); /* just for safety */
1270 nd6log(LOG_DEBUG, "%s: starting DAD for %s\n", if_name(ifa->ifa_ifp),
1274 nd6_dad_ns_output(dp, ifa);
1276 (long)ND_IFINFO(ifa->ifa_ifp)->retrans * hz / 1000);
1286 nd6_dad_stop(struct ifaddr *ifa)
1291 dp = nd6_dad_find(ifa, NULL, NULL);
1304 ifafree(ifa);
1310 struct ifaddr *ifa;
1318 ifa = dp->dad_ifa;
1319 if (ifa == NULL) {
1324 ia = (struct in6_ifaddr *)ifa;
1329 if_name(ifa->ifa_ifp));
1336 if_name(ifa->ifa_ifp));
1343 if_name(ifa->ifa_ifp));
1355 nd6_dad_ns_output(dp, ifa);
1357 (long)ND_IFINFO(ifa->ifa_ifp)->retrans * hz / 1000);
1364 rt_addrmsg(RTM_NEWADDR, ifa);
1368 if_name(ifa->ifa_ifp),
1379 KASSERT(ifa != NULL);
1380 ifafree(ifa);
1387 nd6_dad_duplicated(struct ifaddr *ifa, struct dadq *dp,
1395 KASSERT(ifa != NULL);
1397 ifp = ifa->ifa_ifp;
1398 ia = (struct in6_ifaddr *)ifa;
1413 rt_addrmsg_src(RTM_NEWADDR, ifa, (const struct sockaddr *)from);
1448 nd6_dad_ns_output(struct dadq *dp, struct ifaddr *ifa)
1450 struct in6_ifaddr *ia = (struct in6_ifaddr *)ifa;
1451 struct ifnet *ifp = ifa->ifa_ifp;
1477 nd6_dad_input(struct ifaddr *ifa, struct nd_opt_nonce *nonce,
1483 KASSERT(ifa != NULL);
1486 dp = nd6_dad_find(ifa, nonce, &found_nonce);
1488 nd6_dad_duplicated(ifa, dp, from);
1495 ifafree(ifa);