Author: tuexen
Date: Fri Jan 24 22:50:23 2020
New Revision: 357101
URL: https://svnweb.freebsd.org/changeset/base/357101

Log:
  Don't delay the ACK for a TCP segment with the CWR flag set.
  This allows the data sender to increase the CWND faster.
  
  Submitted by:         Richard Scheffenegger
  Reviewed by:          rgrimes@, tuexen@, Cheng Cui
  MFC after:            1 week
  Differential Revision:        https://reviews.freebsd.org/D22670

Modified:
  head/sys/netinet/tcp_input.c
  head/sys/netinet/tcp_stacks/rack.c

Modified: head/sys/netinet/tcp_input.c
==============================================================================
--- head/sys/netinet/tcp_input.c        Fri Jan 24 22:37:53 2020        
(r357100)
+++ head/sys/netinet/tcp_input.c        Fri Jan 24 22:50:23 2020        
(r357101)
@@ -1545,8 +1545,10 @@ tcp_do_segment(struct mbuf *m, struct tcphdr *th, stru
         * TCP ECN processing.
         */
        if (tp->t_flags2 & TF2_ECN_PERMIT) {
-               if (thflags & TH_CWR)
+               if (thflags & TH_CWR) {
                        tp->t_flags2 &= ~TF2_ECN_SND_ECE;
+                       tp->t_flags |= TF_ACKNOW;
+               }
                switch (iptos & IPTOS_ECN_MASK) {
                case IPTOS_ECN_CE:
                        tp->t_flags2 |= TF2_ECN_SND_ECE;

Modified: head/sys/netinet/tcp_stacks/rack.c
==============================================================================
--- head/sys/netinet/tcp_stacks/rack.c  Fri Jan 24 22:37:53 2020        
(r357100)
+++ head/sys/netinet/tcp_stacks/rack.c  Fri Jan 24 22:50:23 2020        
(r357101)
@@ -7701,8 +7701,10 @@ rack_do_segment_nounlock(struct mbuf *m, struct tcphdr
         * this to occur after we've validated the segment.
         */
        if (tp->t_flags2 & TF2_ECN_PERMIT) {
-               if (thflags & TH_CWR)
+               if (thflags & TH_CWR) {
                        tp->t_flags2 &= ~TF2_ECN_SND_ECE;
+                       tp->t_flags |= TF_ACKNOW;
+               }
                switch (iptos & IPTOS_ECN_MASK) {
                case IPTOS_ECN_CE:
                        tp->t_flags2 |= TF2_ECN_SND_ECE;
_______________________________________________
[email protected] mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "[email protected]"

Reply via email to