Thanks to the patch 6/11, the MPTCP path manager now sends Netlink events when MPTCP listening sockets are created and closed. The reason why it is needed is explained in the linked ticket [1]:
MPTCP for Linux, when not using the in-kernel PM, depends on the userspace PM to create extra listening sockets before announcing addresses and ports. Let's call these "PM listeners".
With the existing MPTCP netlink events, a userspace PM can create PM listeners at startup time, or in response to an incoming connection. Creating sockets in response to connections is not optimal: ADD_ADDRs can't be sent until the sockets are created and listen()ed, and if all connections are closed then it may not be clear to the userspace PM daemon that PM listener sockets should be cleaned up.
Hence this feature request: to add MPTCP netlink events for listening socket close & create, so PM listening sockets can be managed based on application activity.
[1] https://github.com/multipath-tcp/mptcp_net-next/issues/313
Selftests for these new Netlink events have been added in patches 9,11/11.
The remaining patches introduce different cleanups and small improvements in MPTCP selftests to ease the maintenance and the addition of new tests.
Geliang Tang (6): mptcp: add pm listener events selftests: mptcp: enhance userspace pm tests selftests: mptcp: make evts global in userspace_pm selftests: mptcp: listener test for userspace PM selftests: mptcp: make evts global in mptcp_join selftests: mptcp: listener test for in-kernel PM
Matthieu Baerts (5): selftests: mptcp: run mptcp_inq from a clean netns selftests: mptcp: removed defined but unused vars selftests: mptcp: uniform 'rndh' variable selftests: mptcp: clearly declare global ns vars selftests: mptcp: declare var as local
include/uapi/linux/mptcp.h | 9 + net/mptcp/pm_netlink.c | 57 ++++ net/mptcp/protocol.c | 3 + net/mptcp/protocol.h | 2 + tools/testing/selftests/net/mptcp/diag.sh | 1 + .../selftests/net/mptcp/mptcp_connect.sh | 6 +- .../testing/selftests/net/mptcp/mptcp_join.sh | 118 +++++-- .../selftests/net/mptcp/mptcp_sockopt.sh | 69 ++-- .../selftests/net/mptcp/simult_flows.sh | 4 +- .../selftests/net/mptcp/userspace_pm.sh | 298 ++++++++++-------- 10 files changed, 375 insertions(+), 192 deletions(-)
base-commit: 91a7de85600d5dfa272cea3cef83052e067dc0ab