Thread (5 messages) flat view 5 messages, 5 authors, 2021-08-27

Re: [PATCH net-next v3] tcp: enable mid stream window clamp

From: Yuchung Cheng <hidden>
Date: 2021-08-26 19:11:53

On Wed, Aug 25, 2021 at 2:02 PM Neil Spring [off-list ref] wrote:
The TCP_WINDOW_CLAMP socket option is defined in tcp(7) to "Bound the size
of the advertised window to this value."  Window clamping is distributed
across two variables, window_clamp ("Maximal window to advertise" in
tcp.h) and rcv_ssthresh ("Current window clamp").

This patch updates the function where the window clamp is set to also
reduce the current window clamp, rcv_sshthresh, if needed.  With this,
setting the TCP_WINDOW_CLAMP option has the documented effect of limiting
the window.
This patch looks like a bug-fix so it should be applied to net not net-next?
quoted hunk ↗ jump to hunk
Signed-off-by: Neil Spring <redacted>
---
v2: - fix email formatting

v3: - address comments by setting rcv_ssthresh based on prior window

 net/ipv4/tcp.c | 1 +
 1 file changed, 1 insertion(+)
diff --git a/net/ipv4/tcp.c b/net/ipv4/tcp.c
index f931def6302e..e8b48df73c85 100644
--- a/net/ipv4/tcp.c
+++ b/net/ipv4/tcp.c
@@ -3338,6 +3338,7 @@ int tcp_set_window_clamp(struct sock *sk, int val)
        } else {
                tp->window_clamp = val < SOCK_MIN_RCVBUF / 2 ?
                        SOCK_MIN_RCVBUF / 2 : val;
+               tp->rcv_ssthresh = min(tp->rcv_wnd, tp->window_clamp);
        }
        return 0;
 }
--
2.30.2
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help