From nobody Thu May 16 09:07:13 2024 Received: from out-174.mta1.migadu.com (out-174.mta1.migadu.com [95.215.58.174]) (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 60006107B0 for ; Mon, 18 Dec 2023 08:48:40 +0000 (UTC) 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="FAOY/tif" X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.dev; s=key1; t=1702889318; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=wiKp+yp9sD3/MgmOWyQTCXqF1hHLdh1xASrwowdCyY4=; b=FAOY/tif3jfXNwVdAneXQYqiiHMUPLmHqMCRM/1tPQdQCz+MjTquVSAOUI/3t3cHE15rQW m4LExUDWJGm6NsC6Kz7lct6d90JXUumg+UyeBpxUG5+dMZViTKSd1pUrtgGydl9xtfz9Nq JpBYT90pHid6Ak0LlPEFSE8Ums61OE8= From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next 1/5] Squash to "mptcp: use mptcp_set_state" 1 Date: Mon, 18 Dec 2023 16:47:13 +0800 Message-Id: <85ce8b86865dc6fd8c984ef126dd6872baa028db.1702889134.git.geliang.tang@linux.dev> In-Reply-To: References: Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Migadu-Flow: FLOW_OUT Content-Type: text/plain; charset="utf-8" Remove the comment. Signed-off-by: Geliang Tang --- net/mptcp/pm_netlink.c | 3 --- 1 file changed, 3 deletions(-) diff --git a/net/mptcp/pm_netlink.c b/net/mptcp/pm_netlink.c index b93683b5e618..bf4d96f6f99a 100644 --- a/net/mptcp/pm_netlink.c +++ b/net/mptcp/pm_netlink.c @@ -1048,9 +1048,6 @@ static int mptcp_pm_nl_create_listen_socket(struct so= ck *sk, if (err) return err; =20 - /* avoid replacing inet_sk_state_store with mptcp_set_state here, as the - * old status is known to be TCP_CLOSE, hence will not affect the count. - */ inet_sk_state_store(newsk, TCP_LISTEN); lock_sock(ssk); err =3D __inet_listen_sk(ssk, backlog); --=20 2.35.3 From nobody Thu May 16 09:07:13 2024 Received: from out-173.mta1.migadu.com (out-173.mta1.migadu.com [95.215.58.173]) (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 59108107B7 for ; Mon, 18 Dec 2023 08:48:41 +0000 (UTC) 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="cX3DekId" X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.dev; s=key1; t=1702889319; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=oq1x055y/ZPL/0misyDl/EbFgbm8C7ER63akTSQlvnU=; b=cX3DekIdkLaDaicRZznxiyjhWVuUhGl9A14NLbyLwzAKsCCs7G4E8XnRyUdv4aIcBMLmwK kElQKu9juUmuM3LI4wJjxaqe0OXeUXg71ywi/KVCKJ1Fw3WKwnJ6vFMkoj+wolR+/wbIOA q5L/7SVH9Av6R0u9ojZPABcJyFRT6RQ= From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next 2/5] mptcp: move inet_sk_state_store under lock Date: Mon, 18 Dec 2023 16:47:14 +0800 Message-Id: <84b7f01dcee92c4c1ae00523baa5f98f0cb64671.1702889134.git.geliang.tang@linux.dev> In-Reply-To: References: Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Migadu-Flow: FLOW_OUT Content-Type: text/plain; charset="utf-8" This patch moves inet_sk_state_store() under the socket lock in mptcp_pm_nl_create_listen_socket(). This is a pre-req patch for using mptcp_set_state() instead of inet_sk_state_store(). Signed-off-by: Geliang Tang --- net/mptcp/pm_netlink.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/net/mptcp/pm_netlink.c b/net/mptcp/pm_netlink.c index bf4d96f6f99a..0e6da322c8f2 100644 --- a/net/mptcp/pm_netlink.c +++ b/net/mptcp/pm_netlink.c @@ -1030,9 +1030,10 @@ static int mptcp_pm_nl_create_listen_socket(struct s= ock *sk, =20 lock_sock(newsk); ssk =3D __mptcp_nmpc_sk(mptcp_sk(newsk)); - release_sock(newsk); - if (IS_ERR(ssk)) + if (IS_ERR(ssk)) { + release_sock(newsk); return PTR_ERR(ssk); + } =20 mptcp_info2sockaddr(&entry->addr, &addr, entry->addr.family); #if IS_ENABLED(CONFIG_MPTCP_IPV6) @@ -1045,10 +1046,14 @@ static int mptcp_pm_nl_create_listen_socket(struct = sock *sk, else if (ssk->sk_family =3D=3D AF_INET6) err =3D inet6_bind_sk(ssk, (struct sockaddr *)&addr, addrlen); #endif - if (err) + if (err) { + release_sock(newsk); return err; + } =20 inet_sk_state_store(newsk, TCP_LISTEN); + release_sock(newsk); + lock_sock(ssk); err =3D __inet_listen_sk(ssk, backlog); if (!err) --=20 2.35.3 From nobody Thu May 16 09:07:13 2024 Received: from out-178.mta1.migadu.com (out-178.mta1.migadu.com [95.215.58.178]) (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 5576A107BA for ; Mon, 18 Dec 2023 08:48:42 +0000 (UTC) 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="rKHNwYbz" X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.dev; s=key1; t=1702889320; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=IiPfB3P9669iZvHnORoMvNrAlpin6RnCDND0Je89AA0=; b=rKHNwYbzPjspfG/g1gJPMRmdRfA9lq7PdxZlPEd+8vYvx5N9k5zm2ttJppYQ/bWNIvjBkU 5JxJ4jC0TGYci7EHcQus1AsYwpWZRPLv6ylc8KUuHovF+CJHU2JxWV19XBjdUgU/w2GsZ7 ifAJFZRCoMpNYO0iQtLbqOpjffvVJEQ= From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next 3/5] Squash to "mptcp: use mptcp_set_state" 2 Date: Mon, 18 Dec 2023 16:47:15 +0800 Message-Id: <390cb921a4255234d7ba4664a0cc8f15563b5896.1702889134.git.geliang.tang@linux.dev> In-Reply-To: References: Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Migadu-Flow: FLOW_OUT Content-Type: text/plain; charset="utf-8" Use mptcp_set_state() in mptcp_pm_nl_create_listen_socket(). Signed-off-by: Geliang Tang --- net/mptcp/pm_netlink.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/net/mptcp/pm_netlink.c b/net/mptcp/pm_netlink.c index 0e6da322c8f2..c84cc0908cfc 100644 --- a/net/mptcp/pm_netlink.c +++ b/net/mptcp/pm_netlink.c @@ -1051,7 +1051,7 @@ static int mptcp_pm_nl_create_listen_socket(struct so= ck *sk, return err; } =20 - inet_sk_state_store(newsk, TCP_LISTEN); + mptcp_set_state(newsk, TCP_LISTEN); release_sock(newsk); =20 lock_sock(ssk); --=20 2.35.3 From nobody Thu May 16 09:07:13 2024 Received: from out-183.mta1.migadu.com (out-183.mta1.migadu.com [95.215.58.183]) (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 54F55107B0 for ; Mon, 18 Dec 2023 08:48:43 +0000 (UTC) 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="Vrc/RILk" X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.dev; s=key1; t=1702889321; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=HfCadnlpoYMKEKsxgrATtJaTuCAKT5GAJ0xvAx1sqMo=; b=Vrc/RILkduLo0/nzV/75AvRruKAUFVHYwFCi0FltWDEGAtaskSVtrQikZBgTV6TwvN0y0H H4CPCzuLnqT3ykfC0N8upBa9CKuoR/VBoirb+aE/D9H7byJ1rHlRlvbQWEjfRIRd88867I z8pKx4vTLe8ZTNVbX2nbXuc+g95SwcM= From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next 4/5] Squash to "selftests: mptcp: check CURRESTAB counters" Date: Mon, 18 Dec 2023 16:47:16 +0800 Message-Id: <361f60bc545f2b190bbbb6fbfb05e13b1a73d7a8.1702889134.git.geliang.tang@linux.dev> In-Reply-To: References: Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Migadu-Flow: FLOW_OUT Content-Type: text/plain; charset="utf-8" Add a comment for check_cestab(), and use cestab_ns1/cestab_ns2 in it as Matt suggested. Please update the subject as: ''' selftests: mptcp: join: check CURRESTAB counters ''' Signed-off-by: Geliang Tang --- tools/testing/selftests/net/mptcp/mptcp_join.sh | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testin= g/selftests/net/mptcp/mptcp_join.sh index 3cd066e6e2b0..3a5b63026191 100755 --- a/tools/testing/selftests/net/mptcp/mptcp_join.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh @@ -995,13 +995,14 @@ chk_cestab_nr() fi } =20 +# $1 namespace 1, $2 namespace 2 check_cestab() { if [ -n "${cestab_ns1}" ]; then - chk_cestab_nr $1 1 + chk_cestab_nr ${1} ${cestab_ns1} fi if [ -n "${cestab_ns2}" ]; then - chk_cestab_nr $2 1 + chk_cestab_nr ${2} ${cestab_ns2} fi } =20 --=20 2.35.3 From nobody Thu May 16 09:07:13 2024 Received: from out-179.mta1.migadu.com (out-179.mta1.migadu.com [95.215.58.179]) (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 65007107BA for ; Mon, 18 Dec 2023 08:48:44 +0000 (UTC) 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="l3CzIGMP" X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.dev; s=key1; t=1702889322; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=/JI/9I57H0eOWgiEBhYSFYEzjGXiHYZyh+DjWzvywok=; b=l3CzIGMP8diMyCyvRpHH1E/No1itEkJfjLsfsLz/6Ccv3Iqz9ghC2X08Wg7AIc5ApEhWFL hk5l53Uf22SYEGZvi2qWUn8/9TYAPcoJhmWxHH3rAtG1JhVtNAhts92oNg+3JZIk0wakyM OpqkMSdLy4P4sv5d45R+UkGpiUk3jv4= From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next 5/5] selftests: mptcp: diag: check CURRESTAB counters Date: Mon, 18 Dec 2023 16:47:17 +0800 Message-Id: <573a8f55b47fb4aa35dfdfc49f1984ab7d232781.1702889134.git.geliang.tang@linux.dev> In-Reply-To: References: Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Migadu-Flow: FLOW_OUT Content-Type: text/plain; charset="utf-8" This patch adds a new helper chk_msk_cestab() to check the current established connections counter MIB_CURRESTAB in diag.sh. Invoke it to check the counter during the connection after every chk_msk_inuse(). --- Note: chk_msk_cestab() and chk_cestab_nr() will be replaced by mptcp_lib_chk_cestab_nr() in subsequent patches after the commit "selftests: mptcp: diag: print colored output" --- Signed-off-by: Geliang Tang --- tools/testing/selftests/net/mptcp/diag.sh | 30 +++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/tools/testing/selftests/net/mptcp/diag.sh b/tools/testing/self= tests/net/mptcp/diag.sh index 95b498efacd1..aa341f40363c 100755 --- a/tools/testing/selftests/net/mptcp/diag.sh +++ b/tools/testing/selftests/net/mptcp/diag.sh @@ -182,6 +182,30 @@ chk_msk_inuse() __chk_nr get_msk_inuse $expected "$msg" 0 } =20 +# $1: ns, $2: cestab nr +chk_msk_cestab() +{ + local ns=3D$1 + local cestab=3D$2 + local count + local msg=3D"....chk $2 cestab" + test_cnt=3D$((test_cnt+1)) + + printf "%-50s" "$msg" + + count=3D$(mptcp_lib_get_counter ${ns} "MPTcpExtMPCurrEstab") + if [ -z "$count" ]; then + echo "[ skip ]" + mptcp_lib_result_skip "${msg}" + elif [ "$count" !=3D "$cestab" ]; then + echo "[ fail ] got $count current establish[s] expected $cestab" + ret=3D${KSFT_FAIL} + else + echo "[ ok ]" + mptcp_lib_result_pass "$msg" + fi +} + wait_connected() { local listener_ns=3D"${1}" @@ -219,9 +243,11 @@ chk_msk_nr 2 "after MPC handshake " chk_msk_remote_key_nr 2 "....chk remote_key" chk_msk_fallback_nr 0 "....chk no fallback" chk_msk_inuse 2 "....chk 2 msk in use" +chk_msk_cestab $ns 2 flush_pids =20 chk_msk_inuse 0 "....chk 0 msk in use after flush" +chk_msk_cestab $ns 0 =20 echo "a" | \ timeout ${timeout_test} \ @@ -237,9 +263,11 @@ echo "b" | \ wait_connected $ns 10001 chk_msk_fallback_nr 1 "check fallback" chk_msk_inuse 1 "....chk 1 msk in use" +chk_msk_cestab $ns 1 flush_pids =20 chk_msk_inuse 0 "....chk 0 msk in use after flush" +chk_msk_cestab $ns 0 =20 NR_CLIENTS=3D100 for I in `seq 1 $NR_CLIENTS`; do @@ -261,9 +289,11 @@ done =20 wait_msk_nr $((NR_CLIENTS*2)) "many msk socket present" chk_msk_inuse $((NR_CLIENTS*2)) "....chk many msk in use" +chk_msk_cestab $ns 200 flush_pids =20 chk_msk_inuse 0 "....chk 0 msk in use after flush" +chk_msk_cestab $ns 0 =20 mptcp_lib_result_print_all_tap exit $ret --=20 2.35.3