From nobody Tue May 14 13:00:49 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 81E2E50A80 for ; Tue, 19 Mar 2024 07:16:23 +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=1710832583; cv=none; b=i0hGWzDc8DyvPOGqvr58HBoCXsQhvn1VDRGgHwRfJh4O/zLuo3ITEV4tDESY1qY0LRJL5he2PZCArLZ+qnLtxbKWMh9KzHU4md15ujPnAjDr8W/PAkSRr6ePfyEkuHH99JUEMe2Lbu2b1N1IM8VaTRNRtw9OWTucMehprWAxHkw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1710832583; c=relaxed/simple; bh=vvafilXpSFxGpxTvsWaNvSRKn+0JFURQP1lsZgcAfds=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=Zj2U9JHutadg08JxROPdNyighw3TUBPrQcsjOoYefZxDAFAf2IvQsOsqDd1E6B9EaPkeFZN/femSFtIe4FlAY/EqBbjJy2FK870LHVvTHd/6u34g3Sx7nzj+5fDyY8e8UM1C8btyMXT2uvG9IFOeFhDsqM7V+cMP/IvLFUY5FBE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=LOltdeZo; 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="LOltdeZo" Received: by smtp.kernel.org (Postfix) with ESMTPSA id E4EDEC43390; Tue, 19 Mar 2024 07:16:21 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1710832583; bh=vvafilXpSFxGpxTvsWaNvSRKn+0JFURQP1lsZgcAfds=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=LOltdeZo0WYKqKFeJT5vm2N9buM2yx+GHXbke8jbqW4F1mxyoxgOufrI8aa9HpokG fCD6DDWYdmp2RAA0b7NyqjYjOv635G4RFVNpKQ653rp1pfq+PI+SzITBTsegq2V3Rp uckK3U5TlLCZMOY+7JdBCzRPU3KaqL+hpyRGXSNxalOQlF6Ti7US2tfg+u+/HJU4Hq 92jZyTDZGLCSUCrLcBMXleuKcCq7b1M2NOGTCdsTIil/k7+N/mmyCMB+UgWHFiMRkz lDhKaMDrhNKXv1vVRBr/z4yHnild0pWrkv8dABduQ0jz7802chw2PavOmvUjKUCzX2 FtkM8Zkin58Fg== From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next v4 1/9] selftests: mptcp: export ip_mptcp to mptcp_lib Date: Tue, 19 Mar 2024 15:16:07 +0800 Message-Id: <66e7a9d75b360322b163c25d4ccde2c804e3ee1c.1710832493.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 Reviewed-by: Matthieu Baerts (NGI0) --- 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 Tue May 14 13:00:49 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 D935F50A73 for ; Tue, 19 Mar 2024 07:16:25 +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=1710832585; cv=none; b=UCQOO+h5Tih2lmP2NzzvR+Wzuzc6rJuK0o+khkPCzdBE2LNm18gl6/geURfwHqwIc2cYITniZtNopBCzra4ZLGQlZKN3NWCL/ZTCdnuqhRfNnRkPOPkO6+kq4psrJpMXFaaUmae1MnFaXqDL8pgtLhVhov2M8wgWKOf87C+iMaw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1710832585; c=relaxed/simple; bh=TmJZ0BziRjAjcrSW5Eib5CHbV5r0FUMmSUfXiQhta2Y=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=oG28VrrbXTpV74iQ339/FK8SnoYFTA0JW9av+iVqQTIVTxDQW3wQMX0Fh2Du5nmmiShOYM269e8KTHmiB5auAtKgu4OKKVlIGhTYFsWbwN56mp2EuD6oE86VVAhV3fJJuFhI/wUL8YjLh/xqQM+4ZkbA5R9qeZTH0Qn4XnFt+Lc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=AnpGwxaF; 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="AnpGwxaF" Received: by smtp.kernel.org (Postfix) with ESMTPSA id C04EFC433F1; Tue, 19 Mar 2024 07:16:23 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1710832585; bh=TmJZ0BziRjAjcrSW5Eib5CHbV5r0FUMmSUfXiQhta2Y=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=AnpGwxaFNUX2ZeZFpkTUvBju+2MTikUXK2u44+KLunnqGdN+vS35ET0iWekghaIsz JkLnOXnrKSyemVPMhx44h9mnE8HZSbExtdKqBPKZfDEj85/Vi/j8XD9u+Rr+dR8so0 fEbVFe9zRzoKkcXLFX7DFCCh9y1tfHrnzVwzDKV1LILtSm4WuRHjZ+PXMrS5w56Xau 5R8vFxd0SoSe+7suv4OI5Gtz7ZhbvmPxss6IjtAkpiRakenPRTHKo4LMSb2RmXyBOs cJ4Pmng7dZ5nHsPgPzhPWrTmVDmwxQ6ou9ZfIORqoaVfYNU0k3awT4tnkwmrc+uags kLiD22/oIQIeA== From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next v4 2/9] selftests: mptcp: add get_limits helper Date: Tue, 19 Mar 2024 15:16: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 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. Just like set_limits() helper, add another one get_limits() to show the limits. Use these two helpers in pm_netlink.sh to replace all 'pm_nl_ctl limits' commands and outputs. Signed-off-by: Geliang Tang Reviewed-by: Matthieu Baerts (NGI0) --- .../testing/selftests/net/mptcp/pm_netlink.sh | 32 +++++++++++++++---- 1 file changed, 25 insertions(+), 7 deletions(-) diff --git a/tools/testing/selftests/net/mptcp/pm_netlink.sh b/tools/testin= g/selftests/net/mptcp/pm_netlink.sh index 6ab8c5d36340..d672d1e5d470 100755 --- a/tools/testing/selftests/net/mptcp/pm_netlink.sh +++ b/tools/testing/selftests/net/mptcp/pm_netlink.sh @@ -46,6 +46,26 @@ trap cleanup EXIT =20 mptcp_lib_ns_init ns1 =20 +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 +} + +get_limits() { + if mptcp_lib_is_ip_mptcp; then + ip -n "${ns1}" mptcp limits + else + ip netns exec "${ns1}" ./pm_nl_ctl limits + fi +} + check() { local cmd=3D"$1" @@ -69,10 +89,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"$(get_limits)" if mptcp_lib_expect_all_features; then - check "ip netns exec $ns1 ./pm_nl_ctl limits" "accept 0 -subflows 2" "defaults limits" + check "get_limits" "$(format_limits 0 2)" "defaults limits" fi =20 ip netns exec $ns1 ./pm_nl_ctl add 10.0.1.1 @@ -120,14 +139,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 "get_limits" "${default_limits}" "rcv addrs above 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 "get_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 "get_limits" "$(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 Tue May 14 13:00:49 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 476B251026 for ; Tue, 19 Mar 2024 07:16:27 +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=1710832587; cv=none; b=ofOr+VBCno2hr7xwGGxzqpGJ20FF2Ey9jy1v+j/yleHmhxdTu89DWjHkx02UymGdbEdzsYhjBV01NNdDodsvf0u65+zAeYW9gaUsBKLKt7iWj5gJzI4qLXWd6ey+3mZqPJAgjSu5vIf/DYTOMMmCwvsV8pTdGy3HtseKEwPovYM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1710832587; c=relaxed/simple; bh=onBa+QOXGSs8ulfARtzvP8lb9lvbUPk4nh3KTLhgVLg=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=oywKH+g24wrqHoUbV8rgUE73E4x5g+y45pz+igSk6y0Dlsmb65pci/vOunchi8pD1QOTdNCnRl9hhkdjwHPB//KBTjrFTX30M8+EUbq4oi41RNF9oa2T5WSR+9CRTbsSj6kLjsE9ViiePTNMz8I/kSOu1ujKNZnNQ/7R2WLd3ok= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=BOGd8Gyu; 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="BOGd8Gyu" Received: by smtp.kernel.org (Postfix) with ESMTPSA id F0A51C433A6; Tue, 19 Mar 2024 07:16:25 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1710832587; bh=onBa+QOXGSs8ulfARtzvP8lb9lvbUPk4nh3KTLhgVLg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=BOGd8GyuqXhjQP3Cd+9t40Zp2IkNNcFjgnOuP9ri/5LeDD0Wfp1J2WRwdBsC/pLhr ugIlIOwGLto+4ZijP+1d6A0labz7M7Vfd3YI7Yg0p8MZDJ0mG+3+BYVowDvVJSoeF3 x2c8RmttXJFZUHbFLNcGU0E4k9N2l2wS0DieiALTwBiwwNi2IGGncDMTKEPiKnAw7N cn/LNBUoicBz7hPT6Q7iZpgpmYFi/HQRADA4yQN3/eoePbDcgUtCv2pt2OuFffFbDO x4VpChOudDQjzRosRs8QoyVq3bYD3GyNsNQl/bgcpiKVpS/Yn5fOaNd4Bo/5HpBZFD 8oeQJA9gs/oBA== From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next v4 3/9] selftests: mptcp: add get_endpoint helper Date: Tue, 19 Mar 2024 15:16:09 +0800 Message-Id: <95b2607b75ac0225a4bff3d863d786b7a0db999b.1710832493.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 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. All endpoints are showed in show_endpoints(). Here add 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 these two helpers in mptcp_join.sh and pm_netlink.sh to replace all 'pm_nl_ctl get' commands and outputs of 'pm_nl_ctl dump/get'. Signed-off-by: Geliang Tang Reviewed-by: Matthieu Baerts (NGI0) --- .../testing/selftests/net/mptcp/mptcp_join.sh | 32 +----- .../testing/selftests/net/mptcp/mptcp_lib.sh | 34 ++++++ .../testing/selftests/net/mptcp/pm_netlink.sh | 101 ++++++++++-------- 3 files changed, 96 insertions(+), 71 deletions(-) diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testin= g/selftests/net/mptcp/mptcp_join.sh index 62fcfeaa3430..d48da81daa06 100755 --- a/tools/testing/selftests/net/mptcp/mptcp_join.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh @@ -712,12 +712,9 @@ 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 =20 print_check "${msg}" =20 @@ -725,48 +722,29 @@ 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 - [ -n "$_id" ]; id=3D"id $_id" shift elif [ $1 =3D "port" ]; then _port=3D$2 - [ -n "$_port" ]; port=3D" port $_port" shift fi =20 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 - # 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 + line=3D$(mptcp_lib_pm_nl_get_endpoint "${ns}" "${_id}") + expected_line=3D$(mptcp_lib_pm_nl_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 ca01d949fad8..ceb8f272c69d 100644 --- a/tools/testing/selftests/net/mptcp/mptcp_lib.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_lib.sh @@ -520,3 +520,37 @@ mptcp_lib_set_ip_mptcp() { mptcp_lib_is_ip_mptcp() { [ "${MPTCP_LIB_IP_MPTCP}" =3D "1" ] } + +# format: ,,, +mptcp_lib_pm_nl_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 +} + +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 d672d1e5d470..ff4355db03cd 100755 --- a/tools/testing/selftests/net/mptcp/pm_netlink.sh +++ b/tools/testing/selftests/net/mptcp/pm_netlink.sh @@ -66,6 +66,14 @@ get_limits() { fi } =20 +format_endpoints() { + mptcp_lib_pm_nl_format_endpoints "${@}" +} + +get_endpoint() { + mptcp_lib_pm_nl_get_endpoint "${ns1}" "${@}" +} + check() { local cmd=3D"$1" @@ -97,43 +105,44 @@ 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 "get_endpoint 1" "$(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" + "$(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 "get_endpoint 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" + "$(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 "get_endpoint 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 "get_endpoint 4" "$(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 10" "" "above hard addr limit" +check "get_endpoint 9" "$(format_endpoints "9,10.0.1.9,signal")" "hard add= r limit" +check "get_endpoint 10" "" "above hard addr limit" =20 ip netns exec $ns1 ./pm_nl_ctl del 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 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" \ + "$(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" @@ -156,14 +165,15 @@ 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" \ + "$(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 @@ -174,36 +184,39 @@ 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" \ + "$(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" "$(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" "$(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" \ + "$(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" "$(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" \ + "$(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 Tue May 14 13:00:49 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 5B27951026 for ; Tue, 19 Mar 2024 07:16:29 +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=1710832589; cv=none; b=lTiomcMGSjpKkl5OQIE3ItXWyHv/R0sf6HWvBffPsL7gF9KfNMi0l0LzNdcgnDo0sO3X8ONXfjcZEqufwK32a+73dek3q3NlThPbm++wr5Pwqx9Y5eJB5EfEr+zxPDj87ePETLcCuDjCCpBIqES0tSfZx4CGbLXUw+nEXWyEI/M= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1710832589; c=relaxed/simple; bh=xvp4oEwJqmOZPm43wFaQjtZYT72uM/X9obUsMbkLVLo=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=JMINVzPHqj1gRo0ezhDLBsnJgc+6wBuPoDXhtMcZnQTzHf/gfcCMPohMGB5TecLF3DBBCYIQX0/5c7cr29mt50bsyskk2om9j+D39bUh8YXTW37jay69P+9RkgXOuZiCvO8uFxYgUUbTmTWVjlUwvKw/fOP/Hw5TPAQMQG2lsoA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=EAvr9h3r; 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="EAvr9h3r" Received: by smtp.kernel.org (Postfix) with ESMTPSA id BDF97C43390; Tue, 19 Mar 2024 07:16:27 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1710832589; bh=xvp4oEwJqmOZPm43wFaQjtZYT72uM/X9obUsMbkLVLo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=EAvr9h3rpoIQNCEmVcEPwr8PNSEkC8tj6C+RaiadmF+LXfnw/bm4YNRK/Py9O2HR9 fA6cOdu4VwmVCl6xwOO1Th2F4ndHeCuay/CuEUR9CvTb2XEtyZOrb0POLvX/Hb/uvu H/j997iQ51SC1a5B4XjCQnvPINS80yuuaragLybLnP8TPVEIEjMArGRWhvztLsClfn GS2g44ZTbv6B0v4+7hSWvvqIizdvxoANj6pDppp03BtQextlShdZ1ftOBvfK7dTEeG ZL6hLc5QjrH9RkHdRnsE85nAfXW5tVgTx/EsMPEWEFX/UG6CLhHFLYUnvE7PGRglad jKhCqB6QEzNlg== From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next v4 4/9] selftests: mptcp: add change_address helper Date: Tue, 19 Mar 2024 15:16:10 +0800 Message-Id: <07d8d4f6ea1988bb56bca312c112deea1fd3e2c4.1710832493.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 Reviewed-by: Matthieu Baerts (NGI0) --- tools/testing/selftests/net/mptcp/pm_netlink.sh | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/tools/testing/selftests/net/mptcp/pm_netlink.sh b/tools/testin= g/selftests/net/mptcp/pm_netlink.sh index ff4355db03cd..08b78007e8c1 100755 --- a/tools/testing/selftests/net/mptcp/pm_netlink.sh +++ b/tools/testing/selftests/net/mptcp/pm_netlink.sh @@ -74,6 +74,17 @@ get_endpoint() { mptcp_lib_pm_nl_get_endpoint "${ns1}" "${@}" } =20 +change_address() { + local addr=3D${1} + local flags=3D${2} + + if mptcp_lib_is_ip_mptcp; then + ip -n "${ns1}" mptcp endpoint change "${addr}" "${flags}" + else + ip netns exec "${ns1}" ./pm_nl_ctl set "${addr}" flags "${flags}" + fi +} + check() { local cmd=3D"$1" @@ -196,10 +207,10 @@ 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 +change_address 10.0.1.1 backup check "ip netns exec $ns1 ./pm_nl_ctl dump" "$(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 +change_address 10.0.1.1 nobackup check "ip netns exec $ns1 ./pm_nl_ctl dump" "$(format_endpoints "1,10.0.1.= 1,subflow")" \ " (nobackup)" =20 --=20 2.40.1 From nobody Tue May 14 13:00:49 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 C812A51005 for ; Tue, 19 Mar 2024 07:16:30 +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=1710832590; cv=none; b=gRZqNQHC2KSv5AVewxKVe1NGp3Cr5kG01HQ2vs9GM4+2UwzGHi5YF4lww837d8KpZP60RSoWE1krqTdSyuwXXCj4hmLkihfTj3IPPyuNqfCaOxBj9XZzksE3y9/6nMtXbSkPZ8Scl6CkGZmLE+9q+mk+y6RH70p8gpZSr6sw/PY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1710832590; c=relaxed/simple; bh=4pthKABVG0UXNhMI2sFl22VCPncUGCWo4uHNkZ+fVss=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=una9cieTbfJia7/FDkPoBeUxhgLOG7SdI/qnILKQrwv7B758LqWTrG4mqcBs+S+G5Gq4cKeJgoeV3VjASJzF6Uvp5PatZMBv2TvHR7FucR0eOefbeFJBBxKGc3DzBbqGmsOP1sqlS8/Saewf66vJ5Tl+2RNt5e50K2MV6SpHV/o= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=jIrWwxWL; 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="jIrWwxWL" Received: by smtp.kernel.org (Postfix) with ESMTPSA id A5296C433F1; Tue, 19 Mar 2024 07:16:29 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1710832590; bh=4pthKABVG0UXNhMI2sFl22VCPncUGCWo4uHNkZ+fVss=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=jIrWwxWLakT0g0BziBXQ0zbzWDoZMwgPzs8zJ8Dea8uLJSu+aSCbqjOprjVxd3FYM tQWXhG8xjYWSWbghiaGDaV3aRdLOXNjdL0DVyfvAbc/MxMnrJOm0D+UeMOmFtfay8p ClmCC6N2ok8EDgikalyw6PO7TqjMoukKDykXAPs4swznEuVkpCRfDS9osq4pc3sCjM uDNlOeungIyO1hP9iJZ3XNbKilsjlTS+qtCLXYbh5vAwo5iwyoRLVNAq37UhaIHkVK kxH7hCL+G9grrvyfyqo73uXNcsEZGc3au1hzH+pZXolRYiCfad4f9UhbPd+5zZBnzy JYFA3H5gFsYnQ== From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next v4 5/9] selftests: mptcp: join: update endpoint ops Date: Tue, 19 Mar 2024 15:16:11 +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 Reviewed-by: Matthieu Baerts (NGI0) --- .../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 d48da81daa06..8862b6a5caa0 100755 --- a/tools/testing/selftests/net/mptcp/mptcp_join.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh @@ -620,39 +620,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 @@ -664,7 +652,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 @@ -707,49 +695,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_pm_nl_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_pm_nl_format_endpoints \ + "${id},${addr},${flags//","/" "},${dev},${port}")" } =20 pm_nl_set_endpoint() --=20 2.40.1 From nobody Tue May 14 13:00:49 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 E147C50A80 for ; Tue, 19 Mar 2024 07:16:32 +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=1710832593; cv=none; b=o35UbGwzsY2+t0/3NmTIfpZFj88oqtszc3G7awbG/yz+K+TgWNutZ/zsli3L8YKvaxyeDXxH9npXJHwVHHXzvZCwtWR5PajTh8Pm3bEzTAKO5nlB9TpaCZMM4ZlWWbr30P1ThHU8Y7X7vnaH1Hkgp10rFkztLer5Up3zSY1ZAVc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1710832593; c=relaxed/simple; bh=M0eOZBMS7Gvpzmk0H0G0/i3T5y/jprYJ9l/sDKbLJNI=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=h8f/rYyjMZ1NXHSP2Cz5dz63afSUEl/hoiEBAJdlRgM2/Lf1Onuyr5/L4xha8MZ6taBu8MqlpDV0ec8LQM1o3TaLvTF1qXy+clQbfPw8r0tZLxym7wQ8Eshy11AfeZAsjzTIYbAOvSO5RHOyrqRl4kSsstWKpjuKRJ28Wwwy6+g= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=rhxrMTgv; 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="rhxrMTgv" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 3F77BC43394; Tue, 19 Mar 2024 07:16:31 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1710832592; bh=M0eOZBMS7Gvpzmk0H0G0/i3T5y/jprYJ9l/sDKbLJNI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=rhxrMTgvHeI2LduaFw1hjJA4WbnAt2x13qb8yPjNkTWcg//duHv6x3cyqNyIbfaIc P0t9mNRF2VjhpCPC7rNIbIUgxM0md4T7N7cWZyolfNaRV/gVTwv5xzSS9shVsNtPxP zL+qmf/4vJl96P/UFdGtIWxEAJ/hJX+Ai++Jx4pB7ImVVRPpPrVPrh5hxwfrrRVogv TnJDteZFTsEuuKbqI0LwNMkKlBAH6jtY6mddGSqYR1bNh+GW53AbTD/uTM54RZLbop iFpCMimZu/Vp5o6IbOVYFsBNdyD24NJAhTa/eimFGzwwOPRuupnlYBH4tOBCQJW9kc 9CVIep+uIBwvw== From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next v4 6/9] selftests: mptcp: export pm_nl endpoint ops Date: Tue, 19 Mar 2024 15:16:12 +0800 Message-Id: <3d0c9b0bdb6be6d70befeeee1667b40e03f99400.1710832493.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 six endpoint operation helpers with pm_nl_ prefix, pm_nl_set_limits(), 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. Signed-off-by: Geliang Tang Reviewed-by: Matthieu Baerts (NGI0) --- .../testing/selftests/net/mptcp/mptcp_join.sh | 72 ++-------------- .../testing/selftests/net/mptcp/mptcp_lib.sh | 85 +++++++++++++++++++ 2 files changed, 91 insertions(+), 66 deletions(-) diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testin= g/selftests/net/mptcp/mptcp_join.sh index 8862b6a5caa0..fefa9173bdaa 100755 --- a/tools/testing/selftests/net/mptcp/mptcp_join.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh @@ -605,92 +605,32 @@ 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() { - 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 ceb8f272c69d..834efb806b2e 100644 --- a/tools/testing/selftests/net/mptcp/mptcp_lib.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_lib.sh @@ -554,3 +554,88 @@ mptcp_lib_pm_nl_get_endpoint() { ip netns exec "${ns}" ./pm_nl_ctl get "${id}" 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 +} + +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 +} --=20 2.40.1 From nobody Tue May 14 13:00:49 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 7E1C950A80 for ; Tue, 19 Mar 2024 07:16:34 +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=1710832594; cv=none; b=f79Z++dwpiM2b86zr5XEsYlhzYJ2hKp/gRJOSEqViRSWEzLIv12qDAdHz5MpAYGcUoe0Kx1M8uBjA0qghmZbMWxjB3fq26gmSKlyhID1K+8iFHgjDyCjwOG4JG5QmBPPS8zByVgqbiIZI9WND0q++WR/8L7q61EolqCG8qah57Y= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1710832594; c=relaxed/simple; bh=yBLBtcHWZ9j5RmHo0Ga69C39K5AYTAc2K294wXI+WCY=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=Yh5DTsSHGrkFop0LTXGfoXEUh5yiKubVefJpa2ypCvC7GtlXaI8EppzDr4/nMP2TIUPM4pv+Jm/Ys0BG5T0592mFQHhx2n6owNhO7THzkltqkm6IwN3F9K6hAtg2f6ts6AkoDoHHxfRmh1B7ybyKUAnPHHi+AhjGHCqDvERnD0Y= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=gfje9Bxn; 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="gfje9Bxn" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 3C20BC43394; Tue, 19 Mar 2024 07:16:32 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1710832594; bh=yBLBtcHWZ9j5RmHo0Ga69C39K5AYTAc2K294wXI+WCY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=gfje9BxnvBMpXZJu2Ra+HOZgaYOgWomS0xsPhqvX/PIdRmAa/f2CtfvQ7GTbd3OU1 o/QBCwimvdjSvQ1zWNqC8gR6F+cnNPXGxR86c4IZ3xx6scdaG3xIXQbwLgmddRe03+ KKbjBnoH4VsLEXWJMJ+Bel8+ahkbcF6yNShpqQoT8Bwiwyb78gJ+zA9hr9vcvT+owf uDeYBVVSXvA6/XEzGm+SN37Wge+PIPJLI6cqm6zFuB+F6XdI8ccqr4kzcpNEwyQw0M YKlt4k7uyLuVQ15N5C1W34TFXyGWils0lHho5jhhg0rj7YmGP5aqPOBQFuPlJAfxi9 23AtB3xvqQgAw== From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next v4 7/9] selftests: mptcp: use pm_nl endpoint ops Date: Tue, 19 Mar 2024 15:16:13 +0800 Message-Id: <69cd110c2443af9e499eaa426c8984cc240b1de6.1710832493.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 Use those newly added pm_nl endpoint ops helpers to replace all 'pm_nl_ctl' commands with 'limits', 'add', 'del', 'flush', 'show' and 'set' arguments in scripts mptcp_sockopt.sh and simult_flows.sh. In pm_netlink.sh, add wrappers of there helpers to make the function names shorter. Then use the wrappers to replace all 'pm_nl_ctl' commands. Signed-off-by: Geliang Tang Reviewed-by: Matthieu Baerts (NGI0) --- .../selftests/net/mptcp/mptcp_sockopt.sh | 12 +- .../testing/selftests/net/mptcp/pm_netlink.sh | 132 +++++++++++------- .../selftests/net/mptcp/simult_flows.sh | 6 +- 3 files changed, 89 insertions(+), 61 deletions(-) diff --git a/tools/testing/selftests/net/mptcp/mptcp_sockopt.sh b/tools/tes= ting/selftests/net/mptcp/mptcp_sockopt.sh index e2d70c18786e..36e81383f0e2 100755 --- a/tools/testing/selftests/net/mptcp/mptcp_sockopt.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_sockopt.sh @@ -58,15 +58,15 @@ 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 - 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 08b78007e8c1..d648383989d2 100755 --- a/tools/testing/selftests/net/mptcp/pm_netlink.sh +++ b/tools/testing/selftests/net/mptcp/pm_netlink.sh @@ -85,6 +85,36 @@ change_address() { fi } =20 +set_limits() +{ + mptcp_lib_pm_nl_set_limits "${ns1}" "${@}" +} + +add_endpoint() +{ + mptcp_lib_pm_nl_add_endpoint "${ns1}" "${@}" +} + +del_endpoint() +{ + mptcp_lib_pm_nl_del_endpoint "${ns1}" "${@}" +} + +flush_endpoint() +{ + mptcp_lib_pm_nl_flush_endpoint "${ns1}" +} + +show_endpoints() +{ + mptcp_lib_pm_nl_show_endpoints "${ns1}" +} + +change_endpoint() +{ + mptcp_lib_pm_nl_change_endpoint "${ns1}" "${@}" +} + check() { local cmd=3D"$1" @@ -106,47 +136,47 @@ check() fi } =20 -check "ip netns exec $ns1 ./pm_nl_ctl dump" "" "defaults addr list" +check "show_endpoints" "" "defaults addr list" =20 default_limits=3D"$(get_limits)" if mptcp_lib_expect_all_features; then check "get_limits" "$(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 +add_endpoint 10.0.1.1 +add_endpoint 10.0.1.2 flags subflow dev lo +add_endpoint 10.0.1.3 flags signal,backup check "get_endpoint 1" "$(format_endpoints "1,10.0.1.1")" "simple add/get = addr" =20 -check "ip netns exec $ns1 ./pm_nl_ctl dump" \ +check "show_endpoints" \ "$(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 +del_endpoint 2 check "get_endpoint 2" "" "simple del addr" -check "ip netns exec $ns1 ./pm_nl_ctl dump" \ +check "show_endpoints" \ "$(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 +add_endpoint 10.0.1.3 2>/dev/null check "get_endpoint 4" "" "duplicate addr" =20 -ip netns exec $ns1 ./pm_nl_ctl add 10.0.1.4 flags signal +add_endpoint 10.0.1.4 flags signal check "get_endpoint 4" "$(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 + add_endpoint "10.0.1.${i}" flags signal >/dev/null 2>&1 done check "get_endpoint 9" "$(format_endpoints "9,10.0.1.9,signal")" "hard add= r limit" check "get_endpoint 10" "" "above hard addr limit" =20 -ip netns exec $ns1 ./pm_nl_ctl del 9 +del_endpoint 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 + add_endpoint 10.0.0.9 id "${i}" + del_endpoint "${i}" done -check "ip netns exec $ns1 ./pm_nl_ctl dump" \ +check "show_endpoints" \ "$(format_endpoints "1,10.0.1.1" \ "3,10.0.1.3,signal backup" \ "4,10.0.1.4,signal" \ @@ -155,28 +185,28 @@ check "ip netns exec $ns1 ./pm_nl_ctl dump" \ "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" +flush_endpoint +check "show_endpoints" "" "flush addrs" =20 -ip netns exec $ns1 ./pm_nl_ctl limits 9 1 2>/dev/null +set_limits 9 1 2>/dev/null check "get_limits" "${default_limits}" "rcv addrs above hard limit" =20 -ip netns exec $ns1 ./pm_nl_ctl limits 1 9 2>/dev/null +set_limits 1 9 2>/dev/null check "get_limits" "${default_limits}" "subflows above hard limit" =20 -ip netns exec $ns1 ./pm_nl_ctl limits 8 8 +set_limits 8 8 check "get_limits" "$(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" \ +flush_endpoint +add_endpoint 10.0.1.1 +add_endpoint 10.0.1.2 +add_endpoint 10.0.1.3 id 100 +add_endpoint 10.0.1.4 +add_endpoint 10.0.1.5 id 254 +add_endpoint 10.0.1.6 +add_endpoint 10.0.1.7 +add_endpoint 10.0.1.8 +check "show_endpoints" \ "$(format_endpoints "1,10.0.1.1" \ "2,10.0.1.2" \ "3,10.0.1.7" \ @@ -186,16 +216,16 @@ check "ip netns exec $ns1 ./pm_nl_ctl dump" \ "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 -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" \ +flush_endpoint +add_endpoint 10.0.0.1 +add_endpoint 10.0.0.2 id 254 +add_endpoint 10.0.0.3 +add_endpoint 10.0.0.4 +add_endpoint 10.0.0.5 id 253 +add_endpoint 10.0.0.6 +add_endpoint 10.0.0.7 +add_endpoint 10.0.0.8 +check "show_endpoints" \ "$(format_endpoints "1,10.0.0.1" \ "2,10.0.0.4" \ "3,10.0.0.6" \ @@ -205,28 +235,26 @@ check "ip netns exec $ns1 ./pm_nl_ctl dump" \ "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 +flush_endpoint +add_endpoint 10.0.1.1 flags subflow change_address 10.0.1.1 backup -check "ip netns exec $ns1 ./pm_nl_ctl dump" "$(format_endpoints "1,10.0.1.= 1,subflow backup")" \ +check "show_endpoints" "$(format_endpoints "1,10.0.1.1,subflow backup")" \ "set flags (backup)" change_address 10.0.1.1 nobackup -check "ip netns exec $ns1 ./pm_nl_ctl dump" "$(format_endpoints "1,10.0.1.= 1,subflow")" \ +check "show_endpoints" "$(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" || +change_endpoint 1 fullmesh 2>/dev/null +if show_endpoints | grep -q "fullmesh" || mptcp_lib_expect_all_features; then - check "ip netns exec $ns1 ./pm_nl_ctl dump" \ - "$(format_endpoints "1,10.0.1.1,subflow fullmesh")" \ + check "show_endpoints" "$(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" "$(format_endpoints "1,10.0.1= .1,subflow")" \ + change_endpoint 1 nofullmesh + check "show_endpoints" "$(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" \ - "$(format_endpoints "1,10.0.1.1,subflow backup fullmesh")" \ + change_endpoint 1 backup,fullmesh + check "show_endpoints" "$(format_endpoints "1,10.0.1.1,subflow backup ful= lmesh")" \ " (backup,fullmesh)" else for st in fullmesh nofullmesh backup,fullmesh; do diff --git a/tools/testing/selftests/net/mptcp/simult_flows.sh b/tools/test= ing/selftests/net/mptcp/simult_flows.sh index e129fcb5a598..acc49fa652a2 100755 --- a/tools/testing/selftests/net/mptcp/simult_flows.sh +++ b/tools/testing/selftests/net/mptcp/simult_flows.sh @@ -85,8 +85,8 @@ 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 - ip netns exec "$ns1" ./pm_nl_ctl add 10.0.2.1 dev ns1eth2 flags subflow + mptcp_lib_pm_nl_set_limits "${ns1}" 1 1 + 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 @@ -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 Tue May 14 13:00:49 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 5551B50A73 for ; Tue, 19 Mar 2024 07:16:36 +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=1710832596; cv=none; b=E9sRqFmuRohzZGaMFM0YdT65u9gB8RLCxFzi50pIfeZ5saf0FEhaGxgtHi3E8Kq93h4fORO+GU8jSo3/zZa1rgOWMXlMvw1jJFSNdqkgn3hb51yliOyTmDsluOegS6+EYvIEGqWoP/4UQU6WXZ43y98VIP6M6YSbrv9dUFp13Rc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1710832596; c=relaxed/simple; bh=B1xC2MwNl6pjqglDQrdOpZKw860weyNFCTwgKDnepw0=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=OH+lOw3CTQufSNpd3QxVCuOau7hyhlOHfrAIgW9ojAdYbgvVDIOl8OZdSPRQVxA+qSvbGMvdZW+TbJSWf4aVQ3F/3fTfeTb64EwG8Yn2iZP4BbpD1Wa4g73uplvKz//lA/ceVhb0HhlCGIzV/vFPHYZr7NLBSPTYuXAw2MzqSSk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=piM9IZbx; 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="piM9IZbx" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 090B1C433F1; Tue, 19 Mar 2024 07:16:34 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1710832596; bh=B1xC2MwNl6pjqglDQrdOpZKw860weyNFCTwgKDnepw0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=piM9IZbxsLzwpa0KnwPhmJIgHjR+Zp3bgJ15E0cKSKrCZAJrLPSsOtN4dYduYUWsm /1dIkwsqAUbnZpYmd1lgkBVBu2WW6+VLiD5eIwLCN7zBiYHDTXxNq1FX+PI0cPZJfy 5o74QVuShXn0Nk1vsToiT6pC7Z4IybZONHfZrkRDW47LeNrzb/Mxdn4rNBtRIJUAzW DCQZIG/StwqD3CWIdkOLfYf3NppY0eQnkIWSot9JR93R2EavLXUf7VU5lYFxNyPATo /pDPV2i0gwXM+yu7ZbmUzV02bH0aG/Fotyvt+e50DgDOrOCx4SPX4ZytOaqz9duMDW MqyOhmBd+qwaA== From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next v4 8/9] selftests: mptcp: ip_mptcp option for more scripts Date: Tue, 19 Mar 2024 15:16:14 +0800 Message-Id: <86866b21e3489cb30c87b333083cd48fc67fedc4.1710832493.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 Reviewed-by: Matthieu Baerts (NGI0) --- .../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 d648383989d2..f48d13081d5c 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 Tue May 14 13:00:49 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 4716350A73 for ; Tue, 19 Mar 2024 07:16:37 +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=1710832598; cv=none; b=uUA5Onssy35+p6thPOl+j/Nhl5cWamsDm0l5Hpj+YP0zrZHdnlkuQfiXTuzgBFegcKWhadthEUnVkP2lfxuWD3GLfjuPIXLZEY7wsxxbN6NhrHziAZveXiKvjp0a8p3moa+v7Um8D8qKRkmfqq+l322JSrcxFqskftHGHH72XQg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1710832598; c=relaxed/simple; bh=wOYdHstZBlRDixFbeYm+z2hxCkdiKiWzlQjPp4d9v7I=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=u3qMrPKdmD+z9mTR05TBht9Yb7wb+UIudisZbkb+tHXGEig4YFm+oevmkf2hl25u49yCBKNAJb4tfyM9NJ2wwJBBdD+JRxsyhEsNUNrp6vQidpM7oiCCVmAN071WoNncrHkVpzElUOI46xT7PCGa9O3d2aVyjD1CCJRMjTE58UY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=f7a9Wn5/; 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="f7a9Wn5/" Received: by smtp.kernel.org (Postfix) with ESMTPSA id BDEBFC43399; Tue, 19 Mar 2024 07:16:36 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1710832597; bh=wOYdHstZBlRDixFbeYm+z2hxCkdiKiWzlQjPp4d9v7I=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=f7a9Wn5/D5chX9bsJ/KMj6Agymbe6+ThZRrVyBv+jIPDYsvkw+1+8YegzgPl6eWQm JBVE3wzozETN2F51tZ1QxJJ8BLhnFgU4H2I/kEUJPApAETFrwD5eysOGsp95E+Zck3 AVqqIow9YzQcE5baM8QeVqUeJPm8xxCp77e/S9IZo7Szx4jiZELhX/OCAVEHlBVVzK MLUWRyqsdkywV8fDM3H8Kw8o1kI7MZf3O1VCwIMMa/xc4/ctrvDzS4FVyonRFiLwu6 oJP+ZrPWz2x40y1i3sWOiIRCZtgOAajGPG98p5UO1IDDHEcHdHsa6JYjcPxN7hhX2w fiqI79VGypnpQ== From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next v4 9/9] selftests: mptcp: netlink: drop disable=SC2086 Date: Tue, 19 Mar 2024 15:16:15 +0800 Message-Id: <36d66268a21905af662a8e9be80e2785c2ee340f.1710832493.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 Reviewed-by: Matthieu Baerts (NGI0) --- 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 f48d13081d5c..155847c720cf 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