Lines Matching defs: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;
239 ifa = NULL;
240 if (!ifa)
241 ifa = (struct ifaddr *)in6ifa_ifpwithaddr_psref(ifp, &taddr6,
244 ifa = (struct ifaddr *)in6ifa_ifpwithaddr_psref(ifp, &taddr6,
249 if (ifa == NULL) {
261 ifa = (struct ifaddr *)in6ifa_ifpforlinklocal_psref(ifp,
263 if (ifa) {
272 if (ifa == NULL) {
280 myaddr6 = *IFA_IN6(ifa);
281 anycast = ((struct in6_ifaddr *)ifa)->ia6_flags & IN6_IFF_ANYCAST;
282 tentative = ((struct in6_ifaddr *)ifa)->ia6_flags & IN6_IFF_TENTATIVE;
283 if (((struct in6_ifaddr *)ifa)->ia6_flags & IN6_IFF_DUPLICATED)
329 nd6_dad_input(ifa, ndopts.nd_opts_nonce, sdlp);
340 if (nd6_dad_ownnonce(ifa, ndopts.nd_opts_nonce))
344 ifa_release(ifa, &psref_ia);
345 ifa = NULL;
375 ifa_release(ifa, &psref_ia);
388 ifa_release(ifa, &psref_ia);
624 struct ifaddr *ifa;
702 ifa = (struct ifaddr *)in6ifa_ifpwithaddr_psref(ifp, &taddr6, &psref_ia);
713 if (ifa) {
714 if (((struct in6_ifaddr *)ifa)->ia6_flags & IN6_IFF_TENTATIVE) {
723 nd6_dad_input(ifa, NULL, sdlp);
728 ifa_release(ifa, &psref_ia);
729 ifa = NULL;
1106 nd6_dad_find(struct ifaddr *ifa, struct nd_opt_nonce *nonce, bool *found_nonce)
1114 KASSERT(ifa != NULL);
1116 myaddr6 = IFA_IN6(ifa);
1126 if (dp->dad_ifa != ifa)
1150 if_name(ifa->ifa_ifp), IN6_PRINT(ip6buf, myaddr6));
1161 nd6_dad_ownnonce(struct ifaddr *ifa, struct nd_opt_nonce *nonce)
1166 nd6_dad_find(ifa, nonce, &found_nonce);
1209 nd6_dad_start(struct ifaddr *ifa, int xtick)
1211 struct in6_ifaddr *ia = (struct in6_ifaddr *)ifa;
1226 if_name(ifa->ifa_ifp));
1231 rt_addrmsg(RTM_NEWADDR, ifa);
1234 if (!(ifa->ifa_ifp->if_flags & IFF_UP))
1240 if (nd6_dad_find(ifa, NULL, NULL) != NULL) {
1253 if_name(ifa->ifa_ifp));
1264 dp->dad_ifa = ifa;
1265 ifaref(ifa); /* just for safety */
1271 nd6log(LOG_DEBUG, "%s: starting DAD for %s\n", if_name(ifa->ifa_ifp),
1275 nd6_dad_ns_output(dp, ifa);
1277 (long)ND_IFINFO(ifa->ifa_ifp)->retrans * hz / 1000);
1287 nd6_dad_stop(struct ifaddr *ifa)
1292 dp = nd6_dad_find(ifa, NULL, NULL);
1305 ifafree(ifa);
1311 struct ifaddr *ifa;
1319 ifa = dp->dad_ifa;
1320 if (ifa == NULL) {
1325 ia = (struct in6_ifaddr *)ifa;
1330 if_name(ifa->ifa_ifp));
1337 if_name(ifa->ifa_ifp));
1344 if_name(ifa->ifa_ifp));
1356 nd6_dad_ns_output(dp, ifa);
1358 (long)ND_IFINFO(ifa->ifa_ifp)->retrans * hz / 1000);
1365 rt_addrmsg(RTM_NEWADDR, ifa);
1369 if_name(ifa->ifa_ifp),
1380 KASSERT(ifa != NULL);
1381 ifafree(ifa);
1388 nd6_dad_duplicated(struct ifaddr *ifa, struct dadq *dp,
1396 KASSERT(ifa != NULL);
1398 ifp = ifa->ifa_ifp;
1399 ia = (struct in6_ifaddr *)ifa;
1414 rt_addrmsg_src(RTM_NEWADDR, ifa, (const struct sockaddr *)from);
1449 nd6_dad_ns_output(struct dadq *dp, struct ifaddr *ifa)
1451 struct in6_ifaddr *ia = (struct in6_ifaddr *)ifa;
1452 struct ifnet *ifp = ifa->ifa_ifp;
1478 nd6_dad_input(struct ifaddr *ifa, struct nd_opt_nonce *nonce,
1484 KASSERT(ifa != NULL);
1487 dp = nd6_dad_find(ifa, nonce, &found_nonce);
1489 nd6_dad_duplicated(ifa, dp, from);
1496 ifafree(ifa);