Author: tuexen
Date: Thu Sep 10 17:12:42 2020
New Revision: 365591
URL: https://svnweb.freebsd.org/changeset/base/365591

Log:
  MFC r364754:
  
  RFC 3465 defines a limit L used in TCP slow start for limiting the number
  of acked bytes as described in Section 2.2 of that document.
  This patch ensures that this limit is not also applied in congestion
  avoidance. Applying this limit also in congestion avoidance can result in
  using less bandwidth than allowed.

Modified:
  stable/12/sys/netinet/tcp_input.c
  stable/12/sys/netinet/tcp_stacks/rack.c
Directory Properties:
  stable/12/   (props changed)

Modified: stable/12/sys/netinet/tcp_input.c
==============================================================================
--- stable/12/sys/netinet/tcp_input.c   Thu Sep 10 17:03:36 2020        
(r365590)
+++ stable/12/sys/netinet/tcp_input.c   Thu Sep 10 17:12:42 2020        
(r365591)
@@ -309,8 +309,7 @@ cc_ack_received(struct tcpcb *tp, struct tcphdr *th, u
 
        if (type == CC_ACK) {
                if (tp->snd_cwnd > tp->snd_ssthresh) {
-                       tp->t_bytes_acked += min(tp->ccv->bytes_this_ack,
-                            nsegs * V_tcp_abc_l_var * tcp_maxseg(tp));
+                       tp->t_bytes_acked += tp->ccv->bytes_this_ack;
                        if (tp->t_bytes_acked >= tp->snd_cwnd) {
                                tp->t_bytes_acked -= tp->snd_cwnd;
                                tp->ccv->flags |= CCF_ABC_SENTAWND;

Modified: stable/12/sys/netinet/tcp_stacks/rack.c
==============================================================================
--- stable/12/sys/netinet/tcp_stacks/rack.c     Thu Sep 10 17:03:36 2020        
(r365590)
+++ stable/12/sys/netinet/tcp_stacks/rack.c     Thu Sep 10 17:12:42 2020        
(r365591)
@@ -1322,8 +1322,7 @@ rack_ack_received(struct tcpcb *tp, struct tcp_rack *r
                }
 #endif
                if (tp->snd_cwnd > tp->snd_ssthresh) {
-                       tp->t_bytes_acked += min(tp->ccv->bytes_this_ack,
-                           nsegs * V_tcp_abc_l_var * tp->t_maxseg);
+                       tp->t_bytes_acked += tp->ccv->bytes_this_ack;
                        if (tp->t_bytes_acked >= tp->snd_cwnd) {
                                tp->t_bytes_acked -= tp->snd_cwnd;
                                tp->ccv->flags |= CCF_ABC_SENTAWND;
_______________________________________________
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to