Lines Matching refs:gwrt
1964 rtentry_ref_t gwrt = NULL; in rtrequest_common_locked() local
2048 if ((gwrt = rt->rt_gwroute) != NULL) { in rtrequest_common_locked()
2110 if (gwrt != NULL) { in rtrequest_common_locked()
2111 rtfree_locked(gwrt); in rtrequest_common_locked()
2751 rtentry_ref_t gwrt; in rt_setgate() local
2768 gwrt = rtalloc1_scoped_locked(gate, 1, RTF_PRCLONING, ifscope); in rt_setgate()
2769 if (gwrt != NULL) { in rt_setgate()
2770 RT_LOCK_ASSERT_NOTHELD(gwrt); in rt_setgate()
2788 if (gwrt == rt) { in rt_setgate()
2789 RT_REMREF_LOCKED(gwrt); in rt_setgate()
2801 gwrt != NULL && gwrt->rt_ifp != NULL && in rt_setgate()
2802 gwrt->rt_ifp->if_index != ifscope) { in rt_setgate()
2803 rtfree_locked(gwrt); /* rt != gwrt, no deadlock */ in rt_setgate()
2812 if (gwrt != NULL) { in rt_setgate()
2813 rtfree_locked(gwrt); in rt_setgate()
2821 rt_set_gwroute(rt, dst, gwrt); in rt_setgate()
2853 gwrt != NULL && gwrt->rt_gateway->sa_family == AF_LINK && in rt_setgate()
2854 (gwrt->rt_ifp->if_index == get_primary_ifscope(AF_INET) || in rt_setgate()
2856 kdp_set_gateway_mac(SDL(gwrt->rt_gateway)-> in rt_setgate()
2861 if (gwrt != NULL) { in rt_setgate()
2862 RT_REMREF(gwrt); in rt_setgate()
2939 rt_set_gwroute(struct rtentry *rt, struct sockaddr *dst, struct rtentry *gwrt) in rt_set_gwroute() argument
2946 if (gwrt != NULL) { in rt_set_gwroute()
2947 RT_ADDREF(gwrt); /* for this routine */ in rt_set_gwroute()
2968 if ((rt->rt_gwroute = gwrt) != NULL) { in rt_set_gwroute()
2969 RT_ADDREF(gwrt); /* for rt */ in rt_set_gwroute()
2981 if (gwrt_isrouter && RT_HOST(gwrt) && in rt_set_gwroute()
2982 !(gwrt->rt_flags & RTF_ROUTER)) { in rt_set_gwroute()
2983 RT_LOCK(gwrt); in rt_set_gwroute()
2984 gwrt->rt_flags |= RTF_ROUTER; in rt_set_gwroute()
2985 RT_UNLOCK(gwrt); in rt_set_gwroute()
2988 RT_REMREF(gwrt); /* for this routine */ in rt_set_gwroute()
4211 rtentry_ref_t gwrt = rt->rt_gwroute; in route_to_gwroute() local
4219 if (gwrt == NULL) { in route_to_gwroute()
4234 RT_LOCK_SPIN(gwrt); in route_to_gwroute()
4235 if (!(gwrt->rt_flags & RTF_UP)) { in route_to_gwroute()
4237 RT_UNLOCK(gwrt); in route_to_gwroute()
4242 rtfree(gwrt); in route_to_gwroute()
4245 gwrt = rtalloc1_scoped_locked(gw, 1, 0, ifindex); in route_to_gwroute()
4253 if (!(rt->rt_flags & RTF_UP) || gwrt == NULL || in route_to_gwroute()
4254 gwrt == rt || !sa_equal(gw, rt->rt_gateway)) { in route_to_gwroute()
4255 if (gwrt == rt) { in route_to_gwroute()
4256 RT_REMREF_LOCKED(gwrt); in route_to_gwroute()
4257 gwrt = NULL; in route_to_gwroute()
4263 if (gwrt != NULL) { in route_to_gwroute()
4264 rtfree_locked(gwrt); in route_to_gwroute()
4269 VERIFY(gwrt != NULL); in route_to_gwroute()
4275 rt_set_gwroute(rt, rt_key(rt), gwrt); in route_to_gwroute()
4280 rt = gwrt; in route_to_gwroute()
4282 RT_ADDREF_LOCKED(gwrt); in route_to_gwroute()
4283 RT_UNLOCK(gwrt); in route_to_gwroute()
4287 rt = gwrt; in route_to_gwroute()
4289 VERIFY(rt == gwrt && rt != hint); in route_to_gwroute()
4362 rt_revalidate_gwroute(struct rtentry *rt, struct rtentry *gwrt) in rt_revalidate_gwroute() argument
4364 VERIFY(gwrt != NULL); in rt_revalidate_gwroute()
4368 rt->rt_ifp == gwrt->rt_ifp && rt->rt_gateway->sa_family == in rt_revalidate_gwroute()
4369 rt_key(gwrt)->sa_family && (rt->rt_gwroute == NULL || in rt_revalidate_gwroute()
4381 (void) sa_copy(rt_key(gwrt), &key_ss, NULL); in rt_revalidate_gwroute()
4386 isequal = sa_equal(rt_key(gwrt), rt->rt_gateway); in rt_revalidate_gwroute()
4394 rt_set_gwroute(rt, rt_key(rt), gwrt); in rt_revalidate_gwroute()
4490 struct rtentry *gwrt, int route_ev_code) in route_event_init() argument
4496 p_route_ev->gwrt = gwrt; in route_event_init()
4548 rtentry_ref_t gwrt = p_route_ev->rt; in route_event_walktree() local
4566 if (rt->rt_gwroute != gwrt) { in route_event_walktree()
4571 route_event_enqueue_nwk_wq_entry(rt, gwrt, p_route_ev->route_event_code, in route_event_walktree()
4579 route_event_enqueue_nwk_wq_entry(struct rtentry *rt, struct rtentry *gwrt, in route_event_enqueue_nwk_wq_entry() argument
4603 p_rt_ev->rt_ev_arg.gwrt = gwrt; in route_event_enqueue_nwk_wq_entry()
4606 if (gwrt != NULL) { in route_event_enqueue_nwk_wq_entry()
4607 p_gw_saddr = gwrt->rt_gateway; in route_event_enqueue_nwk_wq_entry()