The SYN + MPTCP_CAPABLE packets could be explicitly dropped by firewalls
somewhere in the network, e.g. if they decide to drop packets based on
the TCP options, instead of stripping them off.
The idea of this series is to fallback to TCP after 3 SYN+MPC drop
(patch 2). If the connection succeeds after the fallback, it very likely
means a blackhole has been detected. In this case (patch 3), MPTCP can
be disabled for a certain period of time, 1h by default. If after this
period, MPTCP is still blocked, the period is doubled. This technique is
inspired by the one used by TCP FastOpen.
This should help applications which want to use MPTCP by default on the
client side if available.
Signed-off-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
---
Matthieu Baerts (NGI0) (3):
mptcp: export mptcp_subflow_early_fallback()
mptcp: fallback to TCP after SYN+MPC drops
mptcp: disable active MPTCP in case of blackhole
Documentation/networking/mptcp-sysctl.rst | 11 +++
include/net/mptcp.h | 4 +
net/ipv4/tcp_timer.c | 1 +
net/mptcp/ctrl.c | 133 ++++++++++++++++++++++++++++++
net/mptcp/mib.c | 3 +
net/mptcp/mib.h | 3 +
net/mptcp/protocol.c | 18 ++--
net/mptcp/protocol.h | 16 +++-
net/mptcp/subflow.c | 4 +
9 files changed, 182 insertions(+), 11 deletions(-)
---
base-commit: bfba7bc8b7c2c100b76edb3a646fdce256392129
change-id: 20240909-net-next-mptcp-fallback-x-mpc-07072f823f9b
Best regards,
--
Matthieu Baerts (NGI0) <matttbe@kernel.org>