From nobody Thu May 16 00:21:47 2024 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 45BB37F6 for ; Sun, 17 Mar 2024 00:58:57 +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=1710637138; cv=none; b=PPu+mS6V5ESAKGaWpHdwCAcUz+/YU/Pm89JAjQHc8tyAZsFfUxU6L2PYwQmkqnHAukXKSHWXBPQuEqE3NJ9yteJMK9SVB6dcouSf8johk9sT+wuSuOpqK3U4nGhx2A5r2btv5nniq2xDDKaS/C7iJDwmMaYst+zX/WnzMnd2W/o= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1710637138; c=relaxed/simple; bh=PKBKQyhuH/F5Bm6d+p3QrjZ9gl+xPCz19GrO2xvRaX4=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=hRlQ6iN6+qivBWkdwt4n+1ePwMNbCdAyTjfygh+r5d19zKmhK3RWiuJiKLYg7mrCVg0YDdyxEoS+EU8Yll6L+iIgEfbHWSkO5wK8N08j9Rf+1j+vIIRIEt6JU34yXSNMzuRwRSHJVYZFyZJxJ5OScPoOV6+gPuUKoad0BPvUQZg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=q8FIYwqu; 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="q8FIYwqu" Received: by smtp.kernel.org (Postfix) with ESMTPSA id E4FB3C43390; Sun, 17 Mar 2024 00:58:56 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1710637137; bh=PKBKQyhuH/F5Bm6d+p3QrjZ9gl+xPCz19GrO2xvRaX4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=q8FIYwquEaCQx5Os/1hicKS0sSn0N6JCm9qffUH9T1OJObTKslFqDe5ppl/3grOqg CfqWm2P96aPWUMKEcLVY9UcVYXA55NkaXLUmU1cG/mIYbf2uih0oXSIo2NUPW1Jgjn RxxgxkeunTdAuDsfs1opR/SSzf2Yij3Kyr3v/U++JYWnqPRBT4z7F8Q97GMUAVK3uR ugaQiHmRlhd4qPn9V1YOcosNclHJ9JAAHy7dJm+KNuxDxQEpBsEpHqbQL7t5LWl1zx pOk9sfEDF53Dor+IRPaU4WJ/bCIEow79Z1DmFEv15ctls+7Wolj3WrNcUuIV1oDscj 5u7FiFXQu+4wA== From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-net v3 01/12] selftests: mptcp: join: fix dev in check_endpoint Date: Sun, 17 Mar 2024 08:58:00 +0800 Message-Id: <90aec2d19e5bc959eedbd8fe515bd6f3d81f7cb0.1710636726.git.tanggeliang@kylinos.cn> X-Mailer: git-send-email 2.40.1 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 Content-Type: text/plain; charset="utf-8" From: Geliang Tang There's a bug in pm_nl_check_endpoint(), 'dev' didn't be parsed correctly. If calling it in the 2nd test of endpoint_tests() too, it fails with an error like this: creation [FAIL] expected '10.0.2.2 id 2 subflow dev dev' \ found '10.0.2.2 id 2 subflow dev ns2eth2' The reason is '$2' should be set to 'dev', not '$1'. This patch fixes it. Fixes: 69c6ce7b6eca ("selftests: mptcp: add implicit endpoint test case") Signed-off-by: Geliang Tang Reviewed-by: Matthieu Baerts (NGI0) --- tools/testing/selftests/net/mptcp/mptcp_join.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testin= g/selftests/net/mptcp/mptcp_join.sh index 70621cbbab09..73a2131e6da2 100755 --- a/tools/testing/selftests/net/mptcp/mptcp_join.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh @@ -729,7 +729,7 @@ pm_nl_check_endpoint() [ -n "$_flags" ]; flags=3D"flags $_flags" shift elif [ $1 =3D "dev" ]; then - [ -n "$2" ]; dev=3D"dev $1" + [ -n "$2" ]; dev=3D"dev $2" shift elif [ $1 =3D "id" ]; then _id=3D$2 @@ -3610,6 +3610,8 @@ endpoint_tests() local tests_pid=3D$! =20 wait_mpj $ns2 + pm_nl_check_endpoint "creation" \ + $ns2 10.0.2.2 id 2 flags subflow dev ns2eth2 chk_subflow_nr "before delete" 2 chk_mptcp_info subflows 1 subflows 1 =20 --=20 2.40.1 From nobody Thu May 16 00:21:47 2024 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 3191F139B for ; Sun, 17 Mar 2024 00:58:59 +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=1710637139; cv=none; b=aR+PLznI0iM/CKK5sPyqDjRVsVXUNjLHB5E3OA6AFpjLZQpsX34AD5Yh0DjJrn+v0VAQ0yhuRi85Z3i3jbV1DitcNb0VoJZAB0Pws9b/q+qmBHM8YikQyhs4VnwA6/IQyJvjSw3otU4t5pSHa777+lHK/pi8EeRF0CQoZm6Ivf8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1710637139; c=relaxed/simple; bh=vvafilXpSFxGpxTvsWaNvSRKn+0JFURQP1lsZgcAfds=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=pMzcRxoMmvG9jEIbBOgtRVFoeNCt+ANS2nqPi5L2evDhDI6cCHu9b8L1LXfOw5NCF40bpxUCo2wq91yeUhhaZTi33IzFeU30QLcRwQBePOSlfOpaCZ+A/Gi11h0CeRxVdwNQNZ8g58ouNsawLuI4b7VKg3ZSaL27rksWxObAPdI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=nxHHGcEA; 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="nxHHGcEA" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 4152DC43394; Sun, 17 Mar 2024 00:58:58 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1710637139; bh=vvafilXpSFxGpxTvsWaNvSRKn+0JFURQP1lsZgcAfds=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=nxHHGcEAurX1KA40cZd3Pdz1fHKtaaV6/WiTjAjLuBQW1imN7GgOa21PpyM5Eild+ nz5v2ialuFHCyQeBWKQZKDD0hTasWahU+VsdAvjfCfaQulPZxpQ9rTno7QJSkvahnS udDBtdgQIIPMRprQQ9T/ryOL1TcBnhp/tQAf8vxUKJggLyB4993T7SaQDPdi227w1g f5PWGzh8UtItshXQI+Jerq0eciypuvqgloXYezaZ21YR38v/2F3LkW+RDwi5TNiLs/ DeRXFaMnWBn3Mdpr/OMYp4HuXVJn+KOczT7g4epkEcnubvlSsCgSOfJTY2VkuigHVm /CRS99/J0bYqw== From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next v3 02/12] selftests: mptcp: export ip_mptcp to mptcp_lib Date: Sun, 17 Mar 2024 08:58:01 +0800 Message-Id: <62ed87e5e22bec5e5bb9775428e67a91e0f34662.1710636726.git.tanggeliang@kylinos.cn> X-Mailer: git-send-email 2.40.1 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 Content-Type: text/plain; charset="utf-8" From: Geliang Tang This patch exports ip_mptcp into mptcp_lib.sh as a public variable, named MPTCP_LIB_IP_MPTCP. Add a helper mptcp_lib_set_ip_mptcp() to set it, and a helper mptcp_lib_is_ip_mptcp() to test whether it is set. Use these two helpers in mptcp_join.sh. This patch is prepared for coming commits. Signed-off-by: Geliang Tang --- tools/testing/selftests/net/mptcp/mptcp_join.sh | 17 ++++++++--------- tools/testing/selftests/net/mptcp/mptcp_lib.sh | 9 +++++++++ 2 files changed, 17 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 73a2131e6da2..62fcfeaa3430 100755 --- a/tools/testing/selftests/net/mptcp/mptcp_join.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh @@ -31,7 +31,6 @@ timeout_poll=3D30 timeout_test=3D$((timeout_poll * 2 + 1)) capture=3Dfalse checksum=3Dfalse -ip_mptcp=3D0 check_invert=3D0 validate_checksum=3Dfalse init=3D0 @@ -610,7 +609,7 @@ pm_nl_set_limits() local addrs=3D$2 local subflows=3D$3 =20 - if [ $ip_mptcp -eq 1 ]; then + if mptcp_lib_is_ip_mptcp; then ip -n $ns mptcp limits set add_addr_accepted $addrs subflows $subflows else ip netns exec $ns ./pm_nl_ctl limits $addrs $subflows @@ -650,7 +649,7 @@ pm_nl_add_endpoint() nr=3D$((nr + 1)) done =20 - if [ $ip_mptcp -eq 1 ]; then + if mptcp_lib_is_ip_mptcp; then ip -n $ns mptcp endpoint add $addr ${_flags//","/" "} $dev $id $port else ip netns exec $ns ./pm_nl_ctl add $addr $flags $dev $id $port @@ -663,7 +662,7 @@ pm_nl_del_endpoint() local id=3D$2 local addr=3D$3 =20 - if [ $ip_mptcp -eq 1 ]; then + if mptcp_lib_is_ip_mptcp; then [ $id -ne 0 ] && addr=3D'' ip -n $ns mptcp endpoint delete id $id $addr else @@ -675,7 +674,7 @@ pm_nl_flush_endpoint() { local ns=3D$1 =20 - if [ $ip_mptcp -eq 1 ]; then + if mptcp_lib_is_ip_mptcp; then ip -n $ns mptcp endpoint flush else ip netns exec $ns ./pm_nl_ctl flush @@ -686,7 +685,7 @@ pm_nl_show_endpoints() { local ns=3D$1 =20 - if [ $ip_mptcp -eq 1 ]; then + if mptcp_lib_is_ip_mptcp; then ip -n $ns mptcp endpoint show else ip netns exec $ns ./pm_nl_ctl dump @@ -699,7 +698,7 @@ pm_nl_change_endpoint() local id=3D$2 local flags=3D$3 =20 - if [ $ip_mptcp -eq 1 ]; then + if mptcp_lib_is_ip_mptcp; then ip -n $ns mptcp endpoint change id $id ${flags//","/" "} else ip netns exec $ns ./pm_nl_ctl set id $id flags $flags @@ -749,7 +748,7 @@ pm_nl_check_endpoint() return fi =20 - if [ $ip_mptcp -eq 1 ]; then + if mptcp_lib_is_ip_mptcp; then # get line and trim trailing whitespace line=3D$(ip -n $ns mptcp endpoint show $id) line=3D"${line% }" @@ -3702,7 +3701,7 @@ while getopts "${all_tests_args}cCih" opt; do checksum=3Dtrue ;; i) - ip_mptcp=3D1 + mptcp_lib_set_ip_mptcp ;; h) usage diff --git a/tools/testing/selftests/net/mptcp/mptcp_lib.sh b/tools/testing= /selftests/net/mptcp/mptcp_lib.sh index 1fa05405f65e..ca01d949fad8 100644 --- a/tools/testing/selftests/net/mptcp/mptcp_lib.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_lib.sh @@ -23,6 +23,7 @@ MPTCP_LIB_SUBTESTS=3D() MPTCP_LIB_SUBTESTS_DUPLICATED=3D0 MPTCP_LIB_TEST_COUNTER=3D0 MPTCP_LIB_TEST_FORMAT=3D"%02u %-50s" +MPTCP_LIB_IP_MPTCP=3D0 =20 # only if supported (or forced) and not disabled, see no-color.org if { [ -t 1 ] || [ "${SELFTESTS_MPTCP_LIB_COLOR_FORCE:-}" =3D "1" ]; } && @@ -511,3 +512,11 @@ mptcp_lib_verify_listener_events() { mptcp_lib_check_expected "type" "family" "saddr" "sport" || rc=3D"${?}" return "${rc}" } + +mptcp_lib_set_ip_mptcp() { + MPTCP_LIB_IP_MPTCP=3D1 +} + +mptcp_lib_is_ip_mptcp() { + [ "${MPTCP_LIB_IP_MPTCP}" =3D "1" ] +} --=20 2.40.1 From nobody Thu May 16 00:21:47 2024 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 D98F2139B for ; Sun, 17 Mar 2024 00:59:00 +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=1710637140; cv=none; b=mrG7sUtrsKLoVrG/nI8CoG67ing36GZcjpfGnTVoua9paZHwSJqZNJ8rNnxtzy2H1n6K/cRhTtVfSLEXrzBXV8WvEsBlYLGlaMyaDT/AygoOinrEG97SXF+3GNd9d7b9awn80QisnO5vrGnVHDr9/8P4v5qQ2HMyUwbWdvaf1Lg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1710637140; c=relaxed/simple; bh=HSrhdxluEY7sRvtdGo8QklFew/k/IlLrdmPfYDgAy/o=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=BaEAbVAB7mW/10Grw6ZI2yY/eyNyE5NnAB6vVPqwO7vvleQmImMli46NIIlS4Ja3FoDupPPlfZ+pk7Z/rR/a1TuAM8PfTuqHRGnnzmL/KwS90ajmD+9XaevAv8L8nNOetJ8rmu8KQSOrZiAcvvdc3ErscTvkg+WkKSI+cHg/oWY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=WnFRRB+o; 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="WnFRRB+o" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 92359C433C7; Sun, 17 Mar 2024 00:58:59 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1710637140; bh=HSrhdxluEY7sRvtdGo8QklFew/k/IlLrdmPfYDgAy/o=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=WnFRRB+oj3ZJac545uKT+ZDqrfvNoFZ+c3aRrsq3aLt5BZmwva5TlEvLs6kEi+bP8 F4xuIyICM1Cktbf3yvjUIYM70Mt5r2LSpArDPNoffZCHYh5oRlbQrtNgr2muYB9+YD hHLf53LB/mnh5+lx/gXKf0DzTFRD3l+cOTDE01/0d+Uf9WdW675yW9zz7polkqkJPD Cx/vjsgeN1PPGE47Y2K7mVnigEHBB4QBTfSYMTIQS5m38QEzPIO6ZULNeO6hCJ8uKR NwwMb77i+mgnGoe7aUHP2GcJ8FFecF+pWnOAAz2ofvZuUmBUfmRhA5qLRi+CPX92yH AuvM6jqsidf+g== From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next v3 03/12] selftests: mptcp: format limits outputs Date: Sun, 17 Mar 2024 08:58:02 +0800 Message-Id: X-Mailer: git-send-email 2.40.1 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 Content-Type: text/plain; charset="utf-8" From: Geliang Tang The output format of 'ip mptcp limits' command is much different from that of 'pm_nl_ctl limits' command. This patch adds format_limits() helper to format the outputs of these two commands to hide the difference. Signed-off-by: Geliang Tang --- tools/testing/selftests/net/mptcp/mptcp_lib.sh | 12 ++++++++++++ tools/testing/selftests/net/mptcp/pm_netlink.sh | 8 ++++---- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/tools/testing/selftests/net/mptcp/mptcp_lib.sh b/tools/testing= /selftests/net/mptcp/mptcp_lib.sh index ca01d949fad8..c402cc994902 100644 --- a/tools/testing/selftests/net/mptcp/mptcp_lib.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_lib.sh @@ -520,3 +520,15 @@ mptcp_lib_set_ip_mptcp() { mptcp_lib_is_ip_mptcp() { [ "${MPTCP_LIB_IP_MPTCP}" =3D "1" ] } + +mptcp_lib_format_limits() { + local accept=3D"${1}" + local subflows=3D"${2}" + + if mptcp_lib_is_ip_mptcp; then + # with a space at the end + printf "add_addr_accepted %d subflows %d \n" "${accept}" "${subflows}" + else + printf "accept %d\nsubflows %d\n" "${accept}" "${subflows}" + fi +} diff --git a/tools/testing/selftests/net/mptcp/pm_netlink.sh b/tools/testin= g/selftests/net/mptcp/pm_netlink.sh index 6ab8c5d36340..02c92edca8bb 100755 --- a/tools/testing/selftests/net/mptcp/pm_netlink.sh +++ b/tools/testing/selftests/net/mptcp/pm_netlink.sh @@ -71,8 +71,8 @@ check "ip netns exec $ns1 ./pm_nl_ctl dump" "" "defaults = addr list" =20 default_limits=3D"$(ip netns exec $ns1 ./pm_nl_ctl limits)" if mptcp_lib_expect_all_features; then - check "ip netns exec $ns1 ./pm_nl_ctl limits" "accept 0 -subflows 2" "defaults limits" + check "ip netns exec $ns1 ./pm_nl_ctl limits" \ + "$(mptcp_lib_format_limits 0 2)" "defaults limits" fi =20 ip netns exec $ns1 ./pm_nl_ctl add 10.0.1.1 @@ -126,8 +126,8 @@ ip netns exec $ns1 ./pm_nl_ctl limits 1 9 2>/dev/null check "ip netns exec $ns1 ./pm_nl_ctl limits" "$default_limits" "subflows = above hard limit" =20 ip netns exec $ns1 ./pm_nl_ctl limits 8 8 -check "ip netns exec $ns1 ./pm_nl_ctl limits" "accept 8 -subflows 8" "set limits" +check "ip netns exec $ns1 ./pm_nl_ctl limits" \ + "$(mptcp_lib_format_limits 8 8)" "set limits" =20 ip netns exec $ns1 ./pm_nl_ctl flush ip netns exec $ns1 ./pm_nl_ctl add 10.0.1.1 --=20 2.40.1 From nobody Thu May 16 00:21:47 2024 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 198B5ED9 for ; Sun, 17 Mar 2024 00:59:01 +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=1710637142; cv=none; b=WPBdGUqH7BDxbIuabnqT8ocHXWlBRJEqvzzgENQRj0bDQ1JUmfrOvRJRoiS7AATDyA1Ok9x0VaTE5u2gp0wkYwKJohIzV6Rm0PYx7VoWZOUteUndhUjtQD5AA6uizbixgtjQK5fjD+cEZ8wNuq0WO3Nie9V9LYyudVEH5DVlQfY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1710637142; c=relaxed/simple; bh=E82TAoXkFdOr7xgu7hdQz+jS4hTJv7AH6iljIQcAkHk=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=jee4wBm0zX6by9yN5zRwsNtljBRcg0fU5TwGvT0XO/UUoirm+/s5QfiT/E/wz6Wln+grwHlNQ3/ED6VyaAT7v+9mnwV89+Dt+sEpxgYs4nQKx02v23aXSV+R6Bt7vVFK0UaAFJ8dVth0NyMQqVYoAX85HFfAtZac6zcEZh7L8i0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=V9k7pb7+; 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="V9k7pb7+" Received: by smtp.kernel.org (Postfix) with ESMTPSA id E33F4C43390; Sun, 17 Mar 2024 00:59:00 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1710637141; bh=E82TAoXkFdOr7xgu7hdQz+jS4hTJv7AH6iljIQcAkHk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=V9k7pb7+8M6nMnPNTafoz61stlvQr+KXFzr6VIu0A7PXjOt00BKgRW0Rsrc0mNRAP uwYmBOFIiTosyalU+soYb9aY1Jz9RqDo4OSaZ+mjTTenQN0G+eEVwOg4Zl59utuGcv YIElnYmTEo/sU/nfuPjvjrpBsB0zDHykiMyWacrJsxVH96jsObZ9StcLRDokZm3LCz gNGgjEmkoH7WLOuPLiLTHI24ANcRik1vz70dCLcHBZxPD5+S/TUQ8RtM6l+QupX5Qm mKy9/xocEVL/yJXvRiMsCa2nEXxEqpdeR9GJuXiNROBZzKPqsicNgJt1iXHO9USoM3 /FsMBkuLYVGdg== From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next v3 04/12] selftests: mptcp: add get_limits helper Date: Sun, 17 Mar 2024 08:58:03 +0800 Message-Id: X-Mailer: git-send-email 2.40.1 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 Content-Type: text/plain; charset="utf-8" From: Geliang Tang Just like set_limits() helper, this patch adds another one get_limits() to show the limits. Usage: Set limits - set_limits $ns $addrs $subflows Get limits - get_limits $ns Use this new helper in pm_netlink.sh to replace all 'pm_nl_ctl limits' commands. Signed-off-by: Geliang Tang --- tools/testing/selftests/net/mptcp/mptcp_lib.sh | 10 ++++++++++ tools/testing/selftests/net/mptcp/pm_netlink.sh | 10 +++++----- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/tools/testing/selftests/net/mptcp/mptcp_lib.sh b/tools/testing= /selftests/net/mptcp/mptcp_lib.sh index c402cc994902..813d6406ccc3 100644 --- a/tools/testing/selftests/net/mptcp/mptcp_lib.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_lib.sh @@ -532,3 +532,13 @@ mptcp_lib_format_limits() { printf "accept %d\nsubflows %d\n" "${accept}" "${subflows}" fi } + +mptcp_lib_pm_nl_get_limits() { + local ns=3D${1} + + if mptcp_lib_is_ip_mptcp; then + ip -n "${ns}" mptcp limits + else + ip netns exec "${ns}" ./pm_nl_ctl limits + fi +} diff --git a/tools/testing/selftests/net/mptcp/pm_netlink.sh b/tools/testin= g/selftests/net/mptcp/pm_netlink.sh index 02c92edca8bb..87ea4973235d 100755 --- a/tools/testing/selftests/net/mptcp/pm_netlink.sh +++ b/tools/testing/selftests/net/mptcp/pm_netlink.sh @@ -69,9 +69,9 @@ check() =20 check "ip netns exec $ns1 ./pm_nl_ctl dump" "" "defaults addr list" =20 -default_limits=3D"$(ip netns exec $ns1 ./pm_nl_ctl limits)" +default_limits=3D"$(mptcp_lib_pm_nl_get_limits "${ns1}")" if mptcp_lib_expect_all_features; then - check "ip netns exec $ns1 ./pm_nl_ctl limits" \ + check "mptcp_lib_pm_nl_get_limits ${ns1}" \ "$(mptcp_lib_format_limits 0 2)" "defaults limits" fi =20 @@ -120,13 +120,13 @@ ip netns exec $ns1 ./pm_nl_ctl flush check "ip netns exec $ns1 ./pm_nl_ctl dump" "" "flush addrs" =20 ip netns exec $ns1 ./pm_nl_ctl limits 9 1 2>/dev/null -check "ip netns exec $ns1 ./pm_nl_ctl limits" "$default_limits" "rcv addrs= above hard limit" +check "mptcp_lib_pm_nl_get_limits ${ns1}" "${default_limits}" "rcv addrs a= bove hard limit" =20 ip netns exec $ns1 ./pm_nl_ctl limits 1 9 2>/dev/null -check "ip netns exec $ns1 ./pm_nl_ctl limits" "$default_limits" "subflows = above hard limit" +check "mptcp_lib_pm_nl_get_limits ${ns1}" "${default_limits}" "subflows ab= ove hard limit" =20 ip netns exec $ns1 ./pm_nl_ctl limits 8 8 -check "ip netns exec $ns1 ./pm_nl_ctl limits" \ +check "mptcp_lib_pm_nl_get_limits ${ns1}" \ "$(mptcp_lib_format_limits 8 8)" "set limits" =20 ip netns exec $ns1 ./pm_nl_ctl flush --=20 2.40.1 From nobody Thu May 16 00:21:47 2024 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 2B315139E for ; Sun, 17 Mar 2024 00:59:03 +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=1710637143; cv=none; b=EnN2bsx+hOhVbdjfhAj5ovSWG47Z8T6mL4tdavQWBb4PuVMhn6rrK0JMyZNt5rtupBb8bBwr8fn2G5PU9pg9UqpJMKs7HvuAhhM6rrdzJow8a5NoGVmgiR7LRILTHq3xujm+AO/RQyn/+QokzCyLkkTJANGdi0mfn36dXxv2zrs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1710637143; c=relaxed/simple; bh=iFgnp1jPmeKG7D76JnoezOzO5R+1YMfbNNbMwDEJWrw=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=p5GT65B2p7YdL7a/oJ+QCyguUA7ZpcDMCJoJom0+MJHZmNda8Qe22DpdeKh0X9waBditlnD7CnRGho8uGIwA5qx+vpDatXgfmhpYPXt/gisvUdh5H4XDIqdYdFcp+KCVcnM7Hh0HTW+OJFdJGb0NFL3IJRgXDZC+QUBYC1hYZys= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=ZvkKgViT; 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="ZvkKgViT" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 3FD64C433F1; Sun, 17 Mar 2024 00:59:02 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1710637143; bh=iFgnp1jPmeKG7D76JnoezOzO5R+1YMfbNNbMwDEJWrw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ZvkKgViTLEnQ4OS2VP9+e/5HZ4sXpOo5QD6cTUWwBv4J+x+MZIqOigPWkeYEClIlR YddKCs+npdpS2iNDQQi0sI94MJuRtWI5oa6j3OtnHaYoI1+FEU1Hoy00h61W9nVFKm reHGarBrYopU00+gFJy31SBoLKJ7Gk6XErQL9WjMMhqZRY9G/lUwdXChpFh3C+L+x4 cOzSXCw4ZecRjBIaxRB8RfXxZrXOF9FN6aeMIpWw1fPWI0QcQ7BoI02MOsUlyxeuBX 9n1zhq//9tFnNV8/7Dd4jL6sFPynQR0FAgfVvSX+oAJRABKmOb4OJejqUt20+HzQJg tJQyLgOSYW2ug== From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next v3 05/12] selftests: mptcp: export set_limits helper Date: Sun, 17 Mar 2024 08:58:04 +0800 Message-Id: <766f66639975d46d12acc30bd672c8b34df3529b.1710636726.git.tanggeliang@kylinos.cn> X-Mailer: git-send-email 2.40.1 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 Content-Type: text/plain; charset="utf-8" From: Geliang Tang This patch exports pm_nl_set_limits() helper into mptcp_lib.sh as a public function named mptcp_lib_pm_nl_set_limits(). Then pm_nl_set_limits() in mptcp_join.sh can be a wrapper of the public one. Use this newly added helper to replace all 'pm_nl_ctl limits' commands in scripts mptcp_sockopt.sh, pm_netlink.sh and simult_flows.sh. Signed-off-by: Geliang Tang --- tools/testing/selftests/net/mptcp/mptcp_join.sh | 10 +--------- tools/testing/selftests/net/mptcp/mptcp_lib.sh | 12 ++++++++++++ tools/testing/selftests/net/mptcp/mptcp_sockopt.sh | 4 ++-- tools/testing/selftests/net/mptcp/pm_netlink.sh | 6 +++--- tools/testing/selftests/net/mptcp/simult_flows.sh | 4 ++-- 5 files changed, 20 insertions(+), 16 deletions(-) diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testin= g/selftests/net/mptcp/mptcp_join.sh index 62fcfeaa3430..0bdb631a9ddc 100755 --- a/tools/testing/selftests/net/mptcp/mptcp_join.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh @@ -605,15 +605,7 @@ kill_events_pids() =20 pm_nl_set_limits() { - local ns=3D$1 - local addrs=3D$2 - local subflows=3D$3 - - if mptcp_lib_is_ip_mptcp; then - ip -n $ns mptcp limits set add_addr_accepted $addrs subflows $subflows - else - ip netns exec $ns ./pm_nl_ctl limits $addrs $subflows - fi + mptcp_lib_pm_nl_set_limits "${@}" } =20 pm_nl_add_endpoint() diff --git a/tools/testing/selftests/net/mptcp/mptcp_lib.sh b/tools/testing= /selftests/net/mptcp/mptcp_lib.sh index 813d6406ccc3..d16b82f7e35a 100644 --- a/tools/testing/selftests/net/mptcp/mptcp_lib.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_lib.sh @@ -542,3 +542,15 @@ mptcp_lib_pm_nl_get_limits() { ip netns exec "${ns}" ./pm_nl_ctl limits fi } + +mptcp_lib_pm_nl_set_limits() { + local ns=3D${1} + local addrs=3D${2} + local subflows=3D${3} + + if mptcp_lib_is_ip_mptcp; then + ip -n "${ns}" mptcp limits set add_addr_accepted "${addrs}" subflows "${= subflows}" + else + ip netns exec "${ns}" ./pm_nl_ctl limits "${addrs}" "${subflows}" + fi +} diff --git a/tools/testing/selftests/net/mptcp/mptcp_sockopt.sh b/tools/tes= ting/selftests/net/mptcp/mptcp_sockopt.sh index e2d70c18786e..6f39a5d6d02e 100755 --- a/tools/testing/selftests/net/mptcp/mptcp_sockopt.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_sockopt.sh @@ -65,8 +65,8 @@ init() ip netns exec $ns2 ./pm_nl_ctl add dead:beef:$i::2 flags signal done =20 - ip netns exec $ns1 ./pm_nl_ctl limits 8 8 - ip netns exec $ns2 ./pm_nl_ctl limits 8 8 + mptcp_lib_pm_nl_set_limits "${ns1}" 8 8 + mptcp_lib_pm_nl_set_limits "${ns2}" 8 8 =20 add_mark_rules $ns1 1 add_mark_rules $ns2 2 diff --git a/tools/testing/selftests/net/mptcp/pm_netlink.sh b/tools/testin= g/selftests/net/mptcp/pm_netlink.sh index 87ea4973235d..d369096d0df8 100755 --- a/tools/testing/selftests/net/mptcp/pm_netlink.sh +++ b/tools/testing/selftests/net/mptcp/pm_netlink.sh @@ -119,13 +119,13 @@ id 8 flags signal 10.0.1.8" "id limit" ip netns exec $ns1 ./pm_nl_ctl flush check "ip netns exec $ns1 ./pm_nl_ctl dump" "" "flush addrs" =20 -ip netns exec $ns1 ./pm_nl_ctl limits 9 1 2>/dev/null +mptcp_lib_pm_nl_set_limits "${ns1}" 9 1 2>/dev/null check "mptcp_lib_pm_nl_get_limits ${ns1}" "${default_limits}" "rcv addrs a= bove hard limit" =20 -ip netns exec $ns1 ./pm_nl_ctl limits 1 9 2>/dev/null +mptcp_lib_pm_nl_set_limits "${ns1}" 1 9 2>/dev/null check "mptcp_lib_pm_nl_get_limits ${ns1}" "${default_limits}" "subflows ab= ove hard limit" =20 -ip netns exec $ns1 ./pm_nl_ctl limits 8 8 +mptcp_lib_pm_nl_set_limits "${ns1}" 8 8 check "mptcp_lib_pm_nl_get_limits ${ns1}" \ "$(mptcp_lib_format_limits 8 8)" "set limits" =20 diff --git a/tools/testing/selftests/net/mptcp/simult_flows.sh b/tools/test= ing/selftests/net/mptcp/simult_flows.sh index e129fcb5a598..b8414cff9b4b 100755 --- a/tools/testing/selftests/net/mptcp/simult_flows.sh +++ b/tools/testing/selftests/net/mptcp/simult_flows.sh @@ -85,7 +85,7 @@ setup() ip -net "$ns1" route add default via 10.0.2.2 metric 101 ip -net "$ns1" route add default via dead:beef:2::2 metric 101 =20 - ip netns exec "$ns1" ./pm_nl_ctl limits 1 1 + mptcp_lib_pm_nl_set_limits "${ns1}" 1 1 ip netns exec "$ns1" ./pm_nl_ctl add 10.0.2.1 dev ns1eth2 flags subflow =20 ip -net "$ns2" addr add 10.0.1.2/24 dev ns2eth1 @@ -108,7 +108,7 @@ setup() ip -net "$ns3" route add default via 10.0.3.2 ip -net "$ns3" route add default via dead:beef:3::2 =20 - ip netns exec "$ns3" ./pm_nl_ctl limits 1 1 + mptcp_lib_pm_nl_set_limits "${ns3}" 1 1 =20 # debug build can slow down measurably the test program # we use quite tight time limit on the run-time, to ensure --=20 2.40.1 From nobody Thu May 16 00:21:47 2024 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 DCA557F6 for ; Sun, 17 Mar 2024 00:59:04 +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=1710637144; cv=none; b=MxrFezeZNMOCN2Pk3sUxW83c8dhkDBMYxA6KxUvZ1iMJqoVgQCVOdsoajqAqlXOOr0Hl1vWzRzqAi4yl6X5p5MJ663z6khrM0f2QWahv+9PkVJgBBUUWMKCRZq1xQRI0TgruI4jHN0Tk+fWnApWgr61rRomAXQB4gT9cev73SNI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1710637144; c=relaxed/simple; bh=VvKPKtECl3rTDnuWOSkzWnzl+UPnUwR5+vcG6ppvdKY=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=KDBSFtKiq7i+su0e23/yqqArtXT3MLlovvYssiOJ4+3J/ITeerLZVYRPqhUM403CkoBlagJsq8JqA1x9E4YMbVQVpxAtfU0a71eFp0ldhFAD4bXuInE6jIcZ7ykbTPv1HSHXaCHWX1LGkWXx29wocWniPBnZcJ5it/vDER/dFzk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=MT4Mjr+Z; 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="MT4Mjr+Z" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 8F61AC433C7; Sun, 17 Mar 2024 00:59:03 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1710637144; bh=VvKPKtECl3rTDnuWOSkzWnzl+UPnUwR5+vcG6ppvdKY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=MT4Mjr+ZpahjH+uf3hQsYTk7zo9kESBOtWd+s3pJYe0zQd/bzcgDWHI1cLW0XRwe2 S3ncfswNEXzYuAlY2vGlmvLTfC0a+4xwOQhI1ThB3xLnqgb77RasELLEylwrjfvr4j 7dgbgtCdQdRYo6l35mCAY8fj6kweFq/cLt78TtQQ89iktalyfb2tmeE4LzS2qYUHkl bLHBl3FIUTLEVUeWCfeHO066Z3L0Uvd0zOPu8Ju2Qbc+8skuWwao4koH+/uojsgbsM THEui71ZO1x9e2x1YMjehv8ppH1plFdftOUatBm0UE9+y0IbC5JNLMNaqdiOZix8GX B/dStMh8fyjfg== From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next v3 06/12] selftests: mptcp: format endpoints outputs Date: Sun, 17 Mar 2024 08:58:05 +0800 Message-Id: X-Mailer: git-send-email 2.40.1 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 Content-Type: text/plain; charset="utf-8" From: Geliang Tang The output formats of 'ip mptcp' commands are much different from that of 'pm_nl_ctl' commands. This patch adds a new helper format_endpoints() to format the outputs of 'ip mptcp' and 'pm_nl_ctl' with 'endpoints' arguments to hide these differences. This is useful for exporting endpoint ops into mptcp_lib.sh Signed-off-by: Geliang Tang --- .../testing/selftests/net/mptcp/mptcp_join.sh | 22 +---- .../testing/selftests/net/mptcp/mptcp_lib.sh | 23 +++++ .../testing/selftests/net/mptcp/pm_netlink.sh | 98 +++++++++++-------- 3 files changed, 83 insertions(+), 60 deletions(-) diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testin= g/selftests/net/mptcp/mptcp_join.sh index 0bdb631a9ddc..3d0051b57ecd 100755 --- a/tools/testing/selftests/net/mptcp/mptcp_join.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh @@ -704,9 +704,7 @@ pm_nl_check_endpoint() local ns=3D$2 local addr=3D$3 local _flags=3D"" - local flags local _port - local port local dev local _id local id @@ -717,10 +715,9 @@ pm_nl_check_endpoint() while [ -n "$1" ]; do if [ $1 =3D "flags" ]; then _flags=3D$2 - [ -n "$_flags" ]; flags=3D"flags $_flags" shift elif [ $1 =3D "dev" ]; then - [ -n "$2" ]; dev=3D"dev $2" + [ -n "$2" ]; dev=3D"$2" shift elif [ $1 =3D "id" ]; then _id=3D$2 @@ -728,7 +725,6 @@ pm_nl_check_endpoint() shift elif [ $1 =3D "port" ]; then _port=3D$2 - [ -n "$_port" ]; port=3D" port $_port" shift fi =20 @@ -741,24 +737,12 @@ pm_nl_check_endpoint() fi =20 if mptcp_lib_is_ip_mptcp; then - # get line and trim trailing whitespace line=3D$(ip -n $ns mptcp endpoint show $id) - line=3D"${line% }" - # the dump order is: address id flags port dev - [ -n "$addr" ] && expected_line=3D"$addr" - expected_line+=3D" $id" - [ -n "$_flags" ] && expected_line+=3D" ${_flags//","/" "}" - [ -n "$dev" ] && expected_line+=3D" $dev" - [ -n "$port" ] && expected_line+=3D" $port" else line=3D$(ip netns exec $ns ./pm_nl_ctl get $_id) - # the dump order is: id flags dev address port - expected_line=3D"$id" - [ -n "$flags" ] && expected_line+=3D" $flags" - [ -n "$dev" ] && expected_line+=3D" $dev" - [ -n "$addr" ] && expected_line+=3D" $addr" - [ -n "$_port" ] && expected_line+=3D" $_port" fi + expected_line=3D$(mptcp_lib_format_endpoints \ + "${_id},${addr},${_flags//","/" "},${dev},${_port}") if [ "$line" =3D "$expected_line" ]; then print_ok else diff --git a/tools/testing/selftests/net/mptcp/mptcp_lib.sh b/tools/testing= /selftests/net/mptcp/mptcp_lib.sh index d16b82f7e35a..92b89f3a7605 100644 --- a/tools/testing/selftests/net/mptcp/mptcp_lib.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_lib.sh @@ -554,3 +554,26 @@ mptcp_lib_pm_nl_set_limits() { ip netns exec "${ns}" ./pm_nl_ctl limits "${addrs}" "${subflows}" fi } + +# format: ,,, +mptcp_lib_format_endpoints() { + local entry id ip flags dev port + + for entry in "${@}"; do + IFS=3D, read -r id ip flags dev port <<< "${entry}" + if mptcp_lib_is_ip_mptcp; then + echo -n "${ip}" + [ -n "${port}" ] && echo -n " port ${port}" + echo -n " id ${id}" + [ -n "${flags}" ] && echo -n " ${flags}" + [ -n "${dev}" ] && echo -n " dev ${dev}" + echo " " # always a space at the end + else + echo -n "id ${id}" + echo -n " flags ${flags//" "/","}" + [ -n "${dev}" ] && echo -n " dev ${dev}" + echo -n " ${ip}" + [ -n "${port}" ] && echo " ${port}" || echo "" + fi + done +} diff --git a/tools/testing/selftests/net/mptcp/pm_netlink.sh b/tools/testin= g/selftests/net/mptcp/pm_netlink.sh index d369096d0df8..95e393c95017 100755 --- a/tools/testing/selftests/net/mptcp/pm_netlink.sh +++ b/tools/testing/selftests/net/mptcp/pm_netlink.sh @@ -78,29 +78,34 @@ fi ip netns exec $ns1 ./pm_nl_ctl add 10.0.1.1 ip netns exec $ns1 ./pm_nl_ctl add 10.0.1.2 flags subflow dev lo ip netns exec $ns1 ./pm_nl_ctl add 10.0.1.3 flags signal,backup -check "ip netns exec $ns1 ./pm_nl_ctl get 1" "id 1 flags 10.0.1.1" "simpl= e add/get addr" +check "ip netns exec $ns1 ./pm_nl_ctl get 1" \ + "$(mptcp_lib_format_endpoints "1,10.0.1.1")" "simple add/get addr" =20 check "ip netns exec $ns1 ./pm_nl_ctl dump" \ -"id 1 flags 10.0.1.1 -id 2 flags subflow dev lo 10.0.1.2 -id 3 flags signal,backup 10.0.1.3" "dump addrs" + "$(mptcp_lib_format_endpoints "1,10.0.1.1" \ + "2,10.0.1.2,subflow,lo" \ + "3,10.0.1.3,signal backup")" \ + "dump addrs" =20 ip netns exec $ns1 ./pm_nl_ctl del 2 check "ip netns exec $ns1 ./pm_nl_ctl get 2" "" "simple del addr" check "ip netns exec $ns1 ./pm_nl_ctl dump" \ -"id 1 flags 10.0.1.1 -id 3 flags signal,backup 10.0.1.3" "dump addrs after del" + "$(mptcp_lib_format_endpoints "1,10.0.1.1" \ + "3,10.0.1.3,signal backup")" \ + "dump addrs after del" =20 ip netns exec $ns1 ./pm_nl_ctl add 10.0.1.3 2>/dev/null check "ip netns exec $ns1 ./pm_nl_ctl get 4" "" "duplicate addr" =20 ip netns exec $ns1 ./pm_nl_ctl add 10.0.1.4 flags signal -check "ip netns exec $ns1 ./pm_nl_ctl get 4" "id 4 flags signal 10.0.1.4" = "id addr increment" +check "ip netns exec $ns1 ./pm_nl_ctl get 4" \ + "$(mptcp_lib_format_endpoints "4,10.0.1.4,signal")" "id addr increment" =20 for i in $(seq 5 9); do ip netns exec $ns1 ./pm_nl_ctl add 10.0.1.$i flags signal >/dev/null 2>&1 done -check "ip netns exec $ns1 ./pm_nl_ctl get 9" "id 9 flags signal 10.0.1.9" = "hard addr limit" +check "ip netns exec $ns1 ./pm_nl_ctl get 9" \ + "$(mptcp_lib_format_endpoints "9,10.0.1.9,signal")" "hard addr limit" check "ip netns exec $ns1 ./pm_nl_ctl get 10" "" "above hard addr limit" =20 ip netns exec $ns1 ./pm_nl_ctl del 9 @@ -108,13 +113,15 @@ for i in $(seq 10 255); do ip netns exec $ns1 ./pm_nl_ctl add 10.0.0.9 id $i ip netns exec $ns1 ./pm_nl_ctl del $i done -check "ip netns exec $ns1 ./pm_nl_ctl dump" "id 1 flags 10.0.1.1 -id 3 flags signal,backup 10.0.1.3 -id 4 flags signal 10.0.1.4 -id 5 flags signal 10.0.1.5 -id 6 flags signal 10.0.1.6 -id 7 flags signal 10.0.1.7 -id 8 flags signal 10.0.1.8" "id limit" +check "ip netns exec $ns1 ./pm_nl_ctl dump" \ + "$(mptcp_lib_format_endpoints "1,10.0.1.1" \ + "3,10.0.1.3,signal backup" \ + "4,10.0.1.4,signal" \ + "5,10.0.1.5,signal" \ + "6,10.0.1.6,signal" \ + "7,10.0.1.7,signal" \ + "8,10.0.1.8,signal")" \ + "id limit" =20 ip netns exec $ns1 ./pm_nl_ctl flush check "ip netns exec $ns1 ./pm_nl_ctl dump" "" "flush addrs" @@ -138,14 +145,16 @@ ip netns exec $ns1 ./pm_nl_ctl add 10.0.1.5 id 254 ip netns exec $ns1 ./pm_nl_ctl add 10.0.1.6 ip netns exec $ns1 ./pm_nl_ctl add 10.0.1.7 ip netns exec $ns1 ./pm_nl_ctl add 10.0.1.8 -check "ip netns exec $ns1 ./pm_nl_ctl dump" "id 1 flags 10.0.1.1 -id 2 flags 10.0.1.2 -id 3 flags 10.0.1.7 -id 4 flags 10.0.1.8 -id 100 flags 10.0.1.3 -id 101 flags 10.0.1.4 -id 254 flags 10.0.1.5 -id 255 flags 10.0.1.6" "set ids" +check "ip netns exec $ns1 ./pm_nl_ctl dump" \ + "$(mptcp_lib_format_endpoints "1,10.0.1.1" \ + "2,10.0.1.2" \ + "3,10.0.1.7" \ + "4,10.0.1.8" \ + "100,10.0.1.3" \ + "101,10.0.1.4" \ + "254,10.0.1.5" \ + "255,10.0.1.6")" \ + "set ids" =20 ip netns exec $ns1 ./pm_nl_ctl flush ip netns exec $ns1 ./pm_nl_ctl add 10.0.0.1 @@ -156,36 +165,43 @@ ip netns exec $ns1 ./pm_nl_ctl add 10.0.0.5 id 253 ip netns exec $ns1 ./pm_nl_ctl add 10.0.0.6 ip netns exec $ns1 ./pm_nl_ctl add 10.0.0.7 ip netns exec $ns1 ./pm_nl_ctl add 10.0.0.8 -check "ip netns exec $ns1 ./pm_nl_ctl dump" "id 1 flags 10.0.0.1 -id 2 flags 10.0.0.4 -id 3 flags 10.0.0.6 -id 4 flags 10.0.0.7 -id 5 flags 10.0.0.8 -id 253 flags 10.0.0.5 -id 254 flags 10.0.0.2 -id 255 flags 10.0.0.3" "wrap-around ids" +check "ip netns exec $ns1 ./pm_nl_ctl dump" \ + "$(mptcp_lib_format_endpoints "1,10.0.0.1" \ + "2,10.0.0.4" \ + "3,10.0.0.6" \ + "4,10.0.0.7" \ + "5,10.0.0.8" \ + "253,10.0.0.5" \ + "254,10.0.0.2" \ + "255,10.0.0.3")" \ + "wrap-around ids" =20 ip netns exec $ns1 ./pm_nl_ctl flush ip netns exec $ns1 ./pm_nl_ctl add 10.0.1.1 flags subflow ip netns exec $ns1 ./pm_nl_ctl set 10.0.1.1 flags backup -check "ip netns exec $ns1 ./pm_nl_ctl dump" "id 1 flags \ -subflow,backup 10.0.1.1" "set flags (backup)" +check "ip netns exec $ns1 ./pm_nl_ctl dump" \ + "$(mptcp_lib_format_endpoints "1,10.0.1.1,subflow backup")" \ + "set flags (backup)" ip netns exec $ns1 ./pm_nl_ctl set 10.0.1.1 flags nobackup -check "ip netns exec $ns1 ./pm_nl_ctl dump" "id 1 flags \ -subflow 10.0.1.1" " (nobackup)" +check "ip netns exec $ns1 ./pm_nl_ctl dump" \ + "$(mptcp_lib_format_endpoints "1,10.0.1.1,subflow")" \ + " (nobackup)" =20 # fullmesh support has been added later ip netns exec $ns1 ./pm_nl_ctl set id 1 flags fullmesh 2>/dev/null if ip netns exec $ns1 ./pm_nl_ctl dump | grep -q "fullmesh" || mptcp_lib_expect_all_features; then - check "ip netns exec $ns1 ./pm_nl_ctl dump" "id 1 flags \ -subflow,fullmesh 10.0.1.1" " (fullmesh)" + check "ip netns exec $ns1 ./pm_nl_ctl dump" \ + "$(mptcp_lib_format_endpoints "1,10.0.1.1,subflow fullmesh")" \ + " (fullmesh)" ip netns exec $ns1 ./pm_nl_ctl set id 1 flags nofullmesh - check "ip netns exec $ns1 ./pm_nl_ctl dump" "id 1 flags \ -subflow 10.0.1.1" " (nofullmesh)" + check "ip netns exec $ns1 ./pm_nl_ctl dump" \ + "$(mptcp_lib_format_endpoints "1,10.0.1.1,subflow")" \ + " (nofullmesh)" ip netns exec $ns1 ./pm_nl_ctl set id 1 flags backup,fullmesh - check "ip netns exec $ns1 ./pm_nl_ctl dump" "id 1 flags \ -subflow,backup,fullmesh 10.0.1.1" " (backup,fullmesh)" + check "ip netns exec $ns1 ./pm_nl_ctl dump" \ + "$(mptcp_lib_format_endpoints "1,10.0.1.1,subflow backup fullmesh")" \ + " (backup,fullmesh)" else for st in fullmesh nofullmesh backup,fullmesh; do st=3D" (${st})" --=20 2.40.1 From nobody Thu May 16 00:21:47 2024 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 1D922139E for ; Sun, 17 Mar 2024 00:59:05 +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=1710637146; cv=none; b=lo8WdFyzZLOENGmrML2+7NoAvpqXZWXKGgFTjyiw2SRMf0OB0QkY6rckYtbI5NTnGezLExHQHrVoE+4ZblvqPy6lCWKzDMaELUAcz673/IB9WanPcA+YqprTimiCtNENl23EqTfhAzXJRBJuAW7gPPBUxvYnbFrEVAZS7qiyHj0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1710637146; c=relaxed/simple; bh=cFVXoh2U/hplWRt91eDX6/DiWwZND6n4Nao9Qqb7VaQ=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=ZdKkK993IOlxQoReAY5yWOri/vRA4ZyeQXBfEEJEykiHbz2/Cwn3UXbU//Duyn9MPIKLpBq+HbDwSSWSLOsfnJ3K+k7bAhd7q6OifzD5+rr7KmtfzIiSuX9+OCH6cvOTGjAbOr00bjq/bvsVL6xP/kOuzgFWhlp5odcU4CsL44w= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=YmZhf60M; 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="YmZhf60M" Received: by smtp.kernel.org (Postfix) with ESMTPSA id E1E9EC43390; Sun, 17 Mar 2024 00:59:04 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1710637145; bh=cFVXoh2U/hplWRt91eDX6/DiWwZND6n4Nao9Qqb7VaQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=YmZhf60M9CsmfA6oX1nQYtrJg8tr4xr4UrhPKrhWDfZSgFbR9Efuk8am/rN5kzERH Z7JhqHpDjiAnFYGprDrANhglBy6vfSunuJIlqXs2l+0layZylZLOKXVGbCgH8sHKHd H6UjodUYf990LCdEUH8DMT7e97+XfQdAu115NpGmTM/l6bnWZUhQ0jvY7yK6UW7rpN 8O14w9QU9RzSRhoNO7U/tSU8wWfPkGtT7ENP5dwZymBljt/iKnDjreiPYjTjyrcE99 /yDd8EXOlQyPLEmwaLA6w7uHiCsNLuKhc2ZylRX8I3N7cJTYYFaBrErQlXO/sBjxFL FLtID19rABzDw== From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next v3 07/12] selftests: mptcp: add get_endpoint helper Date: Sun, 17 Mar 2024 08:58:06 +0800 Message-Id: X-Mailer: git-send-email 2.40.1 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 Content-Type: text/plain; charset="utf-8" From: Geliang Tang All endpoints are showed in show_endpoints(). This patch adds another helper named get_endpoint() to show a specofic endpoint identified by the given address ID. Usage: All endpoints - show_endpoints $ns One endpoint - get_endpoint $ns $id Use this new helper in mptcp_join.sh and pm_netlink.sh to replace all 'pm_nl_ctl get' commands. Signed-off-by: Geliang Tang --- tools/testing/selftests/net/mptcp/mptcp_join.sh | 10 ++-------- tools/testing/selftests/net/mptcp/mptcp_lib.sh | 11 +++++++++++ tools/testing/selftests/net/mptcp/pm_netlink.sh | 12 ++++++------ 3 files changed, 19 insertions(+), 14 deletions(-) diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testin= g/selftests/net/mptcp/mptcp_join.sh index 3d0051b57ecd..c06c1bd4d621 100755 --- a/tools/testing/selftests/net/mptcp/mptcp_join.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh @@ -707,7 +707,6 @@ pm_nl_check_endpoint() local _port local dev local _id - local id =20 print_check "${msg}" =20 @@ -721,7 +720,6 @@ pm_nl_check_endpoint() shift elif [ $1 =3D "id" ]; then _id=3D$2 - [ -n "$_id" ]; id=3D"id $_id" shift elif [ $1 =3D "port" ]; then _port=3D$2 @@ -731,16 +729,12 @@ pm_nl_check_endpoint() shift done =20 - if [ -z "$id" ]; then + if [ -z "${_id}" ]; then test_fail "bad test - missing endpoint id" return fi =20 - if mptcp_lib_is_ip_mptcp; then - line=3D$(ip -n $ns mptcp endpoint show $id) - else - line=3D$(ip netns exec $ns ./pm_nl_ctl get $_id) - fi + line=3D$(mptcp_lib_pm_nl_get_endpoint "${ns}" "${_id}") expected_line=3D$(mptcp_lib_format_endpoints \ "${_id},${addr},${_flags//","/" "},${dev},${_port}") if [ "$line" =3D "$expected_line" ]; then diff --git a/tools/testing/selftests/net/mptcp/mptcp_lib.sh b/tools/testing= /selftests/net/mptcp/mptcp_lib.sh index 92b89f3a7605..d83a67922b17 100644 --- a/tools/testing/selftests/net/mptcp/mptcp_lib.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_lib.sh @@ -577,3 +577,14 @@ mptcp_lib_format_endpoints() { fi done } + +mptcp_lib_pm_nl_get_endpoint() { + local ns=3D${1} + local id=3D${2} + + if mptcp_lib_is_ip_mptcp; then + ip -n "${ns}" mptcp endpoint show id "${id}" + else + ip netns exec "${ns}" ./pm_nl_ctl get "${id}" + fi +} diff --git a/tools/testing/selftests/net/mptcp/pm_netlink.sh b/tools/testin= g/selftests/net/mptcp/pm_netlink.sh index 95e393c95017..28c89b576d1f 100755 --- a/tools/testing/selftests/net/mptcp/pm_netlink.sh +++ b/tools/testing/selftests/net/mptcp/pm_netlink.sh @@ -78,7 +78,7 @@ fi ip netns exec $ns1 ./pm_nl_ctl add 10.0.1.1 ip netns exec $ns1 ./pm_nl_ctl add 10.0.1.2 flags subflow dev lo ip netns exec $ns1 ./pm_nl_ctl add 10.0.1.3 flags signal,backup -check "ip netns exec $ns1 ./pm_nl_ctl get 1" \ +check "mptcp_lib_pm_nl_get_endpoint ${ns1} 1" \ "$(mptcp_lib_format_endpoints "1,10.0.1.1")" "simple add/get addr" =20 check "ip netns exec $ns1 ./pm_nl_ctl dump" \ @@ -88,25 +88,25 @@ check "ip netns exec $ns1 ./pm_nl_ctl dump" \ "dump addrs" =20 ip netns exec $ns1 ./pm_nl_ctl del 2 -check "ip netns exec $ns1 ./pm_nl_ctl get 2" "" "simple del addr" +check "mptcp_lib_pm_nl_get_endpoint ${ns1} 2" "" "simple del addr" check "ip netns exec $ns1 ./pm_nl_ctl dump" \ "$(mptcp_lib_format_endpoints "1,10.0.1.1" \ "3,10.0.1.3,signal backup")" \ "dump addrs after del" =20 ip netns exec $ns1 ./pm_nl_ctl add 10.0.1.3 2>/dev/null -check "ip netns exec $ns1 ./pm_nl_ctl get 4" "" "duplicate addr" +check "mptcp_lib_pm_nl_get_endpoint ${ns1} 4" "" "duplicate addr" =20 ip netns exec $ns1 ./pm_nl_ctl add 10.0.1.4 flags signal -check "ip netns exec $ns1 ./pm_nl_ctl get 4" \ +check "mptcp_lib_pm_nl_get_endpoint ${ns1} 4" \ "$(mptcp_lib_format_endpoints "4,10.0.1.4,signal")" "id addr increment" =20 for i in $(seq 5 9); do ip netns exec $ns1 ./pm_nl_ctl add 10.0.1.$i flags signal >/dev/null 2>&1 done -check "ip netns exec $ns1 ./pm_nl_ctl get 9" \ +check "mptcp_lib_pm_nl_get_endpoint ${ns1} 9" \ "$(mptcp_lib_format_endpoints "9,10.0.1.9,signal")" "hard addr limit" -check "ip netns exec $ns1 ./pm_nl_ctl get 10" "" "above hard addr limit" +check "mptcp_lib_pm_nl_get_endpoint ${ns1} 10" "" "above hard addr limit" =20 ip netns exec $ns1 ./pm_nl_ctl del 9 for i in $(seq 10 255); do --=20 2.40.1 From nobody Thu May 16 00:21:47 2024 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 8B15C7F6 for ; Sun, 17 Mar 2024 00:59:07 +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=1710637147; cv=none; b=BafJKbmZ37TrOQx5GCwVhOzAZCY8++iJV2i1tvafv65siDBPWdIQ0LgRp+U3p7Imr31Qev1h3pNAIhcU5FIvAgaCJAFNXNlbjKpb+y80iaGqK9lGnRnj6I7sErrYqA8xPp1AXNC1OCBctkueCz1kh/CjvwSCE/qx2C1yUI+4C90= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1710637147; c=relaxed/simple; bh=iBuE5PFHAhempNLhZElySC3uCzFVcmKs85JSCMnT5Fc=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=ZZjo1cv217RwPeIbIIFVJXhl0xfilkYqf9qDakcOjF3TaOazmxrwC+t0ECwd0YxGQXxUah11ElEHdQ7Bc4tkjmmSdqUkoJad9K+2LIcmfmrMHRTaXM9x67JgZaT62dxNH9SbZ8jQnATV2893aJmJTiMt9NQy6g98REUJWCRhMX0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=P1k6tatO; 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="P1k6tatO" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 407BFC433C7; Sun, 17 Mar 2024 00:59:06 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1710637147; bh=iBuE5PFHAhempNLhZElySC3uCzFVcmKs85JSCMnT5Fc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=P1k6tatOeJQq1+i/raTv2Cjs9psbN57wwnov5CRgpHaWkQhU+X7dt9tmI5tDI9n4R Lv7J9LuXzRYHctAFhit0oyu69ddYHo39+U8uS/JG/9kCr5aVpfkdIGFpvDp0OqM/pJ TFVFV5XnJ/Ki4DG+L6bqndZ5fYKnc/10HdLtPAPTPZEqX2sJz5+liK1pFLlf83PQ36 g1hRiqWsVWz0aeHOxq4AeZqUv14sno/5PITbS3fWthlCi4MeqdGWJilx8KfkzbQMAq fJwIEnJv6G0nzB/vjgtAJ7j39/1PL0T2JrYQ5TmWY08vBp3Gi35IgxxsQStTpTw2+A JNkiLtUKitp0Q== From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next v3 08/12] selftests: mptcp: add change_address helper Date: Sun, 17 Mar 2024 08:58:07 +0800 Message-Id: <565780415a0be17de9118113b586cd49f841265a.1710636726.git.tanggeliang@kylinos.cn> X-Mailer: git-send-email 2.40.1 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 Content-Type: text/plain; charset="utf-8" From: Geliang Tang The address that needs to change flags can only be identified by an address ID in change_endpoint() helper. This patch adds another helper named change_address(), its 2nd parameter is an IP address. Usage: Address ID - change_endpoint $ns id $id $flags IP address - change_address $ns $addr $flags Use this new helper in pm_netlink.sh to replace all 'pm_nl_ctl set' commands. Signed-off-by: Geliang Tang --- tools/testing/selftests/net/mptcp/mptcp_lib.sh | 13 +++++++++++++ tools/testing/selftests/net/mptcp/pm_netlink.sh | 4 ++-- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/tools/testing/selftests/net/mptcp/mptcp_lib.sh b/tools/testing= /selftests/net/mptcp/mptcp_lib.sh index d83a67922b17..e26ef67e4ef1 100644 --- a/tools/testing/selftests/net/mptcp/mptcp_lib.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_lib.sh @@ -588,3 +588,16 @@ mptcp_lib_pm_nl_get_endpoint() { ip netns exec "${ns}" ./pm_nl_ctl get "${id}" fi } + +mptcp_lib_pm_nl_change_address() { + local ns=3D${1} + local addr=3D${2} + local flags=3D${3} + + if mptcp_lib_is_ip_mptcp; then + # shellcheck disable=3DSC2086 # blanks in flags, no double quote + ip -n "${ns}" mptcp endpoint change "${addr}" ${flags//","/" "} + else + ip netns exec "${ns}" ./pm_nl_ctl set "${addr}" flags "${flags}" + fi +} diff --git a/tools/testing/selftests/net/mptcp/pm_netlink.sh b/tools/testin= g/selftests/net/mptcp/pm_netlink.sh index 28c89b576d1f..a42490885d88 100755 --- a/tools/testing/selftests/net/mptcp/pm_netlink.sh +++ b/tools/testing/selftests/net/mptcp/pm_netlink.sh @@ -178,11 +178,11 @@ check "ip netns exec $ns1 ./pm_nl_ctl dump" \ =20 ip netns exec $ns1 ./pm_nl_ctl flush ip netns exec $ns1 ./pm_nl_ctl add 10.0.1.1 flags subflow -ip netns exec $ns1 ./pm_nl_ctl set 10.0.1.1 flags backup +mptcp_lib_pm_nl_change_address "${ns1}" 10.0.1.1 backup check "ip netns exec $ns1 ./pm_nl_ctl dump" \ "$(mptcp_lib_format_endpoints "1,10.0.1.1,subflow backup")" \ "set flags (backup)" -ip netns exec $ns1 ./pm_nl_ctl set 10.0.1.1 flags nobackup +mptcp_lib_pm_nl_change_address "${ns1}" 10.0.1.1 nobackup check "ip netns exec $ns1 ./pm_nl_ctl dump" \ "$(mptcp_lib_format_endpoints "1,10.0.1.1,subflow")" \ " (nobackup)" --=20 2.40.1 From nobody Thu May 16 00:21:47 2024 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 934A6139B for ; Sun, 17 Mar 2024 00:59:08 +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=1710637148; cv=none; b=t+ua4dbXJirQRuqc5wPR18zcHHirmadnkulx7d01V0lNdHsi0hAY6XSGcQWke6Jmp21iC87HGj3ymtN9D2sHkkonH761TN786lS/nRXuaeT6uZ9t6GEptHF4R5c7YhBxiae3tykhJ6zCDaig9OtKxCT9hAbsy701mIYWJCwLwhY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1710637148; c=relaxed/simple; bh=lfRKlJZ3nHOVZY1u2F7eFDm9yvvJ3nD1wmQVeiWI0a0=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=e6nGTJBEu2QOVPLdg8RG68E/SfVJNWxC6MmSXeT7uQk8HhmVW/Hwxg6G3m9gbHA4SNQ1NVZQUKUllABY9HavHtwalhXAryHoxYStZFhxwzjeylwgw8+JNPu++B4dJs/MXpWLau8XDU5h8x+QjpJLXguiBmAapM5tmHINnKs4/NY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=reZBAcvF; 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="reZBAcvF" Received: by smtp.kernel.org (Postfix) with ESMTPSA id A98BDC433F1; Sun, 17 Mar 2024 00:59:07 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1710637148; bh=lfRKlJZ3nHOVZY1u2F7eFDm9yvvJ3nD1wmQVeiWI0a0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=reZBAcvFPp4ib1ljQ61LeoeBRAA+Dl7Kj14FyZrP9LmPYEvFwF851teFB8PmxvYlS ug5aEiMWX+00Dv+XFmcI8fJjji+wnCwOF7Ntpw+nSydKr+sj+KKKpK8OOFHPDkSYwm +wm5ctZ82TSsrJ/x3MXRJRYH7MUz37AL/wpzBYUf2xSPjixaBydZWuEN9KOQS+H0CH WpWU3+yYW5gu5UEqtSxYtwLsaVEFHmi0lZRsVscZi1NttvjaKiMScgj4c+GDHWh8Gy qbatdS2q5bxFishaCiuagWhocSwaXwUHDvaAJa4XJ7M4Mf0JxD9iXwb8GeZ2mt4asX 02PoWugmkYVDQ== From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next v3 09/12] selftests: mptcp: join: update endpoint ops Date: Sun, 17 Mar 2024 08:58:08 +0800 Message-Id: X-Mailer: git-send-email 2.40.1 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 Content-Type: text/plain; charset="utf-8" From: Geliang Tang This patch uses 'case' statements to simplify pm_nl_add_endpoint() and pm_nl_check_endpoint(). And simplify pm_nl_check_endpoint() with check_output() helper. Also update pm_nl_del_endpoint() to avoid the 'double quote' shellcheck warning. Signed-off-by: Geliang Tang --- .../testing/selftests/net/mptcp/mptcp_join.sh | 72 ++++++------------- 1 file changed, 23 insertions(+), 49 deletions(-) diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testin= g/selftests/net/mptcp/mptcp_join.sh index c06c1bd4d621..ea99e45c3a0a 100755 --- a/tools/testing/selftests/net/mptcp/mptcp_join.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh @@ -612,39 +612,27 @@ pm_nl_add_endpoint() { local ns=3D$1 local addr=3D$2 - local flags _flags - local port _port - local dev _dev - local id _id + local flags dev id port local nr=3D2 =20 local p for p in "${@}" do - if [ $p =3D "flags" ]; then - eval _flags=3D\$"$nr" - [ -n "$_flags" ]; flags=3D"flags $_flags" - fi - if [ $p =3D "dev" ]; then - eval _dev=3D\$"$nr" - [ -n "$_dev" ]; dev=3D"dev $_dev" - fi - if [ $p =3D "id" ]; then - eval _id=3D\$"$nr" - [ -n "$_id" ]; id=3D"id $_id" - fi - if [ $p =3D "port" ]; then - eval _port=3D\$"$nr" - [ -n "$_port" ]; port=3D"port $_port" - fi + case "${p}" in + "flags" | "dev" | "id" | "port") + eval "${p}"=3D\$"${nr}" + ;; + esac =20 nr=3D$((nr + 1)) done =20 if mptcp_lib_is_ip_mptcp; then - ip -n $ns mptcp endpoint add $addr ${_flags//","/" "} $dev $id $port + ip -n "${ns}" mptcp endpoint add "${addr}" ${flags//","/" "} \ + ${dev:+dev "${dev}"} ${id:+id "${id}"} ${port:+port "${port}"} else - ip netns exec $ns ./pm_nl_ctl add $addr $flags $dev $id $port + ip netns exec "${ns}" ./pm_nl_ctl add "${addr}" ${flags:+flags "${flags}= "} \ + ${dev:+dev "${dev}"} ${id:+id "${id}"} ${port:+port "${port}"} fi } =20 @@ -656,7 +644,7 @@ pm_nl_del_endpoint() =20 if mptcp_lib_is_ip_mptcp; then [ $id -ne 0 ] && addr=3D'' - ip -n $ns mptcp endpoint delete id $id $addr + ip -n $ns mptcp endpoint delete id $id ${addr:+"${addr}"} else ip netns exec $ns ./pm_nl_ctl del $id $addr fi @@ -699,49 +687,35 @@ pm_nl_change_endpoint() =20 pm_nl_check_endpoint() { - local line expected_line local msg=3D"$1" local ns=3D$2 local addr=3D$3 - local _flags=3D"" - local _port - local dev - local _id + local flags dev id port =20 print_check "${msg}" =20 shift 3 while [ -n "$1" ]; do - if [ $1 =3D "flags" ]; then - _flags=3D$2 - shift - elif [ $1 =3D "dev" ]; then - [ -n "$2" ]; dev=3D"$2" - shift - elif [ $1 =3D "id" ]; then - _id=3D$2 - shift - elif [ $1 =3D "port" ]; then - _port=3D$2 + case "${1}" in + "flags" | "dev" | "id" | "port") + eval "${1}"=3D"${2}" shift - fi + ;; + *) + ;; + esac =20 shift done =20 - if [ -z "${_id}" ]; then + if [ -z "${id}" ]; then test_fail "bad test - missing endpoint id" return fi =20 - line=3D$(mptcp_lib_pm_nl_get_endpoint "${ns}" "${_id}") - expected_line=3D$(mptcp_lib_format_endpoints \ - "${_id},${addr},${_flags//","/" "},${dev},${_port}") - if [ "$line" =3D "$expected_line" ]; then - print_ok - else - fail_test "expected '$expected_line' found '$line'" - fi + check_output "mptcp_lib_pm_nl_get_endpoint ${ns} ${id}" \ + "$(mptcp_lib_format_endpoints \ + "${id},${addr},${flags//","/" "},${dev},${port}")" } =20 pm_nl_set_endpoint() --=20 2.40.1 From nobody Thu May 16 00:21:47 2024 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 3F1837F6 for ; Sun, 17 Mar 2024 00:59: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=1710637150; cv=none; b=lcNTpHzkCHleGRONbSDvzPNSxg7qqgMrnH7z1mITin4Bp5fzVrTDOwTMCwnCIl7jw5LpnP+KHPdeefJPEjfU31lZpZBEmuT6lmGUl4/XhS/4QrdIS0RAXpFa1Y2fSoyAjTADsa0yuAwjGaGFke/Ewsl1k05c3PV92+XmXUHXR6c= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1710637150; c=relaxed/simple; bh=YF+El9DZLe82sChkznqcNKSQljzKegApFp5nlAd4OJY=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=sP6zmj4sI90cYnqNW2bu8m9ArMjdF9LLs+6rcDxuRoBb3/TubAAG7q5Et1S5ZePh8sd/l+59ev5PvyahUE4pN71ytBFsU+h5BClQYsuVKrecU9TWyUvR84VqMnapN3TpIxS+ldpn1zCvH7N1mcUJXb/q2J+nK4Cv6V6+ay4sLRw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=jLvHq+dY; 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="jLvHq+dY" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 0730FC433C7; Sun, 17 Mar 2024 00:59:08 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1710637149; bh=YF+El9DZLe82sChkznqcNKSQljzKegApFp5nlAd4OJY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=jLvHq+dYxqOPhUaquelSH9vCSUTo6HWxEcfcr40Gwxx8nDYqbxV6rCfxAeGa1im63 /9D0qbVSH7mL5t8bxCI27l2xXWxb+OuToTiwRqU1l8OpQbfSkE3/PgES2pS0wKFvD/ xWVZw70T7DtUDZY27K5CGsirx28IlMx9SpBA6q0ynqn3I6E3gOpx1vaUzv+y9Htw8h LEYSDHD2lBs8lNUt61K5J9SjClANw/QBdtgYoSl8SzIGPEQsZJeM8r1TI/FheuBl4+ WJQKkJuk0QCWdGaFF+pHo2OM0clIsWqau8qGyLCodW7KmVYbPbs8MDdPDTzl+iVJaW jPfdGHnk41/wg== From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next v3 10/12] selftests: mptcp: export more endpoint ops Date: Sun, 17 Mar 2024 08:58:09 +0800 Message-Id: X-Mailer: git-send-email 2.40.1 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 Content-Type: text/plain; charset="utf-8" From: Geliang Tang This patch exports five endpoint operation helpers with pm_nl_ prefix, pm_nl_add_endpoint(), pm_nl_del_endpoint(), pm_nl_flush_endpoint(), pm_nl_show_endpoints() and pm_nl_change_endpoint() into mptcp_lib.sh as public functions, and renamed each of them with a mptcp_lib_ prefix. Then these old pm_nl_ prefix helpers in mptcp_join.sh can be wrappers of mptcp_lib_ prefix ones. Use these newly added helpers to replace all 'pm_nl_ctl' commands with 'add', 'del', 'flush', 'show' and 'set' arguments in scripts mptcp_sockopt.sh, pm_netlink.sh and simult_flows.sh. Signed-off-by: Geliang Tang --- .../testing/selftests/net/mptcp/mptcp_join.sh | 62 +----------- .../testing/selftests/net/mptcp/mptcp_lib.sh | 73 ++++++++++++++ .../selftests/net/mptcp/mptcp_sockopt.sh | 8 +- .../testing/selftests/net/mptcp/pm_netlink.sh | 94 +++++++++---------- .../selftests/net/mptcp/simult_flows.sh | 2 +- 5 files changed, 130 insertions(+), 109 deletions(-) diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testin= g/selftests/net/mptcp/mptcp_join.sh index ea99e45c3a0a..7a3a8b8254fb 100755 --- a/tools/testing/selftests/net/mptcp/mptcp_join.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh @@ -610,79 +610,27 @@ pm_nl_set_limits() =20 pm_nl_add_endpoint() { - local ns=3D$1 - local addr=3D$2 - local flags dev id port - local nr=3D2 - - local p - for p in "${@}" - do - case "${p}" in - "flags" | "dev" | "id" | "port") - eval "${p}"=3D\$"${nr}" - ;; - esac - - nr=3D$((nr + 1)) - done - - if mptcp_lib_is_ip_mptcp; then - ip -n "${ns}" mptcp endpoint add "${addr}" ${flags//","/" "} \ - ${dev:+dev "${dev}"} ${id:+id "${id}"} ${port:+port "${port}"} - else - ip netns exec "${ns}" ./pm_nl_ctl add "${addr}" ${flags:+flags "${flags}= "} \ - ${dev:+dev "${dev}"} ${id:+id "${id}"} ${port:+port "${port}"} - fi + mptcp_lib_pm_nl_add_endpoint "${@}" } =20 pm_nl_del_endpoint() { - local ns=3D$1 - local id=3D$2 - local addr=3D$3 - - if mptcp_lib_is_ip_mptcp; then - [ $id -ne 0 ] && addr=3D'' - ip -n $ns mptcp endpoint delete id $id ${addr:+"${addr}"} - else - ip netns exec $ns ./pm_nl_ctl del $id $addr - fi + mptcp_lib_pm_nl_del_endpoint "${@}" } =20 pm_nl_flush_endpoint() { - local ns=3D$1 - - if mptcp_lib_is_ip_mptcp; then - ip -n $ns mptcp endpoint flush - else - ip netns exec $ns ./pm_nl_ctl flush - fi + mptcp_lib_pm_nl_flush_endpoint "${@}" } =20 pm_nl_show_endpoints() { - local ns=3D$1 - - if mptcp_lib_is_ip_mptcp; then - ip -n $ns mptcp endpoint show - else - ip netns exec $ns ./pm_nl_ctl dump - fi + mptcp_lib_pm_nl_show_endpoints "${@}" } =20 pm_nl_change_endpoint() { - local ns=3D$1 - local id=3D$2 - local flags=3D$3 - - if mptcp_lib_is_ip_mptcp; then - ip -n $ns mptcp endpoint change id $id ${flags//","/" "} - else - ip netns exec $ns ./pm_nl_ctl set id $id flags $flags - fi + mptcp_lib_pm_nl_change_endpoint "${@}" } =20 pm_nl_check_endpoint() diff --git a/tools/testing/selftests/net/mptcp/mptcp_lib.sh b/tools/testing= /selftests/net/mptcp/mptcp_lib.sh index e26ef67e4ef1..34f78dc7c8f0 100644 --- a/tools/testing/selftests/net/mptcp/mptcp_lib.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_lib.sh @@ -601,3 +601,76 @@ mptcp_lib_pm_nl_change_address() { ip netns exec "${ns}" ./pm_nl_ctl set "${addr}" flags "${flags}" fi } + +mptcp_lib_pm_nl_add_endpoint() { + local ns=3D${1} + local addr=3D${2} + local flags dev id port + local nr=3D2 + + local p + for p in "${@}"; do + case "${p}" in + "flags" | "dev" | "id" | "port") + eval "${p}"=3D\$"${nr}" + ;; + esac + + nr=3D$((nr + 1)) + done + + if mptcp_lib_is_ip_mptcp; then + # shellcheck disable=3DSC2086 # blanks in flags, no double quote + ip -n "${ns}" mptcp endpoint add "${addr}" ${flags//","/" "} \ + ${dev:+dev "${dev}"} ${id:+id "${id}"} ${port:+port "${port}"} + else + ip netns exec "${ns}" ./pm_nl_ctl add "${addr}" ${flags:+flags "${flags}= "} \ + ${dev:+dev "${dev}"} ${id:+id "${id}"} ${port:+port "${port}"} + fi +} + +mptcp_lib_pm_nl_del_endpoint() { + local ns=3D${1} + local id=3D${2} + local addr=3D${3} + + if mptcp_lib_is_ip_mptcp; then + [ "${id}" -ne 0 ] && addr=3D'' + ip -n "${ns}" mptcp endpoint delete id "${id}" ${addr:+"${addr}"} + else + ip netns exec "${ns}" ./pm_nl_ctl del "${id}" "${addr}" + fi +} + +mptcp_lib_pm_nl_flush_endpoint() { + local ns=3D${1} + + if mptcp_lib_is_ip_mptcp; then + ip -n "${ns}" mptcp endpoint flush + else + ip netns exec "${ns}" ./pm_nl_ctl flush + fi +} + +mptcp_lib_pm_nl_show_endpoints() { + local ns=3D${1} + + if mptcp_lib_is_ip_mptcp; then + ip -n "${ns}" mptcp endpoint show + else + ip netns exec "${ns}" ./pm_nl_ctl dump + fi +} + +mptcp_lib_pm_nl_change_endpoint() { + local ns=3D${1} + local id=3D${2} + local flags=3D${3} + + if mptcp_lib_is_ip_mptcp; then + # shellcheck disable=3DSC2086 # blanks in flags, no double quote + ip -n "${ns}" mptcp endpoint change id "${id}" ${flags//","/" "} + else + ip netns exec "${ns}" ./pm_nl_ctl set id "${id}" flags "${flags}" + fi +} diff --git a/tools/testing/selftests/net/mptcp/mptcp_sockopt.sh b/tools/tes= ting/selftests/net/mptcp/mptcp_sockopt.sh index 6f39a5d6d02e..36e81383f0e2 100755 --- a/tools/testing/selftests/net/mptcp/mptcp_sockopt.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_sockopt.sh @@ -58,11 +58,11 @@ init() # let $ns2 reach any $ns1 address from any interface ip -net "$ns2" route add default via 10.0.$i.1 dev ns2eth$i metric 10$i =20 - ip netns exec $ns1 ./pm_nl_ctl add 10.0.$i.1 flags signal - ip netns exec $ns1 ./pm_nl_ctl add dead:beef:$i::1 flags signal + mptcp_lib_pm_nl_add_endpoint "${ns1}" "10.0.${i}.1" flags signal + mptcp_lib_pm_nl_add_endpoint "${ns1}" "dead:beef:${i}::1" flags signal =20 - ip netns exec $ns2 ./pm_nl_ctl add 10.0.$i.2 flags signal - ip netns exec $ns2 ./pm_nl_ctl add dead:beef:$i::2 flags signal + mptcp_lib_pm_nl_add_endpoint "${ns2}" "10.0.${i}.2" flags signal + mptcp_lib_pm_nl_add_endpoint "${ns2}" "dead:beef:${i}::2" flags signal done =20 mptcp_lib_pm_nl_set_limits "${ns1}" 8 8 diff --git a/tools/testing/selftests/net/mptcp/pm_netlink.sh b/tools/testin= g/selftests/net/mptcp/pm_netlink.sh index a42490885d88..31f7021734fe 100755 --- a/tools/testing/selftests/net/mptcp/pm_netlink.sh +++ b/tools/testing/selftests/net/mptcp/pm_netlink.sh @@ -67,7 +67,7 @@ check() fi } =20 -check "ip netns exec $ns1 ./pm_nl_ctl dump" "" "defaults addr list" +check "mptcp_lib_pm_nl_show_endpoints ${ns1}" "" "defaults addr list" =20 default_limits=3D"$(mptcp_lib_pm_nl_get_limits "${ns1}")" if mptcp_lib_expect_all_features; then @@ -75,45 +75,45 @@ if mptcp_lib_expect_all_features; then "$(mptcp_lib_format_limits 0 2)" "defaults limits" fi =20 -ip netns exec $ns1 ./pm_nl_ctl add 10.0.1.1 -ip netns exec $ns1 ./pm_nl_ctl add 10.0.1.2 flags subflow dev lo -ip netns exec $ns1 ./pm_nl_ctl add 10.0.1.3 flags signal,backup +mptcp_lib_pm_nl_add_endpoint "${ns1}" 10.0.1.1 +mptcp_lib_pm_nl_add_endpoint "${ns1}" 10.0.1.2 flags subflow dev lo +mptcp_lib_pm_nl_add_endpoint "${ns1}" 10.0.1.3 flags signal,backup check "mptcp_lib_pm_nl_get_endpoint ${ns1} 1" \ "$(mptcp_lib_format_endpoints "1,10.0.1.1")" "simple add/get addr" =20 -check "ip netns exec $ns1 ./pm_nl_ctl dump" \ +check "mptcp_lib_pm_nl_show_endpoints ${ns1}" \ "$(mptcp_lib_format_endpoints "1,10.0.1.1" \ "2,10.0.1.2,subflow,lo" \ "3,10.0.1.3,signal backup")" \ "dump addrs" =20 -ip netns exec $ns1 ./pm_nl_ctl del 2 +mptcp_lib_pm_nl_del_endpoint "${ns1}" 2 check "mptcp_lib_pm_nl_get_endpoint ${ns1} 2" "" "simple del addr" -check "ip netns exec $ns1 ./pm_nl_ctl dump" \ +check "mptcp_lib_pm_nl_show_endpoints ${ns1}" \ "$(mptcp_lib_format_endpoints "1,10.0.1.1" \ "3,10.0.1.3,signal backup")" \ "dump addrs after del" =20 -ip netns exec $ns1 ./pm_nl_ctl add 10.0.1.3 2>/dev/null +mptcp_lib_pm_nl_add_endpoint "${ns1}" 10.0.1.3 2>/dev/null check "mptcp_lib_pm_nl_get_endpoint ${ns1} 4" "" "duplicate addr" =20 -ip netns exec $ns1 ./pm_nl_ctl add 10.0.1.4 flags signal +mptcp_lib_pm_nl_add_endpoint "${ns1}" 10.0.1.4 flags signal check "mptcp_lib_pm_nl_get_endpoint ${ns1} 4" \ "$(mptcp_lib_format_endpoints "4,10.0.1.4,signal")" "id addr increment" =20 for i in $(seq 5 9); do - ip netns exec $ns1 ./pm_nl_ctl add 10.0.1.$i flags signal >/dev/null 2>&1 + mptcp_lib_pm_nl_add_endpoint "${ns1}" "10.0.1.${i}" flags signal >/dev/nu= ll 2>&1 done check "mptcp_lib_pm_nl_get_endpoint ${ns1} 9" \ "$(mptcp_lib_format_endpoints "9,10.0.1.9,signal")" "hard addr limit" check "mptcp_lib_pm_nl_get_endpoint ${ns1} 10" "" "above hard addr limit" =20 -ip netns exec $ns1 ./pm_nl_ctl del 9 +mptcp_lib_pm_nl_del_endpoint "${ns1}" 9 for i in $(seq 10 255); do - ip netns exec $ns1 ./pm_nl_ctl add 10.0.0.9 id $i - ip netns exec $ns1 ./pm_nl_ctl del $i + mptcp_lib_pm_nl_add_endpoint "${ns1}" 10.0.0.9 id "${i}" + mptcp_lib_pm_nl_del_endpoint "${ns1}" "${i}" done -check "ip netns exec $ns1 ./pm_nl_ctl dump" \ +check "mptcp_lib_pm_nl_show_endpoints ${ns1}" \ "$(mptcp_lib_format_endpoints "1,10.0.1.1" \ "3,10.0.1.3,signal backup" \ "4,10.0.1.4,signal" \ @@ -123,8 +123,8 @@ check "ip netns exec $ns1 ./pm_nl_ctl dump" \ "8,10.0.1.8,signal")" \ "id limit" =20 -ip netns exec $ns1 ./pm_nl_ctl flush -check "ip netns exec $ns1 ./pm_nl_ctl dump" "" "flush addrs" +mptcp_lib_pm_nl_flush_endpoint "${ns1}" +check "mptcp_lib_pm_nl_show_endpoints ${ns1}" "" "flush addrs" =20 mptcp_lib_pm_nl_set_limits "${ns1}" 9 1 2>/dev/null check "mptcp_lib_pm_nl_get_limits ${ns1}" "${default_limits}" "rcv addrs a= bove hard limit" @@ -136,16 +136,16 @@ mptcp_lib_pm_nl_set_limits "${ns1}" 8 8 check "mptcp_lib_pm_nl_get_limits ${ns1}" \ "$(mptcp_lib_format_limits 8 8)" "set limits" =20 -ip netns exec $ns1 ./pm_nl_ctl flush -ip netns exec $ns1 ./pm_nl_ctl add 10.0.1.1 -ip netns exec $ns1 ./pm_nl_ctl add 10.0.1.2 -ip netns exec $ns1 ./pm_nl_ctl add 10.0.1.3 id 100 -ip netns exec $ns1 ./pm_nl_ctl add 10.0.1.4 -ip netns exec $ns1 ./pm_nl_ctl add 10.0.1.5 id 254 -ip netns exec $ns1 ./pm_nl_ctl add 10.0.1.6 -ip netns exec $ns1 ./pm_nl_ctl add 10.0.1.7 -ip netns exec $ns1 ./pm_nl_ctl add 10.0.1.8 -check "ip netns exec $ns1 ./pm_nl_ctl dump" \ +mptcp_lib_pm_nl_flush_endpoint "${ns1}" +mptcp_lib_pm_nl_add_endpoint "${ns1}" 10.0.1.1 +mptcp_lib_pm_nl_add_endpoint "${ns1}" 10.0.1.2 +mptcp_lib_pm_nl_add_endpoint "${ns1}" 10.0.1.3 id 100 +mptcp_lib_pm_nl_add_endpoint "${ns1}" 10.0.1.4 +mptcp_lib_pm_nl_add_endpoint "${ns1}" 10.0.1.5 id 254 +mptcp_lib_pm_nl_add_endpoint "${ns1}" 10.0.1.6 +mptcp_lib_pm_nl_add_endpoint "${ns1}" 10.0.1.7 +mptcp_lib_pm_nl_add_endpoint "${ns1}" 10.0.1.8 +check "mptcp_lib_pm_nl_show_endpoints ${ns1}" \ "$(mptcp_lib_format_endpoints "1,10.0.1.1" \ "2,10.0.1.2" \ "3,10.0.1.7" \ @@ -156,16 +156,16 @@ check "ip netns exec $ns1 ./pm_nl_ctl dump" \ "255,10.0.1.6")" \ "set ids" =20 -ip netns exec $ns1 ./pm_nl_ctl flush -ip netns exec $ns1 ./pm_nl_ctl add 10.0.0.1 -ip netns exec $ns1 ./pm_nl_ctl add 10.0.0.2 id 254 -ip netns exec $ns1 ./pm_nl_ctl add 10.0.0.3 -ip netns exec $ns1 ./pm_nl_ctl add 10.0.0.4 -ip netns exec $ns1 ./pm_nl_ctl add 10.0.0.5 id 253 -ip netns exec $ns1 ./pm_nl_ctl add 10.0.0.6 -ip netns exec $ns1 ./pm_nl_ctl add 10.0.0.7 -ip netns exec $ns1 ./pm_nl_ctl add 10.0.0.8 -check "ip netns exec $ns1 ./pm_nl_ctl dump" \ +mptcp_lib_pm_nl_flush_endpoint "${ns1}" +mptcp_lib_pm_nl_add_endpoint "${ns1}" 10.0.0.1 +mptcp_lib_pm_nl_add_endpoint "${ns1}" 10.0.0.2 id 254 +mptcp_lib_pm_nl_add_endpoint "${ns1}" 10.0.0.3 +mptcp_lib_pm_nl_add_endpoint "${ns1}" 10.0.0.4 +mptcp_lib_pm_nl_add_endpoint "${ns1}" 10.0.0.5 id 253 +mptcp_lib_pm_nl_add_endpoint "${ns1}" 10.0.0.6 +mptcp_lib_pm_nl_add_endpoint "${ns1}" 10.0.0.7 +mptcp_lib_pm_nl_add_endpoint "${ns1}" 10.0.0.8 +check "mptcp_lib_pm_nl_show_endpoints ${ns1}" \ "$(mptcp_lib_format_endpoints "1,10.0.0.1" \ "2,10.0.0.4" \ "3,10.0.0.6" \ @@ -176,30 +176,30 @@ check "ip netns exec $ns1 ./pm_nl_ctl dump" \ "255,10.0.0.3")" \ "wrap-around ids" =20 -ip netns exec $ns1 ./pm_nl_ctl flush -ip netns exec $ns1 ./pm_nl_ctl add 10.0.1.1 flags subflow +mptcp_lib_pm_nl_flush_endpoint "${ns1}" +mptcp_lib_pm_nl_add_endpoint "${ns1}" 10.0.1.1 flags subflow mptcp_lib_pm_nl_change_address "${ns1}" 10.0.1.1 backup -check "ip netns exec $ns1 ./pm_nl_ctl dump" \ +check "mptcp_lib_pm_nl_show_endpoints ${ns1}" \ "$(mptcp_lib_format_endpoints "1,10.0.1.1,subflow backup")" \ "set flags (backup)" mptcp_lib_pm_nl_change_address "${ns1}" 10.0.1.1 nobackup -check "ip netns exec $ns1 ./pm_nl_ctl dump" \ +check "mptcp_lib_pm_nl_show_endpoints ${ns1}" \ "$(mptcp_lib_format_endpoints "1,10.0.1.1,subflow")" \ " (nobackup)" =20 # fullmesh support has been added later -ip netns exec $ns1 ./pm_nl_ctl set id 1 flags fullmesh 2>/dev/null -if ip netns exec $ns1 ./pm_nl_ctl dump | grep -q "fullmesh" || +mptcp_lib_pm_nl_change_endpoint "${ns1}" 1 fullmesh 2>/dev/null +if mptcp_lib_pm_nl_show_endpoints "${ns1}" | grep -q "fullmesh" || mptcp_lib_expect_all_features; then - check "ip netns exec $ns1 ./pm_nl_ctl dump" \ + check "mptcp_lib_pm_nl_show_endpoints ${ns1}" \ "$(mptcp_lib_format_endpoints "1,10.0.1.1,subflow fullmesh")" \ " (fullmesh)" - ip netns exec $ns1 ./pm_nl_ctl set id 1 flags nofullmesh - check "ip netns exec $ns1 ./pm_nl_ctl dump" \ + mptcp_lib_pm_nl_change_endpoint "${ns1}" 1 nofullmesh + check "mptcp_lib_pm_nl_show_endpoints ${ns1}" \ "$(mptcp_lib_format_endpoints "1,10.0.1.1,subflow")" \ " (nofullmesh)" - ip netns exec $ns1 ./pm_nl_ctl set id 1 flags backup,fullmesh - check "ip netns exec $ns1 ./pm_nl_ctl dump" \ + mptcp_lib_pm_nl_change_endpoint "${ns1}" 1 backup,fullmesh + check "mptcp_lib_pm_nl_show_endpoints ${ns1}" \ "$(mptcp_lib_format_endpoints "1,10.0.1.1,subflow backup fullmesh")" \ " (backup,fullmesh)" else diff --git a/tools/testing/selftests/net/mptcp/simult_flows.sh b/tools/test= ing/selftests/net/mptcp/simult_flows.sh index b8414cff9b4b..acc49fa652a2 100755 --- a/tools/testing/selftests/net/mptcp/simult_flows.sh +++ b/tools/testing/selftests/net/mptcp/simult_flows.sh @@ -86,7 +86,7 @@ setup() ip -net "$ns1" route add default via dead:beef:2::2 metric 101 =20 mptcp_lib_pm_nl_set_limits "${ns1}" 1 1 - ip netns exec "$ns1" ./pm_nl_ctl add 10.0.2.1 dev ns1eth2 flags subflow + mptcp_lib_pm_nl_add_endpoint "${ns1}" 10.0.2.1 dev ns1eth2 flags subflow =20 ip -net "$ns2" addr add 10.0.1.2/24 dev ns2eth1 ip -net "$ns2" addr add dead:beef:1::2/64 dev ns2eth1 nodad --=20 2.40.1 From nobody Thu May 16 00:21:47 2024 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 8FA64139B for ; Sun, 17 Mar 2024 00:59:11 +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=1710637151; cv=none; b=cqTt9w9vbilnFvltoBZbArhEtRUTF2wciDsdVEoZu3YHUH2DHhF3k3oIu7wOtxT4CEVVPkapz0WxmyY2vdmCrZRSQXsbr1G/uUPfRtS4MjGrN83o/YR1vCjBRxcbQryKMg5Szxaz7ruHFtWoVI4EcKsOYcsFO+8mZeqytZCCofU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1710637151; c=relaxed/simple; bh=QWiv38Q4fe8tuiZOaS3XklqP/wtVcoV0FQwjm97jYNY=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=dWySTFju5YqSDUwYcwd8ghEt8BTN8PsosceYh/UCL4cKOk0D511gc4Ap9DefBFVjZsjiUAPlcKd0u6LsvPykDC4hYtQQ5wX4ugDmVHJZliUZ2sXTqeyzoRNwSxPlMIe3DTaKhu//rFulutt7RkoNcOixY3lidDN7Q7p9H5mnbeY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=GqeKn4GK; 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="GqeKn4GK" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 6EC5BC433F1; Sun, 17 Mar 2024 00:59:10 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1710637151; bh=QWiv38Q4fe8tuiZOaS3XklqP/wtVcoV0FQwjm97jYNY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=GqeKn4GKHWJV0JfxlbAn4b7WPk85Q071gscwIc6XoHmJDjiR4hH6cgoW5F7v+2ZNP I64wtTEDEdCydmlJ9sg2vq/Wa0oA/ArugAi+i0czXo5WKnU0n9brs40W26Lif7Ugl5 xNOGhMXtNUtUKGBA+JTy2lmu6IS1xNVxMpUa4mFhoDBcYYHFOkvQzK/PBZfMZd4mJh lhCmMALQ5Ih/SgjmVINB/pf07wvAvRfnU+8Y8eqeu5fT4A+qLxn05SMtCGxx19iheO 9lvWNqQoFXU2ovBp2VcxUisIgVODSPM7/7IGit8oClqfK16TlXuouPvIJwb2bZlxjJ EQX+prza/ntUw== From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next v3 11/12] selftests: mptcp: ip_mptcp option for more scripts Date: Sun, 17 Mar 2024 08:58:10 +0800 Message-Id: <9c36f8e5a6c24bd03bd31f0387f0ec8f91ba605c.1710636726.git.tanggeliang@kylinos.cn> X-Mailer: git-send-email 2.40.1 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 Content-Type: text/plain; charset="utf-8" From: Geliang Tang This patch adds '-i' option for mptcp_sockopt.sh, pm_netlink.sh, and simult_flows.sh, to use 'ip mptcp' command in the tests instead of 'pm_nl_ctl'. Update usage() correspondingly. Signed-off-by: Geliang Tang --- .../selftests/net/mptcp/mptcp_sockopt.sh | 22 +++++++++++++++++++ .../testing/selftests/net/mptcp/pm_netlink.sh | 9 ++++++-- .../selftests/net/mptcp/simult_flows.sh | 8 +++++-- 3 files changed, 35 insertions(+), 4 deletions(-) diff --git a/tools/testing/selftests/net/mptcp/mptcp_sockopt.sh b/tools/tes= ting/selftests/net/mptcp/mptcp_sockopt.sh index 36e81383f0e2..68899a303a1a 100755 --- a/tools/testing/selftests/net/mptcp/mptcp_sockopt.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_sockopt.sh @@ -22,6 +22,28 @@ ns1=3D"" ns2=3D"" ns_sbox=3D"" =20 +usage() { + echo "Usage: $0 [ -i ] [ -h ]" + echo -e "\t-i: use 'ip mptcp' instead of 'pm_nl_ctl'" + echo -e "\t-h: help" +} + +while getopts "hi" option;do + case "$option" in + "h") + usage "$0" + exit ${KSFT_PASS} + ;; + "i") + mptcp_lib_set_ip_mptcp + ;; + "?") + usage "$0" + exit ${KSFT_FAIL} + ;; + esac +done + add_mark_rules() { local ns=3D$1 diff --git a/tools/testing/selftests/net/mptcp/pm_netlink.sh b/tools/testin= g/selftests/net/mptcp/pm_netlink.sh index 31f7021734fe..b48476d73e9e 100755 --- a/tools/testing/selftests/net/mptcp/pm_netlink.sh +++ b/tools/testing/selftests/net/mptcp/pm_netlink.sh @@ -11,16 +11,21 @@ ret=3D0 =20 usage() { - echo "Usage: $0 [ -h ]" + echo "Usage: $0 [ -i ] [ -h ]" + echo -e "\t-i: use 'ip mptcp' instead of 'pm_nl_ctl'" + echo -e "\t-h: help" } =20 -optstring=3Dh +optstring=3Dhi while getopts "$optstring" option;do case "$option" in "h") usage $0 exit ${KSFT_PASS} ;; + "i") + mptcp_lib_set_ip_mptcp + ;; "?") usage $0 exit ${KSFT_FAIL} diff --git a/tools/testing/selftests/net/mptcp/simult_flows.sh b/tools/test= ing/selftests/net/mptcp/simult_flows.sh index acc49fa652a2..d0b39c2e38a3 100755 --- a/tools/testing/selftests/net/mptcp/simult_flows.sh +++ b/tools/testing/selftests/net/mptcp/simult_flows.sh @@ -27,10 +27,11 @@ capout=3D"" size=3D0 =20 usage() { - echo "Usage: $0 [ -b ] [ -c ] [ -d ]" + echo "Usage: $0 [ -b ] [ -c ] [ -d ] [ -i]" echo -e "\t-b: bail out after first error, otherwise runs al testcases" echo -e "\t-c: capture packets for each test using tcpdump (default: no c= apture)" echo -e "\t-d: debug this script" + echo -e "\t-i: use 'ip mptcp' instead of 'pm_nl_ctl'" } =20 # This function is used in the cleanup trap @@ -259,7 +260,7 @@ run_test() fi } =20 -while getopts "bcdh" option;do +while getopts "bcdhi" option;do case "$option" in "h") usage $0 @@ -274,6 +275,9 @@ while getopts "bcdh" option;do "d") set -x ;; + "i") + mptcp_lib_set_ip_mptcp + ;; "?") usage $0 exit ${KSFT_FAIL} --=20 2.40.1 From nobody Thu May 16 00:21:47 2024 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 137867F6 for ; Sun, 17 Mar 2024 00:59:12 +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=1710637153; cv=none; b=OzlqFcAFcPeZ4my90o3PukB/ClKVI8H7wdDinB2KKfCYG40ZjnRglSAd+oG65Izjch4GirQvbhiR0vepRn1nsyOLdSljMg1QSciNOMdj8P+xLqZEYii6LGe9W89OHaaoXbpAYSJWE1JuErkR95Pu0dhKCBKcd7wk44OKpfTT37I= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1710637153; c=relaxed/simple; bh=PHGgBhPAa+nMCpggIloVVILtYbouBO1V1vN7WmcEJjk=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=Ern6D9XtPpKT28xOQRikzGczlCuAskpi0O2RTJF1S6nFkHOj+triaiCnBymPPuSZq77B86hwDAo7BPtwkUo0muhdTPqU+eVbW+xkVzJTah0+rqxRLl9DlFN/IpyaQqxAnuCKGkOwRn69dAA94jgzAJY5ul7dmrlYZjZEcTtGYJU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=lREDn9J/; 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="lREDn9J/" Received: by smtp.kernel.org (Postfix) with ESMTPSA id BF80FC433C7; Sun, 17 Mar 2024 00:59:11 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1710637152; bh=PHGgBhPAa+nMCpggIloVVILtYbouBO1V1vN7WmcEJjk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=lREDn9J/30jj6q1xURiOyu70cYVla9HRhasulkTMWKp/t420/dF2MDBIGg8mj7Sss dGQsmIJRo1zZXeCo54GlSD2jrNhoWjFlvTul8T6coHgapd4FexaIV7gDXrvYebyS35 pQru+4zVO3oYkw3wzrGLUDrkgOFUhoxkbKU7/aD/jGXfJfLTXeL1DgNJw4CSUzCGFt 2PEbdCB7GNDdLbc87rCV9o5wQP3NHD89fX92ReF+uo4vXDCdn+B+7q+GX8Xu7hi1Cp fGMZiDf+7PRT0UXEYirEpTw45yJOE/IisS952YyApr+b2GK0XFFjTNaNAybnTxNj4D LCM/ytBAkR+Zg== From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next v3 12/12] selftests: mptcp: netlink: drop disable=SC2086 Date: Sun, 17 Mar 2024 08:58:11 +0800 Message-Id: <77abb354cfd4e6e519a9e40c66b2caf9d400bdb0.1710636726.git.tanggeliang@kylinos.cn> X-Mailer: git-send-email 2.40.1 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 Content-Type: text/plain; charset="utf-8" From: Geliang Tang Now there are only a few of variables are not using double quotes. Modifying them, then "shellcheck disable=3DSC2086" can be dropped. Signed-off-by: Geliang Tang --- tools/testing/selftests/net/mptcp/pm_netlink.sh | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/tools/testing/selftests/net/mptcp/pm_netlink.sh b/tools/testin= g/selftests/net/mptcp/pm_netlink.sh index b48476d73e9e..e4f5f1f9ab95 100755 --- a/tools/testing/selftests/net/mptcp/pm_netlink.sh +++ b/tools/testing/selftests/net/mptcp/pm_netlink.sh @@ -1,11 +1,6 @@ #!/bin/bash # SPDX-License-Identifier: GPL-2.0 =20 -# Double quotes to prevent globbing and word splitting is recommended in n= ew -# code but we accept it, especially because there were too many before hav= ing -# address all other issues detected by shellcheck. -#shellcheck disable=3DSC2086 - . "$(dirname "${0}")/mptcp_lib.sh" =20 ret=3D0 @@ -20,14 +15,14 @@ optstring=3Dhi while getopts "$optstring" option;do case "$option" in "h") - usage $0 + usage "$0" exit ${KSFT_PASS} ;; "i") mptcp_lib_set_ip_mptcp ;; "?") - usage $0 + usage "$0" exit ${KSFT_FAIL} ;; esac @@ -40,7 +35,7 @@ err=3D$(mktemp) #shellcheck disable=3DSC2317 cleanup() { - rm -f $err + rm -f "${err}" mptcp_lib_ns_exit "${ns1}" } =20 --=20 2.40.1