Lines Matching refs:rt

925 tcp_getrt_rtt(struct tcpcb *tp, struct rtentry *rt) 
927 u_int32_t rtt = rt->rt_rmx.rmx_rtt;
935 if (rt->rt_rmx.rmx_locks & RTV_RTT)
941 if (rt->rt_rmx.rmx_rttvar) {
942 tp->t_rttvar = rt->rt_rmx.rmx_rttvar /
972 struct rtentry *rt;
1004 rt = isipv6 ? inp->in6p_route.ro_rt : inp->inp_route.ro_rt;
1006 rt = inp->inp_route.ro_rt;
1008 if (rt != NULL)
1009 RT_LOCK_SPIN(rt);
1029 if (rt == NULL)
1031 sin6 = (struct sockaddr_in6 *)(void *)rt_key(rt);
1037 if (rt == NULL || !(rt->rt_flags & RTF_UP) ||
1038 ((struct sockaddr_in *)(void *)rt_key(rt))->sin_addr.s_addr ==
1039 INADDR_ANY || rt->generation_id != route_generation) {
1048 RT_LOCK_ASSERT_HELD(rt);
1049 if ((rt->rt_rmx.rmx_locks & RTV_RTT) == 0) {
1052 if (rt->rt_rmx.rmx_rtt && i)
1059 rt->rt_rmx.rmx_rtt =
1060 (rt->rt_rmx.rmx_rtt + i) / 2;
1062 rt->rt_rmx.rmx_rtt = i;
1065 if ((rt->rt_rmx.rmx_locks & RTV_RTTVAR) == 0) {
1068 if (rt->rt_rmx.rmx_rttvar && i)
1069 rt->rt_rmx.rmx_rttvar =
1070 (rt->rt_rmx.rmx_rttvar + i) / 2;
1072 rt->rt_rmx.rmx_rttvar = i;
1090 if (rt->rt_rmx.rmx_sendpipe != 0)
1091 dosavessthresh = (i < rt->rt_rmx.rmx_sendpipe / 2);
1094 if (((rt->rt_rmx.rmx_locks & RTV_SSTHRESH) == 0 &&
1095 i != 0 && rt->rt_rmx.rmx_ssthresh != 0)
1114 if (rt->rt_rmx.rmx_ssthresh)
1115 rt->rt_rmx.rmx_ssthresh =
1116 (rt->rt_rmx.rmx_ssthresh + i) / 2;
1118 rt->rt_rmx.rmx_ssthresh = i;
1126 if (rt != NULL && (so->so_flags & SOF_OVERFLOW) && tcp_lq_overflow) {
1127 if (!(rt->rt_rmx.rmx_locks & RTV_RTT) &&
1128 rt->rt_rmx.rmx_rtt == 0) {
1129 rt->rt_flags |= RTF_DELCLONE;
1134 if (rt != NULL)
1135 RT_UNLOCK(rt);
1774 struct rtentry *rt;
1780 rt = rtalloc1((struct sockaddr *)&icmpsrc, 0,
1782 if (rt != NULL) {
1783 RT_LOCK(rt);
1784 if ((rt->rt_flags & RTF_HOST) &&
1785 !(rt->rt_rmx.rmx_locks & RTV_MTU)) {
1788 mtu = ip_next_mtu(rt->rt_rmx.
1798 /* rt->rt_rmx.rmx_mtu =
1799 rt->rt_ifp->if_mtu; */
1800 rt->rt_rmx.rmx_locks |= RTV_MTU;
1801 } else if (rt->rt_rmx.rmx_mtu > mtu) {
1802 rt->rt_rmx.rmx_mtu = mtu;
1805 RT_UNLOCK(rt);
1806 rtfree(rt);
2022 struct rtentry *rt;
2034 rt = tcp_rtlookup6(inp, IFSCOPE_NONE);
2037 rt = tcp_rtlookup(inp, IFSCOPE_NONE);
2038 if (!rt || !rt->rt_rmx.rmx_mtu) {
2046 if (rt != NULL)
2047 RT_UNLOCK(rt);
2050 taop = rmx_taop(rt->rt_rmx);
2052 mss = rt->rt_rmx.rmx_mtu -
2064 RT_UNLOCK(rt);
2123 struct rtentry *rt;
2129 if ((rt = ro->ro_rt) != NULL)
2130 RT_LOCK(rt);
2132 if (rt == NULL || !(rt->rt_flags & RTF_UP) ||
2133 rt->generation_id != route_generation) {
2153 if (rt != NULL)
2154 RT_UNLOCK(rt);
2156 if ((rt = ro->ro_rt) != NULL)
2157 RT_LOCK(rt);
2171 if (!path_mtu_discovery || ((rt != NULL) &&
2172 (!(rt->rt_flags & RTF_UP) || (rt->rt_rmx.rmx_locks & RTV_MTU))))
2179 tp->t_state == TCPS_SYN_SENT && rt != NULL && rt->rt_ifp != NULL &&
2180 (rt->rt_ifp->if_eflags & IFEF_NOWINDOWSCALE)) {
2186 if (rt != NULL && rt->rt_ifp != NULL) {
2188 (rt->rt_ifp->if_hwassist & IFNET_MULTIPAGES));
2189 tcp_set_tso(tp, rt->rt_ifp);
2193 * Caller needs to call RT_UNLOCK(rt).
2195 return rt;
2205 struct rtentry *rt;
2211 if ((rt = ro6->ro_rt) != NULL)
2212 RT_LOCK(rt);
2214 if (rt == NULL || !(rt->rt_flags & RTF_UP) ||
2215 rt->generation_id != route_generation) {
2236 if (rt != NULL)
2237 RT_UNLOCK(rt);
2239 if ((rt = ro6->ro_rt) != NULL)
2240 RT_LOCK(rt);
2262 if (!path_mtu_discovery || ((rt != NULL) &&
2263 (!(rt->rt_flags & RTF_UP) || (rt->rt_rmx.rmx_locks & RTV_MTU))))
2270 tp->t_state == TCPS_SYN_SENT && rt != NULL && rt->rt_ifp != NULL &&
2271 (rt->rt_ifp->if_eflags & IFEF_NOWINDOWSCALE)) {
2277 if (rt != NULL && rt->rt_ifp != NULL) {
2279 (rt->rt_ifp->if_hwassist & IFNET_MULTIPAGES));
2280 tcp_set_tso(tp, rt->rt_ifp);
2284 * Caller needs to call RT_UNLOCK(rt).
2286 return rt;
2342 struct rtentry *rt;
2347 rt = tcp_rtlookup6(inp, IFSCOPE_NONE);
2350 rt = tcp_rtlookup(inp, IFSCOPE_NONE);
2353 if (rt == NULL ||
2354 (rt->rt_flags & (RTF_UP|RTF_HOST)) != (RTF_UP|RTF_HOST)) {
2356 if (rt != NULL)
2357 RT_UNLOCK(rt);
2361 taop = rmx_taop(rt->rt_rmx);
2363 RT_UNLOCK(rt);