mbox series

[net-next,0/6] mptcp: Add full mesh path manager option

Message ID 20210817220727.192198-1-mathew.j.martineau@linux.intel.com
Headers show
Series mptcp: Add full mesh path manager option | expand

Message

Mat Martineau Aug. 17, 2021, 10:07 p.m. UTC
The path manager in MPTCP controls the creation of additional subflows
after the initial connection is created. As each peer advertises
available endpoints with the ADD_ADDR MPTCP option, the recipient of
those advertisements must decide which subflows to create from the known
local and remote interfaces that are available for use by MPTCP.

The existing in-kernel path manager will create one additional subflow
when an ADD_ADDR is received, or a local address is newly configured for
MPTCP use. The maximum number of subflows has a configurable limit.

This patch set adds a MPTCP_PM_ADDR_FLAG_FULLMESH flag to the MPTCP
netlink API that enables subflows to be created more aggressively. When
an ADD_ADDR is received from a peer, new subflows are created between
that address/port and all local addresses configured for MPTCP.
Similarly, when a new local address is newly configured for use by
MPTCP, new subflows are created between that local address and all known
remote addresses for that MPTCP connection. The configurable limit on
the number of subflows still applies. If the new flag is not used the
path manager behavior is unchanged.

Patch 1 adds a helper function and refactors another function to prepare
for the rest of the patch series.

Patches 2 and 3 add two mesh connection capabilities: initiating
subflows based on added local addresses, or reacting to incoming
advertisements.

Patches 4-6 add full mesh cases to the self tests.


Geliang Tang (6):
  mptcp: drop flags and ifindex arguments
  mptcp: remote addresses fullmesh
  mptcp: local addresses fullmesh
  selftests: mptcp: set and print the fullmesh flag
  selftests: mptcp: add fullmesh testcases
  selftests: mptcp: delete uncontinuous removing ids

 include/uapi/linux/mptcp.h                    |   1 +
 net/mptcp/pm_netlink.c                        | 154 ++++++++++++++++--
 net/mptcp/protocol.h                          |   5 +-
 net/mptcp/subflow.c                           |   7 +-
 .../testing/selftests/net/mptcp/mptcp_join.sh |  74 ++++++++-
 tools/testing/selftests/net/mptcp/pm_nl_ctl.c |  16 +-
 6 files changed, 231 insertions(+), 26 deletions(-)


base-commit: 752be2976405b7499890c0b6bac6d30d34d08bd6

Comments

patchwork-bot+netdevbpf@kernel.org Aug. 18, 2021, 9:20 a.m. UTC | #1
Hello:

This series was applied to netdev/net-next.git (refs/heads/master):

On Tue, 17 Aug 2021 15:07:21 -0700 you wrote:
> The path manager in MPTCP controls the creation of additional subflows

> after the initial connection is created. As each peer advertises

> available endpoints with the ADD_ADDR MPTCP option, the recipient of

> those advertisements must decide which subflows to create from the known

> local and remote interfaces that are available for use by MPTCP.

> 

> The existing in-kernel path manager will create one additional subflow

> when an ADD_ADDR is received, or a local address is newly configured for

> MPTCP use. The maximum number of subflows has a configurable limit.

> 

> [...]


Here is the summary with links:
  - [net-next,1/6] mptcp: drop flags and ifindex arguments
    https://git.kernel.org/netdev/net-next/c/ee285257a9c1
  - [net-next,2/6] mptcp: remote addresses fullmesh
    https://git.kernel.org/netdev/net-next/c/2843ff6f36db
  - [net-next,3/6] mptcp: local addresses fullmesh
    https://git.kernel.org/netdev/net-next/c/1a0d6136c5f0
  - [net-next,4/6] selftests: mptcp: set and print the fullmesh flag
    https://git.kernel.org/netdev/net-next/c/371b90377e60
  - [net-next,5/6] selftests: mptcp: add fullmesh testcases
    https://git.kernel.org/netdev/net-next/c/4f49d63352da
  - [net-next,6/6] selftests: mptcp: delete uncontinuous removing ids
    https://git.kernel.org/netdev/net-next/c/f7713dd5d23a

You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html