Lines Matching refs:dr
1178 struct nd_defrouter *__single dr = NULL; in nd6_service_expired_default_router() local
1187 TAILQ_FOREACH_SAFE(dr, &nd_defrouter_list, dr_entry, ndr) { in nd6_service_expired_default_router()
1189 if (dr->expire != 0 && dr->expire < timenow) { in nd6_service_expired_default_router()
1190 VERIFY(dr->ifp != NULL); in nd6_service_expired_default_router()
1191 in6_ifstat_inc(dr->ifp, ifs6_defrtr_expiry_cnt); in nd6_service_expired_default_router()
1192 if ((dr->stateflags & NDDRF_INELIGIBLE) == 0) { in nd6_service_expired_default_router()
1193 in6_event_enqueue_nwk_wq_entry(IN6_NDP_RTR_EXPIRY, dr->ifp, in nd6_service_expired_default_router()
1194 &dr->rtaddr, dr->rtlifetime); in nd6_service_expired_default_router()
1196 if (dr->ifp != NULL && in nd6_service_expired_default_router()
1197 dr->ifp->if_type == IFT_CELLULAR) { in nd6_service_expired_default_router()
1220 dr->expire += dr->rtlifetime; in nd6_service_expired_default_router()
1224 ip6_sprintf(&dr->rtaddr), if_name(dr->ifp)); in nd6_service_expired_default_router()
1236 TAILQ_REMOVE(&nd_defrouter_list, dr, dr_entry); in nd6_service_expired_default_router()
1237 TAILQ_INSERT_TAIL(&nd_defrouter_tmp, dr, dr_entry); in nd6_service_expired_default_router()
1240 if (dr->expire == 0 || (dr->stateflags & NDDRF_STATIC)) { in nd6_service_expired_default_router()
1259 TAILQ_FOREACH_SAFE(dr, &nd_defrouter_tmp, dr_entry, ndr) { in nd6_service_expired_default_router()
1260 TAILQ_REMOVE(&nd_defrouter_tmp, dr, dr_entry); in nd6_service_expired_default_router()
1261 defrtrlist_del(dr, NULL); in nd6_service_expired_default_router()
1262 NDDR_REMREF(dr); /* remove list reference */ in nd6_service_expired_default_router()
1290 struct nd_defrouter *__single dr = NULL; in nd6_service_expired_route_info() local
1298 TAILQ_FOREACH_SAFE(dr, &rti->nd_rti_router_list, dr_entry, ndr) { in nd6_service_expired_route_info()
1300 if (dr->expire != 0 && dr->expire < timenow) { in nd6_service_expired_route_info()
1301 VERIFY(dr->ifp != NULL); in nd6_service_expired_route_info()
1302 if (dr->ifp != NULL && in nd6_service_expired_route_info()
1303 dr->ifp->if_type == IFT_CELLULAR) { in nd6_service_expired_route_info()
1308 dr->expire += dr->rtlifetime; in nd6_service_expired_route_info()
1312 ip6_sprintf(&dr->rtaddr), if_name(dr->ifp)); in nd6_service_expired_route_info()
1320 TAILQ_REMOVE(&rti->nd_rti_router_list, dr, dr_entry); in nd6_service_expired_route_info()
1321 TAILQ_INSERT_TAIL(&rti_tmp.nd_rti_router_list, dr, dr_entry); in nd6_service_expired_route_info()
1324 if (dr->expire == 0 || (dr->stateflags & NDDRF_STATIC)) { in nd6_service_expired_route_info()
1343 TAILQ_FOREACH_SAFE(dr, &rti_tmp.nd_rti_router_list, dr_entry, ndr) { in nd6_service_expired_route_info()
1344 TAILQ_REMOVE(&rti_tmp.nd_rti_router_list, dr, dr_entry); in nd6_service_expired_route_info()
1345 defrtrlist_del(dr, &rti->nd_rti_router_list); in nd6_service_expired_route_info()
1346 NDDR_REMREF(dr); /* remove list reference */ in nd6_service_expired_route_info()
2042 struct nd_defrouter *__single dr = NULL; in nd6_purge_interface_default_routers() local
2050 TAILQ_FOREACH_SAFE(dr, &nd_defrouter_list, dr_entry, ndr) { in nd6_purge_interface_default_routers()
2051 if (dr->ifp != ifp) { in nd6_purge_interface_default_routers()
2075 TAILQ_REMOVE(&nd_defrouter_list, dr, dr_entry); in nd6_purge_interface_default_routers()
2077 if (dr->stateflags & NDDRF_INSTALLED) { in nd6_purge_interface_default_routers()
2078 TAILQ_INSERT_TAIL(&nd_defrouter_tmp, dr, dr_entry); in nd6_purge_interface_default_routers()
2080 TAILQ_INSERT_HEAD(&nd_defrouter_tmp, dr, dr_entry); in nd6_purge_interface_default_routers()
2093 TAILQ_FOREACH_SAFE(dr, &nd_defrouter_tmp, dr_entry, ndr) { in nd6_purge_interface_default_routers()
2094 TAILQ_REMOVE(&nd_defrouter_tmp, dr, dr_entry); in nd6_purge_interface_default_routers()
2095 defrtrlist_del(dr, NULL); in nd6_purge_interface_default_routers()
2096 NDDR_REMREF(dr); /* remove list reference */ in nd6_purge_interface_default_routers()
2171 struct nd_defrouter *__single dr = NULL; in nd6_purge_interface_rti_entries() local
2178 TAILQ_FOREACH_SAFE(dr, &rti->nd_rti_router_list, dr_entry, ndr) { in nd6_purge_interface_rti_entries()
2183 if (ifp != NULL && dr->ifp != ifp) { in nd6_purge_interface_rti_entries()
2204 TAILQ_REMOVE(&rti->nd_rti_router_list, dr, dr_entry); in nd6_purge_interface_rti_entries()
2206 if (dr->stateflags & NDDRF_INSTALLED) { in nd6_purge_interface_rti_entries()
2207 TAILQ_INSERT_TAIL(&rti_tmp.nd_rti_router_list, dr, dr_entry); in nd6_purge_interface_rti_entries()
2209 TAILQ_INSERT_HEAD(&rti_tmp.nd_rti_router_list, dr, dr_entry); in nd6_purge_interface_rti_entries()
2222 TAILQ_FOREACH_SAFE(dr, &rti_tmp.nd_rti_router_list, dr_entry, ndr) { in nd6_purge_interface_rti_entries()
2223 TAILQ_REMOVE(&rti_tmp.nd_rti_router_list, dr, dr_entry); in nd6_purge_interface_rti_entries()
2224 defrtrlist_del(dr, &rti->nd_rti_router_list); in nd6_purge_interface_rti_entries()
2225 NDDR_REMREF(dr); /* remove list reference */ in nd6_purge_interface_rti_entries()
2620 struct nd_defrouter *__single dr = NULL; in nd6_free() local
2644 dr = defrouter_lookup(NULL, &SIN6(rt_key(rt))->sin6_addr, rt->rt_ifp); in nd6_free()
2646 if ((ln && ln->ln_router) || dr) { in nd6_free()
2660 if (dr) { in nd6_free()
2661 NDDR_REMREF(dr); in nd6_free()
3103 struct nd_defrouter *__single dr; in nd6_ioctl() local
3279 if ((dr = TAILQ_FIRST(&nd_defrouter_list)) != NULL) { in nd6_ioctl()
3284 for (dr = TAILQ_NEXT(dr, dr_entry); dr; dr = next) { in nd6_ioctl()
3285 next = TAILQ_NEXT(dr, dr_entry); in nd6_ioctl()
3286 if (ifp == lo_ifp || dr->ifp == ifp) { in nd6_ioctl()
3296 TAILQ_REMOVE(&nd_defrouter_list, dr, dr_entry); in nd6_ioctl()
3297 TAILQ_INSERT_TAIL(&nd_defrouter_tmp, dr, dr_entry); in nd6_ioctl()
3301 dr = TAILQ_FIRST(&nd_defrouter_list); in nd6_ioctl()
3303 dr->ifp == ifp) { in nd6_ioctl()
3304 TAILQ_REMOVE(&nd_defrouter_list, dr, dr_entry); in nd6_ioctl()
3305 TAILQ_INSERT_TAIL(&nd_defrouter_tmp, dr, dr_entry); in nd6_ioctl()
3320 TAILQ_FOREACH_SAFE(dr, &nd_defrouter_tmp, dr_entry, next) { in nd6_ioctl()
3321 TAILQ_REMOVE(&nd_defrouter_tmp, dr, dr_entry); in nd6_ioctl()
3322 defrtrlist_del(dr, NULL); in nd6_ioctl()
3323 NDDR_REMREF(dr); /* remove list reference */ in nd6_ioctl()
4709 struct nd_defrouter *__single dr; variable
4725 TAILQ_FOREACH(dr, &nd_defrouter_list, dr_entry) {
4726 d.rtaddr.sin6_addr = dr->rtaddr;
4728 &dr->rtaddr, dr->ifp) != 0) {
4731 &dr->rtaddr, pbuf, sizeof(pbuf)));
4733 d.flags = dr->flags;
4734 d.stateflags = dr->stateflags;
4735 d.rtlifetime = (u_short)dr->rtlifetime;
4736 d.expire = (int)nddr_getexpire(dr);
4737 d.if_index = dr->ifp->if_index;
4750 TAILQ_FOREACH(dr, &nd_defrouter_list, dr_entry) {
4751 d.rtaddr.sin6_addr = dr->rtaddr;
4753 &dr->rtaddr, dr->ifp) != 0) {
4756 &dr->rtaddr, pbuf, sizeof(pbuf)));
4758 d.flags = dr->flags;
4759 d.stateflags = dr->stateflags;
4760 d.rtlifetime = (u_short)dr->rtlifetime;
4761 d.expire = (int)nddr_getexpire(dr);
4762 d.if_index = dr->ifp->if_index;
4907 struct nd_defrouter *dr = NULL; variable
4930 TAILQ_FOREACH(dr, &rti->nd_rti_router_list, dr_entry) {
4938 TAILQ_FOREACH(dr, &rti->nd_rti_router_list, dr_entry) {
4939 drx.rtaddr.sin6_addr = dr->rtaddr;
4941 &dr->rtaddr, dr->ifp) != 0) {
4944 &dr->rtaddr, pbuf, sizeof(pbuf)));
4946 drx.flags = dr->flags;
4947 drx.stateflags = dr->stateflags;
4948 drx.rtlifetime = (u_short)dr->rtlifetime;
4949 drx.expire = (int)nddr_getexpire(dr);
4950 drx.if_index = dr->ifp->if_index;
4971 TAILQ_FOREACH(dr, &rti->nd_rti_router_list, dr_entry) {
4979 TAILQ_FOREACH(dr, &rti->nd_rti_router_list, dr_entry) {
4980 drx.rtaddr.sin6_addr = dr->rtaddr;
4982 &dr->rtaddr, dr->ifp) != 0) {
4985 &dr->rtaddr, pbuf, sizeof(pbuf)));
4987 drx.flags = dr->flags;
4988 drx.stateflags = dr->stateflags;
4989 drx.rtlifetime = (u_short)dr->rtlifetime;
4990 drx.expire = (int)nddr_getexpire(dr);
4991 drx.if_index = dr->ifp->if_index;