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 -
Same issue with this patch as
[PATCH 5.17 114/158] mptcp: strict local address ID selection
so hopefully you can drop this one but keep "mptcp: Do TCP fallback on
early DSS checksum failure".
Details on the 5.17.10-rc1 thread:
https://lore.kernel.org/stable/fa953ec-288f-7715-c6fb-47a222e85270@xxxxxxxxxxxxxxx/
Thanks,
--
Mat Martineau
Intel