Page MenuHomeFreeBSD

D49414.diff
No OneTemporary

D49414.diff

diff --git a/sys/netinet/tcp_input.c b/sys/netinet/tcp_input.c
--- a/sys/netinet/tcp_input.c
+++ b/sys/netinet/tcp_input.c
@@ -1635,11 +1635,6 @@
to.to_tsecr -= tp->ts_offset;
if (TSTMP_GT(to.to_tsecr, tcp_ts_getticks())) {
to.to_tsecr = 0;
- } else if (tp->t_rxtshift == 1 &&
- tp->t_flags & TF_PREVVALID &&
- tp->t_badrxtwin != 0 &&
- TSTMP_LT(to.to_tsecr, tp->t_badrxtwin)) {
- cc_cong_signal(tp, th, CC_RTO_ERR);
}
}
/*
@@ -1792,14 +1787,18 @@
TCPSTAT_INC(tcps_predack);
/*
- * "bad retransmit" recovery without timestamps.
+ * "bad retransmit" recovery.
*/
- if ((to.to_flags & TOF_TS) == 0 &&
- tp->t_rxtshift == 1 &&
+ if (tp->t_rxtshift == 1 &&
tp->t_flags & TF_PREVVALID &&
- tp->t_badrxtwin != 0 &&
- TSTMP_LT(ticks, tp->t_badrxtwin)) {
- cc_cong_signal(tp, th, CC_RTO_ERR);
+ tp->t_badrxtwin != 0) {
+ if ((to.to_flags & TOF_TS) != 0 &&
+ (to.to_tsecr != 0) &&
+ TSTMP_LT(to.to_tsecr, tp->t_badrxtwin))
+ cc_cong_signal(tp, th, CC_RTO_ERR);
+ if ((to.to_flags & TOF_TS) == 0 &&
+ TSTMP_LT(ticks, tp->t_badrxtwin))
+ cc_cong_signal(tp, th, CC_RTO_ERR);
}
/*

File Metadata

Mime Type
text/plain
Expires
Thu, Mar 20, 10:08 PM (6 h, 22 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
17235289
Default Alt Text
D49414.diff (1 KB)

Event Timeline