All of lore.kernel.org
 help / color / mirror / Atom feed
From: Matthieu Baerts <matttbe@kernel.org>
To: Jason Xing <kerneljasonxing@gmail.com>,
	edumazet@google.com, dsahern@kernel.org, martineau@kernel.org,
	geliang@kernel.org, kuba@kernel.org, pabeni@redhat.com,
	davem@davemloft.net, rostedt@goodmis.org, mhiramat@kernel.org,
	mathieu.desnoyers@efficios.com, atenart@kernel.org
Cc: mptcp@lists.linux.dev, netdev@vger.kernel.org,
	linux-trace-kernel@vger.kernel.org,
	Jason Xing <kernelxing@tencent.com>
Subject: Re: [PATCH net-next v7 1/7] net: introduce rstreason to detect why the RST is sent
Date: Mon, 22 Apr 2024 10:46:51 +0200	[thread overview]
Message-ID: <4f492445-1fe3-44af-bbaa-bb1fe281964e@kernel.org> (raw)
In-Reply-To: <20240422030109.12891-2-kerneljasonxing@gmail.com>

Hi Jason,

On 22/04/2024 05:01, Jason Xing wrote:
> From: Jason Xing <kernelxing@tencent.com>
> 
> Add a new standalone file for the easy future extension to support
> both active reset and passive reset in the TCP/DCCP/MPTCP protocols.

Thank you for looking at that!

(...)

> diff --git a/include/net/rstreason.h b/include/net/rstreason.h
> new file mode 100644
> index 000000000000..c57bc5413c17
> --- /dev/null
> +++ b/include/net/rstreason.h
> @@ -0,0 +1,144 @@
> +/* SPDX-License-Identifier: GPL-2.0-or-later */
> +
> +#ifndef _LINUX_RSTREASON_H
> +#define _LINUX_RSTREASON_H
> +#include <net/dropreason-core.h>
> +#include <uapi/linux/mptcp.h>
> +
> +#define DEFINE_RST_REASON(FN, FNe)	\
> +	FN(MPTCP_RST_EUNSPEC)		\
> +	FN(MPTCP_RST_EMPTCP)		\
> +	FN(MPTCP_RST_ERESOURCE)		\
> +	FN(MPTCP_RST_EPROHIBIT)		\
> +	FN(MPTCP_RST_EWQ2BIG)		\
> +	FN(MPTCP_RST_EBADPERF)		\
> +	FN(MPTCP_RST_EMIDDLEBOX)	\

Small detail: should it not make more sense to put the ones linked to
MPTCP at the end? I mean I guess MPTCP should be treated in second
priority: CONFIG_MPTCP could not be set, and the ones linked to TCP
should be more frequent, etc.

> +	FN(NOT_SPECIFIED)		\
> +	FN(NO_SOCKET)			\
> +	FNe(MAX)

(...)

> +/* Convert reset reasons in MPTCP to our own enum type */
> +static inline enum sk_rst_reason convert_mptcpreason(u32 reason)
> +{
> +	switch (reason) {
> +	case MPTCP_RST_EUNSPEC:
> +		return SK_RST_REASON_MPTCP_RST_EUNSPEC;
> +	case MPTCP_RST_EMPTCP:
> +		return SK_RST_REASON_MPTCP_RST_EMPTCP;
> +	case MPTCP_RST_ERESOURCE:
> +		return SK_RST_REASON_MPTCP_RST_ERESOURCE;
> +	case MPTCP_RST_EPROHIBIT:
> +		return SK_RST_REASON_MPTCP_RST_EPROHIBIT;
> +	case MPTCP_RST_EWQ2BIG:
> +		return SK_RST_REASON_MPTCP_RST_EWQ2BIG;
> +	case MPTCP_RST_EBADPERF:
> +		return SK_RST_REASON_MPTCP_RST_EBADPERF;
> +	case MPTCP_RST_EMIDDLEBOX:
> +		return SK_RST_REASON_MPTCP_RST_EMIDDLEBOX;
> +	default:
> +		/**
> +		 * It should not happen, or else errors may occur
> +		 * in MPTCP layer
> +		 */
> +		return SK_RST_REASON_ERROR;
> +	}
> +}

