Lines Matching refs:ro6
495 nd6_prproxy_isours(struct mbuf *m, struct ip6_hdr *ip6, struct route_in6 *ro6, in nd6_prproxy_isours() argument
507 VERIFY(ro6 == NULL); in nd6_prproxy_isours()
514 if (ro6 == NULL) { in nd6_prproxy_isours()
518 if ((rt = ro6->ro_rt) != NULL) { in nd6_prproxy_isours()
522 if (ROUTE_UNUSABLE(ro6)) { in nd6_prproxy_isours()
527 ROUTE_RELEASE(ro6); in nd6_prproxy_isours()
531 &ro6->ro_dst.sin6_addr, ip6_input_getdstifscope(m), ro6->ro_dst.sin6_scope_id)); in nd6_prproxy_isours()
533 rtalloc_scoped_ign((struct route *)ro6, RTF_PRCLONING, ifscope); in nd6_prproxy_isours()
534 if ((rt = ro6->ro_rt) == NULL) { in nd6_prproxy_isours()
558 nd6_proxy_find_fwdroute(struct ifnet *ifp, struct route_in6 *ro6) in nd6_proxy_find_fwdroute() argument
560 struct in6_addr *dst6 = &ro6->ro_dst.sin6_addr; in nd6_proxy_find_fwdroute()
561 uint32_t dst_ifscope = ro6->ro_dst.sin6_scope_id; in nd6_proxy_find_fwdroute()
566 if ((rt = ro6->ro_rt) != NULL) { in nd6_proxy_find_fwdroute()
635 ROUTE_RELEASE_LOCKED(ro6); in nd6_proxy_find_fwdroute()
642 if ((rt = rtalloc1_scoped_locked(SA(&ro6->ro_dst), 0, in nd6_proxy_find_fwdroute()
657 ro6->ro_rt = rt; /* refcnt held by rtalloc1 */ in nd6_proxy_find_fwdroute()
662 VERIFY(rt == NULL && ro6->ro_rt == NULL); in nd6_proxy_find_fwdroute()
667 if (fwd_ifp != NULL && (rt = rtalloc1_scoped_locked(SA(&ro6->ro_dst), 1, in nd6_proxy_find_fwdroute()
679 ro6->ro_rt = rt; /* refcnt held by rtalloc1 */ in nd6_proxy_find_fwdroute()
682 VERIFY(rt != NULL || ro6->ro_rt == NULL); in nd6_proxy_find_fwdroute()