Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F102195998
D33979.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
1 KB
Referenced Files
None
Subscribers
None
D33979.diff
View Options
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
Details
Attached
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)
Attached To
Mode
D33979: Only rewind erraneous RTO when previous values are truly valid
Attached
Detach File
Event Timeline
Log In to Comment