Hello,

On Fri, Aug 06, 2021 at 12:26:10AM +0200, Alexander Bluhm wrote:
> Hi,
> 
> I have seen some stalling TCP connections while doing unidirectional
> throughput tests.  The sending machine is doing zero window probes,
> but is not sending more data although the other machine announced
> that it has space again.
> 
> I guess this commit in tcp_input.c triggered it:
> ----------------------------
> revision 1.362
> date: 2019/11/11 21:17:21;  author: bluhm;  state: Exp;  lines: +9 -3;  
> commitid: wXndkYTLO9jvCPdW;
> Prevent underflows in tp->snd_wnd if the remote side ACKs more than
> tp->snd_wnd.  This can happen, for example, when the remote side
> responds to a window probe by ACKing the one byte it contains.
> from FreeBSD; via markus@; OK sashan@ tobhe@
> ----------------------------
> 
> There we fixed an integer underflow.  So we no longer have uint32
> max in the send window, but 0.  I see this in my test case.  Now
> we need the machanism that writes the correct send window size.
> 
> There is a commit in FreeBSD from 2002:
> https://urldefense.com/v3/__https://github.com/freebsd/freebsd-src/commit/1645d0903ef7162f5c4516373f0c9df0501ac893__;!!ACWV5N9M2RV99hQ!bS5vG8TH_FAv1Bx-q4iPl5brhCeUQ-GvVeLnfT4b6mk4tY-ktVPZoOAX0zD5ySiQj4R416lx$
>  
> 
> The header prediction code did not update snd_wl2.  If there is a
> sequence number wrap, the send window update is not reached.
> 
> Although I did not obverve it, there seems to be the same problem
> for snd_wl1 and rcv_up.  For rcv_up I copied the comparison with
> rcv_nxt from urgent processing to keep future urgent data.
> 
> ok?
> 

    Looks good to me, OK sashan

    can you also share some details about testing you have done?
    (tool + command line options)


thanks a lot
regards
sashan

Reply via email to