From: Matthieu Baerts <matttbe@kernel.org>
To: T S Rameshkumar <rameshsv06@gmail.com>, mptcp@lists.linux.dev
Cc: T S Rameshkumar <rameshkumar.t@phytecembedded.in>
Subject: Re: [PATCH mptcp-net] mptcp: reset MP_JOIN subflows on missing or invalid DSS options
Date: Mon, 12 Oct 2026 15:11:53 +0200 [thread overview]
Message-ID: <7da818ff-d263-4138-808c-e4bd23d110d6@kernel.org> (raw)
In-Reply-To: <20261012112625.578911-1-rameshkumar.t@phytecembedded.in>
Hi T S,
On 12/10/2026 13:26, T S Rameshkumar wrote:
> Per RFC 8684 Section 3.7, fallback to regular TCP is only permitted
> on the initial subflow. Additional subflows established via MP_JOIN
> MUST NOT fall back to regular TCP, and if an additional subflow
> encounters missing DSS mappings, corrupted mappings, or unmapped data,
> it MUST be closed with a reset.
>
> Currently, in subflow_check_data_avail(), when an MP_JOIN subflow
> receives data without DSS mapping or with invalid mappings, it branches
> to the fallback label. If fallback was already performed or allowed on
> the connection, the subflow bypasses reset and incorrectly accepts
> plain TCP data, synthesizing a fake fallback mapping.
Do you have a reproducer for this?
> Fix this by explicitly checking if the subflow is a joined subflow
> (subflow->mp_join || ssk != READ_ONCE(msk->first)) under the fallback
> label. If so, immediately set the appropriate reset reason
> (MPTCP_RST_EMIDDLEBOX on MAPPING_NODSS, MPTCP_RST_EMPTCP otherwise),
> increment MPTCP_MIB_DSSRESET, and jump to reset.
>
> Closes: https://github.com/multipath-tcp/mptcp_net-next/issues/544
> Signed-off-by: T S Rameshkumar <rameshkumar.t@phytecembedded.in>
> ---
> net/mptcp/subflow.c | 24 +++++++++++++++++++++++-
> 1 file changed, 23 insertions(+), 1 deletion(-)
>
> diff --git a/net/mptcp/subflow.c b/net/mptcp/subflow.c
> index 78e886b20..5faab6ffd 100644
> --- a/net/mptcp/subflow.c
> +++ b/net/mptcp/subflow.c
> @@ -1446,7 +1446,7 @@ static bool subflow_check_data_avail(struct sock *ssk)
> return false;
>
> fallback:
> - if (!__mptcp_check_fallback(msk)) {
> + if (subflow->mp_join || ssk != READ_ONCE(msk->first)) {
Here you are changing the condition "did we already fallback". Is it
because a fallback already happened but yet you have a second subflow?
That's not consistent, and the root cause is elsewhere.
Maybe it is linked to:
https://lore.kernel.org/20260814-mptcp-reset-mpj-early-v1-0-3ca3260f9474@kernel.org
I didn't have time to work on a v2.
Cheers,
Matt
--
Sponsored by the NGI0 Core fund.
next prev parent reply other threads:[~2026-10-12 13:11 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-10-12 11:26 [PATCH mptcp-net] mptcp: reset MP_JOIN subflows on missing or invalid DSS options T S Rameshkumar
2026-10-12 11:41 ` sashiko-bot
2026-10-12 12:21 ` MPTCP CI
2026-10-12 13:11 ` Matthieu Baerts [this message]
2026-10-14 0:35 ` netdev-bot+sashiko
[not found] <CADRhS2vwE7QCAPgGmt96gCQ7bwHBWJJXG-d0at13ZAO+Z5kHJg@mail.gmail.com>
2026-10-13 9:01 ` Matthieu Baerts
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=7da818ff-d263-4138-808c-e4bd23d110d6@kernel.org \
--to=matttbe@kernel.org \
--cc=mptcp@lists.linux.dev \
--cc=rameshkumar.t@phytecembedded.in \
--cc=rameshsv06@gmail.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox