[PATCH mptcp-next v3 0/6] mptcp: Add userspace PM mode to bypass kernel PM

Mat Martineau posted 6 patches 2 years, 4 months ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/multipath-tcp/mptcp_net-next tags/patchew/20211214014647.136505-1-mathew.j.martineau@linux.intel.com
Maintainers: Matthieu Baerts <matthieu.baerts@tessares.net>, Jakub Kicinski <kuba@kernel.org>, "David S. Miller" <davem@davemloft.net>, Jonathan Corbet <corbet@lwn.net>, Shuah Khan <shuah@kernel.org>, Mat Martineau <mathew.j.martineau@linux.intel.com>
There is a newer version of this series
Documentation/networking/mptcp-sysctl.rst     | 18 +++++
net/mptcp/ctrl.c                              | 21 ++++++
net/mptcp/pm.c                                | 50 +++++++++----
net/mptcp/pm_netlink.c                        | 30 ++++----
net/mptcp/protocol.h                          | 16 ++++-
.../testing/selftests/net/mptcp/mptcp_join.sh | 70 ++++++++++++++++++-
6 files changed, 170 insertions(+), 35 deletions(-)
[PATCH mptcp-next v3 0/6] mptcp: Add userspace PM mode to bypass kernel PM
Posted by Mat Martineau 2 years, 4 months ago
One part of supporting userspace path managers is to prevent the
in-kernel PM from acting on userspace-managed MPTCP connections.

These patches:

 * Add a per-MPTCP-socket 'pm_type'. A mix of kernel-managed and
   userspace-managed connections are supported within each namespace.

 * Conditionally decouple incoming ADD_ADDR/RM_ADDR and subflow changes
   from the in-kernel PM. Netlink events are still triggered, and ADD_ADDR
   echo handling is still in kernel code even if path management is
   otherwise handled in userspace.

 * Add a sysctl for setting the per-namespace default for in-kernel vs
   userspace path management of new MPTCP sockets. This is an integer
   value to allow extensibility.

 * Add selftests to confirm that the in-kernel PM is bypassed.

RFC -> v1: Changed sysctl from a bool to an integer, added patch 1
(cleanup) and patch 6 (selftests), fixed ADD_ADDR echo and initial
pm->subflows_allowed settings.

v1 -> v2: Rebased on latest export branch, removed extra kernel-mode
check when receiving ADD_ADDR, and fix !CONFIG_SYSCTL build.

v2 -> v3: Rebased on latest export branch, use helper function for PM
mode, clarify initialization logic for userspace vs. kernel PM,
add a Tested-by tag from v2 review.

Mat Martineau (6):
  mptcp: Remove redundant assignments in path manager init
  mptcp: Add a member to mptcp_pm_data to track kernel vs userspace mode
  mptcp: Bypass kernel PM when userspace PM is enabled
  mptcp: Make kernel path manager check for userspace-managed sockets
  mptcp: Add a per-namespace sysctl to set the default path manager type
  selftests: mptcp: Add tests for userspace PM type

 Documentation/networking/mptcp-sysctl.rst     | 18 +++++
 net/mptcp/ctrl.c                              | 21 ++++++
 net/mptcp/pm.c                                | 50 +++++++++----
 net/mptcp/pm_netlink.c                        | 30 ++++----
 net/mptcp/protocol.h                          | 16 ++++-
 .../testing/selftests/net/mptcp/mptcp_join.sh | 70 ++++++++++++++++++-
 6 files changed, 170 insertions(+), 35 deletions(-)


base-commit: fa9c2885492d7189f9403d92ae3f68f540002093
-- 
2.34.1