Page MenuHomeFreeBSD

D33979.diff
No OneTemporary

D33979.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
@@ -1649,6 +1649,7 @@
if (TSTMP_GT(to.to_tsecr, tcp_ts_getticks()))
to.to_tsecr = 0;
else if (tp->t_flags & TF_PREVVALID &&
+ tp->t_rxtshift == 1 &&
tp->t_badrxtwin != 0 && SEQ_LT(to.to_tsecr, tp->t_badrxtwin))
cc_cong_signal(tp, th, CC_RTO_ERR);
}
diff --git a/sys/netinet/tcp_var.h b/sys/netinet/tcp_var.h
--- a/sys/netinet/tcp_var.h
+++ b/sys/netinet/tcp_var.h
@@ -506,7 +506,11 @@
#define TF_NEEDSYN 0x00000400 /* send SYN (implicit state) */
#define TF_NEEDFIN 0x00000800 /* send FIN (implicit state) */
#define TF_NOPUSH 0x00001000 /* don't push */
-#define TF_PREVVALID 0x00002000 /* saved values for bad rxmit valid */
+#define TF_PREVVALID 0x00002000 /* saved values for bad rxmit valid
+ * Note: accessing and restoring from
+ * these may only be done in the 1st
+ * RTO recovery round (t_rxtshift == 1)
+ */
#define TF_WAKESOR 0x00004000 /* wake up receive socket */
#define TF_GPUTINPROG 0x00008000 /* Goodput measurement in progress */
#define TF_MORETOCOME 0x00010000 /* More data to be appended to sock */

File Metadata

Mime Type
text/plain
Expires
Sat, Nov 9, 7:38 PM (21 h, 16 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
14565028
Default Alt Text
D33979.diff (1 KB)

Event Timeline