aboutsummaryrefslogtreecommitdiffstats
path: root/net/ipv4/tcp_input.c
diff options
context:
space:
mode:
authorPaolo Abeni <[email protected]>2025-07-21 17:20:22 +0000
committerJakub Kicinski <[email protected]>2025-07-23 01:21:15 +0000
commitb115c7758802f8d14ba8797e0ba979c47d78f310 (patch)
treef01f7761091af9c48eeac8295d838ca67c984384 /net/ipv4/tcp_input.c
parenttcp: do not set a zero size receive buffer (diff)
downloadkernel-b115c7758802f8d14ba8797e0ba979c47d78f310.tar.gz
kernel-b115c7758802f8d14ba8797e0ba979c47d78f310.zip
tcp: do not increment BeyondWindow MIB for old seq
The mentioned MIB is currently incremented even when a packet with an old sequence number (i.e. a zero window probe) is received, which is IMHO misleading. Explicitly restrict such MIB increment at the relevant events. Fixes: 6c758062c64d ("tcp: add LINUX_MIB_BEYOND_WINDOW") Acked-by: Eric Dumazet <[email protected]> Signed-off-by: Paolo Abeni <[email protected]> Link: https://patch.msgid.link/20d147292eb4b13b6535e0ad6f56be64d9c330d3.1753118029.git.pabeni@redhat.com Signed-off-by: Jakub Kicinski <[email protected]>
Diffstat (limited to 'net/ipv4/tcp_input.c')
-rw-r--r--net/ipv4/tcp_input.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c
index 81b6d3770812..71b76e98371a 100644
--- a/net/ipv4/tcp_input.c
+++ b/net/ipv4/tcp_input.c
@@ -5915,7 +5915,11 @@ step1:
if (!th->rst) {
if (th->syn)
goto syn_challenge;
- NET_INC_STATS(sock_net(sk), LINUX_MIB_BEYOND_WINDOW);
+
+ if (reason == SKB_DROP_REASON_TCP_INVALID_SEQUENCE ||
+ reason == SKB_DROP_REASON_TCP_INVALID_END_SEQUENCE)
+ NET_INC_STATS(sock_net(sk),
+ LINUX_MIB_BEYOND_WINDOW);
if (!tcp_oow_rate_limited(sock_net(sk), skb,
LINUX_MIB_TCPACKSKIPPEDSEQ,
&tp->last_oow_ack_time))