From nobody Mon Aug 24 02:54:21 2026 Received: from mta0.migadu.com (out-77.mta0.migadu.com [91.218.175.77]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id CC232381AE4 for ; Wed, 19 Aug 2026 11:21:09 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=91.218.175.77 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787138471; cv=none; b=oZu2pFmaCjIuyqLxEJ0j6seMoi7qv4EwVccHbd0SEKTIdwLsPIPwz6yAua0oGIMbjEZwUW9jR03DoBPs3h5NrEUD8hZlxePuogTlJq4hUV9zZy+tAyvEKTE/iupu6XdR/7nK2uSLp4zSyCxRZMjKamgn1baVSjdHSsJHvaGXu2M= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787138471; c=relaxed/simple; bh=t1Sq3c7qLYZ819/+DuoQs5UCwgaZIvwkDQPGOcNtTV8=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=d8IRk2HJgojp811UJT+1Vbv2j4SlO4ePUfztid0Wz+hhdp1Ap3hDUuQEa6PKjrQhsh43mdF/A2HRByWMT8Gbvcre7d5pMgctrX9dnUk3KZXo/f24rSYoke5BWU6WRa+4qbOhKgKbuQPBzdpb4as967jH62ggTYDlx4i4gAwap4o= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.dev; spf=pass smtp.mailfrom=linux.dev; dkim=pass (1024-bit key) header.d=linux.dev header.i=@linux.dev header.b=OqvFNLiL; arc=none smtp.client-ip=91.218.175.77 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.dev Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linux.dev Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linux.dev header.i=@linux.dev header.b="OqvFNLiL" X-Envelope-To: mptcp@lists.linux.dev DKIM-Signature: a=rsa-sha256; bh=t1Sq3c7qLYZ819/+DuoQs5UCwgaZIvwkDQPGOcNtTV8=; c=simple/simple; d=linux.dev; h=from:to:subject:date:message-id:mime-version:content-type; s=key1; t=1787138467; v=1; x=1787743267; b=OqvFNLiL8uRA/09CNz5P4SYxI4soLuC8oAP6cH3/0u5FY6Wmj9rNNI1qFxr1bCcglziGejT/ zRZnNHvelPIzXq5g1uqpbhgbgNdEo0PcczTvb4jymeTdYPSqnzQjbSjiuTxTEAK/wXYVqW5wsnm 36uVHTmGKIZWzkUj3wZIodbs= X-Envelope-To: mptcp@lists.linux.dev Received: from localhost.localdomain (223.70.159.239) by smtp.migadu.com with ESMTPS id 87614ac4fac36c1a; Wed, 19 Aug 2026 11:21:07 +0000 X-Migadu-Flow: FLOW_OUT From: Chenguang Zhao To: mptcp@lists.linux.dev Cc: chenguang.zhao@linux.dev, Chenguang Zhao Subject: [PATCH mptcp-next RFC v5 1/3] mptcp: add MPFailFallback MIB counter Date: Wed, 19 Aug 2026 19:21:10 +0800 Message-Id: <20260819112112.1985121-2-chenguang.zhao@linux.dev> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20260819112112.1985121-1-chenguang.zhao@linux.dev> References: <20260819112112.1985121-1-chenguang.zhao@linux.dev> Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Chenguang Zhao Track fallback triggered by MP_FAIL reception. Signed-off-by: Chenguang Zhao --- net/mptcp/mib.c | 1 + net/mptcp/mib.h | 1 + 2 files changed, 2 insertions(+) diff --git a/net/mptcp/mib.c b/net/mptcp/mib.c index 608cb568897c..e1211ad621c9 100644 --- a/net/mptcp/mib.c +++ b/net/mptcp/mib.c @@ -91,6 +91,7 @@ static const struct snmp_mib mptcp_snmp_list[] =3D { SNMP_MIB_ITEM("DssReset", MPTCP_MIB_DSSRESET), SNMP_MIB_ITEM("SimultConnectFallback", MPTCP_MIB_SIMULTCONNFALLBACK), SNMP_MIB_ITEM("FallbackFailed", MPTCP_MIB_FALLBACKFAILED), + SNMP_MIB_ITEM("MPFailFallback", MPTCP_MIB_MPFAILFALLBACK), SNMP_MIB_ITEM("WinProbe", MPTCP_MIB_WINPROBE), SNMP_MIB_ITEM("BacklogDrop", MPTCP_MIB_BACKLOGDROP), SNMP_MIB_ITEM("RcvPruned", MPTCP_MIB_RCVPRUNED), diff --git a/net/mptcp/mib.h b/net/mptcp/mib.h index 1ebdb55e9534..b006fc8cc848 100644 --- a/net/mptcp/mib.h +++ b/net/mptcp/mib.h @@ -94,6 +94,7 @@ enum linux_mptcp_mib_field { MPTCP_MIB_DSSRESET, /* MP_RST: bad data mapping */ MPTCP_MIB_SIMULTCONNFALLBACK, /* Simultaneous connect */ MPTCP_MIB_FALLBACKFAILED, /* Can't fallback due to msk status */ + MPTCP_MIB_MPFAILFALLBACK, /* Fallback after MP_FAIL received */ MPTCP_MIB_WINPROBE, /* MPTCP-level zero window probe */ MPTCP_MIB_BACKLOGDROP, /* Backlog over memory limit */ MPTCP_MIB_RCVPRUNED, /* Dropped due to memory constraints */ --=20 2.25.1 From nobody Mon Aug 24 02:54:21 2026 Received: from mta0.migadu.com (out-80.mta0.migadu.com [91.218.175.80]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B33F245041B for ; Wed, 19 Aug 2026 11:21:15 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=91.218.175.80 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787138477; cv=none; b=CtRVxgoACc0KAx9g2W7GbbBHm0zFb91bVo4Ako8nM/0lVpuRz0SPF9cqpyGo48/7IefZZrdbACtu7AnVPvmVFdFqXVIFZAOhQwEDkyNhzB8TpprEATOaV+50CtiTBuNqkDEDt+uMUKP4x7jzm3VAUMKf582KeiXygHtK4mRXnPA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787138477; c=relaxed/simple; bh=8S3HqF8lDcnm4y0EwSOZh5Kvt8asehGiiZ0ptMeaMh8=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=LxJdO1uTf0iWeE+UCIImivdMpAhNBMe0jqtpfRLgNLWGKqoXRfGNQp76igM7TbRJPUbNw5NzI3qE7pTA9W4qvBNCGjxHLCYDf4cDh3kDItCPTs90hZJBQsqr5eW47H5wzRJyO1FVwQ20beQ4hC6zJjke/RQWVCTTqnN4gchdg10= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.dev; spf=pass smtp.mailfrom=linux.dev; dkim=pass (1024-bit key) header.d=linux.dev header.i=@linux.dev header.b=g9c/NIuX; arc=none smtp.client-ip=91.218.175.80 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.dev Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linux.dev Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linux.dev header.i=@linux.dev header.b="g9c/NIuX" X-Envelope-To: mptcp@lists.linux.dev DKIM-Signature: a=rsa-sha256; bh=8S3HqF8lDcnm4y0EwSOZh5Kvt8asehGiiZ0ptMeaMh8=; c=simple/simple; d=linux.dev; h=from:to:subject:date:message-id:mime-version:content-type; s=key1; t=1787138473; v=1; x=1787743273; b=g9c/NIuXJnEpAGzKPvBgmpOeRD5ukWkyNoUAkEF9UoJ+FKIO+1Biy1t0Q3SXDYlwIZdf6LoQ ZbKV3huJSPYfu6UayddMt+EReOWfnt3NVwCCCW/zqcwE6viw4cyB2SNo+A3Ch/Hj89lhdYWV2RK wGTMl52ObSpSxE9OkR59PmUk= X-Envelope-To: mptcp@lists.linux.dev Received: from localhost.localdomain (223.70.159.239) by smtp.migadu.com with ESMTPS id 9422cd53a58792be; Wed, 19 Aug 2026 11:21:13 +0000 X-Migadu-Flow: FLOW_OUT From: Chenguang Zhao To: mptcp@lists.linux.dev Cc: chenguang.zhao@linux.dev, Chenguang Zhao Subject: [PATCH mptcp-next RFC v5 2/3] mptcp: fallback immediately on MP_FAIL reception Date: Wed, 19 Aug 2026 19:21:11 +0800 Message-Id: <20260819112112.1985121-3-chenguang.zhao@linux.dev> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20260819112112.1985121-1-chenguang.zhao@linux.dev> References: <20260819112112.1985121-1-chenguang.zhao@linux.dev> Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Chenguang Zhao Call mptcp_try_fallback() right after the MP_FAIL response ACK, and simplify mptcp_update_infinite_map() accordingly. Fixes: 1e39e5a32ad7 ("mptcp: infinite mapping sending") Signed-off-by: Chenguang Zhao --- net/mptcp/pm.c | 5 +++++ net/mptcp/protocol.c | 8 +------- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/net/mptcp/pm.c b/net/mptcp/pm.c index ba7c6f80a183..69701ac7e436 100644 --- a/net/mptcp/pm.c +++ b/net/mptcp/pm.c @@ -895,6 +895,11 @@ void mptcp_pm_mp_fail_received(struct sock *sk, u64 fa= il_seq) pr_debug("MP_FAIL response received\n"); WRITE_ONCE(subflow->fail_tout, 0); } + + if (!mptcp_try_fallback(sk, MPTCP_MIB_MPFAILFALLBACK)) { + MPTCP_INC_STATS(sock_net(sk), MPTCP_MIB_FALLBACKFAILED); + mptcp_subflow_reset(sk); + } } =20 static int mptcp_add_addr_len(int family, bool echo, bool port) diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c index f879b1061f2d..abe45a31ca5f 100644 --- a/net/mptcp/protocol.c +++ b/net/mptcp/protocol.c @@ -1417,13 +1417,7 @@ static void mptcp_update_infinite_map(struct mptcp_s= ock *msk, =20 mpext->infinite_map =3D 1; mpext->data_len =3D 0; - - if (!mptcp_try_fallback(ssk, MPTCP_MIB_INFINITEMAPTX)) { - MPTCP_INC_STATS(sock_net(ssk), MPTCP_MIB_FALLBACKFAILED); - mptcp_subflow_reset(ssk); - return; - } - + MPTCP_INC_STATS(sock_net(ssk), MPTCP_MIB_INFINITEMAPTX); mptcp_subflow_ctx(ssk)->send_infinite_map =3D 0; } =20 --=20 2.25.1 From nobody Mon Aug 24 02:54:21 2026 Received: from mta0.migadu.com (out-83.mta0.migadu.com [91.218.175.83]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C988F35E1AA for ; Wed, 19 Aug 2026 11:21:20 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=91.218.175.83 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787138482; cv=none; b=pG5rDekYclsgrqHfx72a6bDkRKKlBinb8oQZr4Ehu1BjiqQ+ZZL0RnD8dNSdmtH1qk24SCb5uGa7H2gxthcp3xuk6WtMLCD6HZ86m5p39xsxiBdPy54MFb6NQxAX8DirNff9Ljl5OZcRRXoQxHrDmjSGKcR9nHvLFhrfohfWifs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787138482; c=relaxed/simple; bh=kB83V3yUg+2bzKdwztGH6E3ejAm0BGhWJR0s0PhxUm0=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=pl4uUKXtiQq8ZNEX9Eau0KiI+U4AFPGb/jwGD8FMz45wthJdySO30MqeXLLivCFl9/GgzcCh1MCYm9SiJKQJly6jwmzLAaqJEgSdoh/2Mc2j8K+YMroay4qR5xBc+d5imjQoaa//dAHTnCS/MvpOLHsLn/mNx62w6lNXUc7iY48= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.dev; spf=pass smtp.mailfrom=linux.dev; dkim=pass (1024-bit key) header.d=linux.dev header.i=@linux.dev header.b=Yjc2/0oM; arc=none smtp.client-ip=91.218.175.83 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.dev Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linux.dev Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linux.dev header.i=@linux.dev header.b="Yjc2/0oM" X-Envelope-To: mptcp@lists.linux.dev DKIM-Signature: a=rsa-sha256; bh=kB83V3yUg+2bzKdwztGH6E3ejAm0BGhWJR0s0PhxUm0=; c=simple/simple; d=linux.dev; h=from:to:subject:date:message-id:mime-version:content-type; s=key1; t=1787138478; v=1; x=1787743278; b=Yjc2/0oMSKReS/cj+rkKuiEkZnrKUNwLkDSO4SC1WwY/pD5+MK/nImeQsld7wGgHQ/aIhKkd MkcxBocOWcULGV7gEd7nv+WK986IPGd9YoFc4fiR4xry9D1r1hwQWxa8TFROdNZkVdTiYJcXOgQ fyBQZss0lLD/Gz1ryHWm/x0w= X-Envelope-To: mptcp@lists.linux.dev Received: from localhost.localdomain (223.70.159.239) by smtp.migadu.com with ESMTPS id 6e86423111f4f84c; Wed, 19 Aug 2026 11:21:18 +0000 X-Migadu-Flow: FLOW_OUT From: Chenguang Zhao To: mptcp@lists.linux.dev Cc: chenguang.zhao@linux.dev, Chenguang Zhao Subject: [PATCH mptcp-next RFC v5 3/3] mptcp: reject new subflows after fallback Date: Wed, 19 Aug 2026 19:21:12 +0800 Message-Id: <20260819112112.1985121-4-chenguang.zhao@linux.dev> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20260819112112.1985121-1-chenguang.zhao@linux.dev> References: <20260819112112.1985121-1-chenguang.zhao@linux.dev> Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Chenguang Zhao Check FALLBACK_DONE in mptcp_can_accept_new_subflow() so that MP_JOIN is rejected after the connection has fallen back to TCP. Signed-off-by: Chenguang Zhao --- net/mptcp/subflow.c | 1 + 1 file changed, 1 insertion(+) diff --git a/net/mptcp/subflow.c b/net/mptcp/subflow.c index af81ad5e699d..c35f3bfda535 100644 --- a/net/mptcp/subflow.c +++ b/net/mptcp/subflow.c @@ -61,6 +61,7 @@ static void subflow_generate_hmac(u64 key1, u64 key2, u32= nonce1, u32 nonce2, static bool mptcp_can_accept_new_subflow(const struct mptcp_sock *msk) { return mptcp_is_fully_established((void *)msk) && + !__mptcp_check_fallback(msk) && ((mptcp_pm_is_userspace(msk) && mptcp_userspace_pm_active(msk)) || READ_ONCE(msk->pm.accept_subflow)); --=20 2.25.1