Lines Matching refs:ro
214 const struct sockaddr *gw, struct route *ro, bool stamp_tag) in ip_output_send() argument
277 error = (*ifp->if_output)(ifp, m, gw, ro); in ip_output_send()
297 rt_update_ro_flags(struct route *ro, const struct nhop_object *nh) in rt_update_ro_flags() argument
301 ro->ro_flags &= ~ (RT_REJECT|RT_BLACKHOLE|RT_HAS_GW); in rt_update_ro_flags()
303 ro->ro_flags |= (nh_flags & NHF_REJECT) ? RT_REJECT : 0; in rt_update_ro_flags()
304 ro->ro_flags |= (nh_flags & NHF_BLACKHOLE) ? RT_BLACKHOLE : 0; in rt_update_ro_flags()
305 ro->ro_flags |= (nh_flags & NHF_GATEWAY) ? RT_HAS_GW : 0; in rt_update_ro_flags()
321 ip_output(struct mbuf *m, struct mbuf *opt, struct route *ro, int flags, in ip_output() argument
390 if (ro == NULL) { in ip_output()
391 ro = &iproute; in ip_output()
392 bzero(ro, sizeof (*ro)); in ip_output()
394 dst = (struct sockaddr_in *)&ro->ro_dst; in ip_output()
395 if (ro->ro_nh == NULL) { in ip_output()
406 if (inp != NULL && ro->ro_nh != NULL) in ip_output()
407 NH_VALIDATE(ro, &inp->inp_rt_cookie, fibnum); in ip_output()
416 if (ro->ro_nh != NULL && in ip_output()
417 ((!NH_IS_VALID(ro->ro_nh)) || dst->sin_family != AF_INET || in ip_output()
419 RO_INVALIDATE_CACHE(ro); in ip_output()
473 } else if (ro != &iproute) { in ip_output()
474 if (ro->ro_nh == NULL) { in ip_output()
482 ro->ro_nh = fib4_lookup(fibnum, dst->sin_addr, 0, in ip_output()
485 if (ro->ro_nh == NULL || (!NH_IS_VALID(ro->ro_nh))) { in ip_output()
499 struct nhop_object *nh = ro->ro_nh; in ip_output()
504 rt_update_ro_flags(ro, nh); in ip_output()
535 rt_update_ro_flags(ro, nh); in ip_output()
549 __func__, mtu, ro, in ip_output()
550 (ro != NULL && ro->ro_nh != NULL) ? ro->ro_nh->nh_flags : 0, ifp)); in ip_output()
712 if (ro != NULL) { in ip_output()
713 RO_NHFREE(ro); in ip_output()
714 ro->ro_prepend = NULL; in ip_output()
799 error = ip_output_send(inp, ifp, m, gw, ro, in ip_output()
837 error = ip_output_send(inp, ifp, m, gw, ro, true); in ip_output()