From nobody Thu Nov 27 12:35:50 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 11D7B32ABC7; Mon, 10 Nov 2025 18:24:10 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1762799051; cv=none; b=XE8ZSKaNc8/qaW1hdFi9BmM3Lwg+/R5R8z5ZqNVOa8RdJHnapnxCujPsDfhvsdJsSIugYVjGGP3txkWnLMfsm6ub2rSA9AulOm+x+pDOP6q767IYrZz2zpgc/ZcqCfh0WfY2JAVRqFHObT94pWheKlxnzMGCJh4FRFKmJvwzOYk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1762799051; c=relaxed/simple; bh=KrF/iIeTRVp7/CVT6bYLvNJMHrgrjbbkvO5N9Q1PkVE=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=BlFRr0+5CFoMiEFLSaiDNOJ5Ve+EgP8PamUEBsJEgTViE7evJyvAo0TUK7IGB5qVh5p3pi3f1volCUGeRjgE2cyigGxH0xAvpB7OmEKv8+aHMhNCPHY3hUWxUG7RTXRuFLC4asrjEEt46Nrc6KgNhCaPhZDWL0uqfYPG90b+Wmw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=BNtxZlkS; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="BNtxZlkS" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 38609C4AF0B; Mon, 10 Nov 2025 18:24:08 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1762799050; bh=KrF/iIeTRVp7/CVT6bYLvNJMHrgrjbbkvO5N9Q1PkVE=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=BNtxZlkSoK8S1oDDwQJ9Sr05p3/dsHaKdQeUYdCyVex3wLVm2B4/7UoQsqtJ2n+Wm N6G4S7SSa3MJnHYQaB0OQNRPDtQ9ht3TtjMZ4aGDJLSXKnAm78Ab2LLiiHNEKFq+vJ 8XJ5GCM3gZ3UD9BSNPq3ZLXQS8lsoj8USlA9uTU3XFr0E1r8T5AcomDX6Lh6Ey6ARO V7lhyGSw6k9fsfGpHvAGBm2Sq2Tz2HxFEpNWWRW288u8DMYOMZIYoHPQWa3U+/FqDa kVfCw5clCuEtTyGJOPPLgwQ5edX7pwCjHnl8UZw7s1pyZObOWDeOSAIY26h7k65BTb M6FBUwr75czWg== From: "Matthieu Baerts (NGI0)" Date: Mon, 10 Nov 2025 19:23:40 +0100 Subject: [PATCH net 1/6] selftests: mptcp: connect: fix fallback note due to OoO Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251110-net-mptcp-sft-join-unstable-v1-1-a4332c714e10@kernel.org> References: <20251110-net-mptcp-sft-join-unstable-v1-0-a4332c714e10@kernel.org> In-Reply-To: <20251110-net-mptcp-sft-join-unstable-v1-0-a4332c714e10@kernel.org> To: Mat Martineau , Geliang Tang , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Simon Horman , Shuah Khan Cc: netdev@vger.kernel.org, mptcp@lists.linux.dev, linux-kselftest@vger.kernel.org, linux-kernel@vger.kernel.org, "Matthieu Baerts (NGI0)" , stable@vger.kernel.org X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=1407; i=matttbe@kernel.org; h=from:subject:message-id; bh=KrF/iIeTRVp7/CVT6bYLvNJMHrgrjbbkvO5N9Q1PkVE=; b=owGbwMvMwCVWo/Th0Gd3rumMp9WSGDKFdPdp6jhMli4TrUkQkry/6XL0VO+bGQuX7zY/1vFmz oq0tlyjjlIWBjEuBlkxRRbptsj8mc+reEu8/Cxg5rAygQxh4OIUgIksW8zIsK3/Xf+lXnums/c+ amRcWXWI+dq6Yx9fzeFmMRV5tXTbSzdGhv2XD3a3bdQXuBV0emp9Rkf24qUsJwru71vcZbPie6J ADSsA X-Developer-Key: i=matttbe@kernel.org; a=openpgp; fpr=E8CB85F76877057A6E27F77AF6B7824F4269A073 The "fallback due to TCP OoO" was never printed because the stat_ooo_now variable was checked twice: once in the parent if-statement, and one in the child one. The second condition was then always true then, and the 'else' branch was never taken. The idea is that when there are more ACK + MP_CAPABLE than expected, the test either fails if there was no out of order packets, or a notice is printed. Fixes: 69ca3d29a755 ("mptcp: update selftest for fallback due to OoO") Cc: stable@vger.kernel.org Reviewed-by: Geliang Tang Signed-off-by: Matthieu Baerts (NGI0) --- tools/testing/selftests/net/mptcp/mptcp_connect.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/testing/selftests/net/mptcp/mptcp_connect.sh b/tools/tes= ting/selftests/net/mptcp/mptcp_connect.sh index 47ecb5b3836e..9b7b93f8eb0c 100755 --- a/tools/testing/selftests/net/mptcp/mptcp_connect.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_connect.sh @@ -492,7 +492,7 @@ do_transfer() "than expected (${expect_synrx})" retc=3D1 fi - if [ ${stat_ackrx_now_l} -lt ${expect_ackrx} ] && [ ${stat_ooo_now} -eq 0= ]; then + if [ ${stat_ackrx_now_l} -lt ${expect_ackrx} ]; then if [ ${stat_ooo_now} -eq 0 ]; then mptcp_lib_pr_fail "lower MPC ACK rx (${stat_ackrx_now_l})" \ "than expected (${expect_ackrx})" --=20 2.51.0 From nobody Thu Nov 27 12:35:50 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D7F5B32B9B2; Mon, 10 Nov 2025 18:24:13 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1762799054; cv=none; b=MAWEFwT8dUKJic4Bp7Ia4JwNWaHaz+rGrEKGIHOQG7BSF+h3XT4iNeURHSexDBotAC7Sc0B1L0GtFzB9HGY8HQvi8glHivyjvIEJsQJAT2xdb7ZzPSey7oZfkTmTKUSCjar/9C+RvcW6jLA2GTpENNDD8XqRhKaKolfFm2erLgo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1762799054; c=relaxed/simple; bh=Yd/WbLTEBm9Vun1YMg/Y3J91/aIJvT0vwTRg3ZZk4A0=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=oUXusDb9ITiHoUIVG2UJzfPhYsDCYd98S6VzYgy/4JbEoP7NDaivgcnboaoZSqQSmk7yON5c1IhBfI14y1Vb1uYBDD3NCFK9Chda+oqvNpTSSmhB6TNZqo6S0x/b3SVlPGPZUkM7rAVPRcCEFS4O6yoMMe9Hf1IbaxmQG7xDIaM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=QjT6X7yu; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="QjT6X7yu" Received: by smtp.kernel.org (Postfix) with ESMTPSA id EAC61C4CEFB; Mon, 10 Nov 2025 18:24:10 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1762799053; bh=Yd/WbLTEBm9Vun1YMg/Y3J91/aIJvT0vwTRg3ZZk4A0=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=QjT6X7yu/gZadZxwk66PN+16zKTml+ChUymzOH/AaXCtgwipgsKQYHLuRZqDJNM56 3ucX3KFJu/NAvOOqzH27pMj+E+yV9vFXzO+mQrxjzRLTIjfujzKNUgntsKCwohZnDe Y4UYPxWVbxQjj7BWXpdU6v5zfgtAq5NqY1KPxTk8iM/QNWuDoVKAdlIY2fXYyTTlFR fCqXVEWqNkujEW7ti3O56HlJ9uXsv73AahS2+JflriE7Jh0V4aSS2PzgP4LmppEOtB gcEIB21Utd3xrFkoe21k/AYyJImyj2zOksbQhTFzAq3ZNX2l1kr49oB9Gm4pjyPeoq fYzhMC9izALYA== From: "Matthieu Baerts (NGI0)" Date: Mon, 10 Nov 2025 19:23:41 +0100 Subject: [PATCH net 2/6] selftests: mptcp: join: rm: set backup flag Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251110-net-mptcp-sft-join-unstable-v1-2-a4332c714e10@kernel.org> References: <20251110-net-mptcp-sft-join-unstable-v1-0-a4332c714e10@kernel.org> In-Reply-To: <20251110-net-mptcp-sft-join-unstable-v1-0-a4332c714e10@kernel.org> To: Mat Martineau , Geliang Tang , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Simon Horman , Shuah Khan Cc: netdev@vger.kernel.org, mptcp@lists.linux.dev, linux-kselftest@vger.kernel.org, linux-kernel@vger.kernel.org, "Matthieu Baerts (NGI0)" , stable@vger.kernel.org X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=6777; i=matttbe@kernel.org; h=from:subject:message-id; bh=Yd/WbLTEBm9Vun1YMg/Y3J91/aIJvT0vwTRg3ZZk4A0=; b=owGbwMvMwCVWo/Th0Gd3rumMp9WSGDKFdPdv5hT+Ur17Rf4/qdsmq35Jim940bS/du3rOs8fF lNf6f0O7ihlYRDjYpAVU2SRbovMn/m8irfEy88CZg4rE8gQBi5OAZjIQlFGhmM9FzxmvLVePjH7 w2nFGwLnQxkMb73esfPd5aW90/2f3uNg+Kd1ZoPO9P5rZvnf7h0+njud+3iNmBjHRv03ktnVJ+c 8n8APAA== X-Developer-Key: i=matttbe@kernel.org; a=openpgp; fpr=E8CB85F76877057A6E27F77AF6B7824F4269A073 Some of these 'remove' tests rarely fail because a subflow has been reset instead of cleanly removed. This can happen when one extra subflow which has never carried data is being closed (FIN) on one side, while the other is sending data for the first time. To avoid such subflows to be used right at the end, the backup flag has been added. With that, data will be only carried on the initial subflow. Fixes: d2c4333a801c ("selftests: mptcp: add testcases for removing addrs") Cc: stable@vger.kernel.org Reviewed-by: Geliang Tang Signed-off-by: Matthieu Baerts (NGI0) --- tools/testing/selftests/net/mptcp/mptcp_join.sh | 54 ++++++++++++---------= ---- 1 file changed, 27 insertions(+), 27 deletions(-) diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testin= g/selftests/net/mptcp/mptcp_join.sh index 78a1aa4ecff2..9ed9ec7202d6 100755 --- a/tools/testing/selftests/net/mptcp/mptcp_join.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh @@ -2532,7 +2532,7 @@ remove_tests() if reset "remove single subflow"; then pm_nl_set_limits $ns1 0 1 pm_nl_set_limits $ns2 0 1 - pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow + pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow,backup addr_nr_ns2=3D-1 speed=3Dslow \ run_tests $ns1 $ns2 10.0.1.1 chk_join_nr 1 1 1 @@ -2545,8 +2545,8 @@ remove_tests() if reset "remove multiple subflows"; then pm_nl_set_limits $ns1 0 2 pm_nl_set_limits $ns2 0 2 - pm_nl_add_endpoint $ns2 10.0.2.2 flags subflow - pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow + pm_nl_add_endpoint $ns2 10.0.2.2 flags subflow,backup + pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow,backup addr_nr_ns2=3D-2 speed=3Dslow \ run_tests $ns1 $ns2 10.0.1.1 chk_join_nr 2 2 2 @@ -2557,7 +2557,7 @@ remove_tests() # single address, remove if reset "remove single address"; then pm_nl_set_limits $ns1 0 1 - pm_nl_add_endpoint $ns1 10.0.2.1 flags signal + pm_nl_add_endpoint $ns1 10.0.2.1 flags signal,backup pm_nl_set_limits $ns2 1 1 addr_nr_ns1=3D-1 speed=3Dslow \ run_tests $ns1 $ns2 10.0.1.1 @@ -2570,9 +2570,9 @@ remove_tests() # subflow and signal, remove if reset "remove subflow and signal"; then pm_nl_set_limits $ns1 0 2 - pm_nl_add_endpoint $ns1 10.0.2.1 flags signal + pm_nl_add_endpoint $ns1 10.0.2.1 flags signal,backup pm_nl_set_limits $ns2 1 2 - pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow + pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow,backup addr_nr_ns1=3D-1 addr_nr_ns2=3D-1 speed=3Dslow \ run_tests $ns1 $ns2 10.0.1.1 chk_join_nr 2 2 2 @@ -2584,10 +2584,10 @@ remove_tests() # subflows and signal, remove if reset "remove subflows and signal"; then pm_nl_set_limits $ns1 0 3 - pm_nl_add_endpoint $ns1 10.0.2.1 flags signal + pm_nl_add_endpoint $ns1 10.0.2.1 flags signal,backup pm_nl_set_limits $ns2 1 3 - pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow - pm_nl_add_endpoint $ns2 10.0.4.2 flags subflow + pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow,backup + pm_nl_add_endpoint $ns2 10.0.4.2 flags subflow,backup addr_nr_ns1=3D-1 addr_nr_ns2=3D-2 speed=3D10 \ run_tests $ns1 $ns2 10.0.1.1 chk_join_nr 3 3 3 @@ -2599,9 +2599,9 @@ remove_tests() # addresses remove if reset "remove addresses"; then pm_nl_set_limits $ns1 3 3 - pm_nl_add_endpoint $ns1 10.0.2.1 flags signal id 250 - pm_nl_add_endpoint $ns1 10.0.3.1 flags signal - pm_nl_add_endpoint $ns1 10.0.4.1 flags signal + pm_nl_add_endpoint $ns1 10.0.2.1 flags signal,backup id 250 + pm_nl_add_endpoint $ns1 10.0.3.1 flags signal,backup + pm_nl_add_endpoint $ns1 10.0.4.1 flags signal,backup pm_nl_set_limits $ns2 3 3 addr_nr_ns1=3D-3 speed=3D10 \ run_tests $ns1 $ns2 10.0.1.1 @@ -2614,10 +2614,10 @@ remove_tests() # invalid addresses remove if reset "remove invalid addresses"; then pm_nl_set_limits $ns1 3 3 - pm_nl_add_endpoint $ns1 10.0.12.1 flags signal + pm_nl_add_endpoint $ns1 10.0.12.1 flags signal,backup # broadcast IP: no packet for this address will be received on ns1 - pm_nl_add_endpoint $ns1 224.0.0.1 flags signal - pm_nl_add_endpoint $ns1 10.0.3.1 flags signal + pm_nl_add_endpoint $ns1 224.0.0.1 flags signal,backup + pm_nl_add_endpoint $ns1 10.0.3.1 flags signal,backup pm_nl_set_limits $ns2 2 2 addr_nr_ns1=3D-3 speed=3D10 \ run_tests $ns1 $ns2 10.0.1.1 @@ -2631,10 +2631,10 @@ remove_tests() # subflows and signal, flush if reset "flush subflows and signal"; then pm_nl_set_limits $ns1 0 3 - pm_nl_add_endpoint $ns1 10.0.2.1 flags signal + pm_nl_add_endpoint $ns1 10.0.2.1 flags signal,backup pm_nl_set_limits $ns2 1 3 - pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow - pm_nl_add_endpoint $ns2 10.0.4.2 flags subflow + pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow,backup + pm_nl_add_endpoint $ns2 10.0.4.2 flags subflow,backup addr_nr_ns1=3D-8 addr_nr_ns2=3D-8 speed=3Dslow \ run_tests $ns1 $ns2 10.0.1.1 chk_join_nr 3 3 3 @@ -2647,9 +2647,9 @@ remove_tests() if reset "flush subflows"; then pm_nl_set_limits $ns1 3 3 pm_nl_set_limits $ns2 3 3 - pm_nl_add_endpoint $ns2 10.0.2.2 flags subflow id 150 - pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow - pm_nl_add_endpoint $ns2 10.0.4.2 flags subflow + pm_nl_add_endpoint $ns2 10.0.2.2 flags subflow,backup id 150 + pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow,backup + pm_nl_add_endpoint $ns2 10.0.4.2 flags subflow,backup addr_nr_ns1=3D-8 addr_nr_ns2=3D-8 speed=3Dslow \ run_tests $ns1 $ns2 10.0.1.1 chk_join_nr 3 3 3 @@ -2666,9 +2666,9 @@ remove_tests() # addresses flush if reset "flush addresses"; then pm_nl_set_limits $ns1 3 3 - pm_nl_add_endpoint $ns1 10.0.2.1 flags signal id 250 - pm_nl_add_endpoint $ns1 10.0.3.1 flags signal - pm_nl_add_endpoint $ns1 10.0.4.1 flags signal + pm_nl_add_endpoint $ns1 10.0.2.1 flags signal,backup id 250 + pm_nl_add_endpoint $ns1 10.0.3.1 flags signal,backup + pm_nl_add_endpoint $ns1 10.0.4.1 flags signal,backup pm_nl_set_limits $ns2 3 3 addr_nr_ns1=3D-8 addr_nr_ns2=3D-8 speed=3Dslow \ run_tests $ns1 $ns2 10.0.1.1 @@ -2681,9 +2681,9 @@ remove_tests() # invalid addresses flush if reset "flush invalid addresses"; then pm_nl_set_limits $ns1 3 3 - pm_nl_add_endpoint $ns1 10.0.12.1 flags signal - pm_nl_add_endpoint $ns1 10.0.3.1 flags signal - pm_nl_add_endpoint $ns1 10.0.14.1 flags signal + pm_nl_add_endpoint $ns1 10.0.12.1 flags signal,backup + pm_nl_add_endpoint $ns1 10.0.3.1 flags signal,backup + pm_nl_add_endpoint $ns1 10.0.14.1 flags signal,backup pm_nl_set_limits $ns2 3 3 addr_nr_ns1=3D-8 speed=3Dslow \ run_tests $ns1 $ns2 10.0.1.1 --=20 2.51.0 From nobody Thu Nov 27 12:35:50 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8133F328622; Mon, 10 Nov 2025 18:24:16 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1762799056; cv=none; b=euXCRpEYvQzC3yfUTzJkfe6CeTzyhsxk87z67oRgkCAiZ4Mg4fqR9QcZd6F61S89bmRizKn5LQrL3aKTdXcV4exMIJThikDF6bWmxbjTNdEIwwyWYHYy7TetwuEm4vDG3LG6Cid3cbuVy1SDYbJb+YgQbu1PmukETG/EB53W2eQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1762799056; c=relaxed/simple; bh=/xQ8ASAESSyjnLeK3jPf5wYdRgTYOmQMlj4qSPa8Gdo=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=A2dPJjabTQbJ21nL1a4+0gnyUCUCbJf9oQMGBHYOpHwciN2azlZDJJ+YWPTmitXEp8rJKMJGHbBeKNYmMAJHe1nScHrvlvvLF0MBVDM1VVB4ExbxRYRIKqv6exa3ZsBbT3HnQAdWmBV7YFXR4aLleTvYGCPSTLVuxFqUD+r1qfc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=mR877Em7; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="mR877Em7" Received: by smtp.kernel.org (Postfix) with ESMTPSA id B169EC4CEF5; Mon, 10 Nov 2025 18:24:13 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1762799056; bh=/xQ8ASAESSyjnLeK3jPf5wYdRgTYOmQMlj4qSPa8Gdo=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=mR877Em7C69YAKB7SIQIeG16R0D20FR/xyHZVkTxsDAAlbMf9NVgQ0aGXt+1qslUV dbe2r5kGQSSmnsfIMXHeJA9ouhZAo/xdfqvX8XMri12Oj6UsYaNgWqWQT0Bp7/6Fqv Gx3GhN/yGLKkiwayhduhhdTxsOspOcqPcOrMZ1UrWXDGQ+tux1nLdF/kiKH1o18Z8b 4d0HxF3gJxPFaBBLRTpy7vBNQtsWSKm1pzcnqgIWo6ZCxO+mCM/uIL2wgWX+tgT5xa QkwpwI/YrtgGK5XxyWBGhPyEbjp6Slac/RngtHn+Wn3zu6DLrjTudWUxFsw0aDsM+C AT5sdZGxoloeQ== From: "Matthieu Baerts (NGI0)" Date: Mon, 10 Nov 2025 19:23:42 +0100 Subject: [PATCH net 3/6] selftests: mptcp: join: endpoints: longer transfer Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251110-net-mptcp-sft-join-unstable-v1-3-a4332c714e10@kernel.org> References: <20251110-net-mptcp-sft-join-unstable-v1-0-a4332c714e10@kernel.org> In-Reply-To: <20251110-net-mptcp-sft-join-unstable-v1-0-a4332c714e10@kernel.org> To: Mat Martineau , Geliang Tang , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Simon Horman , Shuah Khan Cc: netdev@vger.kernel.org, mptcp@lists.linux.dev, linux-kselftest@vger.kernel.org, linux-kernel@vger.kernel.org, "Matthieu Baerts (NGI0)" , stable@vger.kernel.org X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=2819; i=matttbe@kernel.org; h=from:subject:message-id; bh=/xQ8ASAESSyjnLeK3jPf5wYdRgTYOmQMlj4qSPa8Gdo=; b=owGbwMvMwCVWo/Th0Gd3rumMp9WSGDKFdA+s+/86+LEAg3bXDNZ3eizrVtwIOHG1Sf3L9wb+J 4wG11/N7ShlYRDjYpAVU2SRbovMn/m8irfEy88CZg4rE8gQBi5OAZhIqjgjw6UQPrfcieJ7X25M 3VXB0+SmUNIv8WX79KpF2hLf2K62MjD84dsSaR/jxpd0/uKkvISN8q2FnCqetfm9zyQCOtq4/jx mBwA= X-Developer-Key: i=matttbe@kernel.org; a=openpgp; fpr=E8CB85F76877057A6E27F77AF6B7824F4269A073 In rare cases, when the test environment is very slow, some userspace tests can fail because some expected events have not been seen. Because the tests are expecting a long on-going connection, and they are not waiting for the end of the transfer, it is fine to make the connection longer. This connection will be killed at the end, after the verifications, so making it longer doesn't change anything, apart from avoid it to end before the end of the verifications To play it safe, all endpoints tests not waiting for the end of the transfer are now sharing a longer file (128KB) at slow speed. Fixes: 69c6ce7b6eca ("selftests: mptcp: add implicit endpoint test case") Cc: stable@vger.kernel.org Fixes: e274f7154008 ("selftests: mptcp: add subflow limits test-cases") Fixes: b5e2fb832f48 ("selftests: mptcp: add explicit test case for remove/r= eadd") Fixes: e06959e9eebd ("selftests: mptcp: join: test for flush/re-add endpoin= ts") Reviewed-by: Geliang Tang Signed-off-by: Matthieu Baerts (NGI0) --- tools/testing/selftests/net/mptcp/mptcp_join.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testin= g/selftests/net/mptcp/mptcp_join.sh index 9ed9ec7202d6..97af8d89ac5c 100755 --- a/tools/testing/selftests/net/mptcp/mptcp_join.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh @@ -3943,7 +3943,7 @@ endpoint_tests() pm_nl_set_limits $ns1 2 2 pm_nl_set_limits $ns2 2 2 pm_nl_add_endpoint $ns1 10.0.2.1 flags signal - { speed=3Dslow \ + { test_linkfail=3D128 speed=3Dslow \ run_tests $ns1 $ns2 10.0.1.1 & } 2>/dev/null local tests_pid=3D$! =20 @@ -3970,7 +3970,7 @@ endpoint_tests() pm_nl_set_limits $ns2 0 3 pm_nl_add_endpoint $ns2 10.0.1.2 id 1 dev ns2eth1 flags subflow pm_nl_add_endpoint $ns2 10.0.2.2 id 2 dev ns2eth2 flags subflow - { test_linkfail=3D4 speed=3D5 \ + { test_linkfail=3D128 speed=3D5 \ run_tests $ns1 $ns2 10.0.1.1 & } 2>/dev/null local tests_pid=3D$! =20 @@ -4048,7 +4048,7 @@ endpoint_tests() # broadcast IP: no packet for this address will be received on ns1 pm_nl_add_endpoint $ns1 224.0.0.1 id 2 flags signal pm_nl_add_endpoint $ns1 10.0.1.1 id 42 flags signal - { test_linkfail=3D4 speed=3D5 \ + { test_linkfail=3D128 speed=3D5 \ run_tests $ns1 $ns2 10.0.1.1 & } 2>/dev/null local tests_pid=3D$! =20 @@ -4121,7 +4121,7 @@ endpoint_tests() # broadcast IP: no packet for this address will be received on ns1 pm_nl_add_endpoint $ns1 224.0.0.1 id 2 flags signal pm_nl_add_endpoint $ns2 10.0.3.2 id 3 flags subflow - { test_linkfail=3D4 speed=3D20 \ + { test_linkfail=3D128 speed=3D20 \ run_tests $ns1 $ns2 10.0.1.1 & } 2>/dev/null local tests_pid=3D$! =20 --=20 2.51.0 From nobody Thu Nov 27 12:35:50 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 34A1832D0D0; Mon, 10 Nov 2025 18:24:18 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1762799059; cv=none; b=LZXi+mt3xFCpFgQHLYdSbpnqeR30o+cbgz9UDEtaglfFTDPeISCVVziZCbZUbDz3Zw9UDYpNdD00X4DX0xM0So5bnLbKYwYxYWHdPuerkf7Kpb6Dzd4liCrs8KecvxPMd7NGWumr43ThC40jj6T4IWYe2X/iVW2Gr+3lcQuQLKE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1762799059; c=relaxed/simple; bh=eF6ZSd0wL/kbIM1jEfkTaig8f/aSf92ohx/PwKJfO30=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=lfn5DGnTPhc6K8q8F/lrY5gYVDH0HHcXZOADYJJ70ZlPiVx0qFONua90BpPWIebPyLNSuT1LGQBL3UOvTMH5g5EBuH2nhBuZoILZNhZTn9XcVbijFV2Vmy6LOR/D35/4cKT+p+62zUXeRUkd2POnqAH5m5H5XlHsgRe+WrArmfI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Sgt1RKYY; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Sgt1RKYY" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 6E1C7C4CEFB; Mon, 10 Nov 2025 18:24:16 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1762799058; bh=eF6ZSd0wL/kbIM1jEfkTaig8f/aSf92ohx/PwKJfO30=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=Sgt1RKYY3dNzEb1G8aOm0ejx20YMMcL8nic8DllNr2JhO//Qy0cyuf/sywSCfv49y tE/RSvLDpbfHnPjyrhm6cp+cYVFFY4MjWtU+/l9euM1bxQEsBNTDwwDc6LZJ3Slvj2 Hm1SOZznmVgtX6o8FiIqGR5Y582kwAYQ5H12Q8UTp89wh63IOoMc/SE6xcAPHUGPkQ hTvDuOlgAdbIyfkQpKoU5AHuG83fiIzvJLqTyqhaq03jdvnFFcBmL+LeVIur0KbpJW GOb7N2to8cFPALp07DOzmbHLoeiQl9gGuOfnDQCH2IlrshrXfsSjY+IFgrwFiOih5a PD3hm/1cQ1HyQ== From: "Matthieu Baerts (NGI0)" Date: Mon, 10 Nov 2025 19:23:43 +0100 Subject: [PATCH net 4/6] selftests: mptcp: join: userspace: longer transfer Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251110-net-mptcp-sft-join-unstable-v1-4-a4332c714e10@kernel.org> References: <20251110-net-mptcp-sft-join-unstable-v1-0-a4332c714e10@kernel.org> In-Reply-To: <20251110-net-mptcp-sft-join-unstable-v1-0-a4332c714e10@kernel.org> To: Mat Martineau , Geliang Tang , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Simon Horman , Shuah Khan Cc: netdev@vger.kernel.org, mptcp@lists.linux.dev, linux-kselftest@vger.kernel.org, linux-kernel@vger.kernel.org, "Matthieu Baerts (NGI0)" , stable@vger.kernel.org X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=3013; i=matttbe@kernel.org; h=from:subject:message-id; bh=eF6ZSd0wL/kbIM1jEfkTaig8f/aSf92ohx/PwKJfO30=; b=owGbwMvMwCVWo/Th0Gd3rumMp9WSGDKFdA9t77v/qVLQ/XWOuqaq+odZ7x3bPp53i1GYkL+lR 2iKuGd/RykLgxgXg6yYIot0W2T+zOdVvCVefhYwc1iZQIYwcHEKwEScJjL8YqpjLm352cj3/Wpp U+bp2ZJ8MzRvPeg3nrKHsaSG6dofZoY/nNGNU/rvVy311ni57Y7cw9MLmx+X7HRs+BXMom7fp/i OEQA= X-Developer-Key: i=matttbe@kernel.org; a=openpgp; fpr=E8CB85F76877057A6E27F77AF6B7824F4269A073 In rare cases, when the test environment is very slow, some userspace tests can fail because some expected events have not been seen. Because the tests are expecting a long on-going connection, and they are not waiting for the end of the transfer, it is fine to make the connection longer. This connection will be killed at the end, after the verifications, so making it longer doesn't change anything, apart from avoid it to end before the end of the verifications To play it safe, all userspace tests not waiting for the end of the transfer are now sharing a longer file (128KB) at slow speed. Fixes: 4369c198e599 ("selftests: mptcp: test userspace pm out of transfer") Cc: stable@vger.kernel.org Fixes: b2e2248f365a ("selftests: mptcp: userspace pm create id 0 subflow") Fixes: e3b47e460b4b ("selftests: mptcp: userspace pm remove initial subflow= ") Fixes: b9fb176081fb ("selftests: mptcp: userspace pm send RM_ADDR for ID 0") Reviewed-by: Geliang Tang Signed-off-by: Matthieu Baerts (NGI0) --- tools/testing/selftests/net/mptcp/mptcp_join.sh | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testin= g/selftests/net/mptcp/mptcp_join.sh index 97af8d89ac5c..01273abfdc89 100755 --- a/tools/testing/selftests/net/mptcp/mptcp_join.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh @@ -3806,7 +3806,7 @@ userspace_tests() continue_if mptcp_lib_has_file '/proc/sys/net/mptcp/pm_type'; then set_userspace_pm $ns1 pm_nl_set_limits $ns2 2 2 - { speed=3D5 \ + { test_linkfail=3D128 speed=3D5 \ run_tests $ns1 $ns2 10.0.1.1 & } 2>/dev/null local tests_pid=3D$! wait_mpj $ns1 @@ -3839,7 +3839,7 @@ userspace_tests() continue_if mptcp_lib_has_file '/proc/sys/net/mptcp/pm_type'; then set_userspace_pm $ns2 pm_nl_set_limits $ns1 0 1 - { speed=3D5 \ + { test_linkfail=3D128 speed=3D5 \ run_tests $ns1 $ns2 10.0.1.1 & } 2>/dev/null local tests_pid=3D$! wait_mpj $ns2 @@ -3867,7 +3867,7 @@ userspace_tests() continue_if mptcp_lib_has_file '/proc/sys/net/mptcp/pm_type'; then set_userspace_pm $ns2 pm_nl_set_limits $ns1 0 1 - { speed=3D5 \ + { test_linkfail=3D128 speed=3D5 \ run_tests $ns1 $ns2 10.0.1.1 & } 2>/dev/null local tests_pid=3D$! wait_mpj $ns2 @@ -3888,7 +3888,7 @@ userspace_tests() continue_if mptcp_lib_has_file '/proc/sys/net/mptcp/pm_type'; then set_userspace_pm $ns2 pm_nl_set_limits $ns1 0 1 - { speed=3D5 \ + { test_linkfail=3D128 speed=3D5 \ run_tests $ns1 $ns2 10.0.1.1 & } 2>/dev/null local tests_pid=3D$! wait_mpj $ns2 @@ -3912,7 +3912,7 @@ userspace_tests() continue_if mptcp_lib_has_file '/proc/sys/net/mptcp/pm_type'; then set_userspace_pm $ns1 pm_nl_set_limits $ns2 1 1 - { speed=3D5 \ + { test_linkfail=3D128 speed=3D5 \ run_tests $ns1 $ns2 10.0.1.1 & } 2>/dev/null local tests_pid=3D$! wait_mpj $ns1 --=20 2.51.0 From nobody Thu Nov 27 12:35:50 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D4C9332E123; Mon, 10 Nov 2025 18:24:21 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1762799062; cv=none; b=Je+sd7OOaBoGWkT2YpHZg0smRfLL9PaU9BaSphovabHfGQzJ1/gKMs9vn5flpp20ZKG0+8qvYkMz/DxBE/q4Sw0yqK1iaKOl8xcTMin6YZO85B2A8GDlW0fjAyyhfwDfuY7zSyaNnIuo1RY7Ql86Jgs/MdxP6RA392DZxsjinbM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1762799062; c=relaxed/simple; bh=g3SLcGsDjlMGBKQSfIm6bhEChbau24P2JJ1zVw2RPNo=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=gAKL3tzjl+Pc575wS4kD+ulJqgGXhdnY6XMC8sPM8nDDQUa+Gdlt/ZnE2NpzzfKfcq19Ahgqj898Xx9Li2OM0gwFyUFVa2ayVZ+kcCPxH68FtKguSwT4DL7SGbdT/zgP+dW3TGLnlwp6meWSu/WiR9gefHBmehLJk2T0CQO47C0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=kqb52MrL; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="kqb52MrL" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 28480C19423; Mon, 10 Nov 2025 18:24:19 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1762799061; bh=g3SLcGsDjlMGBKQSfIm6bhEChbau24P2JJ1zVw2RPNo=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=kqb52MrLpMVv8hVC8I38cc9DMNTYlG1SxBo9B9ODTbSVeqagIBhW5cOFVXH1Ryg4l +0klC1hmhhV9CVIePFoJVuuu/HW79gTVhDEppqK93dgzR2VQrZwzuFeBWovfTXgtSQ VQxyaqUYT1afmXkkZuDDABje40IpiFicbJZPD6fO7pkpqejNGLLwMArrrN7YSXLNfV IF2Hi+/g/PcsQ4mQUbeZ9765FtaJNOH/C/MXxaz6ljdaW3Kr82zmMxQ2Yg3Ok4t0sK v3Vwg/kurLxFjjo9nyPwOI1WM8Z7lMD1Uc8Qn5pLLp9W91TBFkHOTI5FIkDVp1DlTN UZT3sjBX7q9sw== From: "Matthieu Baerts (NGI0)" Date: Mon, 10 Nov 2025 19:23:44 +0100 Subject: [PATCH net 5/6] selftests: mptcp: connect: trunc: read all recv data Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251110-net-mptcp-sft-join-unstable-v1-5-a4332c714e10@kernel.org> References: <20251110-net-mptcp-sft-join-unstable-v1-0-a4332c714e10@kernel.org> In-Reply-To: <20251110-net-mptcp-sft-join-unstable-v1-0-a4332c714e10@kernel.org> To: Mat Martineau , Geliang Tang , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Simon Horman , Shuah Khan Cc: netdev@vger.kernel.org, mptcp@lists.linux.dev, linux-kselftest@vger.kernel.org, linux-kernel@vger.kernel.org, "Matthieu Baerts (NGI0)" , stable@vger.kernel.org X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=2803; i=matttbe@kernel.org; h=from:subject:message-id; bh=g3SLcGsDjlMGBKQSfIm6bhEChbau24P2JJ1zVw2RPNo=; b=owGbwMvMwCVWo/Th0Gd3rumMp9WSGDKFdA9HytzIfXnOue3P4dVaRyNXLp/oOnuy7bwDHBaFj k4MiwOudpSyMIhxMciKKbJIt0Xmz3xexVvi5WcBM4eVCWQIAxenAEzkoAcjw/pzqaIrMl+3+abo JW9ksZ93oNnxScxrjgOTb/mw82kq5TH80zmqXV/GcbZqt5i9Qsuvu52STNxv2y95JNm6vxPR/2b OCwA= X-Developer-Key: i=matttbe@kernel.org; a=openpgp; fpr=E8CB85F76877057A6E27F77AF6B7824F4269A073 MPTCP Join "fastclose server" selftest is sometimes failing because the client output file doesn't have the expected size, e.g. 296B instead of 1024B. When looking at a packet trace when this happens, the server sent the expected 1024B in two parts -- 100B, then 924B -- then the MP_FASTCLOSE. It is then strange to see the client only receiving 296B, which would mean it only got a part of the second packet. The problem is then not on the networking side, but rather on the data reception side. When mptcp_connect is launched with '-f -1', it means the connection might stop before having sent everything, because a reset has been received. When this happens, the program was directly stopped. But it is also possible there are still some data to read, simply because the previous 'read' step was done with a buffer smaller than the pending data, see do_rnd_read(). In this case, it is important to read what's left in the kernel buffers before stopping without error like before. SIGPIPE is now ignored, not to quit the app before having read everything. Fixes: 6bf41020b72b ("selftests: mptcp: update and extend fastclose test-ca= ses") Cc: stable@vger.kernel.org Reviewed-by: Geliang Tang Signed-off-by: Matthieu Baerts (NGI0) --- tools/testing/selftests/net/mptcp/mptcp_connect.c | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/tools/testing/selftests/net/mptcp/mptcp_connect.c b/tools/test= ing/selftests/net/mptcp/mptcp_connect.c index b148cadb96d0..fc7e22b503d3 100644 --- a/tools/testing/selftests/net/mptcp/mptcp_connect.c +++ b/tools/testing/selftests/net/mptcp/mptcp_connect.c @@ -710,8 +710,14 @@ static int copyfd_io_poll(int infd, int peerfd, int ou= tfd, =20 bw =3D do_rnd_write(peerfd, winfo->buf + winfo->off, winfo->len); if (bw < 0) { - if (cfg_rcv_trunc) - return 0; + /* expected reset, continue to read */ + if (cfg_rcv_trunc && + (errno =3D=3D ECONNRESET || + errno =3D=3D EPIPE)) { + fds.events &=3D ~POLLOUT; + continue; + } + perror("write"); return 111; } @@ -737,8 +743,10 @@ static int copyfd_io_poll(int infd, int peerfd, int ou= tfd, } =20 if (fds.revents & (POLLERR | POLLNVAL)) { - if (cfg_rcv_trunc) - return 0; + if (cfg_rcv_trunc) { + fds.events &=3D ~(POLLERR | POLLNVAL); + continue; + } fprintf(stderr, "Unexpected revents: " "POLLERR/POLLNVAL(%x)\n", fds.revents); return 5; @@ -1433,7 +1441,7 @@ static void parse_opts(int argc, char **argv) */ if (cfg_truncate < 0) { cfg_rcv_trunc =3D true; - signal(SIGPIPE, handle_signal); + signal(SIGPIPE, SIG_IGN); } break; case 'j': --=20 2.51.0 From nobody Thu Nov 27 12:35:50 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 92E2832E6A7; Mon, 10 Nov 2025 18:24:24 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1762799064; cv=none; b=G+JxJoPAubeRFjaftNR7mU6GLYH6Yc75PMT6Q39qlyAL9pB365Crv2JQ2yKequ6jGa5efyu0uOmiyJR0ggiKHTRk9p0IQdCF7Oofi7Z4Wfi5akC/SDdJSo+OmhepwW8Zf8wIanCTlZ12jG8SeGUfKyo+hjAwESqYiIQkUm6VI+I= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1762799064; c=relaxed/simple; bh=rNX/qv1b1iAPPSF9UvN11BhMKo9TT2zldKEZXZLB5Uo=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=qGQq0BbeS8lbcp4jwyF+gmYGbixck4ngZhwGIrYHVKppjxVYj4FIwNXMfTUzl7w4WHNrYJKkcpc1ESTlM4DMgaYJ//Y01x1vrZ2JVbJe6EOrGVo7aX6u7/owBejgLJ35JCntTiAJ5H6T4NholVBkMzr67iekxoCfIhvgwww370E= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=mYU+YtIQ; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="mYU+YtIQ" Received: by smtp.kernel.org (Postfix) with ESMTPSA id D822EC116D0; Mon, 10 Nov 2025 18:24:21 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1762799064; bh=rNX/qv1b1iAPPSF9UvN11BhMKo9TT2zldKEZXZLB5Uo=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=mYU+YtIQo8XQwOFl6334IV7EZGLLffUzMWY2YN+3GrKmU77HZAKI+jOoZbqPd9fSh 7S5pJJC+8kSwRqLqkvZo5RLxJAFVf6JsIzNMXELoS7pRHljGjeTcHfD0ZHmWAjy8di nvps2BMwZkH2rcqvdYg0/KIkEYp1GsnvqnwYz0hFCuI2J5TiV0LTeh/oLxz+hAbm8S v2EdktNHapsYFVzShFYwz6clzCYrfwFJF5dA+uDuxozwVGOBj3caU1Sy5Yjaq0Sjfp gf0ZevQtUoLLm6KqYWWyD8XsEi6Xv9pyVCl8UsaTURjWBx6rG1mnfDK6eU0y+gu1sr 0yUxi5yJJbQxw== From: "Matthieu Baerts (NGI0)" Date: Mon, 10 Nov 2025 19:23:45 +0100 Subject: [PATCH net 6/6] selftests: mptcp: join: properly kill background tasks Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251110-net-mptcp-sft-join-unstable-v1-6-a4332c714e10@kernel.org> References: <20251110-net-mptcp-sft-join-unstable-v1-0-a4332c714e10@kernel.org> In-Reply-To: <20251110-net-mptcp-sft-join-unstable-v1-0-a4332c714e10@kernel.org> To: Mat Martineau , Geliang Tang , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Simon Horman , Shuah Khan Cc: netdev@vger.kernel.org, mptcp@lists.linux.dev, linux-kselftest@vger.kernel.org, linux-kernel@vger.kernel.org, "Matthieu Baerts (NGI0)" , stable@vger.kernel.org X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=4441; i=matttbe@kernel.org; h=from:subject:message-id; bh=rNX/qv1b1iAPPSF9UvN11BhMKo9TT2zldKEZXZLB5Uo=; b=owGbwMvMwCVWo/Th0Gd3rumMp9WSGDKFdI/oNM2oODzD4O70uSH5F56d2nomOPIX25HXJ7jD8 nKFQyc6dJSyMIhxMciKKbJIt0Xmz3xexVvi5WcBM4eVCWQIAxenAExExo7hf+QKwz7j0N1Rsy/f StP9YXVi2uuoLu09wZXlLJLVyr/CyxgZ9ik/6ww/J5EhInQ6qv3gxRdrhC0mnfu6rPZVrMGj2wK M/AA= X-Developer-Key: i=matttbe@kernel.org; a=openpgp; fpr=E8CB85F76877057A6E27F77AF6B7824F4269A073 The 'run_tests' function is executed in the background, but killing its associated PID would not kill the children tasks running in the background. To properly kill all background tasks, 'kill -- -PID' could be used, but this requires kill from procps-ng. Instead, all children tasks are listed using 'ps', and 'kill' is called with all PIDs of this group. Fixes: 31ee4ad86afd ("selftests: mptcp: join: stop transfer when check is d= one (part 1)") Cc: stable@vger.kernel.org Fixes: 04b57c9e096a ("selftests: mptcp: join: stop transfer when check is d= one (part 2)") Signed-off-by: Matthieu Baerts (NGI0) --- tools/testing/selftests/net/mptcp/mptcp_join.sh | 18 +++++++++--------- tools/testing/selftests/net/mptcp/mptcp_lib.sh | 21 +++++++++++++++++++++ 2 files changed, 30 insertions(+), 9 deletions(-) diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testin= g/selftests/net/mptcp/mptcp_join.sh index 01273abfdc89..41503c241989 100755 --- a/tools/testing/selftests/net/mptcp/mptcp_join.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh @@ -3831,7 +3831,7 @@ userspace_tests() chk_mptcp_info subflows 0 subflows 0 chk_subflows_total 1 1 kill_events_pids - mptcp_lib_kill_wait $tests_pid + mptcp_lib_kill_group_wait $tests_pid fi =20 # userspace pm create destroy subflow @@ -3859,7 +3859,7 @@ userspace_tests() chk_mptcp_info subflows 0 subflows 0 chk_subflows_total 1 1 kill_events_pids - mptcp_lib_kill_wait $tests_pid + mptcp_lib_kill_group_wait $tests_pid fi =20 # userspace pm create id 0 subflow @@ -3880,7 +3880,7 @@ userspace_tests() chk_mptcp_info subflows 1 subflows 1 chk_subflows_total 2 2 kill_events_pids - mptcp_lib_kill_wait $tests_pid + mptcp_lib_kill_group_wait $tests_pid fi =20 # userspace pm remove initial subflow @@ -3904,7 +3904,7 @@ userspace_tests() chk_mptcp_info subflows 1 subflows 1 chk_subflows_total 1 1 kill_events_pids - mptcp_lib_kill_wait $tests_pid + mptcp_lib_kill_group_wait $tests_pid fi =20 # userspace pm send RM_ADDR for ID 0 @@ -3930,7 +3930,7 @@ userspace_tests() chk_mptcp_info subflows 1 subflows 1 chk_subflows_total 1 1 kill_events_pids - mptcp_lib_kill_wait $tests_pid + mptcp_lib_kill_group_wait $tests_pid fi } =20 @@ -3960,7 +3960,7 @@ endpoint_tests() pm_nl_add_endpoint $ns2 10.0.2.2 flags signal pm_nl_check_endpoint "modif is allowed" \ $ns2 10.0.2.2 id 1 flags signal - mptcp_lib_kill_wait $tests_pid + mptcp_lib_kill_group_wait $tests_pid fi =20 if reset_with_tcp_filter "delete and re-add" ns2 10.0.3.2 REJECT OUTPUT && @@ -4015,7 +4015,7 @@ endpoint_tests() chk_mptcp_info subflows 3 subflows 3 done =20 - mptcp_lib_kill_wait $tests_pid + mptcp_lib_kill_group_wait $tests_pid =20 kill_events_pids chk_evt_nr ns1 MPTCP_LIB_EVENT_LISTENER_CREATED 1 @@ -4089,7 +4089,7 @@ endpoint_tests() wait_mpj $ns2 chk_subflow_nr "after re-re-add ID 0" 3 chk_mptcp_info subflows 3 subflows 3 - mptcp_lib_kill_wait $tests_pid + mptcp_lib_kill_group_wait $tests_pid =20 kill_events_pids chk_evt_nr ns1 MPTCP_LIB_EVENT_LISTENER_CREATED 1 @@ -4137,7 +4137,7 @@ endpoint_tests() wait_mpj $ns2 pm_nl_add_endpoint $ns1 10.0.3.1 id 2 flags signal wait_mpj $ns2 - mptcp_lib_kill_wait $tests_pid + mptcp_lib_kill_group_wait $tests_pid =20 join_syn_tx=3D3 join_connect_err=3D1 \ chk_join_nr 2 2 2 diff --git a/tools/testing/selftests/net/mptcp/mptcp_lib.sh b/tools/testing= /selftests/net/mptcp/mptcp_lib.sh index d62e653d48b0..f4388900016a 100644 --- a/tools/testing/selftests/net/mptcp/mptcp_lib.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_lib.sh @@ -350,6 +350,27 @@ mptcp_lib_kill_wait() { wait "${1}" 2>/dev/null } =20 +# $1: PID +mptcp_lib_pid_list_children() { + local curr=3D"${1}" + # evoke 'ps' only once + local pids=3D"${2:-"$(ps o pid,ppid)"}" + + echo "${curr}" + + local pid + for pid in $(echo "${pids}" | awk "\$2 =3D=3D ${curr} { print \$1 }"); do + mptcp_lib_pid_list_children "${pid}" "${pids}" + done +} + +# $1: PID +mptcp_lib_kill_group_wait() { + # Some users might not have procps-ng: cannot use "kill -- -PID" + mptcp_lib_pid_list_children "${1}" | xargs -r kill &>/dev/null + wait "${1}" 2>/dev/null +} + # $1: IP address mptcp_lib_is_v6() { [ -z "${1##*:*}" ] --=20 2.51.0