Re: [PATCH 5.17 114/158] mptcp: strict local address ID selection

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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



[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux