Before these patches, the in-kernel Path-Manager would not allow, for the same MPTCP connection, having a mix of subflows in v4 and v6.
MPTCP's RFC 8684 doesn't forbid that and it is even recommended to do so as the path in v4 and v6 are likely different. Some networks are also v4 or v6 only, we cannot assume they all have both v4 and v6 support.
Patch 1 then removes this artificial constraint in the in-kernel PM currently enforcing there are no mixed subflows in place, either in address announcement or in subflow creation areas.
Patch 2 makes sure the sk_ipv6only attribute is also propagated to subflows, just in case a new PM wouldn't respect it.
Some selftests have also been added for the in-kernel PM (patch 3).
Patches 4 to 8 are just some cleanups and small improvements in the printed messages in the userspace PM. It is not linked to the rest but identified when working on a related patch modifying this selftest, already in -net:
commit 4656d72c1efa ("selftests: mptcp: userspace: validate v4-v6 subflows mix")
--- Matthieu Baerts (6): mptcp: propagate sk_ipv6only to subflows mptcp: userspace pm: use a single point of exit selftests: mptcp: userspace: print titles selftests: mptcp: userspace: refactor asserts selftests: mptcp: userspace: print error details if any selftests: mptcp: userspace: avoid read errors
Paolo Abeni (2): mptcp: let the in-kernel PM use mixed IPv4 and IPv6 addresses selftests: mptcp: add test-cases for mixed v4/v6 subflows
net/mptcp/pm_netlink.c | 58 ++++---- net/mptcp/pm_userspace.c | 5 +- net/mptcp/sockopt.c | 1 + tools/testing/selftests/net/mptcp/mptcp_join.sh | 53 ++++++-- tools/testing/selftests/net/mptcp/userspace_pm.sh | 153 +++++++++++++--------- 5 files changed, 171 insertions(+), 99 deletions(-) --- base-commit: 4373a023e0388fc19e27d37f61401bce6ff4c9d7 change-id: 20230123-upstream-net-next-pm-v4-v6-b186481a4b00
Best regards,