On 1/8/19, 6:13 PM, "netdev-ow...@vger.kernel.org on behalf of Yuchung Cheng" 
<netdev-ow...@vger.kernel.org on behalf of ych...@google.com> wrote:

    The existing BPF TCP initial congestion window (TCP_BPF_IW) does not
    to work on (active) Fast Open sender. This is because it changes the
    (initial) window only if data_segs_out is zero -- but data_segs_out
    is also incremented on SYN-data.  This patch fixes the issue by
    proerly accounting for SYN-data additionally.
    
    Fixes: fc7478103c84 ("bpf: Adds support for setting initial cwnd")
    Signed-off-by: Yuchung Cheng <ych...@google.com>
    Reviewed-by: Neal Cardwell <ncardw...@google.com>
    ---
     net/core/filter.c | 2 +-
     1 file changed, 1 insertion(+), 1 deletion(-)
    
    diff --git a/net/core/filter.c b/net/core/filter.c
    index 447dd1bad31f..2b3b436ef545 100644
    --- a/net/core/filter.c
    +++ b/net/core/filter.c
    @@ -4203,7 +4203,7 @@ BPF_CALL_5(bpf_setsockopt, struct bpf_sock_ops_kern 
*, bpf_sock,
                        /* Only some options are supported */
                        switch (optname) {
                        case TCP_BPF_IW:
    -                           if (val <= 0 || tp->data_segs_out > 0)
    +                           if (val <= 0 || tp->data_segs_out > 
tp->syn_data)
                                        ret = -EINVAL;
                                else
                                        tp->snd_cwnd = val;
    -- 
    2.20.1.97.g81188d93c3-goog
    
Looks good to me. 

Acked-by: Lawrence Brakmo <bra...@fb.com>
   

Reply via email to