Netdev List
 help / color / mirror / Atom feed
* [PATCH net-next 0/8] mptcp: TCP fallback for established connections
@ 2022-04-22 21:55 Mat Martineau
  2022-04-22 21:55 ` [PATCH net-next 1/8] mptcp: don't send RST for single subflow Mat Martineau
                   ` (8 more replies)
  0 siblings, 9 replies; 10+ messages in thread
From: Mat Martineau @ 2022-04-22 21:55 UTC (permalink / raw)
  To: netdev; +Cc: Mat Martineau, davem, kuba, pabeni, matthieu.baerts, mptcp

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
-- 
2.36.0


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

end of thread, other threads:[~2022-04-23 11:00 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-04-22 21:55 [PATCH net-next 0/8] mptcp: TCP fallback for established connections Mat Martineau
2022-04-22 21:55 ` [PATCH net-next 1/8] mptcp: don't send RST for single subflow Mat Martineau
2022-04-22 21:55 ` [PATCH net-next 2/8] mptcp: add the fallback check Mat Martineau
2022-04-22 21:55 ` [PATCH net-next 3/8] mptcp: track and update contiguous data status Mat Martineau
2022-04-22 21:55 ` [PATCH net-next 4/8] mptcp: infinite mapping sending Mat Martineau
2022-04-22 21:55 ` [PATCH net-next 5/8] mptcp: infinite mapping receiving Mat Martineau
2022-04-22 21:55 ` [PATCH net-next 6/8] mptcp: add mib for infinite map sending Mat Martineau
2022-04-22 21:55 ` [PATCH net-next 7/8] mptcp: dump infinite_map field in mptcp_dump_mpext Mat Martineau
2022-04-22 21:55 ` [PATCH net-next 8/8] selftests: mptcp: add infinite map mibs check Mat Martineau
2022-04-23 11:00 ` [PATCH net-next 0/8] mptcp: TCP fallback for established connections 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