On Mon, May 23, 2022 at 08:51:52PM -0700, Mat Martineau wrote: > On Mon, 23 May 2022, Greg Kroah-Hartman wrote: > > > From: Paolo Abeni <pabeni@xxxxxxxxxx> > > > > [ 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@xxxxxxxxxx> > > Signed-off-by: Mat Martineau <mathew.j.martineau@xxxxxxxxxxxxxxx> > > Signed-off-by: Jakub Kicinski <kuba@xxxxxxxxxx> > > Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx> > > --- > > 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"). Does that mean the backport is incorrect, or that the selftest is wrong? > 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. Yes, I had to drop that second patch because of this. Both are now dropped from 5.15 and 5.17, can you provide a working backport? thanks, greg k-h