net: introduce rstreason to detect why the RST is sent
authorJason Xing <kernelxing@tencent.com>
Thu, 25 Apr 2024 03:13:34 +0000 (11:13 +0800)
committerPaolo Abeni <pabeni@redhat.com>
Fri, 26 Apr 2024 13:34:00 +0000 (15:34 +0200)
commit5cb2cb3cb20cb2618c877a50db3c013449cc4e75
treef2b2bd51d7b52fedb1b8746bd44774151c158122
parent15fd021bc4270273d8f4b7f58fdda8a16214a377
net: introduce rstreason to detect why the RST is sent

Add a new standalone file for the easy future extension to support
both active reset and passive reset in the TCP/DCCP/MPTCP protocols.

This patch only does the preparations for reset reason mechanism,
nothing else changes.

The reset reasons are divided into three parts:
1) reuse drop reasons for passive reset in TCP
2) our own independent reasons which aren't relying on other reasons at all
3) reuse MP_TCPRST option for MPTCP

The benefits of a standalone reset reason are listed here:
1) it can cover more than one case, such as reset reasons in MPTCP,
active reset reasons.
2) people can easily/fastly understand and maintain this mechanism.
3) we get unified format of output with prefix stripped.
4) more new reset reasons are on the way
...

I will implement the basic codes of active/passive reset reason in
those three protocols, which are not complete for this moment. For
passive reset part in TCP, I only introduce the NO_SOCKET common case
which could be set as an example.

After this series applied, it will have the ability to open a new
gate to let other people contribute more reasons into it :)

Signed-off-by: Jason Xing <kernelxing@tencent.com>
Acked-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
Reviewed-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
include/net/rstreason.h [new file with mode: 0644]