mbox series

[net-next,0/8] mptcp: TCP fallback for established connections

Message ID 20220422215543.545732-1-mathew.j.martineau@linux.intel.com (mailing list archive)
Headers show
Series mptcp: TCP fallback for established connections | expand

Message

Mat Martineau April 22, 2022, 9:55 p.m. UTC
RFC 8684 allows some MPTCP connections to fall back to regular TCP when
the MPTCP DSS checksum detects middlebox interference, there is only a
single subflow, and there is no unacknowledged out-of-sequence
data. When this condition is detected, the stack sends a MPTCP DSS
option with an "infinite mapping" to signal that a fallback is
happening, and the peers will stop sending MPTCP options in their TCP
headers. The Linux MPTCP stack has not yet supported this type of
fallback, instead closing the connection when the MPTCP checksum fails.

This series adds support for fallback to regular TCP in a more limited
scenario, for only MPTCP connections that have never connected
additional subflows or transmitted out-of-sequence data. The selftests
are also updated to check new MIBs that track infinite mappings.


Geliang Tang (8):
  mptcp: don't send RST for single subflow
  mptcp: add the fallback check
  mptcp: track and update contiguous data status
  mptcp: infinite mapping sending
  mptcp: infinite mapping receiving
  mptcp: add mib for infinite map sending
  mptcp: dump infinite_map field in mptcp_dump_mpext
  selftests: mptcp: add infinite map mibs check

 include/net/mptcp.h                           |  3 +-
 include/trace/events/mptcp.h                  |  6 +-
 net/mptcp/mib.c                               |  1 +
 net/mptcp/mib.h                               |  1 +
 net/mptcp/options.c                           |  8 ++-
 net/mptcp/pm.c                                |  6 ++
 net/mptcp/protocol.c                          | 21 +++++++
 net/mptcp/protocol.h                          | 13 +++++
 net/mptcp/subflow.c                           | 57 +++++++++++--------
 .../testing/selftests/net/mptcp/mptcp_join.sh | 36 +++++++++++-
 10 files changed, 121 insertions(+), 31 deletions(-)


base-commit: c78c5a660439d4d341a03b651541fda3ebe76160

Comments

patchwork-bot+netdevbpf@kernel.org April 23, 2022, 11 a.m. UTC | #1
Hello:

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

On Fri, 22 Apr 2022 14:55:35 -0700 you wrote:
> RFC 8684 allows some MPTCP connections to fall back to regular TCP when
> the MPTCP DSS checksum detects middlebox interference, there is only a
> single subflow, and there is no unacknowledged out-of-sequence
> data. When this condition is detected, the stack sends a MPTCP DSS
> option with an "infinite mapping" to signal that a fallback is
> happening, and the peers will stop sending MPTCP options in their TCP
> headers. The Linux MPTCP stack has not yet supported this type of
> fallback, instead closing the connection when the MPTCP checksum fails.
> 
> [...]

Here is the summary with links:
  - [net-next,1/8] mptcp: don't send RST for single subflow
    https://git.kernel.org/netdev/net-next/c/1761fed25678
  - [net-next,2/8] mptcp: add the fallback check
    https://git.kernel.org/netdev/net-next/c/0348c690ed37
  - [net-next,3/8] mptcp: track and update contiguous data status
    https://git.kernel.org/netdev/net-next/c/0530020a7c8f
  - [net-next,4/8] mptcp: infinite mapping sending
    https://git.kernel.org/netdev/net-next/c/1e39e5a32ad7
  - [net-next,5/8] mptcp: infinite mapping receiving
    https://git.kernel.org/netdev/net-next/c/f8d4bcacff3b
  - [net-next,6/8] mptcp: add mib for infinite map sending
    https://git.kernel.org/netdev/net-next/c/104125b82e5c
  - [net-next,7/8] mptcp: dump infinite_map field in mptcp_dump_mpext
    https://git.kernel.org/netdev/net-next/c/d9fdd02d4265
  - [net-next,8/8] selftests: mptcp: add infinite map mibs check
    https://git.kernel.org/netdev/net-next/c/8bd03be3418c

You are awesome, thank you!