svn commit: r357100 - in head/sys/netinet: . tcp_stacks
Michael Tuexen
tuexen at FreeBSD.org
Fri Jan 24 22:37:54 UTC 2020
Author: tuexen
Date: Fri Jan 24 22:37:53 2020
New Revision: 357100
URL: https://svnweb.freebsd.org/changeset/base/357100
Log:
The server side of TCP fast open relies on the delayed ACK timer to allow
including user data in the SYN-ACK. When DSACK support was added in
r347382, an immediate ACK was sent even for the received SYN with
user data. This patch fixes that and allows again to send user data with
the SYN-ACK.
Reported by: Jeremy Harris
Reviewed by: Richard Scheffenegger, rrs@
MFC after: 1 week
Sponsored by: Netflix, Inc.
Differential Revision: https://reviews.freebsd.org/D23212
Modified:
head/sys/netinet/tcp_input.c
head/sys/netinet/tcp_stacks/rack_bbr_common.c
Modified: head/sys/netinet/tcp_input.c
==============================================================================
--- head/sys/netinet/tcp_input.c Fri Jan 24 22:15:36 2020 (r357099)
+++ head/sys/netinet/tcp_input.c Fri Jan 24 22:37:53 2020 (r357100)
@@ -2226,7 +2226,7 @@ tcp_do_segment(struct mbuf *m, struct tcphdr *th, stru
/*
* DSACK - add SACK block for dropped range
*/
- if (tp->t_flags & TF_SACK_PERMIT) {
+ if ((todrop > 0) && (tp->t_flags & TF_SACK_PERMIT)) {
tcp_update_sack_list(tp, th->th_seq,
th->th_seq + todrop);
/*
Modified: head/sys/netinet/tcp_stacks/rack_bbr_common.c
==============================================================================
--- head/sys/netinet/tcp_stacks/rack_bbr_common.c Fri Jan 24 22:15:36 2020 (r357099)
+++ head/sys/netinet/tcp_stacks/rack_bbr_common.c Fri Jan 24 22:37:53 2020 (r357100)
@@ -548,7 +548,7 @@ ctf_drop_checks(struct tcpopt *to, struct mbuf *m, str
/*
* DSACK - add SACK block for dropped range
*/
- if (tp->t_flags & TF_SACK_PERMIT) {
+ if ((todrop > 0) && (tp->t_flags & TF_SACK_PERMIT)) {
tcp_update_sack_list(tp, th->th_seq,
th->th_seq + todrop);
/*
More information about the svn-src-all
mailing list