Lines Matching refs:dr
1171 struct nd_defrouter *__single dr = NULL; in nd6_service_expired_default_router() local
1180 TAILQ_FOREACH_SAFE(dr, &nd_defrouter_list, dr_entry, ndr) { in nd6_service_expired_default_router()
1182 if (dr->expire != 0 && dr->expire < timenow) { in nd6_service_expired_default_router()
1183 VERIFY(dr->ifp != NULL); in nd6_service_expired_default_router()
1184 in6_ifstat_inc(dr->ifp, ifs6_defrtr_expiry_cnt); in nd6_service_expired_default_router()
1185 if ((dr->stateflags & NDDRF_INELIGIBLE) == 0) { in nd6_service_expired_default_router()
1186 in6_event_enqueue_nwk_wq_entry(IN6_NDP_RTR_EXPIRY, dr->ifp, in nd6_service_expired_default_router()
1187 &dr->rtaddr, dr->rtlifetime); in nd6_service_expired_default_router()
1189 if (dr->ifp != NULL && in nd6_service_expired_default_router()
1190 dr->ifp->if_type == IFT_CELLULAR) { in nd6_service_expired_default_router()
1213 dr->expire += dr->rtlifetime; in nd6_service_expired_default_router()
1217 ip6_sprintf(&dr->rtaddr), if_name(dr->ifp)); in nd6_service_expired_default_router()
1229 TAILQ_REMOVE(&nd_defrouter_list, dr, dr_entry); in nd6_service_expired_default_router()
1230 TAILQ_INSERT_TAIL(&nd_defrouter_tmp, dr, dr_entry); in nd6_service_expired_default_router()
1233 if (dr->expire == 0 || (dr->stateflags & NDDRF_STATIC)) { in nd6_service_expired_default_router()
1252 TAILQ_FOREACH_SAFE(dr, &nd_defrouter_tmp, dr_entry, ndr) { in nd6_service_expired_default_router()
1253 TAILQ_REMOVE(&nd_defrouter_tmp, dr, dr_entry); in nd6_service_expired_default_router()
1254 defrtrlist_del(dr, NULL); in nd6_service_expired_default_router()
1255 NDDR_REMREF(dr); /* remove list reference */ in nd6_service_expired_default_router()
1283 struct nd_defrouter *__single dr = NULL; in nd6_service_expired_route_info() local
1291 TAILQ_FOREACH_SAFE(dr, &rti->nd_rti_router_list, dr_entry, ndr) { in nd6_service_expired_route_info()
1293 if (dr->expire != 0 && dr->expire < timenow) { in nd6_service_expired_route_info()
1294 VERIFY(dr->ifp != NULL); in nd6_service_expired_route_info()
1295 if (dr->ifp != NULL && in nd6_service_expired_route_info()
1296 dr->ifp->if_type == IFT_CELLULAR) { in nd6_service_expired_route_info()
1301 dr->expire += dr->rtlifetime; in nd6_service_expired_route_info()
1305 ip6_sprintf(&dr->rtaddr), if_name(dr->ifp)); in nd6_service_expired_route_info()
1313 TAILQ_REMOVE(&rti->nd_rti_router_list, dr, dr_entry); in nd6_service_expired_route_info()
1314 TAILQ_INSERT_TAIL(&rti_tmp.nd_rti_router_list, dr, dr_entry); in nd6_service_expired_route_info()
1317 if (dr->expire == 0 || (dr->stateflags & NDDRF_STATIC)) { in nd6_service_expired_route_info()
1336 TAILQ_FOREACH_SAFE(dr, &rti_tmp.nd_rti_router_list, dr_entry, ndr) { in nd6_service_expired_route_info()
1337 TAILQ_REMOVE(&rti_tmp.nd_rti_router_list, dr, dr_entry); in nd6_service_expired_route_info()
1338 defrtrlist_del(dr, &rti->nd_rti_router_list); in nd6_service_expired_route_info()
1339 NDDR_REMREF(dr); /* remove list reference */ in nd6_service_expired_route_info()
2035 struct nd_defrouter *__single dr = NULL; in nd6_purge_interface_default_routers() local
2043 TAILQ_FOREACH_SAFE(dr, &nd_defrouter_list, dr_entry, ndr) { in nd6_purge_interface_default_routers()
2044 if (dr->ifp != ifp) { in nd6_purge_interface_default_routers()
2068 TAILQ_REMOVE(&nd_defrouter_list, dr, dr_entry); in nd6_purge_interface_default_routers()
2070 if (dr->stateflags & NDDRF_INSTALLED) { in nd6_purge_interface_default_routers()
2071 TAILQ_INSERT_TAIL(&nd_defrouter_tmp, dr, dr_entry); in nd6_purge_interface_default_routers()
2073 TAILQ_INSERT_HEAD(&nd_defrouter_tmp, dr, dr_entry); in nd6_purge_interface_default_routers()
2086 TAILQ_FOREACH_SAFE(dr, &nd_defrouter_tmp, dr_entry, ndr) { in nd6_purge_interface_default_routers()
2087 TAILQ_REMOVE(&nd_defrouter_tmp, dr, dr_entry); in nd6_purge_interface_default_routers()
2088 defrtrlist_del(dr, NULL); in nd6_purge_interface_default_routers()
2089 NDDR_REMREF(dr); /* remove list reference */ in nd6_purge_interface_default_routers()
2164 struct nd_defrouter *__single dr = NULL; in nd6_purge_interface_rti_entries() local
2171 TAILQ_FOREACH_SAFE(dr, &rti->nd_rti_router_list, dr_entry, ndr) { in nd6_purge_interface_rti_entries()
2176 if (ifp != NULL && dr->ifp != ifp) { in nd6_purge_interface_rti_entries()
2198 TAILQ_REMOVE(&rti->nd_rti_router_list, dr, dr_entry); in nd6_purge_interface_rti_entries()
2199 if (dr->stateflags & NDDRF_INSTALLED) { in nd6_purge_interface_rti_entries()
2200 TAILQ_INSERT_TAIL(&rti_tmp.nd_rti_router_list, dr, dr_entry); in nd6_purge_interface_rti_entries()
2202 TAILQ_INSERT_HEAD(&rti_tmp.nd_rti_router_list, dr, dr_entry); in nd6_purge_interface_rti_entries()
2215 TAILQ_FOREACH_SAFE(dr, &rti_tmp.nd_rti_router_list, dr_entry, ndr) { in nd6_purge_interface_rti_entries()
2216 TAILQ_REMOVE(&rti_tmp.nd_rti_router_list, dr, dr_entry); in nd6_purge_interface_rti_entries()
2217 defrtrlist_del(dr, &rti->nd_rti_router_list); in nd6_purge_interface_rti_entries()
2218 NDDR_REMREF(dr); /* remove list reference */ in nd6_purge_interface_rti_entries()
2613 struct nd_defrouter *__single dr = NULL; in nd6_free() local
2637 dr = defrouter_lookup(NULL, &SIN6(rt_key(rt))->sin6_addr, rt->rt_ifp); in nd6_free()
2639 if ((ln && ln->ln_router) || dr) { in nd6_free()
2653 if (dr) { in nd6_free()
2654 NDDR_REMREF(dr); in nd6_free()
3096 struct nd_defrouter *__single dr; in nd6_ioctl() local
3272 if ((dr = TAILQ_FIRST(&nd_defrouter_list)) != NULL) { in nd6_ioctl()
3277 for (dr = TAILQ_NEXT(dr, dr_entry); dr; dr = next) { in nd6_ioctl()
3278 next = TAILQ_NEXT(dr, dr_entry); in nd6_ioctl()
3279 if (ifp == lo_ifp || dr->ifp == ifp) { in nd6_ioctl()
3289 TAILQ_REMOVE(&nd_defrouter_list, dr, dr_entry); in nd6_ioctl()
3290 TAILQ_INSERT_TAIL(&nd_defrouter_tmp, dr, dr_entry); in nd6_ioctl()
3294 dr = TAILQ_FIRST(&nd_defrouter_list); in nd6_ioctl()
3296 dr->ifp == ifp) { in nd6_ioctl()
3297 TAILQ_REMOVE(&nd_defrouter_list, dr, dr_entry); in nd6_ioctl()
3298 TAILQ_INSERT_TAIL(&nd_defrouter_tmp, dr, dr_entry); in nd6_ioctl()
3313 TAILQ_FOREACH_SAFE(dr, &nd_defrouter_tmp, dr_entry, next) { in nd6_ioctl()
3314 TAILQ_REMOVE(&nd_defrouter_tmp, dr, dr_entry); in nd6_ioctl()
3315 defrtrlist_del(dr, NULL); in nd6_ioctl()
3316 NDDR_REMREF(dr); /* remove list reference */ in nd6_ioctl()
4679 struct nd_defrouter *__single dr; variable
4695 TAILQ_FOREACH(dr, &nd_defrouter_list, dr_entry) {
4696 d.rtaddr.sin6_addr = dr->rtaddr;
4698 &dr->rtaddr, dr->ifp) != 0) {
4701 &dr->rtaddr, pbuf, sizeof(pbuf)));
4703 d.flags = dr->flags;
4704 d.stateflags = dr->stateflags;
4705 d.rtlifetime = (u_short)dr->rtlifetime;
4706 d.expire = (int)nddr_getexpire(dr);
4707 d.if_index = dr->ifp->if_index;
4720 TAILQ_FOREACH(dr, &nd_defrouter_list, dr_entry) {
4721 d.rtaddr.sin6_addr = dr->rtaddr;
4723 &dr->rtaddr, dr->ifp) != 0) {
4726 &dr->rtaddr, pbuf, sizeof(pbuf)));
4728 d.flags = dr->flags;
4729 d.stateflags = dr->stateflags;
4730 d.rtlifetime = (u_short)dr->rtlifetime;
4731 d.expire = (int)nddr_getexpire(dr);
4732 d.if_index = dr->ifp->if_index;