Page MenuHomeFreeBSD

D49414.id152457.diff
No OneTemporary

D49414.id152457.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,15 +1787,17 @@
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)) {
+ (((to.to_flags & TOF_TS) != 0 &&
+ to.to_tsecr != 0 &&
+ TSTMP_LT(to.to_tsecr, tp->t_badrxtwin)) ||
+ ((to.to_flags & TOF_TS) == 0 &&
+ TSTMP_LT(ticks, tp->t_badrxtwin))))
cc_cong_signal(tp, th, CC_RTO_ERR);
- }
/*
* Recalculate the transmit timer / rtt.

File Metadata

Mime Type
text/plain
Expires
Mon, Mar 2, 9:09 AM (6 h, 43 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
29151253
Default Alt Text
D49414.id152457.diff (1 KB)

Event Timeline