]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
tcp: add LINUX_MIB_BEYOND_WINDOW
authorEric Dumazet <edumazet@google.com>
Fri, 11 Jul 2025 11:40:00 +0000 (11:40 +0000)
committerJakub Kicinski <kuba@kernel.org>
Tue, 15 Jul 2025 01:41:42 +0000 (18:41 -0700)
Add a new SNMP MIB : LINUX_MIB_BEYOND_WINDOW

Incremented when an incoming packet is received beyond the
receiver window.

nstat -az | grep TcpExtBeyondWindow

Signed-off-by: Eric Dumazet <edumazet@google.com>
Reviewed-by: Kuniyuki Iwashima <kuniyu@google.com>
Link: https://patch.msgid.link/20250711114006.480026-3-edumazet@google.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Documentation/networking/net_cachelines/snmp.rst
include/net/dropreason-core.h
include/uapi/linux/snmp.h
net/ipv4/proc.c
net/ipv4/tcp_input.c

index bd44b3eebbef75352599883b9dde36e7889d4120..bce4eb35ec48112ec43d99c58351d3b646a708ec 100644 (file)
@@ -36,6 +36,7 @@ unsigned_long  LINUX_MIB_TIMEWAITRECYCLED
 unsigned_long  LINUX_MIB_TIMEWAITKILLED
 unsigned_long  LINUX_MIB_PAWSACTIVEREJECTED
 unsigned_long  LINUX_MIB_PAWSESTABREJECTED
+unsigned_long  LINUX_MIB_BEYOND_WINDOW
 unsigned_long  LINUX_MIB_TSECR_REJECTED
 unsigned_long  LINUX_MIB_PAWS_OLD_ACK
 unsigned_long  LINUX_MIB_PAWS_TW_REJECTED
index beb134d5574795d00436678bf056e2bfc12389a9..229bb1826f2a401ca55257f8dc01e1aa9f8b7c23 100644 (file)
@@ -309,6 +309,7 @@ enum skb_drop_reason {
        /**
         * @SKB_DROP_REASON_TCP_INVALID_END_SEQUENCE:
         * Not acceptable END_SEQ field.
+        * Corresponds to LINUX_MIB_BEYOND_WINDOW.
         */
        SKB_DROP_REASON_TCP_INVALID_END_SEQUENCE,
        /**
index 1d234d7e1892778c5ff04c240f8360608f391401..49f5640092a0df7ca2bfb01e87a627d9b1bc4233 100644 (file)
@@ -186,6 +186,7 @@ enum
        LINUX_MIB_TIMEWAITKILLED,               /* TimeWaitKilled */
        LINUX_MIB_PAWSACTIVEREJECTED,           /* PAWSActiveRejected */
        LINUX_MIB_PAWSESTABREJECTED,            /* PAWSEstabRejected */
+       LINUX_MIB_BEYOND_WINDOW,                /* BeyondWindow */
        LINUX_MIB_TSECRREJECTED,                /* TSEcrRejected */
        LINUX_MIB_PAWS_OLD_ACK,                 /* PAWSOldAck */
        LINUX_MIB_PAWS_TW_REJECTED,             /* PAWSTimewait */
index ea2f01584379a59a0a01226ae0f45d3614733fef..65b0d0ab0084029db43135a91da6eeb1f1fba024 100644 (file)
@@ -189,6 +189,7 @@ static const struct snmp_mib snmp4_net_list[] = {
        SNMP_MIB_ITEM("TWKilled", LINUX_MIB_TIMEWAITKILLED),
        SNMP_MIB_ITEM("PAWSActive", LINUX_MIB_PAWSACTIVEREJECTED),
        SNMP_MIB_ITEM("PAWSEstab", LINUX_MIB_PAWSESTABREJECTED),
+       SNMP_MIB_ITEM("BeyondWindow", LINUX_MIB_BEYOND_WINDOW),
        SNMP_MIB_ITEM("TSEcrRejected", LINUX_MIB_TSECRREJECTED),
        SNMP_MIB_ITEM("PAWSOldAck", LINUX_MIB_PAWS_OLD_ACK),
        SNMP_MIB_ITEM("PAWSTimewait", LINUX_MIB_PAWS_TW_REJECTED),
index f0f9c78654b449cb2a122e8c53fdcc96e5317de7..5e2d82c273e2fc914706651a660464db4aba8504 100644 (file)
@@ -5900,6 +5900,7 @@ step1:
                if (!th->rst) {
                        if (th->syn)
                                goto syn_challenge;
+                       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))