[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <fa953ec-288f-7715-c6fb-47a222e85270@linux.intel.com>
Date: Mon, 23 May 2022 20:51:52 -0700 (PDT)
From: Mat Martineau <mathew.j.martineau@...ux.intel.com>
To: Greg Kroah-Hartman <gregkh@...uxfoundation.org>
cc: linux-kernel@...r.kernel.org, stable@...r.kernel.org,
Paolo Abeni <pabeni@...hat.com>,
Jakub Kicinski <kuba@...nel.org>,
Sasha Levin <sashal@...nel.org>,
Matthieu Baerts <matthieu.baerts@...sares.net>
Subject: Re: [PATCH 5.17 114/158] mptcp: strict local address ID selection
On Mon, 23 May 2022, Greg Kroah-Hartman wrote:
> From: Paolo Abeni <pabeni@...hat.com>
>
> [ Upstream commit 4cf86ae84c718333928fd2d43168a1e359a28329 ]
>
> The address ID selection for MPJ subflows created in response
> to incoming ADD_ADDR option is currently unreliable: it happens
> at MPJ socket creation time, when the local address could be
> unknown.
>
> Additionally, if the no local endpoint is available for the local
> address, a new dummy endpoint is created, confusing the user-land.
>
> This change refactor the code to move the address ID selection inside
> the rebuild_header() helper, when the local address eventually
> selected by the route lookup is finally known. If the address used
> is not mapped by any endpoint - and thus can't be advertised/removed
> pick the id 0 instead of allocate a new endpoint.
>
> Signed-off-by: Paolo Abeni <pabeni@...hat.com>
> Signed-off-by: Mat Martineau <mathew.j.martineau@...ux.intel.com>
> Signed-off-by: Jakub Kicinski <kuba@...nel.org>
> Signed-off-by: Sasha Levin <sashal@...nel.org>
> ---
> net/mptcp/pm_netlink.c | 13 --------
> net/mptcp/protocol.c | 3 ++
> net/mptcp/protocol.h | 3 +-
> net/mptcp/subflow.c | 67 ++++++++++++++++++++++++++++++++++++------
> 4 files changed, 63 insertions(+), 23 deletions(-)
>
Greg, Sasha -
Is it possible to drop this one patch? It makes one of the mptcp
selftests fail (mptcp_join.sh, "single address, backup").
Looks like this patch has been included in stable because of this single
hunk that helps "mptcp: Do TCP fallback on early DSS checksum failure"
apply cleanly:
> diff --git a/net/mptcp/protocol.h b/net/mptcp/protocol.h
> index aec767ee047a..e4413b3e50c2 100644
> --- a/net/mptcp/protocol.h
> +++ b/net/mptcp/protocol.h
> @@ -442,7 +442,8 @@ struct mptcp_subflow_context {
> rx_eof : 1,
> can_ack : 1, /* only after processing the remote a key */
> disposable : 1, /* ctx can be free at ulp release time */
> - stale : 1; /* unable to snd/rcv data, do not use for xmit */
> + stale : 1, /* unable to snd/rcv data, do not use for xmit */
> + local_id_valid : 1; /* local_id is correctly initialized */
> enum mptcp_data_avail data_avail;
> u32 remote_nonce;
> u64 thmac;
"mptcp: Do TCP fallback on early DSS checksum failure" also adds a bit to
that bitfield, but there is no functional dependency between the patches.
If you need to drop the "mptcp: Do TCP fallback..." patch too, I can send
a backported version tomorrow that accounts for that bitfield change.
Thanks!
--
Mat Martineau
Intel
Powered by blists - more mailing lists