tcp: introduce dropreasons in receive path
authorJason Xing <kernelxing@tencent.com>
Mon, 26 Feb 2024 03:22:23 +0000 (11:22 +0800)
committerDavid S. Miller <davem@davemloft.net>
Wed, 28 Feb 2024 10:39:21 +0000 (10:39 +0000)
Soon later patches can use these relatively more accurate
reasons to recognise and find out the cause.

Signed-off-by: Jason Xing <kernelxing@tencent.com>
Reviewed-by: Eric Dumazet <edumazet@google.com>
Reviewed-by: David Ahern <dsahern@kernel.org>
Reviewed-by: Kuniyuki Iwashima <kuniyu@amazon.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/net/dropreason-core.h

index a871f061558d60e6ee0d0600dbdbe7fa84f94e58..9707ab54fdd52c8b56333230e2de4704d2472fe3 100644 (file)
@@ -30,6 +30,7 @@
        FN(TCP_AOFAILURE)               \
        FN(SOCKET_BACKLOG)              \
        FN(TCP_FLAGS)                   \
+       FN(TCP_ABORT_ON_DATA)           \
        FN(TCP_ZEROWINDOW)              \
        FN(TCP_OLD_DATA)                \
        FN(TCP_OVERWINDOW)              \
@@ -37,6 +38,7 @@
        FN(TCP_RFC7323_PAWS)            \
        FN(TCP_OLD_SEQUENCE)            \
        FN(TCP_INVALID_SEQUENCE)        \
+       FN(TCP_INVALID_ACK_SEQUENCE)    \
        FN(TCP_RESET)                   \
        FN(TCP_INVALID_SYN)             \
        FN(TCP_CLOSE)                   \
@@ -204,6 +206,11 @@ enum skb_drop_reason {
        SKB_DROP_REASON_SOCKET_BACKLOG,
        /** @SKB_DROP_REASON_TCP_FLAGS: TCP flags invalid */
        SKB_DROP_REASON_TCP_FLAGS,
+       /**
+        * @SKB_DROP_REASON_TCP_ABORT_ON_DATA: abort on data, corresponding to
+        * LINUX_MIB_TCPABORTONDATA
+        */
+       SKB_DROP_REASON_TCP_ABORT_ON_DATA,
        /**
         * @SKB_DROP_REASON_TCP_ZEROWINDOW: TCP receive window size is zero,
         * see LINUX_MIB_TCPZEROWINDOWDROP
@@ -228,13 +235,19 @@ enum skb_drop_reason {
        SKB_DROP_REASON_TCP_OFOMERGE,
        /**
         * @SKB_DROP_REASON_TCP_RFC7323_PAWS: PAWS check, corresponding to
-        * LINUX_MIB_PAWSESTABREJECTED
+        * LINUX_MIB_PAWSESTABREJECTED, LINUX_MIB_PAWSACTIVEREJECTED
         */
        SKB_DROP_REASON_TCP_RFC7323_PAWS,
        /** @SKB_DROP_REASON_TCP_OLD_SEQUENCE: Old SEQ field (duplicate packet) */
        SKB_DROP_REASON_TCP_OLD_SEQUENCE,
        /** @SKB_DROP_REASON_TCP_INVALID_SEQUENCE: Not acceptable SEQ field */
        SKB_DROP_REASON_TCP_INVALID_SEQUENCE,
+       /**
+        * @SKB_DROP_REASON_TCP_INVALID_ACK_SEQUENCE: Not acceptable ACK SEQ
+        * field because ack sequence is not in the window between snd_una
+        * and snd_nxt
+        */
+       SKB_DROP_REASON_TCP_INVALID_ACK_SEQUENCE,
        /** @SKB_DROP_REASON_TCP_RESET: Invalid RST packet */
        SKB_DROP_REASON_TCP_RESET,
        /**