diff options
author | Paolo Abeni <pabeni@redhat.com> | 2023-12-04 17:08:05 +0100 |
---|---|---|
committer | Jakub Kicinski <kuba@kernel.org> | 2023-12-05 20:07:02 -0800 |
commit | 58d3aade20cdddbac6c9707ac0f3f5f8c1278b74 (patch) | |
tree | cb236954a4b2b7a6db71e238163a273bfc3ae8fb /net/bpf | |
parent | d007caaaf052f82ca2340d4c7b32d04a3f5dbf3f (diff) |
tcp: fix mid stream window clamp.
After the blamed commit below, if the user-space application performs
window clamping when tp->rcv_wnd is 0, the TCP socket will never be
able to announce a non 0 receive window, even after completely emptying
the receive buffer and re-setting the window clamp to higher values.
Refactor tcp_set_window_clamp() to address the issue: when the user
decreases the current clamp value, set rcv_ssthresh according to the
same logic used at buffer initialization, but ensuring reserved mem
provisioning.
To avoid code duplication factor-out the relevant bits from
tcp_adjust_rcv_ssthresh() in a new helper and reuse it in the above
scenario.
When increasing the clamp value, give the rcv_ssthresh a chance to grow
according to previously implemented heuristic.
Fixes: 3aa7857fe1d7 ("tcp: enable mid stream window clamp")
Reported-by: David Gibson <david@gibson.dropbear.id.au>
Reported-by: Stefano Brivio <sbrivio@redhat.com>
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
Reviewed-by: Eric Dumazet <edumazet@google.com>
Link: https://lore.kernel.org/r/705dad54e6e6e9a010e571bf58e0b35a8ae70503.1701706073.git.pabeni@redhat.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'net/bpf')
0 files changed, 0 insertions, 0 deletions