If this helper is only used on MPTCP, maybe better to move it to
net/mptcp/protocol.h (and to patch 5/7?)? We tried to isolate MPTCP code.

Also, maybe it is just me, but I'm not a big fan of the helper name:
convert_mptcpreason() (same for the "drop" one). I think it should at
least mention its "origin" (rst reason): e.g. something like
(sk_)rst_reason_convert_mptcp or (sk_)rst_convert_mptcp_reason() (or
mptcp_to_rst_reason())?

And (sk_)rst_reason_convert_(skb_)drop() (or skb_drop_to_rst_reason())?

> +/* Convert reset reasons in MPTCP to our own enum type */

I don't think this part is linked to MPTCP, right?

> +static inline enum sk_rst_reason convert_dropreason(enum skb_drop_reason reason)
> +{
> +	switch (reason) {
> +	case SKB_DROP_REASON_NOT_SPECIFIED:
> +		return SK_RST_REASON_NOT_SPECIFIED;
> +	case SKB_DROP_REASON_NO_SOCKET:
> +		return SK_RST_REASON_NO_SOCKET;
> +	default:
> +		/* If we don't have our own corresponding reason */
> +		return SK_RST_REASON_NOT_SPECIFIED;
> +	}
> +}

(This helper could be introduced in patch 4/7 because it is not used
before, but I'm fine either ways.)

> +#endif

Cheers,
Matt
-- 
Sponsored by the NGI0 Core fund.


  reply	other threads:[~2024-04-22  8:47 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-04-22  3:01 [PATCH net-next v7 0/7] Implement reset reason mechanism to detect Jason Xing
2024-04-22  3:01 ` [PATCH net-next v7 1/7] net: introduce rstreason to detect why the RST is sent Jason Xing
2024-04-22  8:46   ` Matthieu Baerts [this message]
2024-04-22  9:17     ` Jason Xing
2024-04-22 10:05       ` Matthieu Baerts
2024-04-22 18:27   ` Simon Horman
2024-04-23  2:14     ` Jason Xing
2024-04-23  2:17       ` Jason Xing
2024-04-23 11:57         ` Simon Horman
2024-04-23 12:03           ` Jason Xing
2024-04-22  3:01 ` [PATCH net-next v7 2/7] rstreason: prepare for passive reset Jason Xing
2024-04-22  3:01 ` [PATCH net-next v7 3/7] rstreason: prepare for active reset Jason Xing
2024-04-22  3:01 ` [PATCH net-next v7 4/7] tcp: support rstreason for passive reset Jason Xing
2024-04-22  3:01 ` [PATCH net-next v7 5/7] mptcp: " Jason Xing
2024-04-22  3:01 ` [PATCH net-next v7 6/7] mptcp: introducing a helper into active reset logic Jason Xing
2024-04-22  3:01 ` [PATCH net-next v7 7/7] rstreason: make it work in trace world Jason Xing
2024-04-22  3:54 ` [PATCH net-next v7 0/7] Implement reset reason mechanism to detect MPTCP CI

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4f492445-1fe3-44af-bbaa-bb1fe281964e@kernel.org \
    --to=matttbe@kernel.org \
    --cc=atenart@kernel.org \
    --cc=davem@davemloft.net \
    --cc=dsahern@kernel.org \
    --cc=edumazet@google.com \
    --cc=geliang@kernel.org \
    --cc=kerneljasonxing@gmail.com \
    --cc=kernelxing@tencent.com \
    --cc=kuba@kernel.org \
    --cc=linux-trace-kernel@vger.kernel.org \
    --cc=martineau@kernel.org \
    --cc=mathieu.desnoyers@efficios.com \
    --cc=mhiramat@kernel.org \
    --cc=mptcp@lists.linux.dev \
    --cc=netdev@vger.kernel.org \
    --cc=pabeni@redhat.com \
    --cc=rostedt@goodmis.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.