[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20210819195443.1191973-1-ntspring@fb.com>
Date: Thu, 19 Aug 2021 12:54:43 -0700
From: Neil Spring <ntspring@...com>
To: <davem@...emloft.net>, <edumazet@...gle.com>
CC: <yoshfuji@...ux-ipv6.org>, <dsahern@...nel.org>, <kuba@...nel.org>,
<netdev@...r.kernel.org>, <ncardwell@...gle.com>,
<ycheng@...gle.com>, Neil Spring <ntspring@...com>
Subject: [PATCH net-next v2] tcp: enable mid stream window clamp
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.
Signed-off-by: Neil Spring <ntspring@...com>
---
v2: - fix email formatting
net/ipv4/tcp.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/net/ipv4/tcp.c b/net/ipv4/tcp.c
index f931def6302e..2dc6212d5888 100644
--- a/net/ipv4/tcp.c
+++ b/net/ipv4/tcp.c
@@ -3338,6 +3338,8 @@ 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_ssthresh,
+ tp->window_clamp);
}
return 0;
}
--
2.30.2
Powered by blists - more mailing lists