mbox series

[net-next,00/13] mptcp: Userspace path manager API

Message ID 20220504023901.277012-1-mathew.j.martineau@linux.intel.com (mailing list archive)
Headers show
Series mptcp: Userspace path manager API | expand

Message

Mat Martineau May 4, 2022, 2:38 a.m. UTC
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

Comments

patchwork-bot+netdevbpf@kernel.org May 4, 2022, 10:10 a.m. UTC | #1
Hello:

This series was applied to netdev/net-next.git (master)
by David S. Miller <davem@davemloft.net>:

On Tue,  3 May 2022 19:38:48 -0700 you wrote:
> 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.
> 
> [...]

Here is the summary with links:
  - [net-next,01/13] mptcp: handle local addrs announced by userspace PMs
    https://git.kernel.org/netdev/net-next/c/4638de5aefe5
  - [net-next,02/13] mptcp: read attributes of addr entries managed by userspace PMs
    https://git.kernel.org/netdev/net-next/c/8b20137012d9
  - [net-next,03/13] mptcp: netlink: split mptcp_pm_parse_addr into two functions
    https://git.kernel.org/netdev/net-next/c/982f17ba1a25
  - [net-next,04/13] mptcp: netlink: Add MPTCP_PM_CMD_ANNOUNCE
    https://git.kernel.org/netdev/net-next/c/9ab4807c84a4
  - [net-next,05/13] selftests: mptcp: support MPTCP_PM_CMD_ANNOUNCE
    https://git.kernel.org/netdev/net-next/c/9a0b36509df0
  - [net-next,06/13] mptcp: netlink: Add MPTCP_PM_CMD_REMOVE
    https://git.kernel.org/netdev/net-next/c/d9a4594edabf
  - [net-next,07/13] selftests: mptcp: support MPTCP_PM_CMD_REMOVE
    https://git.kernel.org/netdev/net-next/c/ecd2a77d672f
  - [net-next,08/13] mptcp: netlink: allow userspace-driven subflow establishment
    https://git.kernel.org/netdev/net-next/c/702c2f646d42
  - [net-next,09/13] selftests: mptcp: support MPTCP_PM_CMD_SUBFLOW_CREATE
    https://git.kernel.org/netdev/net-next/c/cf8d0a6dfd64
  - [net-next,10/13] selftests: mptcp: support MPTCP_PM_CMD_SUBFLOW_DESTROY
    https://git.kernel.org/netdev/net-next/c/57cc361b8d38
  - [net-next,11/13] selftests: mptcp: capture netlink events
    https://git.kernel.org/netdev/net-next/c/b3e5fd653d39
  - [net-next,12/13] selftests: mptcp: create listeners to receive MPJs
    https://git.kernel.org/netdev/net-next/c/bdde081d728a
  - [net-next,13/13] selftests: mptcp: functional tests for the userspace PM type
    https://git.kernel.org/netdev/net-next/c/259a834fadda

You are awesome, thank you!