summaryrefslogtreecommitdiffstats
path: root/sys/netinet/tcp_input.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/netinet/tcp_input.c')
-rw-r--r--sys/netinet/tcp_input.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/sys/netinet/tcp_input.c b/sys/netinet/tcp_input.c
index e71b6bd..d50333b 100644
--- a/sys/netinet/tcp_input.c
+++ b/sys/netinet/tcp_input.c
@@ -1193,10 +1193,16 @@ after_listen:
*/
if ((to.to_flags & TOF_TS) != 0 &&
to.to_tsecr) {
+ if (!tp->t_rttlow ||
+ tp->t_rttlow > ticks - to.to_tsecr)
+ tp->t_rttlow = ticks - to.to_tsecr;
tcp_xmit_timer(tp,
ticks - to.to_tsecr + 1);
} else if (tp->t_rtttime &&
SEQ_GT(th->th_ack, tp->t_rtseq)) {
+ if (!tp->t_rttlow ||
+ tp->t_rttlow > ticks - tp->t_rtttime)
+ tp->t_rttlow = ticks - tp->t_rtttime;
tcp_xmit_timer(tp,
ticks - tp->t_rtttime);
}
@@ -2077,8 +2083,12 @@ process_ACK:
*/
if ((to.to_flags & TOF_TS) != 0 &&
to.to_tsecr) {
+ if (!tp->t_rttlow || tp->t_rttlow > ticks - to.to_tsecr)
+ tp->t_rttlow = ticks - to.to_tsecr;
tcp_xmit_timer(tp, ticks - to.to_tsecr + 1);
} else if (tp->t_rtttime && SEQ_GT(th->th_ack, tp->t_rtseq)) {
+ if (!tp->t_rttlow || tp->t_rttlow > ticks - tp->t_rtttime)
+ tp->t_rttlow = ticks - tp->t_rtttime;
tcp_xmit_timer(tp, ticks - tp->t_rtttime);
}
tcp_xmit_bandwidth_limit(tp, th->th_ack);
OpenPOWER on IntegriCloud