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

Mat Martineau posted 6 patches 2 weeks, 3 days ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/multipath-tcp/mptcp_net-next tags/patchew/20211118013005.263660-1-mathew.j.martineau@linux.intel.com
Maintainers: Mat Martineau <mathew.j.martineau@linux.intel.com>, Jakub Kicinski <kuba@kernel.org>, Jonathan Corbet <corbet@lwn.net>, Matthieu Baerts <matthieu.baerts@tessares.net>, Shuah Khan <shuah@kernel.org>, "David S. Miller" <davem@davemloft.net>
Documentation/networking/mptcp-sysctl.rst     | 18 +++++
net/mptcp/ctrl.c                              | 18 +++++
net/mptcp/pm.c                                | 53 +++++++++-----
net/mptcp/pm_netlink.c                        | 32 ++++-----
net/mptcp/protocol.h                          | 11 ++-
.../testing/selftests/net/mptcp/mptcp_join.sh | 70 ++++++++++++++++++-
6 files changed, 164 insertions(+), 38 deletions(-)

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

Posted by Mat Martineau 2 weeks, 3 days 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.


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                              | 18 +++++
 net/mptcp/pm.c                                | 53 +++++++++-----
 net/mptcp/pm_netlink.c                        | 32 ++++-----
 net/mptcp/protocol.h                          | 11 ++-
 .../testing/selftests/net/mptcp/mptcp_join.sh | 70 ++++++++++++++++++-
 6 files changed, 164 insertions(+), 38 deletions(-)


base-commit: 98fb1b1ee27f9173f03e2787422ad1045b988a96
-- 
2.34.0