Hi, 

> On 2/06/2020, at 9:41 AM, Brian Brombacher <br...@planetunix.net> wrote:
> 
> Hi,
> 
> RFC 5681 Section 3.1 has an Implementation Note that covers the bug fixed by 
> the following patch.  I ran into this bug testing on a high latency link.  My 
> congestion window was pinned to a specific value and could not open further, 
> causing a lack of bandwidth utilization.
> 
> I chose if/assign rather than max(9) for clarity with the RFC; however, both 
> work fine.

As discussed off-list, I am setting up a test harness for this.

cheers,
Richard.


> Index: tcp_input.c
> ===================================================================
> RCS file: /home/brian/cvs/src/sys/netinet/tcp_input.c,v
> retrieving revision 1.364
> diff -u -r1.364 tcp_input.c
> --- tcp_input.c       6 Dec 2019 14:43:14 -0000       1.364
> +++ tcp_input.c       1 Jun 2020 21:16:26 -0000
> @@ -1707,8 +1707,11 @@
>               u_int cw = tp->snd_cwnd;
>               u_int incr = tp->t_maxseg;
> 
> -             if (cw > tp->snd_ssthresh)
> +             if (cw > tp->snd_ssthresh) {
>                       incr = incr * incr / cw;
> +                     if (incr == 0)
> +                             incr = 1;
> +             }
>               if (tp->t_dupacks < tcprexmtthresh)
>                       tp->snd_cwnd = ulmin(cw + incr,
>                           TCP_MAXWIN << tp->snd_scale);
> 

Reply via email to