MPTCP Linux Development
 help / color / mirror / Atom feed
* [PATCH net-next 0/8] mptcp: Improve use of backup subflows
@ 2021-08-13 22:15 Mat Martineau
  2021-08-13 22:15 ` [PATCH net-next 1/8] mptcp: more accurate timeout Mat Martineau
                   ` (8 more replies)
  0 siblings, 9 replies; 10+ messages in thread
From: Mat Martineau @ 2021-08-13 22:15 UTC (permalink / raw)
  To: netdev; +Cc: Mat Martineau, davem, kuba, matthieu.baerts, mptcp, pabeni

Multipath TCP combines multiple TCP subflows in to one stream, and the
MPTCP-level socket must decide which subflow to use when sending (or
resending) chunks of data. The choice of the "best" subflow to transmit
on can vary depending on the priority (normal or backup) for each
subflow and how well the subflow is performing.

In order to improve MPTCP performance when some subflows are failing,
this patch set changes how backup subflows are utilized and introduces
tracking of "stale" subflows that are still connected but not making
progress.

Patch 1 adjusts MPTCP-level retransmit timeouts to use data from all
subflows.

Patch 2 makes MPTCP-level retransmissions less aggressive to avoid
resending data that's still queued at the TCP level.

Patch 3 changes the way pending data is handled when subflows are
closed. Unacked MPTCP-level data still in the subflow tx queue is
immediately moved to another subflow for transmission instead of waiting
for MPTCP-level timeouts to trigger retransmission.

Patch 4 has some sysctl code cleanup.

Patches 5 and 6 add tracking of "stale" subflows, so only underlying TCP
subflow connections that appear to be making progress are considered
when selecting a subflow to (re)transmit data. How fast a subflow goes
stale is configurable with a per-namespace sysctl. Related MIBS are
added too.

Patch 7 makes sure the backup flag is always correctly recorded when the
MP_JOIN SYN/ACK is received for an added subflow.

Patch 8 adds more test cases for backup subflows and stale subflows.


Paolo Abeni (8):
  mptcp: more accurate timeout
  mptcp: less aggressive retransmission strategy
  mptcp: handle pending data on closed subflow
  mptcp: cleanup sysctl data and helpers
  mptcp: faster active backup recovery
  mptcp: add mibs for stale subflows processing
  mptcp: backup flag from incoming MPJ ack option
  selftests: mptcp: add testcase for active-back

 Documentation/networking/mptcp-sysctl.rst     |  12 +
 net/mptcp/ctrl.c                              |  26 ++-
 net/mptcp/mib.c                               |   2 +
 net/mptcp/mib.h                               |   2 +
 net/mptcp/options.c                           |   8 +-
 net/mptcp/pm.c                                |  21 ++
 net/mptcp/pm_netlink.c                        |  39 ++++
 net/mptcp/protocol.c                          | 187 +++++++++++----
 net/mptcp/protocol.h                          |  31 ++-
 net/mptcp/subflow.c                           |   6 +-
 .../testing/selftests/net/mptcp/mptcp_join.sh | 218 +++++++++++++++---
 11 files changed, 464 insertions(+), 88 deletions(-)


base-commit: 876c14ad014d0e39c57cbfde53e13d17cdb6d645
-- 
2.32.0


^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2021-08-14 11:10 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2021-08-13 22:15 [PATCH net-next 0/8] mptcp: Improve use of backup subflows Mat Martineau
2021-08-13 22:15 ` [PATCH net-next 1/8] mptcp: more accurate timeout Mat Martineau
2021-08-13 22:15 ` [PATCH net-next 2/8] mptcp: less aggressive retransmission strategy Mat Martineau
2021-08-13 22:15 ` [PATCH net-next 3/8] mptcp: handle pending data on closed subflow Mat Martineau
2021-08-13 22:15 ` [PATCH net-next 4/8] mptcp: cleanup sysctl data and helpers Mat Martineau
2021-08-13 22:15 ` [PATCH net-next 5/8] mptcp: faster active backup recovery Mat Martineau
2021-08-13 22:15 ` [PATCH net-next 6/8] mptcp: add mibs for stale subflows processing Mat Martineau
2021-08-13 22:15 ` [PATCH net-next 7/8] mptcp: backup flag from incoming MPJ ack option Mat Martineau
2021-08-13 22:15 ` [PATCH net-next 8/8] selftests: mptcp: add testcase for active-back Mat Martineau
2021-08-14 11:10 ` [PATCH net-next 0/8] mptcp: Improve use of backup subflows patchwork-bot+netdevbpf

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox