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