Lines Matching refs:rt
865 rt_getmetrics(const struct rtentry *rt, const struct nhop_object *nh, in rt_getmetrics() argument
871 out->rmx_weight = rt->rt_weight; in rt_getmetrics()
874 out->rmx_expire = rt->rt_expire ? in rt_getmetrics()
875 rt->rt_expire - time_uptime + time_second : 0; in rt_getmetrics()
910 export_rtaddrs(const struct rtentry *rt, struct sockaddr *dst, in export_rtaddrs() argument
917 rt_get_inet_prefix_pmask(rt, &dst4->sin_addr, &mask4->sin_addr, in export_rtaddrs()
926 rt_get_inet6_prefix_pmask(rt, &dst6->sin6_addr, in export_rtaddrs()
1036 struct rtentry *rt = NULL; in ff_rtioctl() local
1198 rt = NULL; in ff_rtioctl()
1240 struct rtentry *rt = NULL;
1393 rt = saved_nrt;
1416 rt = (struct rtentry *) rnh->rnh_matchaddr(
1419 rt = (struct rtentry *) rnh->rnh_lookup(
1423 if (rt == NULL) {
1438 rt = rt_mpath_matchgate(rt, info.rti_info[RTAX_GATEWAY]);
1439 if (!rt) {
1454 if (rt->rt_ifp != NULL &&
1455 rt->rt_ifp->if_type == IFT_PROPVIRTUAL) {
1465 rt_maskedcopy(rt->rt_ifa->ifa_addr,
1467 rt->rt_ifa->ifa_netmask);
1471 rt = (struct rtentry *)rnh->rnh_matchaddr(&laddr,
1473 if (rt == NULL) {
1478 RT_LOCK(rt);
1479 RT_ADDREF(rt);
1483 RT_LOCK_ASSERT(rt);
1484 if ((rt->rt_flags & RTF_HOST) == 0
1487 rt_key(rt)) != 0) {
1488 RT_UNLOCK(rt);
1491 info.rti_info[RTAX_DST] = rt_key(rt);
1492 info.rti_info[RTAX_GATEWAY] = rt->rt_gateway;
1493 info.rti_info[RTAX_NETMASK] = rtsock_fix_netmask(rt_key(rt),
1494 rt_mask(rt), &ss);
1497 ifp = rt->rt_ifp;
1501 error = rtm_get_jailed(&info, ifp, rt,
1504 RT_UNLOCK(rt);
1509 rt->rt_ifa->ifa_dstaddr;
1515 } else if ((ifp = rt->rt_ifp) != NULL) {
1522 RT_UNLOCK(rt);
1530 RT_UNLOCK(rt);
1543 if (rt->rt_flags & RTF_GWFLAG_COMPAT)
1545 (rt->rt_flags & ~RTF_GWFLAG_COMPAT);
1547 rtm->rtm_flags = rt->rt_flags;
1548 rt_getmetrics(rt, &rtm->rtm_rmx);
1551 RT_UNLOCK(rt);
1559 if (rt != NULL)
1560 RTFREE(rt);