Lines Matching refs:gwrt
1956 struct rtentry *gwrt = NULL; in rtrequest_common_locked() local
2040 if ((gwrt = rt->rt_gwroute) != NULL) { in rtrequest_common_locked()
2102 if (gwrt != NULL) { in rtrequest_common_locked()
2103 rtfree_locked(gwrt); in rtrequest_common_locked()
2714 struct rtentry *gwrt; in rt_setgate() local
2731 gwrt = rtalloc1_scoped_locked(gate, 1, RTF_PRCLONING, ifscope); in rt_setgate()
2732 if (gwrt != NULL) { in rt_setgate()
2733 RT_LOCK_ASSERT_NOTHELD(gwrt); in rt_setgate()
2751 if (gwrt == rt) { in rt_setgate()
2752 RT_REMREF_LOCKED(gwrt); in rt_setgate()
2764 gwrt != NULL && gwrt->rt_ifp != NULL && in rt_setgate()
2765 gwrt->rt_ifp->if_index != ifscope) { in rt_setgate()
2766 rtfree_locked(gwrt); /* rt != gwrt, no deadlock */ in rt_setgate()
2775 if (gwrt != NULL) { in rt_setgate()
2776 rtfree_locked(gwrt); in rt_setgate()
2784 rt_set_gwroute(rt, dst, gwrt); in rt_setgate()
2816 gwrt != NULL && gwrt->rt_gateway->sa_family == AF_LINK && in rt_setgate()
2817 (gwrt->rt_ifp->if_index == get_primary_ifscope(AF_INET) || in rt_setgate()
2819 kdp_set_gateway_mac(SDL((void *)gwrt->rt_gateway)-> in rt_setgate()
2824 if (gwrt != NULL) { in rt_setgate()
2825 RT_REMREF(gwrt); in rt_setgate()
2905 rt_set_gwroute(struct rtentry *rt, struct sockaddr *dst, struct rtentry *gwrt) in rt_set_gwroute() argument
2912 if (gwrt != NULL) { in rt_set_gwroute()
2913 RT_ADDREF(gwrt); /* for this routine */ in rt_set_gwroute()
2934 if ((rt->rt_gwroute = gwrt) != NULL) { in rt_set_gwroute()
2935 RT_ADDREF(gwrt); /* for rt */ in rt_set_gwroute()
2947 if (gwrt_isrouter && RT_HOST(gwrt) && in rt_set_gwroute()
2948 !(gwrt->rt_flags & RTF_ROUTER)) { in rt_set_gwroute()
2949 RT_LOCK(gwrt); in rt_set_gwroute()
2950 gwrt->rt_flags |= RTF_ROUTER; in rt_set_gwroute()
2951 RT_UNLOCK(gwrt); in rt_set_gwroute()
2954 RT_REMREF(gwrt); /* for this routine */ in rt_set_gwroute()
4152 struct rtentry *gwrt = rt->rt_gwroute; in route_to_gwroute() local
4160 if (gwrt == NULL) { in route_to_gwroute()
4175 RT_LOCK_SPIN(gwrt); in route_to_gwroute()
4176 if (!(gwrt->rt_flags & RTF_UP)) { in route_to_gwroute()
4178 RT_UNLOCK(gwrt); in route_to_gwroute()
4183 rtfree(gwrt); in route_to_gwroute()
4186 gwrt = rtalloc1_scoped_locked(gw, 1, 0, ifindex); in route_to_gwroute()
4194 if (!(rt->rt_flags & RTF_UP) || gwrt == NULL || in route_to_gwroute()
4195 gwrt == rt || !equal(gw, rt->rt_gateway)) { in route_to_gwroute()
4196 if (gwrt == rt) { in route_to_gwroute()
4197 RT_REMREF_LOCKED(gwrt); in route_to_gwroute()
4198 gwrt = NULL; in route_to_gwroute()
4204 if (gwrt != NULL) { in route_to_gwroute()
4205 rtfree_locked(gwrt); in route_to_gwroute()
4210 VERIFY(gwrt != NULL); in route_to_gwroute()
4216 rt_set_gwroute(rt, rt_key(rt), gwrt); in route_to_gwroute()
4221 rt = gwrt; in route_to_gwroute()
4223 RT_ADDREF_LOCKED(gwrt); in route_to_gwroute()
4224 RT_UNLOCK(gwrt); in route_to_gwroute()
4228 rt = gwrt; in route_to_gwroute()
4230 VERIFY(rt == gwrt && rt != hint); in route_to_gwroute()
4303 rt_revalidate_gwroute(struct rtentry *rt, struct rtentry *gwrt) in rt_revalidate_gwroute() argument
4305 VERIFY(gwrt != NULL); in rt_revalidate_gwroute()
4309 rt->rt_ifp == gwrt->rt_ifp && rt->rt_gateway->sa_family == in rt_revalidate_gwroute()
4310 rt_key(gwrt)->sa_family && (rt->rt_gwroute == NULL || in rt_revalidate_gwroute()
4322 (void) sa_copy(rt_key(gwrt), &key_ss, NULL); in rt_revalidate_gwroute()
4327 isequal = equal(rt_key(gwrt), rt->rt_gateway); in rt_revalidate_gwroute()
4335 rt_set_gwroute(rt, rt_key(rt), gwrt); in rt_revalidate_gwroute()
4431 struct rtentry *gwrt, int route_ev_code) in route_event_init() argument
4437 p_route_ev->gwrt = gwrt; in route_event_init()
4471 struct rtentry *gwrt = p_route_ev->rt; in route_event_walktree() local
4489 if (rt->rt_gwroute != gwrt) { in route_event_walktree()
4494 route_event_enqueue_nwk_wq_entry(rt, gwrt, p_route_ev->route_event_code, in route_event_walktree()
4507 route_event_enqueue_nwk_wq_entry(struct rtentry *rt, struct rtentry *gwrt, in route_event_enqueue_nwk_wq_entry() argument
4532 p_rt_ev->rt_ev_arg.gwrt = gwrt; in route_event_enqueue_nwk_wq_entry()
4535 if (gwrt != NULL) { in route_event_enqueue_nwk_wq_entry()
4536 p_gw_saddr = gwrt->rt_gateway; in route_event_enqueue_nwk_wq_entry()