On Wed, Apr 17, 2024 at 4:51 PM Jason Xing <kerneljasonx...@gmail.com> wrote: > > From: Jason Xing <kernelx...@tencent.com> > > In production, there are so many cases about why the RST skb is sent but > we don't have a very convenient/fast method to detect the exact underlying > reasons. > > RST is implemented in two kinds: passive kind (like tcp_v4_send_reset()) > and active kind (like tcp_send_active_reset()). The former can be traced > carefully 1) in TCP, with the help of drop reasons, which is based on > Eric's idea[1], 2) in MPTCP, with the help of reset options defined in > RFC 8684. The latter is relatively independent, which should be > implemented on our own. > > In this series, I focus on the fundamental implement mostly about how > the rstreason mechnism works and give the detailed passive part as an > example, not including the active reset part. In future, we can go > further and refine those NOT_SPECIFIED reasons. > > Here are some examples when tracing: > <idle>-0 [002] ..s1. 1830.262425: tcp_send_reset: skbaddr=x > skaddr=x src=x dest=x state=x reason=NOT_SPECIFIED > <idle>-0 [002] ..s1. 1830.262425: tcp_send_reset: skbaddr=x > skaddr=x src=x dest=x state=x reason=NO_SOCKET > > [1] > Link: > https://lore.kernel.org/all/CANn89iJw8x-LqgsWOeJQQvgVg6DnL5aBRLi10QN2WBdr+X4k=w...@mail.gmail.com/ > > v6 > 1. add back casts, or else they are treated as error. > > v5 > Link: > https://lore.kernel.org/all/20240411115630.38420-1-kerneljasonx...@gmail.com/ > 1. address format issue (like reverse xmas tree) (Eric, Paolo) > 2. remove unnecessary casts. (Eric) > 3. introduce a helper used in mptcp active reset. See patch 6. (Paolo) > > v4 > Link: > https://lore.kernel.org/all/20240409100934.37725-1-kerneljasonx...@gmail.com/ > 1. passing 'enum sk_rst_reason' for readability when tracing (Antoine) > > v3 > Link: > https://lore.kernel.org/all/20240404072047.11490-1-kerneljasonx...@gmail.com/ > 1. rebase (mptcp part) and address what Mat suggested. > > v2 > Link: https://lore.kernel.org/all/20240403185033.47ebc...@kernel.org/ > 1. rebase against the latest net-next tree > > > > Jason Xing (7): > net: introduce rstreason to detect why the RST is sent > rstreason: prepare for passive reset > rstreason: prepare for active reset > tcp: support rstreason for passive reset > mptcp: support rstreason for passive reset > mptcp: introducing a helper into active reset logic > rstreason: make it work in trace world > > include/net/request_sock.h | 4 +- > include/net/rstreason.h | 93 ++++++++++++++++++++++++++++++++++++++ > include/net/tcp.h | 3 +- > include/trace/events/tcp.h | 37 +++++++++++++-- > net/dccp/ipv4.c | 10 ++-- > net/dccp/ipv6.c | 10 ++-- > net/dccp/minisocks.c | 3 +- > net/ipv4/tcp.c | 15 ++++-- > net/ipv4/tcp_ipv4.c | 14 +++--- > net/ipv4/tcp_minisocks.c | 3 +- > net/ipv4/tcp_output.c | 5 +- > net/ipv4/tcp_timer.c | 9 ++-- > net/ipv6/tcp_ipv6.c | 17 ++++--- > net/mptcp/protocol.c | 2 +- > net/mptcp/protocol.h | 11 +++++ > net/mptcp/subflow.c | 27 ++++++++--- > 16 files changed, 216 insertions(+), 47 deletions(-) > create mode 100644 include/net/rstreason.h > > -- > 2.37.3 >
Hello maintainers, I'm not sure why the patch series has been changed to 'Changes Requested', until now I don't think I need to change something. Should I repost this series (keeping the v6 tag) and then wait for more comments? Thanks, Jason