From: Eric Dumazet <eric.duma...@gmail.com>
Date: Sun, 06 Mar 2016 09:29:21 -0800

> From: Eric Dumazet <eduma...@google.com>
> 
> If final packet (ACK) of 3WHS is lost, it appears we do not properly
> account the following incoming segment into tcpi_segs_in
> 
> While we are at it, starts segs_in with one, to count the SYN packet.
> 
> We do not yet count number of SYN we received for a request sock, we
> might add this someday.
> 
> packetdrill script showing proper behavior after fix :
> 
> // Tests tcpi_segs_in when 3rd packet (ACK) of 3WHS is lost
> 0.000 socket(..., SOCK_STREAM, IPPROTO_TCP) = 3
>    +0 setsockopt(3, SOL_SOCKET, SO_REUSEADDR, [1], 4) = 0
>    +0 bind(3, ..., ...) = 0
>    +0 listen(3, 1) = 0
> 
>    +0 < S 0:0(0) win 32792 <mss 1000,sackOK,nop,nop>
>    +0 > S. 0:0(0) ack 1 <mss 1460,nop,nop,sackOK>
> +.020 < P. 1:1001(1000) ack 1 win 32792
> 
>    +0 accept(3, ..., ...) = 4
> 
> +.000 %{ assert tcpi_segs_in == 2, 'tcpi_segs_in=%d' % tcpi_segs_in }%
> 
> Fixes: 2efd055c53c06 ("tcp: add tcpi_segs_in and tcpi_segs_out to tcp_info")
> Signed-off-by: Eric Dumazet <eduma...@google.com>

Applied and queued up for -stable, thanks.

Reply via email to