[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20220504023901.277012-1-mathew.j.martineau@linux.intel.com>
Date: Tue, 3 May 2022 19:38:48 -0700
From: Mat Martineau <mathew.j.martineau@...ux.intel.com>
To: netdev@...r.kernel.org
Cc: Mat Martineau <mathew.j.martineau@...ux.intel.com>,
davem@...emloft.net, kuba@...nel.org, pabeni@...hat.com,
edumazet@...gle.com, matthieu.baerts@...sares.net,
mptcp@...ts.linux.dev
Subject: [PATCH net-next 00/13] mptcp: Userspace path manager API
Userspace path managers (PMs) make use of generic netlink MPTCP events
and commands to control addition and removal of MPTCP subflows on an
existing MPTCP connection. The path manager events have already been
upstream for a while, and this patch series adds four netlink commands
for userspace:
* MPTCP_PM_CMD_ANNOUNCE: advertise an address that's available for
additional subflow connections.
* MPTCP_PM_CMD_REMOVE: revoke an advertisement
* MPTCP_PM_CMD_SUBFLOW_CREATE: initiate a new subflow on an existing MPTCP
connection
* MPTCP_PM_CMD_SUBFLOW_DESTROY: close a subflow on an existing MPTCP
connection
Userspace path managers, such as mptcpd, can be more easily customized
for different devices. The in-kernel path manager remains available to
handle server use cases.
Patches 1-3 update common path manager code (used by both in-kernel and
userspace PMs)
Patches 4, 6, and 8 implement the new generic netlink commands.
Patches 5, 7, and 9-13 add self test support and test cases for the new
path manager commands.
Florian Westphal (2):
mptcp: netlink: split mptcp_pm_parse_addr into two functions
mptcp: netlink: allow userspace-driven subflow establishment
Kishen Maloor (11):
mptcp: handle local addrs announced by userspace PMs
mptcp: read attributes of addr entries managed by userspace PMs
mptcp: netlink: Add MPTCP_PM_CMD_ANNOUNCE
selftests: mptcp: support MPTCP_PM_CMD_ANNOUNCE
mptcp: netlink: Add MPTCP_PM_CMD_REMOVE
selftests: mptcp: support MPTCP_PM_CMD_REMOVE
selftests: mptcp: support MPTCP_PM_CMD_SUBFLOW_CREATE
selftests: mptcp: support MPTCP_PM_CMD_SUBFLOW_DESTROY
selftests: mptcp: capture netlink events
selftests: mptcp: create listeners to receive MPJs
selftests: mptcp: functional tests for the userspace PM type
include/uapi/linux/mptcp.h | 7 +
net/mptcp/Makefile | 2 +-
net/mptcp/pm.c | 1 +
net/mptcp/pm_netlink.c | 157 ++--
net/mptcp/pm_userspace.c | 429 ++++++++++
net/mptcp/protocol.c | 1 +
net/mptcp/protocol.h | 37 +-
net/mptcp/subflow.c | 2 +-
tools/testing/selftests/net/mptcp/pm_nl_ctl.c | 645 ++++++++++++++-
.../selftests/net/mptcp/userspace_pm.sh | 779 ++++++++++++++++++
10 files changed, 1999 insertions(+), 61 deletions(-)
create mode 100644 net/mptcp/pm_userspace.c
create mode 100755 tools/testing/selftests/net/mptcp/userspace_pm.sh
base-commit: f43f0cd2d9b07caf38d744701b0b54d4244da8cc
--
2.36.0
Powered by blists - more mailing lists