Lines Matching refs:dr

52 static void	router_print(struct router *dr);
53 static void router_insert(struct phyint *pi, struct router *dr);
54 static void router_delete(struct router *dr);
55 static void router_add_k(struct router *dr);
56 static void router_delete_k(struct router *dr);
578 struct router *dr; in phyint_print() local
631 for (dr = pi->pi_router_list; dr != NULL; dr = dr->dr_next) in phyint_print()
632 router_print(dr); in phyint_print()
2062 struct router *dr; in router_lookup() local
2071 for (dr = pi->pi_router_list; dr != NULL; dr = dr->dr_next) { in router_lookup()
2072 if (bcmp((char *)&addr, (char *)&dr->dr_address, in router_lookup()
2074 return (dr); in router_lookup()
2086 struct router *dr; in router_create() local
2095 dr = (struct router *)calloc(sizeof (struct router), 1); in router_create()
2096 if (dr == NULL) { in router_create()
2100 dr->dr_address = addr; in router_create()
2101 dr->dr_lifetime = lifetime; in router_create()
2102 router_insert(pi, dr); in router_create()
2103 if (dr->dr_lifetime != 0) in router_create()
2104 router_add_k(dr); in router_create()
2105 return (dr); in router_create()
2110 router_insert(struct phyint *pi, struct router *dr) in router_insert() argument
2112 dr->dr_next = pi->pi_router_list; in router_insert()
2113 dr->dr_prev = NULL; in router_insert()
2115 pi->pi_router_list->dr_prev = dr; in router_insert()
2116 pi->pi_router_list = dr; in router_insert()
2117 dr->dr_physical = pi; in router_insert()
2126 router_delete(struct router *dr) in router_delete() argument
2133 dr->dr_physical->pi_name, in router_delete()
2134 inet_ntop(AF_INET6, (void *)&dr->dr_address, in router_delete()
2135 abuf, sizeof (abuf)), dr->dr_lifetime); in router_delete()
2137 pi = dr->dr_physical; in router_delete()
2138 if (dr->dr_inkernel && (pi->pi_kernel_state & PI_PRESENT)) in router_delete()
2139 router_delete_k(dr); in router_delete()
2141 if (dr->dr_prev == NULL) { in router_delete()
2143 pi->pi_router_list = dr->dr_next; in router_delete()
2145 dr->dr_prev->dr_next = dr->dr_next; in router_delete()
2147 if (dr->dr_next != NULL) in router_delete()
2148 dr->dr_next->dr_prev = dr->dr_prev; in router_delete()
2149 dr->dr_next = dr->dr_prev = NULL; in router_delete()
2150 free(dr); in router_delete()
2157 router_update_k(struct router *dr) in router_update_k() argument
2163 dr->dr_physical->pi_name, in router_update_k()
2164 inet_ntop(AF_INET6, (void *)&dr->dr_address, in router_update_k()
2165 abuf, sizeof (abuf)), dr->dr_lifetime); in router_update_k()
2168 if (dr->dr_lifetime == 0 && dr->dr_inkernel) { in router_update_k()
2170 if (dr->dr_physical->pi_num_k_routers == 1) { in router_update_k()
2173 inet_ntop(AF_INET6, (void *)&dr->dr_address, in router_update_k()
2174 abuf, sizeof (abuf)), dr->dr_physical->pi_name); in router_update_k()
2176 router_delete(dr); in router_update_k()
2177 } else if (dr->dr_lifetime != 0 && !dr->dr_inkernel) in router_update_k()
2178 router_add_k(dr); in router_update_k()
2188 router_timer(struct router *dr, uint_t elapsed) in router_timer() argument
2195 dr->dr_physical->pi_name, in router_timer()
2196 inet_ntop(AF_INET6, (void *)&dr->dr_address, in router_timer()
2197 abuf, sizeof (abuf)), dr->dr_lifetime, elapsed); in router_timer()
2199 if (dr->dr_lifetime <= elapsed) { in router_timer()
2200 dr->dr_lifetime = 0; in router_timer()
2202 dr->dr_lifetime -= elapsed; in router_timer()
2203 if (dr->dr_lifetime < next) in router_timer()
2204 next = dr->dr_lifetime; in router_timer()
2207 if (dr->dr_lifetime == 0) { in router_timer()
2209 if (dr->dr_physical->pi_num_k_routers == 1) { in router_timer()
2212 inet_ntop(AF_INET6, (void *)&dr->dr_address, in router_timer()
2213 abuf, sizeof (abuf)), dr->dr_physical->pi_name); in router_timer()
2215 router_delete(dr); in router_timer()
2225 router_add_k(struct router *dr) in router_add_k() argument
2227 struct phyint *pi = dr->dr_physical; in router_add_k()
2233 dr->dr_physical->pi_name, in router_add_k()
2234 inet_ntop(AF_INET6, (void *)&dr->dr_address, in router_add_k()
2235 abuf, sizeof (abuf)), dr->dr_lifetime); in router_add_k()
2238 rta_gateway->sin6_addr = dr->dr_address; in router_add_k()
2260 dr->dr_inkernel = _B_TRUE; in router_add_k()
2269 router_delete_k(struct router *dr) in router_delete_k() argument
2271 struct phyint *pi = dr->dr_physical; in router_delete_k()
2277 dr->dr_physical->pi_name, in router_delete_k()
2278 inet_ntop(AF_INET6, (void *)&dr->dr_address, in router_delete_k()
2279 abuf, sizeof (abuf)), dr->dr_lifetime); in router_delete_k()
2282 rta_gateway->sin6_addr = dr->dr_address; in router_delete_k()
2302 dr->dr_inkernel = _B_FALSE; in router_delete_k()
2307 router_print(struct router *dr) in router_print() argument
2312 inet_ntop(AF_INET6, (void *)&dr->dr_address, abuf, sizeof (abuf)), in router_print()
2313 dr->dr_physical->pi_name, dr->dr_inkernel, dr->dr_lifetime); in router_print()