Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F146975551
D8552.id22417.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
D8552.id22417.diff
View Options
Index: head/sys/netinet/tcp_syncache.c
===================================================================
--- head/sys/netinet/tcp_syncache.c
+++ head/sys/netinet/tcp_syncache.c
@@ -1069,10 +1069,17 @@
}
/*
- * If timestamps were negotiated the reflected timestamp
- * must be equal to what we actually sent in the SYN|ACK.
+ * If timestamps were negotiated, the reflected timestamp
+ * must be equal to what we actually sent in the SYN|ACK
+ * except in the case of 0. Some boxes are known for sending
+ * broken timestamp replies during the 3whs (and potentially
+ * during the connection also).
+ *
+ * Accept the final ACK of 3whs with reflected timestamp of 0
+ * instead of sending a RST and deleting the syncache entry.
*/
- if ((to->to_flags & TOF_TS) && to->to_tsecr != sc->sc_ts) {
+ if ((to->to_flags & TOF_TS) && to->to_tsecr &&
+ to->to_tsecr != sc->sc_ts) {
if ((s = tcp_log_addrs(inc, th, NULL, NULL)))
log(LOG_DEBUG, "%s; %s: TSECR %u != TS %u, "
"segment rejected\n",
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Sun, Mar 8, 6:30 AM (14 h, 45 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
29397596
Default Alt Text
D8552.id22417.diff (1 KB)
Attached To
Mode
D8552: Ignore ACKs with tsecr 0 during 3whs in syncache code.
Attached
Detach File
Event Timeline
Log In to Comment