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@xxxxxxxxxx> --- 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@xxxxxxxxxx>