From nobody Mon Apr 29 02:00:07 2024 Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05on2066.outbound.protection.outlook.com [40.107.22.66]) (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 9D01AEA4 for ; Wed, 31 May 2023 00:53:27 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=C1CAO6fgn+tanrLN6xUa8WeFUIO0KlmJSx+iz783So6tqPnLtnBDqvfMt8i7E1I4psJLW4GiEYgr9BR73vq9Qj/QACYDBVvmbYcDBaOBJpatAj5vLPu/KYupDjISYGUGQJhxK0ehTCL9UdR4Tep6Qnm7nFFAfCLVR4elF1A3/SD5ZaUq23y/VK/SXKzMgj33UGQDO6SpErm9BVQR8LyB3kqXXdWqzztIsXbeUyBs1exOyBGyexaUsE/h94UbtIMmKr6jL5u83HpjmOLHO0yLUxHCVUh/1spDZUcxwdZ6gecR/1asPu0euykHSOZua+uUrtqD2Lm68W+bz7XthZX1IQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=N5Yf8LUmFRPjdvu9VSJ6NwQitFke6FSDP6AXAFtLfSA=; b=nNY8CFL3ppIlVZh4VYPO+grMwJ3f53fUzuk1zwxSwU4BoqMPIeuMol4KEg6ujc4laJZa/iQjmwfBog7U8ujLn6R54zEZgWijMRbA/2bZoAlLfW8AoVz3/m+eKX4C15LtWfqonQ0K6HgL9T1ycXmbfMoX8wvKkGicdO8GyeSBrY2vbFb+szFiGEUvAh1RiWikN5pjY11sBHhrCVM24cTei5ddmrQglYj4Y9movexBYunK1i3Gql9BzkSIrC3NM5XoUrMpEuerD9Z0O2LTSYumVdvTvVIlElcowXlSPl/wm+VzzeUyxYY7Ax+qVIeeUCnoHSl3dKYFsik4nGWzwe7xrQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com; dkim=pass header.d=suse.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=N5Yf8LUmFRPjdvu9VSJ6NwQitFke6FSDP6AXAFtLfSA=; b=RvSDjKQ+F1NctD96+IJqYNZeKqV/vdyeEgx6G6silTSz3YewmKaT16hQ+Zxyu53w/GHRRpHbypp0FePN0NYFknGrBxBvSu7lg4H0Mo08jQNMJlZFgtXY6N7dwmmtncteExvA1HV3eJWuP/PCdGum4vh/RqZIIgMlA0377VQw6zPfBLC7GJgrwOvrhfjOgGs4A5PgqPO7OaqO686Wu+3D0mf2h2sT8haC1lC1rZL2mbgYj52ZDN3YGWPjhMThNRKD4qBsGNmY/NEeXqbAnRGkwREMdgJzplT0a/X4qzc6cq4N95rl2gXUOBDDY/xV9JCTKPwo81f5MxQaGtPcxHGgMw== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com; Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com (2603:10a6:7:83::14) by DB8PR04MB7163.eurprd04.prod.outlook.com (2603:10a6:10:fe::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6433.23; Wed, 31 May 2023 00:53:23 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::423a:a30f:5342:9d35]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::423a:a30f:5342:9d35%6]) with mapi id 15.20.6433.022; Wed, 31 May 2023 00:53:23 +0000 From: Geliang Tang To: mptcp@lists.linux.dev Cc: Matthieu Baerts Subject: [PATCH mptcp-next v14 1/7] selftests: mptcp: skip tests when features are not supported Date: Wed, 31 May 2023 08:52:58 +0800 Message-Id: X-Mailer: git-send-email 2.35.3 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SGAP274CA0010.SGPP274.PROD.OUTLOOK.COM (2603:1096:4:b6::22) To HE1PR0402MB3497.eurprd04.prod.outlook.com (2603:10a6:7:83::14) Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: HE1PR0402MB3497:EE_|DB8PR04MB7163:EE_ X-MS-Office365-Filtering-Correlation-Id: afe0265a-3b1b-4a75-9f02-08db61716f5e X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: djrUqLOT1w9IGvkGknbAQhgE+VakHhZEvgE+p972aLz8GVDdDlIw2/20seAG59g91IzNnpKFEIk9yNJtoeqEuv2XKeQVQxGTVAfkCxkF0FHMaI4KCKF+8zD3Q0/OxxN+nJdRkdcPycgVjlnSMzOfra8+KVfDVreQFA+KhjP6gQ0V79gCD4Z8DtzDTzRtPW4JegfsXD0aos3HNepo+c9NoLvyTdpLG+S16y//3Vf4oqZ9jBNV3LWWl1p4MiGWmvsSo2mQi/3OAFBYcXvJLN+2XwY6w6WXT1V5ptn0xWyCHiNoLfc6FF2WCgDcyX93p8jDpeWW64Bhlob+xHX9lRY//Mi9y+OqY8m7maysxC5zWC94wxpvvIsn7kCW65RqhV1f7xdUNtmHgRYv9lNMvyWcF6OiMaCEZGviVvm/Zzx89X82RkhCHEX5rf5XTcUY2xHigeFGaDriKBOzDYzVCT6bY1mEGnzLyXT++xqSG7K9kJy3S8D9KBKcHwEmo58Vbv+GSEqBJwbE9XY7oUjZqoIq4GIpWXpKTRCjvzF/v9dGzxacAmx9taGxilXULmgkVPKW X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:HE1PR0402MB3497.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(346002)(39860400002)(366004)(136003)(396003)(376002)(451199021)(478600001)(8676002)(30864003)(44832011)(8936002)(5660300002)(86362001)(36756003)(2906002)(66476007)(4326008)(6916009)(66556008)(66946007)(316002)(38100700002)(41300700001)(2616005)(186003)(6506007)(26005)(6486002)(6666004)(6512007)(83380400001)(579004)(559001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?wke87GhOYhfPUI3Mhi5SuMY446S2xbhaIOd9xvgNCIYSIvgZGseIdbdHjt4m?= =?us-ascii?Q?4VqZfDe6WO5dwiUeMX1oDaruakSthEsi/qpMDO8VQUbhbcD1MFkzVPXzsDfv?= =?us-ascii?Q?rHkWXdPpwjQnkqlU5rts6q74J75HAJGVBDzixid7sd9tveIdXFKMMkjt9pFi?= =?us-ascii?Q?UKWjBj+T5WailSkoYtiIg6AlxzUUtQTi50r/HcjOlZvMCPzk7NBsm1/MWO6T?= =?us-ascii?Q?bD10kUkyI1fy6eC/y4i8H3Nc/kCTen6/MUs3JO7uUhlO/fws56h/3X+HzAQh?= =?us-ascii?Q?+jG+ZdpP0XWgO0q2YgBcRW3E0lnDaAayc9FtYoRJB5qAWaDbS25Lv5Ql8Q9H?= =?us-ascii?Q?kwUXaKF77vnsIrP5axjpExU4pS7aCyrk2uK39YHUd00ncBPCq49m2HZAFi6d?= =?us-ascii?Q?Co/EteFUvqLLcmoFq47iUzPmSk0n53YOoC0P9DWYiVdcbSZf4j0ZoySZspYI?= =?us-ascii?Q?+zAlKm8TtienhuLTe2aUOJLu2gxSLW6jMqMLaef6dJh+CLi0xLk/t2GTTb8E?= =?us-ascii?Q?QHmdGEm3opurtqoK+hwmGVrT/jn8MWBrJYCpAkPox6ryanb6d4QooWkHdK2n?= =?us-ascii?Q?4VdAg3nWLEck7pFRaODHvUmOoKBRQC/L35HMjuIRoMCG4vtVD8xUDKHQADN7?= =?us-ascii?Q?CJQbzFRD2689UUM1Z4RZGeDDJsNjj8raAPJHpW27twV+omhDb8eQgsyGm0K2?= =?us-ascii?Q?oxMg4P7x6fdSw48RJc/uR4UyfvrnMu2+jteQ/kOM0XC1tNuZIwCOQGK3i45q?= =?us-ascii?Q?pTObZqB/gQz5k4bfwzkn0JazZVEazdrvZZSZXpVqlcVUuoDfJi4LyyH6sccW?= =?us-ascii?Q?dt58tgRMhd7Rm+JMi+FAItT9+Dzt7V+tKqv2YeHehA3xi6vCzmLxy3ac2bST?= =?us-ascii?Q?TqUe1tnzvaPVOWvWtb1y52aQ9P2dWagoAqWqYJfYSnUhhVxjnu+bj0fdCrmG?= =?us-ascii?Q?Sj7VG2b/Ovi3VDA6kda8V26wm9nc8DAvAQ3EJ1jiOe+LqISlmxPj8EHRDB0x?= =?us-ascii?Q?2uk2GoLx8AMiIGGUwGmKYtjyvlfYeJqjuPXWa5zlEgipTsZkbqWFPbsT3/RZ?= =?us-ascii?Q?b7FAQgLkpPnYmlPZ+xpSf1mjWSKHADlDjVRV9Yy3E2zMgM2CrR8wmorsPAFn?= =?us-ascii?Q?MKH7ZoC4+BrtfbgHWRYp1+pQLTDgaHyi58LhKD+jKAh3ar9qLwvgQY9RH7k8?= =?us-ascii?Q?WFxu2uHh0DqjAtv9LUcp1QmjaXQeJR8MMQVg/uYRQyJk1D/ctCOvBaRmvRAN?= =?us-ascii?Q?98VBAFp8Zx502b6c5VT245OclQG6b4Covrn6cuQJCSAljOyBjFpwrvnywUH5?= =?us-ascii?Q?iBlsxo0ryjeje2lRVDvyCkpA20/8Ks6z7iSu5xlN32IkvPgxPjT5+TwGK4Jc?= =?us-ascii?Q?yA9L6p73hTSoNcGO5HDR/4EaFKI0VmlJ5ESr/ITSSV4uSJkSAaZnBARz8Pt6?= =?us-ascii?Q?zHceKJZ99Saai4iErhfS15XJtrkrtlwbaCMYOB3OivRvzm/UJ6bXu6qcqlE5?= =?us-ascii?Q?mHXiXyYXnJ8nPfPHLTgkpFKldFV3gDhaXy9e9qrnnGaJjbCo+bs0u1P1HxHS?= =?us-ascii?Q?Urk5DyL3ChUb6B0mTV064jjhIpx9/AlFOue66BTT?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: afe0265a-3b1b-4a75-9f02-08db61716f5e X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 May 2023 00:53:23.5064 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: Ng1Gn3js37FqHTgKIEVF5WmfCa3BGKweaIsdEk1XWkoiFeKhoh0Hhkhzk8nBJyhUydh+PH2eaV7XciTFwKg6Uw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB8PR04MB7163 Content-Type: text/plain; charset="utf-8" From: Matthieu Baerts v2, patches 8-37 Signed-off-by: Matthieu Baerts --- tools/testing/selftests/net/mptcp/config | 1 + tools/testing/selftests/net/mptcp/diag.sh | 42 +- .../selftests/net/mptcp/mptcp_connect.sh | 20 + .../testing/selftests/net/mptcp/mptcp_join.sh | 506 +++++++++++------- .../testing/selftests/net/mptcp/mptcp_lib.sh | 59 ++ .../selftests/net/mptcp/mptcp_sockopt.c | 12 +- .../selftests/net/mptcp/mptcp_sockopt.sh | 20 +- .../testing/selftests/net/mptcp/pm_netlink.sh | 27 +- .../selftests/net/mptcp/userspace_pm.sh | 13 +- 9 files changed, 477 insertions(+), 223 deletions(-) diff --git a/tools/testing/selftests/net/mptcp/config b/tools/testing/selft= ests/net/mptcp/config index 38021a0dd527..6032f9b23c4c 100644 --- a/tools/testing/selftests/net/mptcp/config +++ b/tools/testing/selftests/net/mptcp/config @@ -1,3 +1,4 @@ +CONFIG_KALLSYMS=3Dy CONFIG_MPTCP=3Dy CONFIG_IPV6=3Dy CONFIG_MPTCP_IPV6=3Dy diff --git a/tools/testing/selftests/net/mptcp/diag.sh b/tools/testing/self= tests/net/mptcp/diag.sh index 4eacdb1ab962..fa9e09ad97d9 100755 --- a/tools/testing/selftests/net/mptcp/diag.sh +++ b/tools/testing/selftests/net/mptcp/diag.sh @@ -55,16 +55,20 @@ __chk_nr() { local command=3D"$1" local expected=3D$2 - local msg nr + local msg=3D"$3" + local skip=3D"${4:-SKIP}" + local nr =20 - shift 2 - msg=3D$* nr=3D$(eval $command) =20 printf "%-50s" "$msg" if [ $nr !=3D $expected ]; then - echo "[ fail ] expected $expected found $nr" - ret=3D$test_cnt + if [ $nr =3D "$skip" ] && ! mptcp_lib_expect_all_features; then + echo "[ skip ] Feature probably not supported" + else + echo "[ fail ] expected $expected found $nr" + ret=3D$test_cnt + fi else echo "[ ok ]" fi @@ -76,12 +80,12 @@ __chk_msk_nr() local condition=3D$1 shift 1 =20 - __chk_nr "ss -inmHMN $ns | $condition" $* + __chk_nr "ss -inmHMN $ns | $condition" "$@" } =20 chk_msk_nr() { - __chk_msk_nr "grep -c token:" $* + __chk_msk_nr "grep -c token:" "$@" } =20 wait_msk_nr() @@ -119,37 +123,26 @@ wait_msk_nr() =20 chk_msk_fallback_nr() { - __chk_msk_nr "grep -c fallback" $* + __chk_msk_nr "grep -c fallback" "$@" } =20 chk_msk_remote_key_nr() { - __chk_msk_nr "grep -c remote_key" $* + __chk_msk_nr "grep -c remote_key" "$@" } =20 __chk_listen() { local filter=3D"$1" local expected=3D$2 + local msg=3D"$3" =20 - shift 2 - msg=3D$* - - nr=3D$(ss -N $ns -Ml "$filter" | grep -c LISTEN) - printf "%-50s" "$msg" - - if [ $nr !=3D $expected ]; then - echo "[ fail ] expected $expected found $nr" - ret=3D$test_cnt - else - echo "[ ok ]" - fi + __chk_nr "ss -N $ns -Ml '$filter' | grep -c LISTEN" "$expected" "$msg" 0 } =20 chk_msk_listen() { lport=3D$1 - local msg=3D"check for listen socket" =20 # destination port search should always return empty list __chk_listen "dport $lport" 0 "listen match for dport $lport" @@ -167,10 +160,9 @@ chk_msk_listen() chk_msk_inuse() { local expected=3D$1 + local msg=3D"$2" local listen_nr =20 - shift 1 - listen_nr=3D$(ss -N "${ns}" -Ml | grep -c LISTEN) expected=3D$((expected + listen_nr)) =20 @@ -181,7 +173,7 @@ chk_msk_inuse() sleep 0.1 done =20 - __chk_nr get_msk_inuse $expected $* + __chk_nr get_msk_inuse $expected "$msg" 0 } =20 # $1: ns, $2: port diff --git a/tools/testing/selftests/net/mptcp/mptcp_connect.sh b/tools/tes= ting/selftests/net/mptcp/mptcp_connect.sh index c1f7bac19942..9cebe0252b78 100755 --- a/tools/testing/selftests/net/mptcp/mptcp_connect.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_connect.sh @@ -144,6 +144,7 @@ cleanup() } =20 mptcp_lib_check_mptcp +mptcp_lib_check_kallsyms =20 ip -Version > /dev/null 2>&1 if [ $? -ne 0 ];then @@ -695,6 +696,15 @@ run_test_transparent() return 0 fi =20 + # IP(V6)_TRANSPARENT has been added after TOS support which came with + # the required infrastructure in MPTCP sockopt code. To support TOS, the + # following function has been exported (T). Not great but better than + # checking for a specific kernel version. + if ! mptcp_lib_kallsyms_has "T __ip_sock_set_tos$"; then + echo "INFO: TFO not supported by the kernel: SKIP" + return + fi + ip netns exec "$listener_ns" nft -f /dev/stdin <<"EOF" flush ruleset table inet mangle { @@ -767,6 +777,11 @@ run_tests_peekmode() =20 run_tests_mptfo() { + if ! mptcp_lib_kallsyms_has "mptcp_fastopen_"; then + echo "INFO: TFO not supported by the kernel: SKIP" + return + fi + echo "INFO: with MPTFO start" ip netns exec "$ns1" sysctl -q net.ipv4.tcp_fastopen=3D2 ip netns exec "$ns2" sysctl -q net.ipv4.tcp_fastopen=3D1 @@ -787,6 +802,11 @@ run_tests_disconnect() local old_cin=3D$cin local old_sin=3D$sin =20 + if ! mptcp_lib_kallsyms_has "mptcp_pm_data_reset$"; then + echo "INFO: Full disconnect not supported: SKIP" + return + fi + cat $cin $cin $cin > "$cin".disconnect =20 # force do_transfer to cope with the multiple tranmissions diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testin= g/selftests/net/mptcp/mptcp_join.sh index 85474e029784..b4a2c2388d2f 100755 --- a/tools/testing/selftests/net/mptcp/mptcp_join.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh @@ -25,6 +25,8 @@ capout=3D"" ns1=3D"" ns2=3D"" ksft_skip=3D4 +iptables=3D"iptables" +ip6tables=3D"ip6tables" timeout_poll=3D30 timeout_test=3D$((timeout_poll * 2 + 1)) capture=3D0 @@ -83,7 +85,7 @@ init_partial() ip netns add $netns || exit $ksft_skip ip -net $netns link set lo up ip netns exec $netns sysctl -q net.mptcp.enabled=3D1 - ip netns exec $netns sysctl -q net.mptcp.pm_type=3D0 + ip netns exec $netns sysctl -q net.mptcp.pm_type=3D0 2>/dev/null || true ip netns exec $netns sysctl -q net.ipv4.conf.all.rp_filter=3D0 ip netns exec $netns sysctl -q net.ipv4.conf.default.rp_filter=3D0 if [ $checksum -eq 1 ]; then @@ -142,13 +144,18 @@ cleanup_partial() check_tools() { mptcp_lib_check_mptcp + mptcp_lib_check_kallsyms =20 if ! ip -Version &> /dev/null; then echo "SKIP: Could not run test without ip tool" exit $ksft_skip fi =20 - if ! iptables -V &> /dev/null; then + # Use the legacy version if available to support old kernel versions + if iptables-legacy -V &> /dev/null; then + iptables=3D"iptables-legacy" + ip6tables=3D"ip6tables-legacy" + elif ! iptables -V &> /dev/null; then echo "SKIP: Could not run all tests without iptables tool" exit $ksft_skip fi @@ -187,6 +194,32 @@ cleanup() cleanup_partial } =20 +# $1: msg +print_title() +{ + printf "%03u %-36s %s" "${TEST_COUNT}" "${TEST_NAME}" "${1}" +} + +# [ $1: fail msg ] +mark_as_skipped() +{ + local msg=3D"${1:-"Feature not supported"}" + + mptcp_lib_fail_if_expected_feature "${msg}" + + print_title "[ skip ] ${msg}" + printf "\n" +} + +# $@: condition +continue_if() +{ + if ! "${@}"; then + mark_as_skipped + return 1 + fi +} + skip_test() { if [ "${#only_tests_ids[@]}" -eq 0 ] && [ "${#only_tests_names[@]}" -eq 0= ]; then @@ -230,6 +263,19 @@ reset() return 0 } =20 +# $1: test name ; $2: counter to check +reset_check_counter() +{ + reset "${1}" || return 1 + + local counter=3D"${2}" + + if ! nstat -asz "${counter}" | grep -wq "${counter}"; then + mark_as_skipped "counter '${counter}' is not available" + return 1 + fi +} + # $1: test name reset_with_cookies() { @@ -249,17 +295,21 @@ reset_with_add_addr_timeout() =20 reset "${1}" || return 1 =20 - tables=3D"iptables" + tables=3D"${iptables}" if [ $ip -eq 6 ]; then - tables=3D"ip6tables" + tables=3D"${ip6tables}" fi =20 ip netns exec $ns1 sysctl -q net.mptcp.add_addr_timeout=3D1 - ip netns exec $ns2 $tables -A OUTPUT -p tcp \ - -m tcp --tcp-option 30 \ - -m bpf --bytecode \ - "$CBPF_MPTCP_SUBOPTION_ADD_ADDR" \ - -j DROP + + if ! ip netns exec $ns2 $tables -A OUTPUT -p tcp \ + -m tcp --tcp-option 30 \ + -m bpf --bytecode \ + "$CBPF_MPTCP_SUBOPTION_ADD_ADDR" \ + -j DROP; then + mark_as_skipped "unable to set the 'add addr' rule" + return 1 + fi } =20 # $1: test name @@ -303,22 +353,17 @@ reset_with_allow_join_id0() # tc action pedit offset 162 out of bounds # # Netfilter is used to mark packets with enough data. -reset_with_fail() +setup_fail_rules() { - reset "${1}" || return 1 - - ip netns exec $ns1 sysctl -q net.mptcp.checksum_enabled=3D1 - ip netns exec $ns2 sysctl -q net.mptcp.checksum_enabled=3D1 - check_invert=3D1 validate_checksum=3D1 - local i=3D"$2" - local ip=3D"${3:-4}" + local i=3D"$1" + local ip=3D"${2:-4}" local tables =20 - tables=3D"iptables" + tables=3D"${iptables}" if [ $ip -eq 6 ]; then - tables=3D"ip6tables" + tables=3D"${ip6tables}" fi =20 ip netns exec $ns2 $tables \ @@ -328,15 +373,32 @@ reset_with_fail() -p tcp \ -m length --length 150:9999 \ -m statistic --mode nth --packet 1 --every 99999 \ - -j MARK --set-mark 42 || exit 1 + -j MARK --set-mark 42 || return ${ksft_skip} =20 - tc -n $ns2 qdisc add dev ns2eth$i clsact || exit 1 + tc -n $ns2 qdisc add dev ns2eth$i clsact || return ${ksft_skip} tc -n $ns2 filter add dev ns2eth$i egress \ protocol ip prio 1000 \ handle 42 fw \ action pedit munge offset 148 u8 invert \ pipe csum tcp \ - index 100 || exit 1 + index 100 || return ${ksft_skip} +} + +reset_with_fail() +{ + reset_check_counter "${1}" "MPTcpExtInfiniteMapTx" || return 1 + shift + + ip netns exec $ns1 sysctl -q net.mptcp.checksum_enabled=3D1 + ip netns exec $ns2 sysctl -q net.mptcp.checksum_enabled=3D1 + + local rc=3D0 + setup_fail_rules "${@}" || rc=3D$? + + if [ ${rc} -eq ${ksft_skip} ]; then + mark_as_skipped "unable to set the 'fail' rules" + return 1 + fi } =20 reset_with_events() @@ -351,6 +413,25 @@ reset_with_events() evts_ns2_pid=3D$! } =20 +reset_with_tcp_filter() +{ + reset "${1}" || return 1 + shift + + local ns=3D"${!1}" + local src=3D"${2}" + local target=3D"${3}" + + if ! ip netns exec "${ns}" ${iptables} \ + -A INPUT \ + -s "${src}" \ + -p tcp \ + -j "${target}"; then + mark_as_skipped "unable to set the filter rules" + return 1 + fi +} + fail_test() { ret=3D1 @@ -472,11 +553,25 @@ wait_local_port_listen() done } =20 -rm_addr_count() +# $1: ns ; $2: counter +get_counter() { - local ns=3D${1} + local ns=3D"${1}" + local counter=3D"${2}" + local count + + count=3D$(ip netns exec ${ns} nstat -asz "${counter}" | awk 'NR=3D=3D1 {n= ext} {print $2}') + if [ -z "${count}" ]; then + mptcp_lib_fail_if_expected_feature "${counter} counter" + return 1 + fi + + echo "${count}" +} =20 - ip netns exec ${ns} nstat -as | grep MPTcpExtRmAddr | awk '{print $2}' +rm_addr_count() +{ + get_counter "${1}" "MPTcpExtRmAddr" } =20 # $1: ns, $2: old rm_addr counter in $ns @@ -499,11 +594,11 @@ wait_mpj() local ns=3D"${1}" local cnt old_cnt =20 - old_cnt=3D$(ip netns exec ${ns} nstat -as | grep MPJoinAckRx | awk '{prin= t $2}') + old_cnt=3D$(get_counter ${ns} "MPTcpExtMPJoinAckRx") =20 local i for i in $(seq 10); do - cnt=3D$(ip netns exec ${ns} nstat -as | grep MPJoinAckRx | awk '{print $= 2}') + cnt=3D$(get_counter ${ns} "MPTcpExtMPJoinAckRx") [ "$cnt" =3D "${old_cnt}" ] || break sleep 0.1 done @@ -703,15 +798,6 @@ pm_nl_check_endpoint() fi } =20 -filter_tcp_from() -{ - local ns=3D"${1}" - local src=3D"${2}" - local target=3D"${3}" - - ip netns exec "${ns}" iptables -A INPUT -s "${src}" -p tcp -j "${target}" -} - do_transfer() { local listener_ns=3D"$1" @@ -1161,12 +1247,13 @@ chk_csum_nr() fi =20 printf "%-${nr_blank}s %s" " " "sum" - count=3D$(ip netns exec $ns1 nstat -as | grep MPTcpExtDataCsumErr | awk '= {print $2}') - [ -z "$count" ] && count=3D0 + count=3D$(get_counter ${ns1} "MPTcpExtDataCsumErr") if [ "$count" !=3D "$csum_ns1" ]; then extra_msg=3D"$extra_msg ns1=3D$count" fi - if { [ "$count" !=3D $csum_ns1 ] && [ $allow_multi_errors_ns1 -eq 0 ]; } = || + if [ -z "$count" ]; then + echo -n "[skip]" + elif { [ "$count" !=3D $csum_ns1 ] && [ $allow_multi_errors_ns1 -eq 0 ]; = } || { [ "$count" -lt $csum_ns1 ] && [ $allow_multi_errors_ns1 -eq 1 ]; }; = then echo "[fail] got $count data checksum error[s] expected $csum_ns1" fail_test @@ -1174,12 +1261,13 @@ chk_csum_nr() echo -n "[ ok ]" fi echo -n " - csum " - count=3D$(ip netns exec $ns2 nstat -as | grep MPTcpExtDataCsumErr | awk '= {print $2}') - [ -z "$count" ] && count=3D0 + count=3D$(get_counter ${ns2} "MPTcpExtDataCsumErr") if [ "$count" !=3D "$csum_ns2" ]; then extra_msg=3D"$extra_msg ns2=3D$count" fi - if { [ "$count" !=3D $csum_ns2 ] && [ $allow_multi_errors_ns2 -eq 0 ]; } = || + if [ -z "$count" ]; then + echo -n "[skip]" + elif { [ "$count" !=3D $csum_ns2 ] && [ $allow_multi_errors_ns2 -eq 0 ]; = } || { [ "$count" -lt $csum_ns2 ] && [ $allow_multi_errors_ns2 -eq 1 ]; }; = then echo "[fail] got $count data checksum error[s] expected $csum_ns2" fail_test @@ -1218,12 +1306,13 @@ chk_fail_nr() fi =20 printf "%-${nr_blank}s %s" " " "ftx" - count=3D$(ip netns exec $ns_tx nstat -as | grep MPTcpExtMPFailTx | awk '{= print $2}') - [ -z "$count" ] && count=3D0 + count=3D$(get_counter ${ns_tx} "MPTcpExtMPFailTx") if [ "$count" !=3D "$fail_tx" ]; then extra_msg=3D"$extra_msg,tx=3D$count" fi - if { [ "$count" !=3D "$fail_tx" ] && [ $allow_tx_lost -eq 0 ]; } || + if [ -z "$count" ]; then + echo -n "[skip]" + elif { [ "$count" !=3D "$fail_tx" ] && [ $allow_tx_lost -eq 0 ]; } || { [ "$count" -gt "$fail_tx" ] && [ $allow_tx_lost -eq 1 ]; }; then echo "[fail] got $count MP_FAIL[s] TX expected $fail_tx" fail_test @@ -1232,12 +1321,13 @@ chk_fail_nr() fi =20 echo -n " - failrx" - count=3D$(ip netns exec $ns_rx nstat -as | grep MPTcpExtMPFailRx | awk '{= print $2}') - [ -z "$count" ] && count=3D0 + count=3D$(get_counter ${ns_rx} "MPTcpExtMPFailRx") if [ "$count" !=3D "$fail_rx" ]; then extra_msg=3D"$extra_msg,rx=3D$count" fi - if { [ "$count" !=3D "$fail_rx" ] && [ $allow_rx_lost -eq 0 ]; } || + if [ -z "$count" ]; then + echo -n "[skip]" + elif { [ "$count" !=3D "$fail_rx" ] && [ $allow_rx_lost -eq 0 ]; } || { [ "$count" -gt "$fail_rx" ] && [ $allow_rx_lost -eq 1 ]; }; then echo "[fail] got $count MP_FAIL[s] RX expected $fail_rx" fail_test @@ -1265,10 +1355,11 @@ chk_fclose_nr() fi =20 printf "%-${nr_blank}s %s" " " "ctx" - count=3D$(ip netns exec $ns_tx nstat -as | grep MPTcpExtMPFastcloseTx | a= wk '{print $2}') - [ -z "$count" ] && count=3D0 - [ "$count" !=3D "$fclose_tx" ] && extra_msg=3D"$extra_msg,tx=3D$count" - if [ "$count" !=3D "$fclose_tx" ]; then + count=3D$(get_counter ${ns_tx} "MPTcpExtMPFastcloseTx") + if [ -z "$count" ]; then + echo -n "[skip]" + elif [ "$count" !=3D "$fclose_tx" ]; then + extra_msg=3D"$extra_msg,tx=3D$count" echo "[fail] got $count MP_FASTCLOSE[s] TX expected $fclose_tx" fail_test else @@ -1276,10 +1367,11 @@ chk_fclose_nr() fi =20 echo -n " - fclzrx" - count=3D$(ip netns exec $ns_rx nstat -as | grep MPTcpExtMPFastcloseRx | a= wk '{print $2}') - [ -z "$count" ] && count=3D0 - [ "$count" !=3D "$fclose_rx" ] && extra_msg=3D"$extra_msg,rx=3D$count" - if [ "$count" !=3D "$fclose_rx" ]; then + count=3D$(get_counter ${ns_rx} "MPTcpExtMPFastcloseRx") + if [ -z "$count" ]; then + echo -n "[skip]" + elif [ "$count" !=3D "$fclose_rx" ]; then + extra_msg=3D"$extra_msg,rx=3D$count" echo "[fail] got $count MP_FASTCLOSE[s] RX expected $fclose_rx" fail_test else @@ -1306,9 +1398,10 @@ chk_rst_nr() fi =20 printf "%-${nr_blank}s %s" " " "rtx" - count=3D$(ip netns exec $ns_tx nstat -as | grep MPTcpExtMPRstTx | awk '{p= rint $2}') - [ -z "$count" ] && count=3D0 - if [ $count -lt $rst_tx ]; then + count=3D$(get_counter ${ns_tx} "MPTcpExtMPRstTx") + if [ -z "$count" ]; then + echo -n "[skip]" + elif [ $count -lt $rst_tx ]; then echo "[fail] got $count MP_RST[s] TX expected $rst_tx" fail_test else @@ -1316,9 +1409,10 @@ chk_rst_nr() fi =20 echo -n " - rstrx " - count=3D$(ip netns exec $ns_rx nstat -as | grep MPTcpExtMPRstRx | awk '{p= rint $2}') - [ -z "$count" ] && count=3D0 - if [ "$count" -lt "$rst_rx" ]; then + count=3D$(get_counter ${ns_rx} "MPTcpExtMPRstRx") + if [ -z "$count" ]; then + echo -n "[skip]" + elif [ "$count" -lt "$rst_rx" ]; then echo "[fail] got $count MP_RST[s] RX expected $rst_rx" fail_test else @@ -1335,9 +1429,10 @@ chk_infi_nr() local count =20 printf "%-${nr_blank}s %s" " " "itx" - count=3D$(ip netns exec $ns2 nstat -as | grep InfiniteMapTx | awk '{print= $2}') - [ -z "$count" ] && count=3D0 - if [ "$count" !=3D "$infi_tx" ]; then + count=3D$(get_counter ${ns2} "MPTcpExtInfiniteMapTx") + if [ -z "$count" ]; then + echo -n "[skip]" + elif [ "$count" !=3D "$infi_tx" ]; then echo "[fail] got $count infinite map[s] TX expected $infi_tx" fail_test else @@ -1345,9 +1440,10 @@ chk_infi_nr() fi =20 echo -n " - infirx" - count=3D$(ip netns exec $ns1 nstat -as | grep InfiniteMapRx | awk '{print= $2}') - [ -z "$count" ] && count=3D0 - if [ "$count" !=3D "$infi_rx" ]; then + count=3D$(get_counter ${ns1} "MPTcpExtInfiniteMapRx") + if [ -z "$count" ]; then + echo "[skip]" + elif [ "$count" !=3D "$infi_rx" ]; then echo "[fail] got $count infinite map[s] RX expected $infi_rx" fail_test else @@ -1375,9 +1471,10 @@ chk_join_nr() fi =20 printf "%03u %-36s %s" "${TEST_COUNT}" "${title}" "syn" - count=3D$(ip netns exec $ns1 nstat -as | grep MPTcpExtMPJoinSynRx | awk '= {print $2}') - [ -z "$count" ] && count=3D0 - if [ "$count" !=3D "$syn_nr" ]; then + count=3D$(get_counter ${ns1} "MPTcpExtMPJoinSynRx") + if [ -z "$count" ]; then + echo -n "[skip]" + elif [ "$count" !=3D "$syn_nr" ]; then echo "[fail] got $count JOIN[s] syn expected $syn_nr" fail_test else @@ -1386,9 +1483,10 @@ chk_join_nr() =20 echo -n " - synack" with_cookie=3D$(ip netns exec $ns2 sysctl -n net.ipv4.tcp_syncookies) - count=3D$(ip netns exec $ns2 nstat -as | grep MPTcpExtMPJoinSynAckRx | aw= k '{print $2}') - [ -z "$count" ] && count=3D0 - if [ "$count" !=3D "$syn_ack_nr" ]; then + count=3D$(get_counter ${ns2} "MPTcpExtMPJoinSynAckRx") + if [ -z "$count" ]; then + echo -n "[skip]" + elif [ "$count" !=3D "$syn_ack_nr" ]; then # simult connections exceeding the limit with cookie enabled could go up= to # synack validation as the conn limit can be enforced reliably only after # the subflow creation @@ -1403,9 +1501,10 @@ chk_join_nr() fi =20 echo -n " - ack" - count=3D$(ip netns exec $ns1 nstat -as | grep MPTcpExtMPJoinAckRx | awk '= {print $2}') - [ -z "$count" ] && count=3D0 - if [ "$count" !=3D "$ack_nr" ]; then + count=3D$(get_counter ${ns1} "MPTcpExtMPJoinAckRx") + if [ -z "$count" ]; then + echo "[skip]" + elif [ "$count" !=3D "$ack_nr" ]; then echo "[fail] got $count JOIN[s] ack expected $ack_nr" fail_test else @@ -1435,12 +1534,12 @@ chk_stale_nr() local recover_nr =20 printf "%-${nr_blank}s %-18s" " " "stale" - stale_nr=3D$(ip netns exec $ns nstat -as | grep MPTcpExtSubflowStale | aw= k '{print $2}') - [ -z "$stale_nr" ] && stale_nr=3D0 - recover_nr=3D$(ip netns exec $ns nstat -as | grep MPTcpExtSubflowRecover = | awk '{print $2}') - [ -z "$recover_nr" ] && recover_nr=3D0 =20 - if [ $stale_nr -lt $stale_min ] || + stale_nr=3D$(get_counter ${ns} "MPTcpExtSubflowStale") + recover_nr=3D$(get_counter ${ns} "MPTcpExtSubflowRecover") + if [ -z "$stale_nr" ] || [ -z "$recover_nr" ]; then + echo "[skip]" + elif [ $stale_nr -lt $stale_min ] || { [ $stale_max -gt 0 ] && [ $stale_nr -gt $stale_max ]; } || [ $((stale_nr - recover_nr)) -ne $stale_delta ]; then echo "[fail] got $stale_nr stale[s] $recover_nr recover[s], " \ @@ -1475,12 +1574,12 @@ chk_add_nr() timeout=3D$(ip netns exec $ns1 sysctl -n net.mptcp.add_addr_timeout) =20 printf "%-${nr_blank}s %s" " " "add" - count=3D$(ip netns exec $ns2 nstat -as MPTcpExtAddAddr | grep MPTcpExtAdd= Addr | awk '{print $2}') - [ -z "$count" ] && count=3D0 - + count=3D$(get_counter ${ns2} "MPTcpExtAddAddr") + if [ -z "$count" ]; then + echo -n "[skip]" # if the test configured a short timeout tolerate greater then expected # add addrs options, due to retransmissions - if [ "$count" !=3D "$add_nr" ] && { [ "$timeout" -gt 1 ] || [ "$count" -l= t "$add_nr" ]; }; then + elif [ "$count" !=3D "$add_nr" ] && { [ "$timeout" -gt 1 ] || [ "$count" = -lt "$add_nr" ]; }; then echo "[fail] got $count ADD_ADDR[s] expected $add_nr" fail_test else @@ -1488,9 +1587,10 @@ chk_add_nr() fi =20 echo -n " - echo " - count=3D$(ip netns exec $ns1 nstat -as MPTcpExtEchoAdd | grep MPTcpExtEch= oAdd | awk '{print $2}') - [ -z "$count" ] && count=3D0 - if [ "$count" !=3D "$echo_nr" ]; then + count=3D$(get_counter ${ns1} "MPTcpExtEchoAdd") + if [ -z "$count" ]; then + echo -n "[skip]" + elif [ "$count" !=3D "$echo_nr" ]; then echo "[fail] got $count ADD_ADDR echo[s] expected $echo_nr" fail_test else @@ -1499,9 +1599,10 @@ chk_add_nr() =20 if [ $port_nr -gt 0 ]; then echo -n " - pt " - count=3D$(ip netns exec $ns2 nstat -as | grep MPTcpExtPortAdd | awk '{pr= int $2}') - [ -z "$count" ] && count=3D0 - if [ "$count" !=3D "$port_nr" ]; then + count=3D$(get_counter ${ns2} "MPTcpExtPortAdd") + if [ -z "$count" ]; then + echo "[skip]" + elif [ "$count" !=3D "$port_nr" ]; then echo "[fail] got $count ADD_ADDR[s] with a port-number expected $port_n= r" fail_test else @@ -1509,10 +1610,10 @@ chk_add_nr() fi =20 printf "%-${nr_blank}s %s" " " "syn" - count=3D$(ip netns exec $ns1 nstat -as | grep MPTcpExtMPJoinPortSynRx | - awk '{print $2}') - [ -z "$count" ] && count=3D0 - if [ "$count" !=3D "$syn_nr" ]; then + count=3D$(get_counter ${ns1} "MPTcpExtMPJoinPortSynRx") + if [ -z "$count" ]; then + echo -n "[skip]" + elif [ "$count" !=3D "$syn_nr" ]; then echo "[fail] got $count JOIN[s] syn with a different \ port-number expected $syn_nr" fail_test @@ -1521,10 +1622,10 @@ chk_add_nr() fi =20 echo -n " - synack" - count=3D$(ip netns exec $ns2 nstat -as | grep MPTcpExtMPJoinPortSynAckRx= | - awk '{print $2}') - [ -z "$count" ] && count=3D0 - if [ "$count" !=3D "$syn_ack_nr" ]; then + count=3D$(get_counter ${ns2} "MPTcpExtMPJoinPortSynAckRx") + if [ -z "$count" ]; then + echo -n "[skip]" + elif [ "$count" !=3D "$syn_ack_nr" ]; then echo "[fail] got $count JOIN[s] synack with a different \ port-number expected $syn_ack_nr" fail_test @@ -1533,10 +1634,10 @@ chk_add_nr() fi =20 echo -n " - ack" - count=3D$(ip netns exec $ns1 nstat -as | grep MPTcpExtMPJoinPortAckRx | - awk '{print $2}') - [ -z "$count" ] && count=3D0 - if [ "$count" !=3D "$ack_nr" ]; then + count=3D$(get_counter ${ns1} "MPTcpExtMPJoinPortAckRx") + if [ -z "$count" ]; then + echo "[skip]" + elif [ "$count" !=3D "$ack_nr" ]; then echo "[fail] got $count JOIN[s] ack with a different \ port-number expected $ack_nr" fail_test @@ -1545,10 +1646,10 @@ chk_add_nr() fi =20 printf "%-${nr_blank}s %s" " " "syn" - count=3D$(ip netns exec $ns1 nstat -as | grep MPTcpExtMismatchPortSynRx | - awk '{print $2}') - [ -z "$count" ] && count=3D0 - if [ "$count" !=3D "$mis_syn_nr" ]; then + count=3D$(get_counter ${ns1} "MPTcpExtMismatchPortSynRx") + if [ -z "$count" ]; then + echo -n "[skip]" + elif [ "$count" !=3D "$mis_syn_nr" ]; then echo "[fail] got $count JOIN[s] syn with a mismatched \ port-number expected $mis_syn_nr" fail_test @@ -1557,10 +1658,10 @@ chk_add_nr() fi =20 echo -n " - ack " - count=3D$(ip netns exec $ns1 nstat -as | grep MPTcpExtMismatchPortAckRx | - awk '{print $2}') - [ -z "$count" ] && count=3D0 - if [ "$count" !=3D "$mis_ack_nr" ]; then + count=3D$(get_counter ${ns1} "MPTcpExtMismatchPortAckRx") + if [ -z "$count" ]; then + echo "[skip]" + elif [ "$count" !=3D "$mis_ack_nr" ]; then echo "[fail] got $count JOIN[s] ack with a mismatched \ port-number expected $mis_ack_nr" fail_test @@ -1582,12 +1683,12 @@ chk_add_tx_nr() timeout=3D$(ip netns exec $ns1 sysctl -n net.mptcp.add_addr_timeout) =20 printf "%-${nr_blank}s %s" " " "add TX" - count=3D$(ip netns exec $ns1 nstat -as MPTcpExtAddAddrTx | grep MPTcpExtA= ddAddrTx | awk '{print $2}') - [ -z "$count" ] && count=3D0 - + count=3D$(get_counter ${ns1} "MPTcpExtAddAddrTx") + if [ -z "$count" ]; then + echo -n "[skip]" # if the test configured a short timeout tolerate greater then expected # add addrs options, due to retransmissions - if [ "$count" !=3D "$add_tx_nr" ] && { [ "$timeout" -gt 1 ] || [ "$count"= -lt "$add_tx_nr" ]; }; then + elif [ "$count" !=3D "$add_tx_nr" ] && { [ "$timeout" -gt 1 ] || [ "$coun= t" -lt "$add_tx_nr" ]; }; then echo "[fail] got $count ADD_ADDR[s] TX, expected $add_tx_nr" fail_test else @@ -1595,9 +1696,10 @@ chk_add_tx_nr() fi =20 echo -n " - echo TX " - count=3D$(ip netns exec $ns2 nstat -as MPTcpExtEchoAddTx | grep MPTcpExtE= choAddTx | awk '{print $2}') - [ -z "$count" ] && count=3D0 - if [ "$count" !=3D "$echo_tx_nr" ]; then + count=3D$(get_counter ${ns2} "MPTcpExtEchoAddTx") + if [ -z "$count" ]; then + echo "[skip]" + elif [ "$count" !=3D "$echo_tx_nr" ]; then echo "[fail] got $count ADD_ADDR echo[s] TX, expected $echo_tx_nr" fail_test else @@ -1633,9 +1735,10 @@ chk_rm_nr() fi =20 printf "%-${nr_blank}s %s" " " "rm " - count=3D$(ip netns exec $addr_ns nstat -as MPTcpExtRmAddr | grep MPTcpExt= RmAddr | awk '{print $2}') - [ -z "$count" ] && count=3D0 - if [ "$count" !=3D "$rm_addr_nr" ]; then + count=3D$(get_counter ${addr_ns} "MPTcpExtRmAddr") + if [ -z "$count" ]; then + echo -n "[skip]" + elif [ "$count" !=3D "$rm_addr_nr" ]; then echo "[fail] got $count RM_ADDR[s] expected $rm_addr_nr" fail_test else @@ -1643,12 +1746,13 @@ chk_rm_nr() fi =20 echo -n " - rmsf " - count=3D$(ip netns exec $subflow_ns nstat -as | grep MPTcpExtRmSubflow | = awk '{print $2}') - [ -z "$count" ] && count=3D0 - if [ -n "$simult" ]; then + count=3D$(get_counter ${subflow_ns} "MPTcpExtRmSubflow") + if [ -z "$count" ]; then + echo -n "[skip]" + elif [ -n "$simult" ]; then local cnt suffix =20 - cnt=3D$(ip netns exec $addr_ns nstat -as | grep MPTcpExtRmSubflow | awk = '{print $2}') + cnt=3D$(get_counter ${addr_ns} "MPTcpExtRmSubflow") =20 # in case of simult flush, the subflow removal count on each side is # unreliable @@ -1657,14 +1761,12 @@ chk_rm_nr() [ "$count" !=3D "$rm_subflow_nr" ] && suffix=3D"$count in [$rm_subflow_n= r:$((rm_subflow_nr*2))]" if [ $count -ge "$rm_subflow_nr" ] && \ [ "$count" -le "$((rm_subflow_nr *2 ))" ]; then - echo "[ ok ] $suffix" + echo -n "[ ok ] $suffix" else echo "[fail] got $count RM_SUBFLOW[s] expected in range [$rm_subflow_nr= :$((rm_subflow_nr*2))]" fail_test fi - return - fi - if [ "$count" !=3D "$rm_subflow_nr" ]; then + elif [ "$count" !=3D "$rm_subflow_nr" ]; then echo "[fail] got $count RM_SUBFLOW[s] expected $rm_subflow_nr" fail_test else @@ -1679,9 +1781,10 @@ chk_rm_tx_nr() local rm_addr_tx_nr=3D$1 =20 printf "%-${nr_blank}s %s" " " "rm TX " - count=3D$(ip netns exec $ns2 nstat -as MPTcpExtRmAddrTx | grep MPTcpExtRm= AddrTx | awk '{print $2}') - [ -z "$count" ] && count=3D0 - if [ "$count" !=3D "$rm_addr_tx_nr" ]; then + count=3D$(get_counter ${ns2} "MPTcpExtRmAddrTx") + if [ -z "$count" ]; then + echo -n "[skip]" + elif [ "$count" !=3D "$rm_addr_tx_nr" ]; then echo "[fail] got $count RM_ADDR[s] expected $rm_addr_tx_nr" fail_test else @@ -1698,9 +1801,10 @@ chk_prio_nr() local count =20 printf "%-${nr_blank}s %s" " " "ptx" - count=3D$(ip netns exec $ns1 nstat -as | grep MPTcpExtMPPrioTx | awk '{pr= int $2}') - [ -z "$count" ] && count=3D0 - if [ "$count" !=3D "$mp_prio_nr_tx" ]; then + count=3D$(get_counter ${ns1} "MPTcpExtMPPrioTx") + if [ -z "$count" ]; then + echo -n "[skip]" + elif [ "$count" !=3D "$mp_prio_nr_tx" ]; then echo "[fail] got $count MP_PRIO[s] TX expected $mp_prio_nr_tx" fail_test else @@ -1708,9 +1812,10 @@ chk_prio_nr() fi =20 echo -n " - prx " - count=3D$(ip netns exec $ns1 nstat -as | grep MPTcpExtMPPrioRx | awk '{pr= int $2}') - [ -z "$count" ] && count=3D0 - if [ "$count" !=3D "$mp_prio_nr_rx" ]; then + count=3D$(get_counter ${ns1} "MPTcpExtMPPrioRx") + if [ -z "$count" ]; then + echo "[skip]" + elif [ "$count" !=3D "$mp_prio_nr_rx" ]; then echo "[fail] got $count MP_PRIO[s] RX expected $mp_prio_nr_rx" fail_test else @@ -1821,7 +1926,7 @@ wait_attempt_fail() while [ $time -lt $timeout_ms ]; do local cnt =20 - cnt=3D$(ip netns exec $ns nstat -as TcpAttemptFails | grep TcpAttemptFai= ls | awk '{print $2}') + cnt=3D$(get_counter ${ns} "TcpAttemptFails") =20 [ "$cnt" =3D 1 ] && return 1 time=3D$((time + 100)) @@ -1914,23 +2019,23 @@ subflows_error_tests() fi =20 # multiple subflows, with subflow creation error - if reset "multi subflows, with failing subflow"; then + if reset_with_tcp_filter "multi subflows, with failing subflow" ns1 10.0.= 3.2 REJECT && + continue_if mptcp_lib_kallsyms_has "mptcp_pm_subflow_check_next$"; then pm_nl_set_limits $ns1 0 2 pm_nl_set_limits $ns2 0 2 pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow pm_nl_add_endpoint $ns2 10.0.2.2 flags subflow - filter_tcp_from $ns1 10.0.3.2 REJECT run_tests $ns1 $ns2 10.0.1.1 0 0 0 slow chk_join_nr 1 1 1 fi =20 # multiple subflows, with subflow timeout on MPJ - if reset "multi subflows, with subflow timeout"; then + if reset_with_tcp_filter "multi subflows, with subflow timeout" ns1 10.0.= 3.2 DROP && + continue_if mptcp_lib_kallsyms_has "mptcp_pm_subflow_check_next$"; then pm_nl_set_limits $ns1 0 2 pm_nl_set_limits $ns2 0 2 pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow pm_nl_add_endpoint $ns2 10.0.2.2 flags subflow - filter_tcp_from $ns1 10.0.3.2 DROP run_tests $ns1 $ns2 10.0.1.1 0 0 0 slow chk_join_nr 1 1 1 fi @@ -1938,11 +2043,11 @@ subflows_error_tests() # multiple subflows, check that the endpoint corresponding to # closed subflow (due to reset) is not reused if additional # subflows are added later - if reset "multi subflows, fair usage on close"; then + if reset_with_tcp_filter "multi subflows, fair usage on close" ns1 10.0.3= .2 REJECT && + continue_if mptcp_lib_kallsyms_has "mptcp_pm_subflow_check_next$"; then pm_nl_set_limits $ns1 0 1 pm_nl_set_limits $ns2 0 1 pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow - filter_tcp_from $ns1 10.0.3.2 REJECT run_tests $ns1 $ns2 10.0.1.1 0 0 0 slow & =20 # mpj subflow will be in TW after the reset @@ -2043,11 +2148,18 @@ signal_address_tests() # the peer could possibly miss some addr notification, allow retransmiss= ion ip netns exec $ns1 sysctl -q net.mptcp.add_addr_timeout=3D1 run_tests $ns1 $ns2 10.0.1.1 0 0 0 slow - chk_join_nr 3 3 3 =20 - # the server will not signal the address terminating - # the MPC subflow - chk_add_nr 3 3 + # It is not directly linked to the commit introducing this + # symbol but for the parent one which is linked anyway. + if ! mptcp_lib_kallsyms_has "mptcp_pm_subflow_check_next$"; then + chk_join_nr 3 3 2 + chk_add_nr 4 4 + else + chk_join_nr 3 3 3 + # the server will not signal the address terminating + # the MPC subflow + chk_add_nr 3 3 + fi fi } =20 @@ -2290,8 +2402,13 @@ remove_tests() pm_nl_add_endpoint $ns2 10.0.4.2 flags subflow run_tests $ns1 $ns2 10.0.1.1 0 -8 -8 slow chk_join_nr 3 3 3 - chk_rm_tx_nr 0 - chk_rm_nr 0 3 simult + + if mptcp_lib_kversion_ge 5.18; then + chk_rm_tx_nr 0 + chk_rm_nr 0 3 simult + else + chk_rm_nr 3 3 + fi fi =20 # addresses flush @@ -2529,7 +2646,8 @@ v4mapped_tests() =20 mixed_tests() { - if reset "IPv4 sockets do not use IPv6 addresses"; then + if reset "IPv4 sockets do not use IPv6 addresses" && + continue_if mptcp_lib_kversion_ge 6.3; then pm_nl_set_limits $ns1 0 1 pm_nl_set_limits $ns2 1 1 pm_nl_add_endpoint $ns1 dead:beef:2::1 flags signal @@ -2538,7 +2656,8 @@ mixed_tests() fi =20 # Need an IPv6 mptcp socket to allow subflows of both families - if reset "simult IPv4 and IPv6 subflows"; then + if reset "simult IPv4 and IPv6 subflows" && + continue_if mptcp_lib_kversion_ge 6.3; then pm_nl_set_limits $ns1 0 1 pm_nl_set_limits $ns2 1 1 pm_nl_add_endpoint $ns1 10.0.1.1 flags signal @@ -2547,7 +2666,8 @@ mixed_tests() fi =20 # cross families subflows will not be created even in fullmesh mode - if reset "simult IPv4 and IPv6 subflows, fullmesh 1x1"; then + if reset "simult IPv4 and IPv6 subflows, fullmesh 1x1" && + continue_if mptcp_lib_kversion_ge 6.3; then pm_nl_set_limits $ns1 0 4 pm_nl_set_limits $ns2 1 4 pm_nl_add_endpoint $ns2 dead:beef:2::2 flags subflow,fullmesh @@ -2558,7 +2678,8 @@ mixed_tests() =20 # fullmesh still tries to create all the possibly subflows with # matching family - if reset "simult IPv4 and IPv6 subflows, fullmesh 2x2"; then + if reset "simult IPv4 and IPv6 subflows, fullmesh 2x2" && + continue_if mptcp_lib_kversion_ge 6.3; then pm_nl_set_limits $ns1 0 4 pm_nl_set_limits $ns2 2 4 pm_nl_add_endpoint $ns1 10.0.2.1 flags signal @@ -2571,7 +2692,8 @@ mixed_tests() backup_tests() { # single subflow, backup - if reset "single subflow, backup"; then + if reset "single subflow, backup" && + continue_if mptcp_lib_kallsyms_has "subflow_rebuild_header$"; then pm_nl_set_limits $ns1 0 1 pm_nl_set_limits $ns2 0 1 pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow,backup @@ -2581,7 +2703,8 @@ backup_tests() fi =20 # single address, backup - if reset "single address, backup"; then + if reset "single address, backup" && + continue_if mptcp_lib_kallsyms_has "subflow_rebuild_header$"; then pm_nl_set_limits $ns1 0 1 pm_nl_add_endpoint $ns1 10.0.2.1 flags signal pm_nl_set_limits $ns2 1 1 @@ -2592,7 +2715,8 @@ backup_tests() fi =20 # single address with port, backup - if reset "single address with port, backup"; then + if reset "single address with port, backup" && + continue_if mptcp_lib_kallsyms_has "subflow_rebuild_header$"; then pm_nl_set_limits $ns1 0 1 pm_nl_add_endpoint $ns1 10.0.2.1 flags signal port 10100 pm_nl_set_limits $ns2 1 1 @@ -2602,14 +2726,16 @@ backup_tests() chk_prio_nr 1 1 fi =20 - if reset "mpc backup"; then + if reset "mpc backup" && + continue_if mptcp_lib_kallsyms_doesnt_have "mptcp_subflow_send_ack$"; = then pm_nl_add_endpoint $ns2 10.0.1.2 flags subflow,backup run_tests $ns1 $ns2 10.0.1.1 0 0 0 slow chk_join_nr 0 0 0 chk_prio_nr 0 1 fi =20 - if reset "mpc backup both sides"; then + if reset "mpc backup both sides" && + continue_if mptcp_lib_kallsyms_doesnt_have "mptcp_subflow_send_ack$"; = then pm_nl_add_endpoint $ns1 10.0.1.1 flags subflow,backup pm_nl_add_endpoint $ns2 10.0.1.2 flags subflow,backup run_tests $ns1 $ns2 10.0.1.1 0 0 0 slow @@ -2617,14 +2743,16 @@ backup_tests() chk_prio_nr 1 1 fi =20 - if reset "mpc switch to backup"; then + if reset "mpc switch to backup" && + continue_if mptcp_lib_kallsyms_doesnt_have "mptcp_subflow_send_ack$"; = then pm_nl_add_endpoint $ns2 10.0.1.2 flags subflow run_tests $ns1 $ns2 10.0.1.1 0 0 0 slow backup chk_join_nr 0 0 0 chk_prio_nr 0 1 fi =20 - if reset "mpc switch to backup both sides"; then + if reset "mpc switch to backup both sides" && + continue_if mptcp_lib_kallsyms_doesnt_have "mptcp_subflow_send_ack$"; = then pm_nl_add_endpoint $ns1 10.0.1.1 flags subflow pm_nl_add_endpoint $ns2 10.0.1.2 flags subflow run_tests $ns1 $ns2 10.0.1.1 0 0 0 slow backup @@ -2659,6 +2787,11 @@ verify_listener_events() $e_saddr $e_sport fi =20 + if ! mptcp_lib_kallsyms_has "mptcp_event_pm_listener$"; then + printf "[skip]: event not supported\n" + return + fi + type=3D$(grep "type:$e_type," $evt | sed --unbuffered -n 's/.*\(type:\)\([[:digit:]]*\).*$/\2/p;q') family=3D$(grep "type:$e_type," $evt | @@ -2987,7 +3120,8 @@ fullmesh_tests() fi =20 # set fullmesh flag - if reset "set fullmesh flag test"; then + if reset "set fullmesh flag test" && + continue_if mptcp_lib_kversion_ge 5.18; then pm_nl_set_limits $ns1 4 4 pm_nl_add_endpoint $ns1 10.0.2.1 flags subflow pm_nl_set_limits $ns2 4 4 @@ -2997,7 +3131,8 @@ fullmesh_tests() fi =20 # set nofullmesh flag - if reset "set nofullmesh flag test"; then + if reset "set nofullmesh flag test" && + continue_if mptcp_lib_kversion_ge 5.18; then pm_nl_set_limits $ns1 4 4 pm_nl_add_endpoint $ns1 10.0.2.1 flags subflow,fullmesh pm_nl_set_limits $ns2 4 4 @@ -3007,7 +3142,8 @@ fullmesh_tests() fi =20 # set backup,fullmesh flags - if reset "set backup,fullmesh flags test"; then + if reset "set backup,fullmesh flags test" && + continue_if mptcp_lib_kversion_ge 5.18; then pm_nl_set_limits $ns1 4 4 pm_nl_add_endpoint $ns1 10.0.2.1 flags subflow pm_nl_set_limits $ns2 4 4 @@ -3018,7 +3154,8 @@ fullmesh_tests() fi =20 # set nobackup,nofullmesh flags - if reset "set nobackup,nofullmesh flags test"; then + if reset "set nobackup,nofullmesh flags test" && + continue_if mptcp_lib_kversion_ge 5.18; then pm_nl_set_limits $ns1 4 4 pm_nl_set_limits $ns2 4 4 pm_nl_add_endpoint $ns2 10.0.2.2 flags subflow,backup,fullmesh @@ -3031,14 +3168,14 @@ fullmesh_tests() =20 fastclose_tests() { - if reset "fastclose test"; then + if reset_check_counter "fastclose test" "MPTcpExtMPFastcloseTx"; then run_tests $ns1 $ns2 10.0.1.1 1024 0 fastclose_client chk_join_nr 0 0 0 chk_fclose_nr 1 1 chk_rst_nr 1 1 invert fi =20 - if reset "fastclose server test"; then + if reset_check_counter "fastclose server test" "MPTcpExtMPFastcloseRx"; t= hen run_tests $ns1 $ns2 10.0.1.1 1024 0 fastclose_server chk_join_nr 0 0 0 chk_fclose_nr 1 1 invert @@ -3076,7 +3213,8 @@ fail_tests() userspace_tests() { # userspace pm type prevents add_addr - if reset "userspace pm type prevents add_addr"; then + if reset "userspace pm type prevents add_addr" && + continue_if mptcp_lib_has_file '/proc/sys/net/mptcp/pm_type'; then set_userspace_pm $ns1 pm_nl_set_limits $ns1 0 2 pm_nl_set_limits $ns2 0 2 @@ -3087,7 +3225,8 @@ userspace_tests() fi =20 # userspace pm type does not echo add_addr without daemon - if reset "userspace pm no echo w/o daemon"; then + if reset "userspace pm no echo w/o daemon" && + continue_if mptcp_lib_has_file '/proc/sys/net/mptcp/pm_type'; then set_userspace_pm $ns2 pm_nl_set_limits $ns1 0 2 pm_nl_set_limits $ns2 0 2 @@ -3098,7 +3237,8 @@ userspace_tests() fi =20 # userspace pm type rejects join - if reset "userspace pm type rejects join"; then + if reset "userspace pm type rejects join" && + continue_if mptcp_lib_has_file '/proc/sys/net/mptcp/pm_type'; then set_userspace_pm $ns1 pm_nl_set_limits $ns1 1 1 pm_nl_set_limits $ns2 1 1 @@ -3108,7 +3248,8 @@ userspace_tests() fi =20 # userspace pm type does not send join - if reset "userspace pm type does not send join"; then + if reset "userspace pm type does not send join" && + continue_if mptcp_lib_has_file '/proc/sys/net/mptcp/pm_type'; then set_userspace_pm $ns2 pm_nl_set_limits $ns1 1 1 pm_nl_set_limits $ns2 1 1 @@ -3118,7 +3259,8 @@ userspace_tests() fi =20 # userspace pm type prevents mp_prio - if reset "userspace pm type prevents mp_prio"; then + if reset "userspace pm type prevents mp_prio" && + continue_if mptcp_lib_has_file '/proc/sys/net/mptcp/pm_type'; then set_userspace_pm $ns1 pm_nl_set_limits $ns1 1 1 pm_nl_set_limits $ns2 1 1 @@ -3129,7 +3271,8 @@ userspace_tests() fi =20 # userspace pm type prevents rm_addr - if reset "userspace pm type prevents rm_addr"; then + if reset "userspace pm type prevents rm_addr" && + continue_if mptcp_lib_has_file '/proc/sys/net/mptcp/pm_type'; then set_userspace_pm $ns1 set_userspace_pm $ns2 pm_nl_set_limits $ns1 0 1 @@ -3141,7 +3284,8 @@ userspace_tests() fi =20 # userspace pm add & remove address - if reset_with_events "userspace pm add & remove address"; then + if reset_with_events "userspace pm add & remove address" && + continue_if mptcp_lib_has_file '/proc/sys/net/mptcp/pm_type'; then set_userspace_pm $ns1 pm_nl_set_limits $ns2 1 1 run_tests $ns1 $ns2 10.0.1.1 0 userspace_1 0 slow @@ -3152,7 +3296,8 @@ userspace_tests() fi =20 # userspace pm create destroy subflow - if reset_with_events "userspace pm create destroy subflow"; then + if reset_with_events "userspace pm create destroy subflow" && + continue_if mptcp_lib_has_file '/proc/sys/net/mptcp/pm_type'; then set_userspace_pm $ns2 pm_nl_set_limits $ns1 0 1 run_tests $ns1 $ns2 10.0.1.1 0 0 userspace_1 slow @@ -3164,8 +3309,10 @@ userspace_tests() =20 endpoint_tests() { + # subflow_rebuild_header is needed to support the implicit flag # userspace pm type prevents add_addr - if reset "implicit EP"; then + if reset "implicit EP" && + mptcp_lib_kallsyms_has "subflow_rebuild_header$"; then pm_nl_set_limits $ns1 2 2 pm_nl_set_limits $ns2 2 2 pm_nl_add_endpoint $ns1 10.0.2.1 flags signal @@ -3185,7 +3332,8 @@ endpoint_tests() kill_tests_wait fi =20 - if reset "delete and re-add"; then + if reset "delete and re-add" && + mptcp_lib_kallsyms_has "subflow_rebuild_header$"; then pm_nl_set_limits $ns1 1 1 pm_nl_set_limits $ns2 1 1 pm_nl_add_endpoint $ns2 10.0.2.2 id 2 dev ns2eth2 flags subflow diff --git a/tools/testing/selftests/net/mptcp/mptcp_lib.sh b/tools/testing= /selftests/net/mptcp/mptcp_lib.sh index 3286536b79d5..dcfe5eb6f7c0 100644 --- a/tools/testing/selftests/net/mptcp/mptcp_lib.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_lib.sh @@ -38,3 +38,62 @@ mptcp_lib_check_mptcp() { exit ${KSFT_SKIP} fi } + +mptcp_lib_check_kallsyms() { + if ! mptcp_lib_has_file "/proc/kallsyms"; then + echo "SKIP: CONFIG_KALLSYMS is missing" + exit ${KSFT_SKIP} + fi +} + +# Internal: use mptcp_lib_kallsyms_has() instead +__mptcp_lib_kallsyms_has() { + local sym=3D"${1}" + + mptcp_lib_check_kallsyms + + grep -q " ${sym}" /proc/kallsyms +} + +# $1: part of a symbol to look at, add '$' at the end for full name +mptcp_lib_kallsyms_has() { + local sym=3D"${1}" + + if __mptcp_lib_kallsyms_has "${sym}"; then + return 0 + fi + + mptcp_lib_fail_if_expected_feature "${sym} symbol not found" +} + +# $1: part of a symbol to look at, add '$' at the end for full name +mptcp_lib_kallsyms_doesnt_have() { + local sym=3D"${1}" + + if ! __mptcp_lib_kallsyms_has "${sym}"; then + return 0 + fi + + mptcp_lib_fail_if_expected_feature "${sym} symbol has been found" +} + +# !!!AVOID USING THIS!!! +# Features might not land in the expected version and features can be back= ported +# +# $1: kernel version, e.g. 6.3 +mptcp_lib_kversion_ge() { + local exp_maj=3D"${1%.*}" + local exp_min=3D"${1#*.}" + local v maj min + + v=3D$(uname -r | cut -d'.' -f1,2) + maj=3D${v%.*} + min=3D${v#*.} + + if [ "${maj}" -gt "${exp_maj}" ] || + { [ "${maj}" -eq "${exp_maj}" ] && [ "${min}" -ge "${exp_min}" ]; }; t= hen + return 0 + fi + + mptcp_lib_fail_if_expected_feature "kernel version ${1} lower than ${v}" +} diff --git a/tools/testing/selftests/net/mptcp/mptcp_sockopt.c b/tools/test= ing/selftests/net/mptcp/mptcp_sockopt.c index 86a378731e8b..74d2ede6b68b 100644 --- a/tools/testing/selftests/net/mptcp/mptcp_sockopt.c +++ b/tools/testing/selftests/net/mptcp/mptcp_sockopt.c @@ -386,13 +386,13 @@ static void do_getsockopt_tcp_info(struct so_state *s= , int fd, size_t r, size_t xerror("getsockopt MPTCP_TCPINFO (tries %d, %m)"); =20 assert(olen <=3D sizeof(ti)); - assert(ti.d.size_user =3D=3D ti.d.size_kernel); - assert(ti.d.size_user =3D=3D sizeof(struct tcp_info)); + assert(ti.d.size_user > 0); + assert(ti.d.size_kernel > 0); assert(ti.d.num_subflows =3D=3D 1); =20 assert(olen > (socklen_t)sizeof(struct mptcp_subflow_data)); olen -=3D sizeof(struct mptcp_subflow_data); - assert(olen =3D=3D sizeof(struct tcp_info)); + assert(olen =3D=3D ti.d.size_user); =20 s->tcp_info =3D ti.ti[0]; =20 @@ -440,13 +440,13 @@ static void do_getsockopt_subflow_addrs(struct so_sta= te *s, int fd) die_perror("getsockopt MPTCP_SUBFLOW_ADDRS"); =20 assert(olen <=3D sizeof(addrs)); - assert(addrs.d.size_user =3D=3D addrs.d.size_kernel); - assert(addrs.d.size_user =3D=3D sizeof(struct mptcp_subflow_addrs)); + assert(addrs.d.size_user > 0); + assert(addrs.d.size_kernel > 0); assert(addrs.d.num_subflows =3D=3D 1); =20 assert(olen > (socklen_t)sizeof(struct mptcp_subflow_data)); olen -=3D sizeof(struct mptcp_subflow_data); - assert(olen =3D=3D sizeof(struct mptcp_subflow_addrs)); + assert(olen =3D=3D addrs.d.size_user); =20 llen =3D sizeof(local); ret =3D getsockname(fd, (struct sockaddr *)&local, &llen); diff --git a/tools/testing/selftests/net/mptcp/mptcp_sockopt.sh b/tools/tes= ting/selftests/net/mptcp/mptcp_sockopt.sh index ff5adbb9c7f2..f295a371ff14 100755 --- a/tools/testing/selftests/net/mptcp/mptcp_sockopt.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_sockopt.sh @@ -87,6 +87,7 @@ cleanup() } =20 mptcp_lib_check_mptcp +mptcp_lib_check_kallsyms =20 ip -Version > /dev/null 2>&1 if [ $? -ne 0 ];then @@ -186,9 +187,14 @@ do_transfer() local_addr=3D"0.0.0.0" fi =20 + cmsg=3D"TIMESTAMPNS" + if mptcp_lib_kallsyms_has "mptcp_ioctl$"; then + cmsg+=3D",TCPINQ" + fi + timeout ${timeout_test} \ ip netns exec ${listener_ns} \ - $mptcp_connect -t ${timeout_poll} -l -M 1 -p $port -s ${srv_proto} -c T= IMESTAMPNS,TCPINQ \ + $mptcp_connect -t ${timeout_poll} -l -M 1 -p $port -s ${srv_proto} -c "= ${cmsg}" \ ${local_addr} < "$sin" > "$sout" & local spid=3D$! =20 @@ -196,7 +202,7 @@ do_transfer() =20 timeout ${timeout_test} \ ip netns exec ${connector_ns} \ - $mptcp_connect -t ${timeout_poll} -M 2 -p $port -s ${cl_proto} -c TIMES= TAMPNS,TCPINQ \ + $mptcp_connect -t ${timeout_poll} -M 2 -p $port -s ${cl_proto} -c "${cm= sg}" \ $connect_addr < "$cin" > "$cout" & =20 local cpid=3D$! @@ -253,6 +259,11 @@ do_mptcp_sockopt_tests() { local lret=3D0 =20 + if ! mptcp_lib_kallsyms_has "mptcp_diag_fill_info$"; then + echo "INFO: MPTCP sockopt not supported: SKIP" + return + fi + ip netns exec "$ns_sbox" ./mptcp_sockopt lret=3D$? =20 @@ -307,6 +318,11 @@ do_tcpinq_tests() { local lret=3D0 =20 + if ! mptcp_lib_kallsyms_has "mptcp_ioctl$"; then + echo "INFO: TCP_INQ not supported: SKIP" + return + fi + local args for args in "-t tcp" "-r tcp"; do do_tcpinq_test $args diff --git a/tools/testing/selftests/net/mptcp/pm_netlink.sh b/tools/testin= g/selftests/net/mptcp/pm_netlink.sh index 32f7533e0919..d02e0d63a8f9 100755 --- a/tools/testing/selftests/net/mptcp/pm_netlink.sh +++ b/tools/testing/selftests/net/mptcp/pm_netlink.sh @@ -73,8 +73,12 @@ check() } =20 check "ip netns exec $ns1 ./pm_nl_ctl dump" "" "defaults addr list" -check "ip netns exec $ns1 ./pm_nl_ctl limits" "accept 0 + +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" +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 @@ -121,12 +125,10 @@ 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 -check "ip netns exec $ns1 ./pm_nl_ctl limits" "accept 0 -subflows 2" "rcv addrs above hard limit" +check "ip netns exec $ns1 ./pm_nl_ctl limits" "$default_limits" "rcv addrs= above hard limit" =20 ip netns exec $ns1 ./pm_nl_ctl limits 1 9 -check "ip netns exec $ns1 ./pm_nl_ctl limits" "accept 0 -subflows 2" "subflows above hard limit" +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 @@ -176,14 +178,19 @@ subflow,backup 10.0.1.1" "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)" + +# fullmesh support has been added later ip netns exec $ns1 ./pm_nl_ctl set id 1 flags fullmesh -check "ip netns exec $ns1 ./pm_nl_ctl dump" "id 1 flags \ +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)" -ip netns exec $ns1 ./pm_nl_ctl set id 1 flags nofullmesh -check "ip netns exec $ns1 ./pm_nl_ctl dump" "id 1 flags \ + 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)" -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 \ + 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)" +fi =20 exit $ret diff --git a/tools/testing/selftests/net/mptcp/userspace_pm.sh b/tools/test= ing/selftests/net/mptcp/userspace_pm.sh index 8092399d911f..98d9e4d2d3fc 100755 --- a/tools/testing/selftests/net/mptcp/userspace_pm.sh +++ b/tools/testing/selftests/net/mptcp/userspace_pm.sh @@ -4,11 +4,17 @@ . "$(dirname "${0}")/mptcp_lib.sh" =20 mptcp_lib_check_mptcp +mptcp_lib_check_kallsyms + +if ! mptcp_lib_has_file '/proc/sys/net/mptcp/pm_type'; then + echo "userspace pm tests are not supported by the kernel: SKIP" + exit ${KSFT_SKIP} +fi =20 ip -Version > /dev/null 2>&1 if [ $? -ne 0 ];then echo "SKIP: Cannot not run test without ip tool" - exit 1 + exit ${KSFT_SKIP} fi =20 ANNOUNCED=3D6 # MPTCP_EVENT_ANNOUNCED @@ -909,6 +915,11 @@ test_listener() { print_title "Listener tests" =20 + if ! mptcp_lib_kallsyms_has "mptcp_event_pm_listener$"; then + stdbuf -o0 -e0 printf "LISTENER events = \t[SKIP] Not supported\n" + return + fi + # Capture events on the network namespace running the client :>$client_evts =20 --=20 2.35.3 From nobody Mon Apr 29 02:00:07 2024 Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05on2066.outbound.protection.outlook.com [40.107.22.66]) (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 80910EA4 for ; Wed, 31 May 2023 00:53:32 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=amYHl7ur/StFW3IJjTaW8GJ/iLSt9uz9NKFDCnLzpO/TjaDIncQdWrT/csmfCr2mXWiGmoqr9vUAtvvq2UtoKi9V5XLSBAvQ2KLjbdVUlH98cAQvaiSFqPHNC0veLVSshJfZ6hTd7n2Cxr/GX78FXSAn9NxclfhPMjKjogZOrwMKke4ri43fDgWPEBQUSwPgZDdtjK2EDzA/aVVEmMXxSu2lkEZOfe4EkTTyfokLMNBeDAd1jza9twvJFU6QNqZFFr8z3cYqjxOtvuYy+USnieLZArWHDNh7hc98T3RrqWNxnYBzbjQrxL1pjw0ciT11e+W3M6xIAYKzujcbtW06UQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=PjstMBIpJb25g+U7v7VrmkLyDv6N1zC3CIpculI5m9s=; b=lEPEAvUQK034Fl3WY7KqRcL/1wC6Pt/kPqcK30j1HjeO49bujyhqbzrUoGi1ilS92LYZBFsjZsX96FNJpkBE60Riv2loe9VV4v3jf+0YqffgO352JKCKI/Emq6RGZ65mh9YADP+egS6A5Hr3N7eWhpTitu1bQbnG448SEHm0TFviPLnK145YoeOYstyphY/JQAIvHHydcCPDlYnlygKQaOEmyxNc9Q2mddwfpTSREhnsmBCsJkt2N2dgCAvAYSn9sj7yrPVciAhOFWN7gbUllxbU9fZQ18PjhSJrbsJo4oEmmrrZV4dY+McC3zv7Q+zsvcoq5cYR8HcLz9/Vu4eXMQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com; dkim=pass header.d=suse.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=PjstMBIpJb25g+U7v7VrmkLyDv6N1zC3CIpculI5m9s=; b=HLdz3oKtX8+QQeswUsfPlacAQUC4YFrMT1UPTczhLU1vvGMauuIV1o6rLBWIf1xfXdnqE0oj14SB3P/OIqGj6VL+AZRirlF2QzGs8sfTsAHNnW9W+NjtW+h5FH2+9ug8mu3u0flNzr6Z78ojddWqtgN6vJzzwcwMcQmcXHCx9aXb1BYpWBu8QIIDLTmt9CrRIsxwEeZr6fTf+Gwv5Z856jHJS6Q9o3H/z8VH2YnvXA9FWlagU4Wt04hIhOs50whqdPCo1pKniymNd9Dt0R6kWMg7Cak8BkoXMcZhj2FnNr4AGZJnANIpNNeTgxL2VlRDm5+OCGOq0Msny0RmtW5qpQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com; Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com (2603:10a6:7:83::14) by DB8PR04MB7163.eurprd04.prod.outlook.com (2603:10a6:10:fe::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6433.23; Wed, 31 May 2023 00:53:31 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::423a:a30f:5342:9d35]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::423a:a30f:5342:9d35%6]) with mapi id 15.20.6433.022; Wed, 31 May 2023 00:53:31 +0000 From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next v14 2/7] mptcp: pass addr to mptcp_pm_alloc_anno_list Date: Wed, 31 May 2023 08:52:59 +0800 Message-Id: X-Mailer: git-send-email 2.35.3 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SG2PR01CA0141.apcprd01.prod.exchangelabs.com (2603:1096:4:8f::21) To HE1PR0402MB3497.eurprd04.prod.outlook.com (2603:10a6:7:83::14) Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: HE1PR0402MB3497:EE_|DB8PR04MB7163:EE_ X-MS-Office365-Filtering-Correlation-Id: 140e31d2-1034-4a7a-5f1e-08db61717449 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: nOFe8MND0+S0HD6w1BuYE4Xwg/a6dI/ve2x3vpSEpSni9eaAZdQbzoIU0trmLDE+z8zJE+FnYK1FGyRVWXrry++7yPlHuRWSJgXPQIz7UKqw2nRvcFN4SrzH+TvcFGF5a+nZhRaLtIGFsk80z4TQOGbi8F9ysKTNggEtttK4jdeDzWLudDB4oySaGgRfx/mE3XFFugcs4jBmYJ29LoxN+V6BlXq4130yzoIlZ66zWZikElo7Mf4HiWXFJ8lghlcXWj9sYt/BGDBAaxxAkkq7rTVp4PJg0EgZNJ8tDXNFAFyjDNNUr+8RQssKctH3fgfEaHxvgAd3s4M3Lz/VUp2t0kqrGIQ7AMQ09bw5COeh5pqdYfEgDEd02SpW7uyfwoITwCrkedD3LJHT+AnDSH4+b3XRVKYE4H0/znr5DBLQQRZMDIJTw+BYfhvs9uoO13KCikAtMwU1pj1QLuoXMaIhANX8zMjegme7yIEy0AUm0hZ61UY5uioSRPAPCa/Go01E2/QF5VgebJfC6iyKm3/yW3PHMtosTG50WB3hHWpk5Yr7EUMBvVLbxP+71lfuU0rd X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:HE1PR0402MB3497.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(346002)(39860400002)(366004)(136003)(396003)(376002)(451199021)(478600001)(8676002)(44832011)(8936002)(5660300002)(86362001)(36756003)(2906002)(66476007)(4326008)(6916009)(66556008)(66946007)(316002)(38100700002)(41300700001)(2616005)(107886003)(186003)(6506007)(26005)(6486002)(6666004)(6512007)(83380400001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?waITNA9cmyhqCkOGjrbrsknbFXhdFLgBaz3nAVblC3wJK1FDp6YGkKff6QiG?= =?us-ascii?Q?gjxJKJ+g6wYMs8lx0nD4zfaVuTyCiBFPoSaRg8uXSaU0rGLHZNy0kqZtZ3TZ?= =?us-ascii?Q?+1/T9q6ryNp8iaVoYA0z27h8Cg4lpTOb6JFqGr5MK6TBqzK/pvkHQPwxFYpC?= =?us-ascii?Q?/vfHD2rJP+MzJ0L4vjDLR22TJDf+gVmNuFSPb0rS/WoRammnMvSDBRO1vev2?= =?us-ascii?Q?ojpnXppzgEruBFh/EtAVrBIhEmxbjMj/J0Qk45TGSq8fQZBR4X3S07YQlaS3?= =?us-ascii?Q?EJ/6OTU/u4zjR/jKCY286mPXwR3Nd8cwzOKvKop5Lxo2JiLpDzcHm3R8Eoal?= =?us-ascii?Q?+J0OqUddsjkKsCOQb/hWbBZKdCOfTP87R+QRdYjhhJiG4OTHvHJQr00tyol5?= =?us-ascii?Q?53K7H9t0veC1U76W+on32c8BPP6+TrA9yjeSs7u2H978LjJCOWYurr0Q0UOt?= =?us-ascii?Q?oIFGyGI4WGgBdQDTjdjvJUEFbM4xw0De49H565IzSembzT+hb6GIGc9q4jnC?= =?us-ascii?Q?Ux/ujiCwsc/2iW5lnMumSLVzfj77Y9NW/l6Mb/e7wqHefb/shTE+LKCwdV5H?= =?us-ascii?Q?jHhadkdvUaUpdy2r6UNgJVX0wC8PBCqccW04X5/F1M7QkbflnrXo/WOPXSbN?= =?us-ascii?Q?twFowTMsKSBWSAfzsUZoE3siSqvm/CzpdG2QxHKv9icySXVe3Dg/LAEuCjdp?= =?us-ascii?Q?e4UpDNZ0ro+ZRsZtPqaFV4q4T7smH0JBfCyE7MpOq8l9O6cCBFzTCfwfea8U?= =?us-ascii?Q?X2o+nyOBSa1DaNraqYijZrPNvE1WIe4vUK7/6ouCMxZVrmrDWxL3vmvEfbA5?= =?us-ascii?Q?xOoNlblRayZNh+/4UaTlQuaCeRsVysDbQJtq0IXaOyCD9m7lfqVYEywToU1J?= =?us-ascii?Q?/hudRX+h8LvdSH/27zPv/NPLaE86UeQ2/Wdi3COiuV1cHCyL0L+hxHt4Tfox?= =?us-ascii?Q?acJXK1x0hxIUUObBf1ISwuXmLO/lyTOv6thZNgnxirbixi3suMalPf94DNiB?= =?us-ascii?Q?6ljyUYQpRZ9hkvRxWpyys69+aGpKL4qSLi+vNI1pyNv4XA/9faHqK8Me0GHW?= =?us-ascii?Q?WXdjqYz1PJj8z57AwMbnnfhtx8nXShzcacge+hy5xj6k7yvcR06p9yJg77Kn?= =?us-ascii?Q?GmKOVjzYv1JNAE/voLdN2HT5OrZ0DZ8FB1AQRf+2WGIfn/mj/QC/gjiuGfWm?= =?us-ascii?Q?ky1xBGa1290pJ1hnO46MV+1GqOBtuFsJXocnTBzSsXFj+4MidhwbGwO0Yh2v?= =?us-ascii?Q?+yQCvH1cEz4i0p70k9zf7/s9Ak2qL3YAr9tdMvTrSMcU1hzOqEV37EO7UqNr?= =?us-ascii?Q?LXa3hTCvVKoAv7EiDtr8C45z2w5VRWN//nRvb/CpjvBgr7sqcTLrrxllVjPK?= =?us-ascii?Q?0QCfAgVR5Wd0Unrwdtx3VFoT6dYpga7Q/uSmC07++s4rhcJZiBgKmVJk9VO9?= =?us-ascii?Q?c542TQ6KqrqxPpYY1LFMxrlkdabtUvaNL5vU5o4EG25M/mNRNR+V4G+1rNO7?= =?us-ascii?Q?wAFRv4E76LyVswopc0W1qzqvq5yjVQ5KEboxpQ5Y22zmfp+7xiR81xoacE1M?= =?us-ascii?Q?odsIgB133WPicE9gnkmlzVBghxSyIAqBV68fFckR?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 140e31d2-1034-4a7a-5f1e-08db61717449 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 May 2023 00:53:31.4926 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: jKUWUGyodg0wenDW/0HwniuNCtUCLtD5UCmqMDSMFIw9EU8NhTOLakMO+GqXXQWVc7DwTxKtlpIW3G+Q6Rcmyg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB8PR04MB7163 Content-Type: text/plain; charset="utf-8" Pass addr parameter to mptcp_pm_alloc_anno_list() instead of entry. We can reduce the scope, e.g. in mptcp_pm_alloc_anno_list(), we only access "entry->addr", we can then restrict to the pointer to "addr" then. Signed-off-by: Geliang Tang --- net/mptcp/pm_netlink.c | 8 ++++---- net/mptcp/pm_userspace.c | 2 +- net/mptcp/protocol.h | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/net/mptcp/pm_netlink.c b/net/mptcp/pm_netlink.c index ec892fb8d85f..082018e4b0bb 100644 --- a/net/mptcp/pm_netlink.c +++ b/net/mptcp/pm_netlink.c @@ -342,7 +342,7 @@ mptcp_pm_del_add_timer(struct mptcp_sock *msk, } =20 bool mptcp_pm_alloc_anno_list(struct mptcp_sock *msk, - const struct mptcp_pm_addr_entry *entry) + const struct mptcp_addr_info *addr) { struct mptcp_pm_add_entry *add_entry =3D NULL; struct sock *sk =3D (struct sock *)msk; @@ -350,7 +350,7 @@ bool mptcp_pm_alloc_anno_list(struct mptcp_sock *msk, =20 lockdep_assert_held(&msk->pm.lock); =20 - add_entry =3D mptcp_lookup_anno_list_by_saddr(msk, &entry->addr); + add_entry =3D mptcp_lookup_anno_list_by_saddr(msk, addr); =20 if (add_entry) { if (mptcp_pm_is_kernel(msk)) @@ -367,7 +367,7 @@ bool mptcp_pm_alloc_anno_list(struct mptcp_sock *msk, =20 list_add(&add_entry->list, &msk->pm.anno_list); =20 - add_entry->addr =3D entry->addr; + add_entry->addr =3D *addr; add_entry->sock =3D msk; add_entry->retrans_times =3D 0; =20 @@ -574,7 +574,7 @@ static void mptcp_pm_create_subflow_or_signal_addr(stru= ct mptcp_sock *msk) return; =20 if (local) { - if (mptcp_pm_alloc_anno_list(msk, local)) { + if (mptcp_pm_alloc_anno_list(msk, &local->addr)) { __clear_bit(local->addr.id, msk->pm.id_avail_bitmap); msk->pm.add_addr_signaled++; mptcp_pm_announce_addr(msk, &local->addr, false); diff --git a/net/mptcp/pm_userspace.c b/net/mptcp/pm_userspace.c index b06aa58dfcf2..3152c197811d 100644 --- a/net/mptcp/pm_userspace.c +++ b/net/mptcp/pm_userspace.c @@ -196,7 +196,7 @@ int mptcp_nl_cmd_announce(struct sk_buff *skb, struct g= enl_info *info) lock_sock((struct sock *)msk); spin_lock_bh(&msk->pm.lock); =20 - if (mptcp_pm_alloc_anno_list(msk, &addr_val)) { + if (mptcp_pm_alloc_anno_list(msk, &addr_val.addr)) { msk->pm.add_addr_signaled++; mptcp_pm_announce_addr(msk, &addr_val.addr, false); mptcp_pm_nl_addr_send_ack(msk); diff --git a/net/mptcp/protocol.h b/net/mptcp/protocol.h index b4b5c5004f34..83b4cb16120e 100644 --- a/net/mptcp/protocol.h +++ b/net/mptcp/protocol.h @@ -832,7 +832,7 @@ int mptcp_pm_nl_mp_prio_send_ack(struct mptcp_sock *msk, struct mptcp_addr_info *rem, u8 bkup); bool mptcp_pm_alloc_anno_list(struct mptcp_sock *msk, - const struct mptcp_pm_addr_entry *entry); + const struct mptcp_addr_info *addr); void mptcp_pm_free_anno_list(struct mptcp_sock *msk); bool mptcp_pm_sport_in_anno_list(struct mptcp_sock *msk, const struct sock= *sk); struct mptcp_pm_add_entry * --=20 2.35.3 From nobody Mon Apr 29 02:00:07 2024 Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05on2076.outbound.protection.outlook.com [40.107.22.76]) (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 C6540EA4 for ; Wed, 31 May 2023 00:53:41 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=EhpBxwve3X3P+K+YDyFOlHywYvXlp0vo3nf7o9ZaV4evIaoKT6lgzPnN2vYH9iPn54zSRJK7CXfeWbp0Ze4iiu88OcKn8zbmwQEbkVgZ8gjJkrhUgeI756rOwy1sdYLrkXcDGDMVIEuX6LQt97oo6LvJEmHOXgf7K4T3EfhGl7XVTb3YGTgvfz9e2bdhNTCIvp44sHOe0c/83c4xiU0f46abM/VewEp/SrimAcwh/cT8Dyy3oXrS63DwqnX5mKqxzedg71YGLOXWxNsf3DKiUYfo/udDGvMFsOLvhAphbcLnAys1J5a/bDZx4K6SNZgSwzJiLGJO7kHlmnyy2TX2jg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=w1k7+1DUoz+ObFyp6Y8sVXFvhhgqnMjvT57sJoqgIW0=; b=C3yoOMiaaggPaAoyeDtsYbvppwAqGL48yYoQPjbi7/kw7kgfDv060sBlGMwXpT35+CjWucejmRHx6uYZuHrE5XsnjtXwESUjnUJAYKxmFbElILAMOVFMizZjhLXA9wCrkuXYxX/WP6W+n/ETnePfINoqvFhvsT/H1oHHglZkx/NvijHJC3AATjJVQFi+aZQtcbKmvQVhzrZ50kkTuhqSyVrdow6idxCmW2yer1IkVSKsjIXGDybLkruGsUmNCoqeHxlvmKezwIgALnkvZ1Js3TYOnn8J9EC3Nm2wkwK5x9uXVXa1tc7PSvX4FkV2gHNh7HHGR3vDdjxghlqqEsK45Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com; dkim=pass header.d=suse.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=w1k7+1DUoz+ObFyp6Y8sVXFvhhgqnMjvT57sJoqgIW0=; b=5u1Hu9L/xH9EGM4q3Wr1CRf16bSPCIuV2uqgwnWD932RcK/H4STnIlZUlnm7aGQ1yRQX7f+FTSVo5RsjdiJwW5VyVh5NcQ0XZZrfHwTcv36mqH2TnUpJvZ/QS1nuWxzlhm1wUD2CpmWR49U63M5P4uwDFUkiCdy3rAhjolgGml8V1+ftTqOoLn9evyUlbxiLUFNxHYyRI/gFl7DFBuoEDCyiEYM1hOpRaA4UfAdLHaIApBkfowG8eNYVAxplK7Qt8KlkBJyOsIM4gTXZVX7o1Q5IKt1P6NKx5GLEJJIsrLxYx7hztZEWAI6DixI8kF5N4hdO3c1cwxz/i5yZxk+cRw== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com; Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com (2603:10a6:7:83::14) by DB8PR04MB7163.eurprd04.prod.outlook.com (2603:10a6:10:fe::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6433.23; Wed, 31 May 2023 00:53:39 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::423a:a30f:5342:9d35]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::423a:a30f:5342:9d35%6]) with mapi id 15.20.6433.022; Wed, 31 May 2023 00:53:39 +0000 From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next v14 3/7] selftests: mptcp: test userspace pm out of transfer Date: Wed, 31 May 2023 08:53:00 +0800 Message-Id: X-Mailer: git-send-email 2.35.3 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SG2PR01CA0138.apcprd01.prod.exchangelabs.com (2603:1096:4:8f::18) To HE1PR0402MB3497.eurprd04.prod.outlook.com (2603:10a6:7:83::14) Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: HE1PR0402MB3497:EE_|DB8PR04MB7163:EE_ X-MS-Office365-Filtering-Correlation-Id: 7cd760d2-08b5-4a64-fea1-08db617178cf X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: riv5wUetGf2dDvYW7CHdbg+d+E265fgMsFrfIm25sTRKDWr+8xjLtc5JFDcTp5pXUSCcN9JjQKcbhFFZVvrF3nrP2sOHpCcprffH6NNFo/bsve4H7WaoHjV0w7mUGmO+h84+Cov2+T01wR+Nf3rD6mr2iOHPUWkeYzQf3vQDyAGLzP3dQObxFBOzP2xU9zzeR1hBkBq5bda3XRiaohKoVsRDSuCHJ8VeP/J24eijofB7XeJ8X/T+DKxnJqKHKgZOp7zw7X1NJApHosOe9Dt6VtWBESF8wKAj16E61w6pqi7TcHWWbQ8QezNdbj3yyLxcsuwfLxACU5NU+qqzyqhD15VyEVfVOvkPjl7Rp2gr3jvve8wSz7jb9wOjkzfi/BnrOoPnr141MGPfOIYFwvsQzDsDYZ9ohQnmXQ2oAVlBrxhAf11ry+/Oj3K6aMtBQxHzE/lWTf036euIfMAPPBNuvMVZLC2IhWJjn0IzCZx0O/YDjUldpnFDlKn4w9MYiLlZ0H4GDcJB8SesBGZ2Q12tRVUR4FV/CbVdvSh5CRfntVeTcJvf2dS7DyO30IngjEki X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:HE1PR0402MB3497.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(346002)(39860400002)(366004)(136003)(396003)(376002)(451199021)(478600001)(8676002)(44832011)(8936002)(5660300002)(86362001)(36756003)(2906002)(66476007)(4326008)(6916009)(66556008)(66946007)(316002)(38100700002)(41300700001)(2616005)(107886003)(186003)(6506007)(26005)(6486002)(6666004)(6512007)(83380400001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?Ype0GJHl6DgSXZI2XKkRvCEqlIoajoc400Ne4dfNg9Vi4Qn8XziqXVY+uPu+?= =?us-ascii?Q?RFdKtJolHXlK0+H0IsIXtlHJIXKSvXWttTD2+W25l7oYKD6SVHhV/nECxc0H?= =?us-ascii?Q?Ys8vIE05LPGzwK5X4z17lStTS0AoebJfODRtHa1OXzO3CY/AQLS+6lzNoLFy?= =?us-ascii?Q?uBtP0surTaumI8JTCDj/MFuqV6d9UD6OagksbJevmh7qXvBZiZBxW1dnTd6I?= =?us-ascii?Q?0EGMgrbOuiqmAl7a3rV+X+oNbRNoyT+ZTH5rqBcKKIJi0b/31rgp7VGJPXWe?= =?us-ascii?Q?H23ZJhG0NTbsGBmCfVAWUT5dlzX+JpRpAuZN31MhNNU6xPWLDY7lgRtDnJ+f?= =?us-ascii?Q?Pc1LrleHWU0yA5t9TJ/azd1F0fV7aMTgV3D4CGNv4+PE4Ej8FU2G4/sIzb6g?= =?us-ascii?Q?miwKJN4FEqviZ7MjurxHVs7fyYzjVAJfnVB15CRP66wl4xtTEnayA9UNYBCX?= =?us-ascii?Q?sqbvNImmjdd4+crurmE0Yk9sseH03Ajui3n0cOwVWpev54MLj9CLJErij2kJ?= =?us-ascii?Q?uL2vgn2lOA67envgaxkKhGfld9l78TGfvqdWNTJC+bm9DACA6drFcz+A4Z3h?= =?us-ascii?Q?MvmVHoFViUJa8tlBbm2UoZ8IEfegEKB4JcbtVwnuq0ir4kz5+Dm8PCPIVKmR?= =?us-ascii?Q?qaZgoT4d+AQBNIMrzR3J4tvM3QHLdjoCWM2KnH092q2C1kpaGQcKQYKBh+tp?= =?us-ascii?Q?okyPywWX/iLRDIZaEmIPa+1oddwvD6vfGj9hdzwUhl9n7cS+3tg9twUP6m4F?= =?us-ascii?Q?UTZbWK7GgZw3MvU+Hh+sUjGDwII7unbl7qoHMclY8pV+31fTZ/LjWZyN5+2v?= =?us-ascii?Q?A9izA1vMHpFDdz4GrK28bFTucoTG2BXjRBZK/A9JP2jleo+xxfCw1xv77uQu?= =?us-ascii?Q?k3a6gTKANsHP2YcL/mVS/CGrMeQC/r+OcTYcMIFe7DWaNTHfSTLwB15lhl12?= =?us-ascii?Q?Ze/92hQutSGogbpiMqQR+XRJMYbBdbz0C5jed0ici4uQkxqzkHVAM522tFi+?= =?us-ascii?Q?z4XhNPnZu1lPSxUSrGqwBJs96XfEq9GAjnJ75YBgCwi1qDUKSmUAPbzNb+L0?= =?us-ascii?Q?SFNr6Tmf3UL2dDOyNRyK8JZLZANLooFyEKbfO7VPFkZ0cxxeUwNA1Boqm5Zm?= =?us-ascii?Q?JtPnkgHcdlkxm8sEPmaiQ8Ss+JNAyUgh3/XMzRVEdf/Bx4SYvzNoPYfI9h6N?= =?us-ascii?Q?9hJR0gazNLq8OH/ckywteggkSoNGzIDoqDgVt4FC1U7IMhInrQ0FzRxa0c2G?= =?us-ascii?Q?gYV8HZqLA4djoGU7H5mGBqkitPPnYlOpE6Qvky33YZ0hwSjcUKTdSZqBp9w9?= =?us-ascii?Q?unwQzJN7PPochdK5ApoaarcPrdkeW1rDX5Td7U++PbjcCapp9z8tinJsMsDH?= =?us-ascii?Q?h4ioWumE+0Xco1UQeDtn7wku3pwvoOoyJwo/qjizIGlm0S5G94ZWnzG0MCNv?= =?us-ascii?Q?gIdRGJwNZwrBb1226zm7PTR+Ao7TurG1sTBnb4Xy6dkMqaTXrhMft0kQy7QU?= =?us-ascii?Q?ENDroOPrbmV4HobosMRCMG5dWbTfKOIwCyfhNsd44OXTDuEujvhYZkrR6cX8?= =?us-ascii?Q?Eapaqe5vo01Tsf7N8kIKK1CgxSR2MDpRRfUDlw/I?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7cd760d2-08b5-4a64-fea1-08db617178cf X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 May 2023 00:53:39.1686 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 3SwOUBol4seOT96sAugKZtuQ/cAEcE5UcdxuT4koIr9kARm8KDCv1E3giqO+rFgsLiL9o8aPaGimwSXYs1Qyng== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB8PR04MB7163 Content-Type: text/plain; charset="utf-8" This patch moves userspace pm tests out of do_transfer(). Move add addrese test into a new function userspace_pm_add_addr(), and remove address test into userspace_pm_rm_addr(). Move add subflow test into userspace_pm_add_sf() and remove subflow into userspace_pm_rm_sf(). Signed-off-by: Geliang Tang --- .../testing/selftests/net/mptcp/mptcp_join.sh | 122 +++++++++++------- 1 file changed, 76 insertions(+), 46 deletions(-) diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testin= g/selftests/net/mptcp/mptcp_join.sh index b4a2c2388d2f..04c15fa6f4a1 100755 --- a/tools/testing/selftests/net/mptcp/mptcp_join.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh @@ -813,7 +813,6 @@ do_transfer() =20 local port=3D$((10000 + TEST_COUNT - 1)) local cappid - local userspace_pm=3D0 =20 :> "$cout" :> "$sout" @@ -850,11 +849,6 @@ do_transfer() extra_args=3D"-r ${speed:6}" fi =20 - if [[ "${addr_nr_ns1}" =3D "userspace_"* ]]; then - userspace_pm=3D1 - addr_nr_ns1=3D${addr_nr_ns1:10} - fi - local flags=3D"subflow" local extra_cl_args=3D"" local extra_srv_args=3D"" @@ -882,9 +876,6 @@ do_transfer() return 1 fi addr_nr_ns2=3D0 - elif [[ "${addr_nr_ns2}" =3D "userspace_"* ]]; then - userspace_pm=3D1 - addr_nr_ns2=3D${addr_nr_ns2:10} elif [[ "${addr_nr_ns2}" =3D "fullmesh_"* ]]; then flags=3D"${flags},fullmesh" addr_nr_ns2=3D${addr_nr_ns2:9} @@ -938,7 +929,6 @@ do_transfer() local counter=3D2 local add_nr_ns1=3D${addr_nr_ns1} local id=3D10 - local tk while [ $add_nr_ns1 -gt 0 ]; do local addr if is_v6 "${connect_addr}"; then @@ -946,24 +936,7 @@ do_transfer() else addr=3D"10.0.$counter.1" fi - if [ $userspace_pm -eq 0 ]; then - pm_nl_add_endpoint $ns1 $addr flags signal - else - tk=3D$(grep "type:1," "$evts_ns1" | - sed -n 's/.*\(token:\)\([[:digit:]]*\).*$/\2/p;q') - ip netns exec ${listener_ns} ./pm_nl_ctl ann $addr token $tk id $id - sleep 1 - sp=3D$(grep "type:10" "$evts_ns1" | - sed -n 's/.*\(sport:\)\([[:digit:]]*\).*$/\2/p;q') - da=3D$(grep "type:10" "$evts_ns1" | - sed -n 's/.*\(daddr6:\)\([0-9a-f:.]*\).*$/\2/p;q') - dp=3D$(grep "type:10" "$evts_ns1" | - sed -n 's/.*\(dport:\)\([[:digit:]]*\).*$/\2/p;q') - ip netns exec ${listener_ns} ./pm_nl_ctl rem token $tk id $id - ip netns exec ${listener_ns} ./pm_nl_ctl dsf lip "::ffff:$addr" \ - lport $sp rip $da rport $dp token $tk - fi - + pm_nl_add_endpoint $ns1 $addr flags signal counter=3D$((counter + 1)) add_nr_ns1=3D$((add_nr_ns1 - 1)) id=3D$((id + 1)) @@ -1008,7 +981,6 @@ do_transfer() local add_nr_ns2=3D${addr_nr_ns2} local counter=3D3 local id=3D20 - local tk da dp sp while [ $add_nr_ns2 -gt 0 ]; do local addr if is_v6 "${connect_addr}"; then @@ -1016,21 +988,7 @@ do_transfer() else addr=3D"10.0.$counter.2" fi - if [ $userspace_pm -eq 0 ]; then - pm_nl_add_endpoint $ns2 $addr flags $flags - else - tk=3D$(sed -n 's/.*\(token:\)\([[:digit:]]*\).*$/\2/p;q' "$evts_ns2") - da=3D$(sed -n 's/.*\(daddr4:\)\([0-9.]*\).*$/\2/p;q' "$evts_ns2") - dp=3D$(sed -n 's/.*\(dport:\)\([[:digit:]]*\).*$/\2/p;q' "$evts_ns2") - ip netns exec ${connector_ns} ./pm_nl_ctl csf lip $addr lid $id \ - rip $da rport $dp token $tk - sleep 1 - sp=3D$(grep "type:10" "$evts_ns2" | - sed -n 's/.*\(sport:\)\([[:digit:]]*\).*$/\2/p;q') - ip netns exec ${connector_ns} ./pm_nl_ctl rem token $tk id $id - ip netns exec ${connector_ns} ./pm_nl_ctl dsf lip $addr lport $sp \ - rip $da rport $dp token $tk - fi + pm_nl_add_endpoint $ns2 $addr flags $flags counter=3D$((counter + 1)) add_nr_ns2=3D$((add_nr_ns2 - 1)) id=3D$((id + 1)) @@ -3210,6 +3168,65 @@ fail_tests() fi } =20 +userspace_pm_add_addr() +{ + local addr=3D$1 + local id=3D$2 + local tk + + tk=3D$(grep "type:1," "$evts_ns1" | + sed -n 's/.*\(token:\)\([[:digit:]]*\).*$/\2/p;q') + ip netns exec $ns1 ./pm_nl_ctl ann $addr token $tk id $id +} + +userspace_pm_rm_addr() +{ + local addr=3D$1 + local id=3D$2 + local tk sp da dp + + tk=3D$(grep "type:1," "$evts_ns1" | + sed -n 's/.*\(token:\)\([[:digit:]]*\).*$/\2/p;q') + sp=3D$(grep "type:10" "$evts_ns1" | + sed -n 's/.*\(sport:\)\([[:digit:]]*\).*$/\2/p;q') + da=3D$(grep "type:10" "$evts_ns1" | + sed -n 's/.*\(daddr6:\)\([0-9a-f:.]*\).*$/\2/p;q') + dp=3D$(grep "type:10" "$evts_ns1" | + sed -n 's/.*\(dport:\)\([[:digit:]]*\).*$/\2/p;q') + ip netns exec $ns1 ./pm_nl_ctl rem token $tk id $id + ip netns exec $ns1 ./pm_nl_ctl dsf lip "::ffff:$addr" \ + lport $sp rip $da rport $dp token $tk +} + +userspace_pm_add_sf() +{ + local addr=3D$1 + local id=3D$2 + local tk da dp + + tk=3D$(sed -n 's/.*\(token:\)\([[:digit:]]*\).*$/\2/p;q' "$evts_ns2") + da=3D$(sed -n 's/.*\(daddr4:\)\([0-9.]*\).*$/\2/p;q' "$evts_ns2") + dp=3D$(sed -n 's/.*\(dport:\)\([[:digit:]]*\).*$/\2/p;q' "$evts_ns2") + ip netns exec $ns2 ./pm_nl_ctl csf lip $addr lid $id \ + rip $da rport $dp token $tk +} + +userspace_pm_rm_sf() +{ + local addr=3D$1 + local id=3D$2 + local tk da dp sp + + tk=3D$(sed -n 's/.*\(token:\)\([[:digit:]]*\).*$/\2/p;q' "$evts_ns2") + da=3D$(sed -n 's/.*\(daddr4:\)\([0-9.]*\).*$/\2/p;q' "$evts_ns2") + dp=3D$(sed -n 's/.*\(dport:\)\([[:digit:]]*\).*$/\2/p;q' "$evts_ns2") + sp=3D$(grep "type:10" "$evts_ns2" | + sed -n 's/.*\(sport:\)\([[:digit:]]*\).*$/\2/p;q') + ip netns exec $ns2 ./pm_nl_ctl rem token $tk id $id + ip netns exec $ns2 ./pm_nl_ctl dsf lip $addr lport $sp \ + rip $da rport $dp token $tk +} + userspace_tests() { # userspace pm type prevents add_addr @@ -3288,11 +3305,18 @@ userspace_tests() continue_if mptcp_lib_has_file '/proc/sys/net/mptcp/pm_type'; then set_userspace_pm $ns1 pm_nl_set_limits $ns2 1 1 - run_tests $ns1 $ns2 10.0.1.1 0 userspace_1 0 slow + run_tests $ns1 $ns2 10.0.1.1 0 0 0 speed_10 & + local tests_pid=3D$! + wait_mpj $ns1 + userspace_pm_add_addr 10.0.2.1 10 + sleep 1 chk_join_nr 1 1 1 chk_add_nr 1 1 + userspace_pm_rm_addr 10.0.2.1 10 + wait_rm_addr $ns1 1 chk_rm_nr 1 1 invert kill_events_pids + wait $tests_pid fi =20 # userspace pm create destroy subflow @@ -3300,10 +3324,16 @@ userspace_tests() continue_if mptcp_lib_has_file '/proc/sys/net/mptcp/pm_type'; then set_userspace_pm $ns2 pm_nl_set_limits $ns1 0 1 - run_tests $ns1 $ns2 10.0.1.1 0 0 userspace_1 slow + run_tests $ns1 $ns2 10.0.1.1 0 0 0 speed_10 & + local tests_pid=3D$! + wait_mpj $ns2 + userspace_pm_add_sf 10.0.3.2 20 + sleep 1 chk_join_nr 1 1 1 + userspace_pm_rm_sf 10.0.3.2 20 chk_rm_nr 1 1 kill_events_pids + wait $tests_pid fi } =20 --=20 2.35.3 From nobody Mon Apr 29 02:00:07 2024 Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05on2088.outbound.protection.outlook.com [40.107.22.88]) (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 D41EEEA4 for ; Wed, 31 May 2023 00:53:48 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Y2OhDaSCf5NsmM7KzDHaA3tZ7fXEzQfcexQRp66Dc1x7yaV++saonsiTuXKFLWe6C1/sLF/g7bp0Kkbdup7hvC6/L0gjy7lZrnqlnCNcJWhwToS8zbdIWVJ4F+VTJesbih8qKmj4hLOZnpERaBZ0Ip+WFJEVit78oSCd/dH6YhjCVx4nceHkFxHu/ICKAmGI8NVt1/8Vg68bfuDYZ555hdOK/7MhyNCVkBys4qez7eJeYFoQPrVGKvoZzwqVGKgZLB6B37p8jiJgSVlXoRN0VOKXASd2lQiRPTQeobaz3kLXtwDwaFAjLohTf0h8AsBGCffCXwBqnqZsIo4YtsByWg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=fcpGihSfi2UugsOeU4DcaE4+7U5heCbfe3NJ4m5O/Gs=; b=JHAVnjxpC3mF/Zgn7OkRSUZh9F16JzZAl7Us2D+lXWQfuCVK84/Dh80ETs+AU9p2Kwb14NoWZo4DiXKXAsbtIra02iHvqTqp6uMVzzgBgtBcUdL0y9467XczpSmf5M2gMR7ujBWX5X40XID4xlVnkPRlCbHv50iSnzeMOOpRruBKBXGP1HDI2tnO9j1Gzc4LlmwbEX9fyGH+pB101qXIy6J5n19jOooohPKMXkOAYqVNKDWY1fOzZ7ifDZS/qXS8GenZ257iFa9xknCYciQOCyS9yCOpbsPzwUBJCzU+BEOUVVWvduJ9IQCaLvOmLuNukovtqu9fAeTRIKuWAbuR3w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com; dkim=pass header.d=suse.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=fcpGihSfi2UugsOeU4DcaE4+7U5heCbfe3NJ4m5O/Gs=; b=Bguxh4ES0Fayr7YGZFvy+ITi1F2KfC9PTUGID65Ut223khX7A2QTcaFUR+BEW8plbS4WBZ/pS9aj//i0AEnL//wyb0vncppKKEsD8V1JMfxGUn5xojzZxz3LD+cGBuLLGWOFEulfgwwGX1DBj4Wo6BbfVCacdaI27uF76NVZ2Ety+U7vXUgBwmp2CNkVYpYmX9ohrlGoP2IpJHvjD+kmf6WrjGTPsA5MVYcGqV0fX9vpQxu5Wkl9HWJB2k86Lp+krj8RQVVWjiHkmlIdbO9u0N8My0wfsec+txacRCVph/6GUqeZx34GulF3rorewkoPaktEv+wuR/VvgDdFYf5G1Q== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com; Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com (2603:10a6:7:83::14) by DB8PR04MB7163.eurprd04.prod.outlook.com (2603:10a6:10:fe::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6433.23; Wed, 31 May 2023 00:53:46 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::423a:a30f:5342:9d35]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::423a:a30f:5342:9d35%6]) with mapi id 15.20.6433.022; Wed, 31 May 2023 00:53:46 +0000 From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next v14 4/7] selftests: mptcp: check subflows infos Date: Wed, 31 May 2023 08:53:01 +0800 Message-Id: <1b57366a8c88eb43b7a03ad93f1156891da55515.1685494054.git.geliang.tang@suse.com> X-Mailer: git-send-email 2.35.3 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SG2P153CA0048.APCP153.PROD.OUTLOOK.COM (2603:1096:4:c6::17) To HE1PR0402MB3497.eurprd04.prod.outlook.com (2603:10a6:7:83::14) Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: HE1PR0402MB3497:EE_|DB8PR04MB7163:EE_ X-MS-Office365-Filtering-Correlation-Id: 8c7d104d-4fc2-4e93-0480-08db61717d1b X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 8Za4NkgAbMb070w/D0Ec1Tdy1HKAy/umM2/k/OHq20w44drQ5ntTuQ4xm6NACf8Ayv4dGKBeMcn5nymwha4GfVecaTiA856UOI9pp7o1cUzlajLss7Qp/j8X+S4fSbjfKvou5uOasylLRNcnokC9f74oM+8VCWKXasPedOI2a8V3u3Nxaj/BZfLjr/67g5CR/ZyLLOR/GsTOEacuGt75gX06P5EkErQls+8RD29fV6L42pskOHzvCAHdPnuCaRt/gxORtehtCj27Tqrs8qOYrwLMY6RKz6Z28uICVogj3kijV5cspCiKiq6W/X+Os9/DJO0C75bSOqWT2LtZPot4jVWz/Ti57PUmT6xRPd/yLW+onhK1RCVHDnilC+L/eaJ8Ow+K16fJRyHCqIs1ZTNEx7DNSKWN+UWCTrBNuN2PcoTv97U+/sg83/VmGQRRcwD9rwJgOQog8zqV6geCedqbkjMmZ0GjrSg+ttEBWyOM+VIqyQ4i6/rVKO6NJMXzts3UncD6WaZCxjenqT09JVIY5vbDxdPVRS4DbbiozlP2IvdMjh3bvaUY9waRpswJzfJ3 X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:HE1PR0402MB3497.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(346002)(39860400002)(366004)(136003)(396003)(376002)(451199021)(478600001)(8676002)(44832011)(8936002)(5660300002)(86362001)(36756003)(2906002)(66476007)(4326008)(6916009)(66556008)(66946007)(316002)(38100700002)(41300700001)(2616005)(107886003)(186003)(6506007)(26005)(6486002)(6666004)(6512007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?ghHlzKw5r01FZFcaws8D1pFoKZOYyWiOwl5WTtSElziOJU2jcTJP/ntGKMd6?= =?us-ascii?Q?clonswqLOdQdr7xJ9G7ojo+W+uC1J5Q7bDEWaAeQ6B5Zxy9hCBdaVch6eE5j?= =?us-ascii?Q?XE8h1X3SyE4HcXNM9DKPnSrIRC4gUfm3nRI0G4yYpLe1btmXlaW2AuYoSnsI?= =?us-ascii?Q?Bbjw/E4m/H8DUxb+nihrFq+eSSvSGhckO4yEnaMMIeHpUybFi41ZvnYAy4/E?= =?us-ascii?Q?r90LLh/I8T1RLQCAsq27BZ68HLlwnVTLJJMPYUfuB6vWSIfq/bOzhJBqZAQP?= =?us-ascii?Q?6yUQnMeXxhXzJKLVvzWziuRct0Gzzja/k8MHYhdfn9PIZLrxjQP7+seSfHvn?= =?us-ascii?Q?dLwBk9l1YqfpfVcLT/wqafpxCrmXQSE3iT3gOaYk/L62TWm4s63mCzqinH5F?= =?us-ascii?Q?V52ZMCgdtBk1Sjfr/4qOT9cCbHg5x6OikUmlxUVMl61EGyYmbvwhRNR52bZO?= =?us-ascii?Q?SGS9QMwwaU/uBCcw/cyGlfs0bipuOjr7HErjFcpJ+Y7bF8QCdruKx44ZDMEl?= =?us-ascii?Q?Janc5/g/3nrjQ9zD/B17stvHfGmaVospZbRj6xIkeSOD4uoYuAr4Npf9SWME?= =?us-ascii?Q?gM5QPn6eoLTK53VuBSFu2vum0g1HEx4qTEtz+rLOpa9QkClqukeLEZAX1A31?= =?us-ascii?Q?NIkMkACHQq/Z4CFbhBLkpNRjE+tnkju2v6W7aARn2O6AVUlz0fO4cXCBS7/U?= =?us-ascii?Q?pTjsxoRw3yG+742VBrUwP4MmvjnstYTC3FKUWQ7vvxPjukCUfFPzGXx09TYm?= =?us-ascii?Q?TRXhMfcXlaMz1/kwnzuVw0tHBKY+5uASFR3fjvL6He4GB2QsEbL6ksbEBVTb?= =?us-ascii?Q?HkJUftED01OsBBCxqxA1eO3g21xmHU16cpdZbk1cA/1AolHEIOoBlZpbFYw5?= =?us-ascii?Q?NFZagYjybZjhB0J4gt/Od0OMMXNi9WhJAR3hhCTfyxzCX0Qy4nw6Hu6qWYmb?= =?us-ascii?Q?xVQHmDBsY36Z0Rnn7PB9mBhnQtWqUdekvA4lxPgO/1VbQ0S0k8wLZ8CA43ay?= =?us-ascii?Q?9t57K/uzb5K0q/TdDXE/gwFBirEv8N/kC+us2SZvGzQf4VLbGZGEZ1KuWoym?= =?us-ascii?Q?y1CUe/blmGeyG6mnzaBLtGKggvjoFiDHDsFJSKg2SewnDlupWbqWMsqBl7PK?= =?us-ascii?Q?UdrIgsfhZAii/GkTovY+y1T9il7vcNkqU5PrQ5iRZmXLFuKKt03MA0Tp6cjP?= =?us-ascii?Q?4aJ5MtyanrPU429wl1H539IDIeb7fcgXHorlWUE/5ikLAjcmHkspU7l591xI?= =?us-ascii?Q?5vbQbdMty2urpa1COYwigFVkGIMPb6KuTj6enFbikjOBbIAyOfxS3kX+6eUz?= =?us-ascii?Q?7OWPFtQjJ3m48rOegTeEAesUepFzrAnfa7W7zS8MpDsm7TxR6ejKa7HVNJso?= =?us-ascii?Q?KwLkSlgCaX/KFuBkkFx1tx7aGiFyrzOhEczqL5Bh1hsMnPtmAh2DQOSdFpn4?= =?us-ascii?Q?sW4MkO7S/2e1+rj0NUFCK+SKdtKEadI4KmZ2BYWm0WxMt+72TGLMXXsYnRAh?= =?us-ascii?Q?/x7PcCftXXiw/OfOLInJMFKB2UcQ7K4cmW1Wd/ywipfIry2Lsaj3duXKEatL?= =?us-ascii?Q?FbkzyxnLAFO/FvR2YhNZuwlVdQfsYa/sIUGKsZgJ?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8c7d104d-4fc2-4e93-0480-08db61717d1b X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 May 2023 00:53:46.2679 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: tc7MD/f121N2WCcSmiHbc4VXp9l8XrcPBBwtWyPwsVMhb7tPnvdTpoZIpDOKrfp3OxCuclWllxO2k/oXGbMg5g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB8PR04MB7163 Content-Type: text/plain; charset="utf-8" This patch invokes chk_mptcp_info() to check subflows infos of userspace PM tests and endpoint tests. Signed-off-by: Geliang Tang --- tools/testing/selftests/net/mptcp/mptcp_join.sh | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testin= g/selftests/net/mptcp/mptcp_join.sh index 04c15fa6f4a1..846d028f0b16 100755 --- a/tools/testing/selftests/net/mptcp/mptcp_join.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh @@ -3312,9 +3312,11 @@ userspace_tests() sleep 1 chk_join_nr 1 1 1 chk_add_nr 1 1 + chk_mptcp_info subflows_1 userspace_pm_rm_addr 10.0.2.1 10 wait_rm_addr $ns1 1 chk_rm_nr 1 1 invert + chk_mptcp_info subflows_0 kill_events_pids wait $tests_pid fi @@ -3330,8 +3332,10 @@ userspace_tests() userspace_pm_add_sf 10.0.3.2 20 sleep 1 chk_join_nr 1 1 1 + chk_mptcp_info subflows_1 userspace_pm_rm_sf 10.0.3.2 20 chk_rm_nr 1 1 + chk_mptcp_info subflows_0 kill_events_pids wait $tests_pid fi @@ -3351,14 +3355,17 @@ endpoint_tests() wait_mpj $ns1 pm_nl_check_endpoint 1 "creation" \ $ns2 10.0.2.2 id 1 flags implicit + chk_mptcp_info subflows_1 =20 pm_nl_add_endpoint $ns2 10.0.2.2 id 33 pm_nl_check_endpoint 0 "ID change is prevented" \ $ns2 10.0.2.2 id 1 flags implicit + chk_mptcp_info subflows_1 =20 pm_nl_add_endpoint $ns2 10.0.2.2 flags signal pm_nl_check_endpoint 0 "modif is allowed" \ $ns2 10.0.2.2 id 1 flags signal + chk_mptcp_info subflows_1 kill_tests_wait fi =20 --=20 2.35.3 From nobody Mon Apr 29 02:00:07 2024 Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05on2064.outbound.protection.outlook.com [40.107.22.64]) (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 9ED1CEA4 for ; Wed, 31 May 2023 00:54:00 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=LDGrqJWRabdVptj72oNsc3PuQ58mb7WhTxCwfbi9uuTB6eGc2p0SqTCJTNvDw5Kuj2xCsrBIwbxDPeNj6fkxym+jSIp16zW1m06bTKfHgIg/p5Vgzj0TZ01pEZWpTZsTZKLz1H2FUIuMepWXFc339wrE3zWcRV+mX7zHZSme/n4LmFkkmbGlWNK02DdrF+JsZv2RHpRAGnTZr/dszcv/aYsAcmvMUfV7fHdvHIiJ2cnJaF8+SKBipnY8ibMU9AgRBYj9LVYntbhfQ0hinwv6mSRl259znufRhtWeBbjYRKJBbjJo44SfrtVwUdFbfrBZi5vwMPwBDzUReCFioTIDfA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=UW6mQXMkEzoGj05tR03PazZFsgzMfd9DIKZnW1Lg9VM=; b=ktr7bTxH9oU5StTK5Vzo6+7RMcakTGGBhCGNPJ7oFXiQA4IK6wSina/JrR8lNhiZthG7Ndc/dba7eOO6jHLEzY8Dze2nvdsF7BOwiH7V6UjKWwr6E5vk0sTldkvESXB+4EMlrwShpYIV/3g1R64u0Qi9ob0kO378xCoS5mJxTBjpboR0SwcGxw+gh7eCskEJIXTR+T5Yx8wzCK7gViYI6KAAgl+q7Tr9ppHBXjmqO0I3f3VIyqyjeYfLNZ5hE2Jkbmc2eqDmbbbZfGV1bzAwebPfsMwz515ykZZ1m7SBO94kR41519Ax+M6IpmLtmZ7BuVRga8UiRCFQbtXxZjcW+w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com; dkim=pass header.d=suse.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=UW6mQXMkEzoGj05tR03PazZFsgzMfd9DIKZnW1Lg9VM=; b=XwYmsOJcebov+TpulZMB3Vw9UvGYcUdBMYS4BhVn+9wz+tgChzvZaig2hiVzuavb3YruFr2bHrTlus8CGesMrdU1aIJiqRcDCTPYQY3jJ5SANu5xJ9EGestHxjH2zxYPBlQeAY1BVE9VywTvrluXd+30tB0ElYpXNr5DXbPOgAveBr0M0Dhkql0TdOBkNwKAbMJnYxI44mUh9nby+5u8/pELqk0pEhXZBMxHAHalg3mqD9rUeHZMSbw3iAdxXU9CQW3soYjvr4KeprkViI+L8xWe1yEvjrCrCw9vQsduoxd5Ro5pA4BfZ9hbqCoGhXOJ/aJ7MXtFOFKLbgK4w7ZMhg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com; Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com (2603:10a6:7:83::14) by DB8PR04MB7163.eurprd04.prod.outlook.com (2603:10a6:10:fe::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6433.23; Wed, 31 May 2023 00:53:58 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::423a:a30f:5342:9d35]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::423a:a30f:5342:9d35%6]) with mapi id 15.20.6433.022; Wed, 31 May 2023 00:53:58 +0000 From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next v14 5/7] selftests: mptcp: check add_addr infos Date: Wed, 31 May 2023 08:53:02 +0800 Message-Id: <9b35d5befb941c2d13c8f75cd2ac3bf4b6257fe4.1685494054.git.geliang.tang@suse.com> X-Mailer: git-send-email 2.35.3 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SG2P153CA0038.APCP153.PROD.OUTLOOK.COM (2603:1096:4:c6::7) To HE1PR0402MB3497.eurprd04.prod.outlook.com (2603:10a6:7:83::14) Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: HE1PR0402MB3497:EE_|DB8PR04MB7163:EE_ X-MS-Office365-Filtering-Correlation-Id: d1601062-1387-4656-3f8d-08db61718412 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: LqnsIsH4IrKdbI5F0JHT4M4hBXiz3k2UW4kMsn6UW7YEVu3Dz7Ovu8/yXnSdzY8JuWngrj+BKKB9OFaMSxLyODRFL++uGk2N+g8+hNhFsjEJsIv2IwyHZT/K+Gkh37qK27n128GDc0z4+lQwiWAVYqpuFWcNoXeQ7gpU2Q4H3jn4IIGRmBQaO8jGDZY+AAgshAHZaZkGCqVCM8qs/I/uPGao6db+PRzq/8/YqarOxIYb8hg2OawVGQDIGeMegRYDgiYE0R/Q/xctexraorQSRCTZftA7OW6VwgbFAcgomi+Dylt4Qk8+dwiwERBsqSwrJaUTZjTaROS/lzQZM1d77zqFVH5QjZJVkhWSP5rYhFzwFqhlM7y0ixuvsInrRA1s+ab9oydDQpAyLy7Pl6Rt1grK9Zl9UnRTpJGs+gDiUUu2LRVb4seln4XQnBhp9+twSZPp5lVy2YTC8DZ4MhMnJ833LudEq4vhUJOGSmcE5Hzl+d3XlZ3jjpfe0PHR8JIfGUsrNQTMymK11jVZ14EGbpSKNqQxr0mX5C76dZwwcKsLkZhBG02rr/6qxoIPP184 X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:HE1PR0402MB3497.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(346002)(39860400002)(366004)(136003)(396003)(376002)(451199021)(478600001)(8676002)(44832011)(8936002)(5660300002)(86362001)(36756003)(2906002)(66476007)(4326008)(6916009)(66556008)(66946007)(316002)(38100700002)(41300700001)(2616005)(107886003)(186003)(6506007)(26005)(6486002)(6666004)(6512007)(83380400001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?CjOWUhv7nPCp/eO7Po9IfQ+Cid3hTwdI1Pnw393pOI8Ts0MbR4ULE2KuRzry?= =?us-ascii?Q?P2VZq8HiCnXjfH1nnIS3vWk47BGE/gtY0mG2UkezakYfLiwT016FkoFTKHTU?= =?us-ascii?Q?Cqask0c0w+rr6JE9ZJXb6UCv1FnaE3xvm2wmgCrY80ASvB0sD5hD2mdYHJnI?= =?us-ascii?Q?VaN1fKeUWOedklZotKwvMKllYtAWimvYFz0/j/Oyj+q7WU4nK/Yz8S7hP1qv?= =?us-ascii?Q?yT5iI79KY4f02RE+SNWQee5CH7Hj/t0pdJcXqrniim3wJUVXOkjztM2i021o?= =?us-ascii?Q?04CaKJKsOtcgW2xgKuagXKFmRZSW/GKiK0aBvYM9PpGaO3Ihrxat+ipY6YSB?= =?us-ascii?Q?C8LsPSwLCfCTNZFEnPUa6vhqEQ9mhQdjMt36v8A+GjJQ9EvSVqXjBL6ic6LU?= =?us-ascii?Q?UGFQCTvcdRNnKIDBtjVDfsO2wmQyhFKrvltbOLtTd3RobIhxJCzRG41UPrFF?= =?us-ascii?Q?K5RIG/7/fSIbiGUbIIhuMlFyoNMOd/pYox8ea+qyvaWih8dEZt6VdUNsAJRH?= =?us-ascii?Q?aU3TO4sIGP8OtDvIr4GSQTjNc6amUZ82S1PV9t/frFbYXjXVG/DvavhcMyLQ?= =?us-ascii?Q?Wek2ZedGp2zCylCgubKACQdF3CPHkqxuTV5Yc3DeDdj4g1gTUlYXkbfCyVW6?= =?us-ascii?Q?1WwonhEgy7NThqhpql4V17ny0SzJapxRFE++/s4zLJAjbxKTsOs3zgbDC0+Z?= =?us-ascii?Q?RHouOzwPrevTU3sWX9yaXoajtvwu2eVa/OaYCQ6309fJbtNzCzgJH5cVux7v?= =?us-ascii?Q?gGBtK1ogYFURmxJG0cbGYQDJ4E+IsrLYpzcFMqK9uWQjDYlbMWERUxwpZAfI?= =?us-ascii?Q?N+E8d2wm0qmucEqq6+xynJg4LTfw6PekwD/sDeopSp0FpQDGFP0Lfr6knApr?= =?us-ascii?Q?mIlkAnvcF/dHP8vMuSQnJ279tnVnJ7GrtTdQhFCKQbRfyaRALHz70IZPMVzs?= =?us-ascii?Q?pthGeAPT0+wI5auZiD8AfV8JvDJ/o/brn4FhOlvF/sRObpNh/xENkJ3hhTae?= =?us-ascii?Q?sTZi3lykrTPQQyDmoo9FCbMMzPC3W9H3yZW56hlfn9BA28s5i8+2ERGDYGHw?= =?us-ascii?Q?k1E+55ZjHrDhbdwqSBTN4ASv5/Er53pzB7D1K50t2TuX3aRFUWXBJzycPoGJ?= =?us-ascii?Q?PD7bA3d4OvJB6s+knk9B/LZu2KyRNrIMJEHZLq/Jc6n1qF6v+CsRzUMEgwhA?= =?us-ascii?Q?l9w/5NE2wTZRLUdqK13Pm6VRwYPpN3lgrtb/ga/P/a2toMJ1J5ua/D+7Upr1?= =?us-ascii?Q?pZVBTL3QM6uyt3351vL8L8l2gF66xj9iik/LtOH3x9Lo2u/I7IE5vaJoISlt?= =?us-ascii?Q?zk2MOsDHLDDEEPe0cO4JBiee5n7cGnfyRlyhtoF6IeB4FNkRAGHgtNf8YBXu?= =?us-ascii?Q?9jbIU9VQ8+f9N6MNLVvekp2X7LLDtWRfejKbEEcVqSyzSGancepqtcX5mySj?= =?us-ascii?Q?BjNlYIC+h+P9CyL7RngHomynP5dXbqWhLjebxhYCVhxMdeW02/l2a8FIXiHT?= =?us-ascii?Q?h6RhSX/zMlx2CvjhxRMBYskecRacJj15RsdjqmRV3UUQHbdbeaj7dyBJol+4?= =?us-ascii?Q?YEARpFEs5hAM1O2oP7kIp0LRStrxPrWWbvuBU4EF?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: d1601062-1387-4656-3f8d-08db61718412 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 May 2023 00:53:58.1401 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: vS6eyT0hFs/YA7l3Re+HoG4yJJz+XdHGBqIMaLyDdWJxzsOhxvXN83i/zNCzHqwmYVjjNqTK79v7u/FyCsobBA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB8PR04MB7163 Content-Type: text/plain; charset="utf-8" This patch checks add_addr_signal and add_addr_accepted in chk_mptcp_info(), and do this checks in userspace_tests() and endpoint_tests(). Signed-off-by: Geliang Tang --- .../testing/selftests/net/mptcp/mptcp_join.sh | 26 ++++++++++++------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testin= g/selftests/net/mptcp/mptcp_join.sh index 846d028f0b16..7270f8cab157 100755 --- a/tools/testing/selftests/net/mptcp/mptcp_join.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh @@ -1816,13 +1816,17 @@ chk_subflow_nr() chk_mptcp_info() { local nr_info=3D$1 - local info - local cnt1 - local cnt2 + local info1 info2 + local cnt1 cnt2 local dump_stats =20 if [[ $nr_info =3D "subflows_"* ]]; then - info=3D"subflows" + info1=3D"subflows" + info2=3D"subflows" + nr_info=3D${nr_info:9} + elif [[ $nr_info =3D "add_addr_"* ]]; then + info1=3D"add_addr_signal" + info2=3D"add_addr_accepted" nr_info=3D${nr_info:9} else echo "[fail] unsupported argument: $nr_info" @@ -1830,16 +1834,16 @@ chk_mptcp_info() return 1 fi =20 - printf "%-${nr_blank}s %-30s" " " "mptcp_info $info=3D$nr_info" + printf "%-${nr_blank}s %-30s" " " "mptcp_info $info1:$info2=3D$nr_info" =20 - cnt1=3D$(ss -N $ns1 -inmHM | grep "$info:" | - sed -n 's/.*\('"$info"':\)\([[:digit:]]*\).*$/\2/p;q') + cnt1=3D$(ss -N $ns1 -inmHM | grep "$info1:" | + sed -n 's/.*\('"$info1"':\)\([[:digit:]]*\).*$/\2/p;q') [ -z "$cnt1" ] && cnt1=3D0 - cnt2=3D$(ss -N $ns2 -inmHM | grep "$info:" | - sed -n 's/.*\('"$info"':\)\([[:digit:]]*\).*$/\2/p;q') + cnt2=3D$(ss -N $ns2 -inmHM | grep "$info2:" | + sed -n 's/.*\('"$info2"':\)\([[:digit:]]*\).*$/\2/p;q') [ -z "$cnt2" ] && cnt2=3D0 if [ "$cnt1" !=3D "$nr_info" ] || [ "$cnt2" !=3D "$nr_info" ]; then - echo "[fail] got $cnt1:$cnt2 $info expected $nr_info" + echo "[fail] got $cnt1:$cnt2 $info1:$info2 expected $nr_info" fail_test dump_stats=3D1 else @@ -3313,6 +3317,7 @@ userspace_tests() chk_join_nr 1 1 1 chk_add_nr 1 1 chk_mptcp_info subflows_1 + chk_mptcp_info add_addr_1 userspace_pm_rm_addr 10.0.2.1 10 wait_rm_addr $ns1 1 chk_rm_nr 1 1 invert @@ -3356,6 +3361,7 @@ endpoint_tests() pm_nl_check_endpoint 1 "creation" \ $ns2 10.0.2.2 id 1 flags implicit chk_mptcp_info subflows_1 + chk_mptcp_info add_addr_1 =20 pm_nl_add_endpoint $ns2 10.0.2.2 id 33 pm_nl_check_endpoint 0 "ID change is prevented" \ --=20 2.35.3 From nobody Mon Apr 29 02:00:07 2024 Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05on2075.outbound.protection.outlook.com [40.107.22.75]) (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 8E84CEA4 for ; Wed, 31 May 2023 00:54:08 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=esBx8dj19jwRKvr4rK4RdsNEGU1kiIcmR3UqpazC3ifgDAT5ePMP3RCD3yePRVGs4G2NrqUyeslYjge/msKyZCCmDJ5DF3BJsxWJn2zoH3cVUqOk8h8taKSUk2hK4p9MNZIVLasJw+HSFiMdOzrndWg6CeZRHQnZnliKsQ2yx/FnLcy2V/aPfO0t402yAGPtW76NLvWQ6fteHCjxs3BTGNMnStUoOrWqIVzMZn6x0gWO7fn3zqXPwFI8oZup4xOG98nmc24LQWuSYIVI8WhywrYwfE9EQ0yef5cflYbLKs9ww5wInkW2GMNkKvtYujZvIFD7SEDFKCDxiO1TKaruWQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=fC6JUgj6hQm8uCUbjLKa5cDKSSsdSNL1kVEFk7rK9IM=; b=Q+62zQ25+SCzeLTk1qUSk2hK1V/20dLMfL3qbbZeIPKeIRbG7Q159Q7oSOZ9FB1X7EGecf8qeti5C8mM0ZHmn7NrxzNMYMWmg7nC+OPGsqrPyCc5uqzhCCAEZxBOOwcwvaOMQm9Tj7kl+zjUGKNPbwUfo5EnTkeRxPY7S/Grxctw1GwqDNajzwea35GXb8ca7nKFZPkvhpDzSB23R1zWzywV7DfVMQB92zeWC20fpPR5hzK6JR2D52GguzOcijjDR6PS3X6yPXoMSHwnS4ER/ci5WZRqaWRbXo2PefIxoFHUKMuaUHzsiOxa+BV9wu5+hOXwDdXKZQ+jgNVKjlnNZg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com; dkim=pass header.d=suse.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=fC6JUgj6hQm8uCUbjLKa5cDKSSsdSNL1kVEFk7rK9IM=; b=QA6QjohFJnT1U0bht9tWRoWQUBSLa8y5DcCjGo4PYaO4Hl1FrQQLZUbhhIirVq5V8JXsBKHOnXw6z0eHeaCVhl0utfJglC3J8FGpCA5spSGIjzxgE1/qmFvi98xG69mRrsDMoLufpUfr9MlRyTENAH/+avDo0xS+Km/Dvh4xUZ0WlQ+yIPTFSavCRaRa7bnpQLg/e+uzKxeSSmELgXsTZf2ZOrzO+UkmdrtjLqTI1wFWkHRx4b5BH939yGMRdlYLAHq8+3OHvPFgY9jT/r8TGoFzaNs5fLcWY5ZjPFf3FUWq2P9D84eq1mdtIIdSlX5x1dxPk7gaaAPsVbHx1eFtCA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com; Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com (2603:10a6:7:83::14) by DB8PR04MB7163.eurprd04.prod.outlook.com (2603:10a6:10:fe::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6433.23; Wed, 31 May 2023 00:54:06 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::423a:a30f:5342:9d35]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::423a:a30f:5342:9d35%6]) with mapi id 15.20.6433.022; Wed, 31 May 2023 00:54:06 +0000 From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next v14 6/7] selftests: mptcp: pass fastclose to sflags Date: Wed, 31 May 2023 08:53:03 +0800 Message-Id: X-Mailer: git-send-email 2.35.3 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SG2P153CA0026.APCP153.PROD.OUTLOOK.COM (2603:1096:4:c7::13) To HE1PR0402MB3497.eurprd04.prod.outlook.com (2603:10a6:7:83::14) Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: HE1PR0402MB3497:EE_|DB8PR04MB7163:EE_ X-MS-Office365-Filtering-Correlation-Id: b6e1637f-057f-4486-3f32-08db617188ba X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: aOHyZLNr4FynKkSBr1X0piNLlABmDD0WZBWQ+l6cfAeRijL39oa89b0QSXO+7+VTXXc/1yvj4CAbl/2cUG/KG8Yb7pFfwxdSaBtXPGBKGr6UCQTu3ZAulCVcog+jvgHUEc4Aa7xhkezMArQRzZbmLt5YC9jXgdVlocz8NRK6ghJa7oFP+YSAM9gRnPJk/vr9SpMeD9SkibycmzlrDxiIs4JzkEyC9mHptBFqK0EIB6LHLaIr55BeYGPn89amf2k91RES/DUNDjwYOPWE4hUrm6qRecs6h2qAcuf/CnURe2FzznO6xxg3QZsd5Ef7iH0C/yBJq0Gj+MWREB+bwUw2lsfhwFOH9W0Ds9tM0nNKZrGs8kVGCLZYhLRILQ2NPMfHEZKK42NHrQxkmRcKqV+Sin/AWyi0353ApN4b+jdDDl33jswvLKAT0DaP3nXQUZyBAyPBq365Mjm+Kth6nbMgHnIUyD3mi+UBDe1UKThGVhZHpSHLiPeMqUK9Jgs84bR3+Rx7/my+U3vpcxUSSlyZtYajAVSOgjCpj/M8prLvt3V1NKuXWs/7ZNgFY1R8i0zE X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:HE1PR0402MB3497.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(346002)(39860400002)(366004)(136003)(396003)(376002)(451199021)(478600001)(8676002)(44832011)(8936002)(5660300002)(86362001)(36756003)(2906002)(66476007)(4326008)(6916009)(66556008)(66946007)(316002)(38100700002)(41300700001)(2616005)(107886003)(186003)(6506007)(26005)(6486002)(6666004)(6512007)(83380400001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?rhR9ZzgOJbLil7lz783WlJL9KjzI/Ikvgj69pCPNxEMvUKI0LuZHIKJ/BuEj?= =?us-ascii?Q?bQtTIDYNETXEmmN5hm8au5HSGC5wFqjjZIYzHoKL8fWPTtQcEV0Ne1rNUIB5?= =?us-ascii?Q?p/uqmRaHgn1UQe3TGbm96i4Sr6agQ+QCU3jZDhwddCeQ1UAydOg2u1+1L4st?= =?us-ascii?Q?4TGm1Medi7oTO8IYftSmAE8mStoLEphK+4r5Gz04n3QSCev1pRuywDvPA6nd?= =?us-ascii?Q?UsdYkuIBVMb+HXsWhaxSR3rUlmry3CXCQVzUAiB2I5Myu8+Y0SkhqViWARbQ?= =?us-ascii?Q?rrAHtCly1LiJZ+ZuastKzPpGjWjaxGTs/wuWdHw+OkbKxHmneQatpFBjg0IA?= =?us-ascii?Q?UxYzaDyA50nCJ5hqnd4Hz1ZFyS7OirB3hxscMIWsnJtT2LdJECJX9WDPT1yT?= =?us-ascii?Q?iV+cY4M8yWuuCdmQHEj77jv/chX5EhX5kizgQwGXlCLABL+o+QUTnMvwbW3e?= =?us-ascii?Q?SP+rFlg8bJmddJ7uTxQqfA51qrBU9pQYWOhVGqyK1dyc6i9Cp+z9HzT3ITST?= =?us-ascii?Q?lLlmbaEynsqE8qcLrY2xmppry7ZWU+UkLv6M751Hu3/4b6IbCIMO5YD2/GkN?= =?us-ascii?Q?/oQqKyqkwPx2/KXrqkgsy5iYu9HN7gIKytGkbewmLyyop7vGBF/YzwUQnDEa?= =?us-ascii?Q?Yn5NZI55eHFl+BfIK3u0AQifFhV8f0/0wwQPnKB/iOYer9/IUIJqQ0g/DIHP?= =?us-ascii?Q?G1S9JYnbqUWOV2U1c9nXE+FzPW4Km70UN0fxmxeJQr5Nmm2LAOx6RjCuziK6?= =?us-ascii?Q?/KznDMHb4lHg38m/12mqMtpVEV4PjNk+rps5dizupvRZaUfO5L1sMQRV2MiR?= =?us-ascii?Q?rs6wBt3NhRii0XtGM8gD3o7YPZSvjSRTBtB2LTUYshz6fL1kv9Y3S4A7jQta?= =?us-ascii?Q?yzKCLBbeKn9iVIiTK7Hzy/etF8pJQVAvPyXEkoPSYIHB5/6ffo7/NaOsN7Vg?= =?us-ascii?Q?A3bbs3JRYzHDdjIdH9eC4+V8N4Z0t20YAmXjNST2A1x40uc8+Z+tXUlXXdcw?= =?us-ascii?Q?Q+7F3gxIzP6lyeaMLUZlCh/m4MfI7RJ8HHZtnHyHTtL2Z5dnTr+aidvynJkF?= =?us-ascii?Q?eYO3ZTdYatQrIVbEBpj2sdOjh71FHOB8B2Mj/UWaI35zzPXgFDZxzVSrBsLG?= =?us-ascii?Q?PoVZpmK5KRWD1DI8l/YFo47TIQuFfWj42OzTMJzH6iTFGKN+EE1JLMllPaDX?= =?us-ascii?Q?I75qBPVQPj7iTVsxQtS3FDFTTMWUZw8RJK71MDOgn3HmY0f5RYl+IrrlH3Po?= =?us-ascii?Q?PFFZGJwHevpbHgI7nppFYLIBDJ/jRq/aO4t8ul4ITYexmm8458T0ycVl/F1v?= =?us-ascii?Q?5NBrbBvK4PCHhtHvYgOZGy2qjoXrbAVDNfk6kKPt3Puxl9T/SJIkrJjTq80Q?= =?us-ascii?Q?tZRIK+3VC2nfg0alhgvqaUz6LgXbDeezHu895Rtyq+rqR7vhyAchD3UacvvM?= =?us-ascii?Q?RlUUgQRQqzhvzdyuWf0V2xXs+QvuzM8QwgTC09kh+jrZN/z/oHnDVuRKwxFR?= =?us-ascii?Q?Zj3hn0ttIFwSwsC3zO/ROPRWnZYFZPRurlNcJVKoa8E9BFAJv305mYFA++fs?= =?us-ascii?Q?OQWAOkAiUEMQsMqgLFscj3WBRlMHj9HcVokmneJ+?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: b6e1637f-057f-4486-3f32-08db617188ba X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 May 2023 00:54:05.8008 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: sVOGRKFvZO6sTV6VBUBElxL5T9FnsBMZZvqoxTlSUrG8CprAIcCUKqJSGUWwKg/nH+8HLDW43jcvAvfaTj/bdw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB8PR04MB7163 Content-Type: text/plain; charset="utf-8" Pass fastclose flag to the sflags argument instead of addr_nr_ns2. Then addr_nr_ns1 and addr_nr_ns2 can be removed in the next commit. Signed-off-by: Geliang Tang --- tools/testing/selftests/net/mptcp/mptcp_join.sh | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testin= g/selftests/net/mptcp/mptcp_join.sh index 7270f8cab157..9d71ede742dc 100755 --- a/tools/testing/selftests/net/mptcp/mptcp_join.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh @@ -853,7 +853,7 @@ do_transfer() local extra_cl_args=3D"" local extra_srv_args=3D"" local trunc_size=3D"" - if [[ "${addr_nr_ns2}" =3D "fastclose_"* ]]; then + if [[ "${sflags}" =3D "fastclose_"* ]]; then if [ ${test_link_fail} -le 1 ]; then echo "fastclose tests need test_link_fail argument" fail_test @@ -862,7 +862,7 @@ do_transfer() =20 # disconnect trunc_size=3D${test_link_fail} - local side=3D${addr_nr_ns2:10} + local side=3D${sflags:10} =20 if [ ${side} =3D "client" ]; then extra_cl_args=3D"-f ${test_link_fail}" @@ -875,8 +875,9 @@ do_transfer() fail_test return 1 fi - addr_nr_ns2=3D0 - elif [[ "${addr_nr_ns2}" =3D "fullmesh_"* ]]; then + sflags=3D0 + fi + if [[ "${addr_nr_ns2}" =3D "fullmesh_"* ]]; then flags=3D"${flags},fullmesh" addr_nr_ns2=3D${addr_nr_ns2:9} fi @@ -3131,14 +3132,14 @@ fullmesh_tests() fastclose_tests() { if reset_check_counter "fastclose test" "MPTcpExtMPFastcloseTx"; then - run_tests $ns1 $ns2 10.0.1.1 1024 0 fastclose_client + run_tests $ns1 $ns2 10.0.1.1 1024 0 0 fast fastclose_client chk_join_nr 0 0 0 chk_fclose_nr 1 1 chk_rst_nr 1 1 invert fi =20 if reset_check_counter "fastclose server test" "MPTcpExtMPFastcloseRx"; t= hen - run_tests $ns1 $ns2 10.0.1.1 1024 0 fastclose_server + run_tests $ns1 $ns2 10.0.1.1 1024 0 0 fast fastclose_server chk_join_nr 0 0 0 chk_fclose_nr 1 1 invert chk_rst_nr 1 1 --=20 2.35.3 From nobody Mon Apr 29 02:00:07 2024 Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05on2041.outbound.protection.outlook.com [40.107.22.41]) (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 AE181EA4 for ; Wed, 31 May 2023 00:54:16 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=jgsh79otxKFHWwMVfGlqO+WnMdK0nhbMUypOONpP6W5VEGe89/Y0gbkESkSPtiGY5gm9xwy8HLaq8lLKVUIaU9sOiRLMg6ggtn5bfUerZMJCst2QjhXREFfMlrSTij7nGIv0rJh4TIacwbjARSoU8twGOzxAG5triXulmnGP3GE6PiIcwRVaki6RsPuBjk1HQRCoMRRQkw2xVmoa/jVwh6acCIrBJo7GvsPXegD2CfKzxWYHQYzOOkBZ39KLPbKdX7jxDwS6kLIAaPVEpTrY4PXLts7jzMuSI/fvAa2bHyo3MH9VQUYXuraK0aweqAXXsZbUHAVwf4Ha4d/ANynMsg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=fIyKKD/HV49gq97bq1Ti6WeAr2TT3xIqri+WEZhd2sg=; b=Awk4yeA20smWLktdtrq1P3CuMFQxJlrAjPu2DqTI+6m8EU0o9K7TwogATE9HmYP75w3M/R3Kh9f5ZGwFa/cBRwm31Ty0Gp93dYJrvp87VYarXklTBwxxczj3Es5vJuD46EwAx81fyDWXUlrGR06lld7PyYtYLOx1hb4aU5HafXuFO7CBP2awlle0ZW7HJnzjkfMFalckd67biwyfeMelWBq/exart7t0xnKqg8Ux2wRb2vZWSsuc4RsvzaUATDab3yillpw0ph+Ho/rdM0JBqx+SmxOrqtQBmNVlsuMjg+X1N/bmQqRAcv8DyIy0K3Ku8CjaPiQfQNY+uLOcBdxNXA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com; dkim=pass header.d=suse.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=fIyKKD/HV49gq97bq1Ti6WeAr2TT3xIqri+WEZhd2sg=; b=WeA3iXkjZtN9EeUxYURTbfU5xt9WDRySzHSkg4FLyYz4AXuJvhye7zxXdDs0rGe4w6XeYjjoYvPj7tO3w/PxmjVEF2OI3aSytOPQI07qeVH7ZEdOGKl+F/DXKmQ9WzRnyDcgQEd5/7dd18kcYIKPpEPUmKtSMsLmyPtrWug6KxPWLnLL4vQ86qIX9hSzFU+fwRiP99PLzwGWomdlnB6DmSlQvOSR4T722jSD79fbYoRlgfV8bSPR2dV4aQ3bOCFtLs5jhcqLrc+5Pb3jJTCTlgztVBbHO1QpRrHFqO+gdpQNGrRMGD6KGhTFja519CBQB5eYZDuLwsdTEg5faSGEpA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com; Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com (2603:10a6:7:83::14) by DB8PR04MB7163.eurprd04.prod.outlook.com (2603:10a6:10:fe::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6433.23; Wed, 31 May 2023 00:54:13 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::423a:a30f:5342:9d35]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::423a:a30f:5342:9d35%6]) with mapi id 15.20.6433.022; Wed, 31 May 2023 00:54:13 +0000 From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next v14 7/7] selftests: mptcp: set endpoint out of transfer Date: Wed, 31 May 2023 08:53:04 +0800 Message-Id: <6674159f2dbc03ebaf8d64bbf3bd2be270572939.1685494054.git.geliang.tang@suse.com> X-Mailer: git-send-email 2.35.3 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SG2P153CA0020.APCP153.PROD.OUTLOOK.COM (2603:1096:4:c7::7) To HE1PR0402MB3497.eurprd04.prod.outlook.com (2603:10a6:7:83::14) Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: HE1PR0402MB3497:EE_|DB8PR04MB7163:EE_ X-MS-Office365-Filtering-Correlation-Id: 37ade65b-5e7d-4133-40f4-08db61718d43 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: M1nzvVzbRi662m+9htzlgp2jBtS7rwf63/vWPzSrMbOkO/uiotmr/ET7xMAMxKNV9EhprLM0si5RYfiFHtxlXJ3yXkwj2HaXgXAO2ZY2kvHXNFKHiwohbc+1xp625y4Kmi4+YmaOKRULO2sQy+mzGz2YMx7DDiGHXx9t2NiSedBGrTqV5neBtvDb8th6ZuVzX1F7EIK5WVgvketRImOnbbhfKLQ/jhV70d1+MbeSeb9Q+Vafu2L3Fv/G/2JhJ4F6EOuNbrGbfOeWHYEi6VNuP1u4A+0321P4CfJROzVl8s/hYHMg2s0MQ3rgMY1NclBQg/70pUtGXAX4PRVXvQkUWCGSN8QJrU99cKKF4Y+sB3SfyTkEKlx/z2j8YPOYaUEibPSIn+OvoInhh+4lp/DSDHsrvrHh/CMA52hagEopxRBbKs+XiVhRc0RyMksS7+LvDvEWe0tRFPKZOGFmNkz6B+EVp26qqTH5/BLhS7tx67lX1F/ud61+AbR2B9Gk3MtumZTY/mO+OHDdkvaCGVT/PCFrTPyMmOHiHYmFnoA+ndeIuOG77QBKYp8RaUFiWO9p X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:HE1PR0402MB3497.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(346002)(39860400002)(366004)(136003)(396003)(376002)(451199021)(478600001)(8676002)(30864003)(44832011)(8936002)(5660300002)(86362001)(36756003)(2906002)(66476007)(4326008)(6916009)(66556008)(66946007)(316002)(38100700002)(41300700001)(2616005)(107886003)(186003)(6506007)(26005)(6486002)(6666004)(6512007)(83380400001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?ksSbyDIX7N5Yb2qXvGj/I5WCxuPqP46R+wvBXcigttBoP2jjPfn/d1aQcomp?= =?us-ascii?Q?pdEG6UClPtXYG3HlpbHAsyL/RVrh66Qz+UHzpl8OXICbT/dPYO6knb5SV9A7?= =?us-ascii?Q?4UM8GWhbvCr+8QKdaEKdeThmFhFjjg2BzJNLCIdq2n+5IRSDQDdrRoH4F5Fb?= =?us-ascii?Q?2jeLvPQ7zNBLZ1j4vU9hn/0ALGM6Na7iZsImE1OH+9Hk7h/3vjRAhzW57lxI?= =?us-ascii?Q?qu15NVotrYp8zRHknBBfiNkP92e369gh75ec31uha9UN1D8cmWeIy67gz4jQ?= =?us-ascii?Q?gbUi5ejxPUUuGMNDQBHBkggNylYQPgByhF7xqoFiPXd6sQubwQPMw2uqK7rL?= =?us-ascii?Q?xP5OXtwFys9lqSl8GOj47qAjuh8V+NhYhMfg6laut2vE6MDiOQ2uN1dIEh+Y?= =?us-ascii?Q?V/b9viuP8c9ZzWHpaMmbWcIxmCJABV1SIpvAshexXtodbPSbXR26j+U2EQuj?= =?us-ascii?Q?nOz2nkBGVoQh2go3l2mJWaGaNkfd+96/zQxWop2mbOdt/aZ/yQiagZpUJrWT?= =?us-ascii?Q?9YswVn+wyZ6+VDxjL1PFB49xxC6sZtjRTyGYS7N8VRUB+EOJ20f/wb5B0SmN?= =?us-ascii?Q?gr/eAkAAU+2mZA0ZFGPosPEOsTlXfCSjbJJt8azIBaAyCZazuWkLVHwIjwIZ?= =?us-ascii?Q?cMXeuqBEhfZvgDApG1AMkLmhdyrXI2QqF3NEQlA0ut9GMfz5UHTJ8LR8eFNf?= =?us-ascii?Q?kaivrfsgGj7PEvsXDhMf+eNI10ZSHsdlcU+NItURE64LCo1gNsdg5JTVT12j?= =?us-ascii?Q?6bD9I+AMjEHwpXlTFeVpD4sjesDue+b0w8OW27kpNamj7/g8TUjIXF8Z0hqv?= =?us-ascii?Q?exniu8cXibDvlAaUmNiDM0kMBcF6Fcy4I+gH3q308kxjc3dRphoVy56BRlxD?= =?us-ascii?Q?fsrYFY+C/64Xg+WIh6WGUOe4DFnBxPDpd3QiUyY6W0h0x3StxJ9EnzksasuG?= =?us-ascii?Q?IEYnr7aKA/ELNQHMFStqFUnMv84CoxgM52nyyQoU4tbI/c0WMmHOpiNd5WES?= =?us-ascii?Q?ZMYutvtAPb85It2yZZVG+a+j6PF6kN85q25xCVEWx9Ewj3lYh6UYrbZ4lyuE?= =?us-ascii?Q?WtZUImspBb2quBkwcN0mTjAEX4Gv7UT7Rb/yk5itAP66/F2dAPskquQfXZ2G?= =?us-ascii?Q?ax1pKM5cVWeE2RCd3Q+RWlILuh83ZO2DrzCSj2HiPKfplDxL7QYY5xDM5bV+?= =?us-ascii?Q?hfy/wARzJduOVd8VfqRhLYlvZBqU77h6fTOcvomjadgXcpz1HeYR0DhKeI41?= =?us-ascii?Q?9nlGKbs/7k++yQ7B40cYw506I2pYZGIFq4imzjB2sdOC7hcSfdAqMrL2ZawC?= =?us-ascii?Q?TBkaQp8c0EBhvhKltJrZr+6AcgLElysF3YIbXZz/+LWJt9wKmXYSBud2ipIp?= =?us-ascii?Q?eCaOlP9OpH/Dlk8vZ7tvXU6xH4HQvS5boay1pY5MC3HYBAputdZyWZ9F+L/H?= =?us-ascii?Q?WI3TwW/9sXxPcQko+ow9N0UtHT4mYDxdTvJ1PuAzFb5P9H4jNMMw0zWB0Y2W?= =?us-ascii?Q?UAZiI4G2D8NkTk/H82Tuo9ueK7lEj24/YyI1fWbOfJpd1IB/YNJNn37B9z2M?= =?us-ascii?Q?O0XlpLxJ4CeKlGnIHuwPyvJJayi3vfuUSGB8QDlb?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 37ade65b-5e7d-4133-40f4-08db61718d43 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 May 2023 00:54:13.5771 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: xYNAnB2Qu1OUXZy+l/I+6mGNpaXFlOk7KjcIWm8VRc/uVfCfe9zGspjbfIi8lLqhIs/8R7Bx7OMmUnttvlmEgg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB8PR04MB7163 Content-Type: text/plain; charset="utf-8" This patch moves endpoint settings out of do_transfer() into a new function pm_nl_set_endpoint(), then addr_nr_ns1 and addr_nr_ns2 arguments can be removed for do_transfer() and run_tests(). Signed-off-by: Geliang Tang --- .../testing/selftests/net/mptcp/mptcp_join.sh | 384 ++++++++++-------- 1 file changed, 205 insertions(+), 179 deletions(-) diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testin= g/selftests/net/mptcp/mptcp_join.sh index 9d71ede742dc..c93afaf83578 100755 --- a/tools/testing/selftests/net/mptcp/mptcp_join.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh @@ -798,128 +798,21 @@ pm_nl_check_endpoint() fi } =20 -do_transfer() +pm_nl_set_endpoint() { local listener_ns=3D"$1" local connector_ns=3D"$2" - local cl_proto=3D"$3" - local srv_proto=3D"$4" - local connect_addr=3D"$5" - local test_link_fail=3D"$6" - local addr_nr_ns1=3D"$7" - local addr_nr_ns2=3D"$8" - local speed=3D"$9" - local sflags=3D"${10}" - - local port=3D$((10000 + TEST_COUNT - 1)) - local cappid - - :> "$cout" - :> "$sout" - :> "$capout" - - if [ $capture -eq 1 ]; then - local capuser - if [ -z $SUDO_USER ] ; then - capuser=3D"" - else - capuser=3D"-Z $SUDO_USER" - fi - - capfile=3D$(printf "mp_join-%02u-%s.pcap" "$TEST_COUNT" "${listener_ns}") - - echo "Capturing traffic for test $TEST_COUNT into $capfile" - ip netns exec ${listener_ns} tcpdump -i any -s 65535 -B 32768 $capuser -= w $capfile > "$capout" 2>&1 & - cappid=3D$! - - sleep 1 - fi - - NSTAT_HISTORY=3D/tmp/${listener_ns}.nstat ip netns exec ${listener_ns} \ - nstat -n - NSTAT_HISTORY=3D/tmp/${connector_ns}.nstat ip netns exec ${connector_ns} \ - nstat -n - - local extra_args - if [ $speed =3D "fast" ]; then - extra_args=3D"-j" - elif [ $speed =3D "slow" ]; then - extra_args=3D"-r 50" - elif [[ $speed =3D "speed_"* ]]; then - extra_args=3D"-r ${speed:6}" - fi + local connect_addr=3D"$3" + local addr_nr_ns1=3D"$4" + local addr_nr_ns2=3D"${5:-0}" + local sflags=3D"${6:-""}" =20 local flags=3D"subflow" - local extra_cl_args=3D"" - local extra_srv_args=3D"" - local trunc_size=3D"" - if [[ "${sflags}" =3D "fastclose_"* ]]; then - if [ ${test_link_fail} -le 1 ]; then - echo "fastclose tests need test_link_fail argument" - fail_test - return 1 - fi - - # disconnect - trunc_size=3D${test_link_fail} - local side=3D${sflags:10} - - if [ ${side} =3D "client" ]; then - extra_cl_args=3D"-f ${test_link_fail}" - extra_srv_args=3D"-f -1" - elif [ ${side} =3D "server" ]; then - extra_srv_args=3D"-f ${test_link_fail}" - extra_cl_args=3D"-f -1" - else - echo "wrong/unknown fastclose spec ${side}" - fail_test - return 1 - fi - sflags=3D0 - fi if [[ "${addr_nr_ns2}" =3D "fullmesh_"* ]]; then flags=3D"${flags},fullmesh" addr_nr_ns2=3D${addr_nr_ns2:9} fi =20 - extra_srv_args=3D"$extra_args $extra_srv_args" - if [ "$test_link_fail" -gt 1 ];then - timeout ${timeout_test} \ - ip netns exec ${listener_ns} \ - ./mptcp_connect -t ${timeout_poll} -l -p $port -s ${srv_proto} \ - $extra_srv_args "::" < "$sinfail" > "$sout" & - else - timeout ${timeout_test} \ - ip netns exec ${listener_ns} \ - ./mptcp_connect -t ${timeout_poll} -l -p $port -s ${srv_proto} \ - $extra_srv_args "::" < "$sin" > "$sout" & - fi - local spid=3D$! - - wait_local_port_listen "${listener_ns}" "${port}" - - extra_cl_args=3D"$extra_args $extra_cl_args" - if [ "$test_link_fail" -eq 0 ];then - timeout ${timeout_test} \ - ip netns exec ${connector_ns} \ - ./mptcp_connect -t ${timeout_poll} -p $port -s ${cl_proto} \ - $extra_cl_args $connect_addr < "$cin" > "$cout" & - elif [ "$test_link_fail" -eq 1 ] || [ "$test_link_fail" -eq 2 ];then - ( cat "$cinfail" ; sleep 2; link_failure $listener_ns ; cat "$cinfail" )= | \ - tee "$cinsent" | \ - timeout ${timeout_test} \ - ip netns exec ${connector_ns} \ - ./mptcp_connect -t ${timeout_poll} -p $port -s ${cl_proto} \ - $extra_cl_args $connect_addr > "$cout" & - else - tee "$cinsent" < "$cinfail" | \ - timeout ${timeout_test} \ - ip netns exec ${connector_ns} \ - ./mptcp_connect -t ${timeout_poll} -p $port -s ${cl_proto} \ - $extra_cl_args $connect_addr > "$cout" & - fi - local cpid=3D$! - # let the mptcp subflow be established in background before # do endpoint manipulation if [ $addr_nr_ns1 !=3D "0" ] || [ $addr_nr_ns2 !=3D "0" ]; then @@ -1058,6 +951,121 @@ do_transfer() done done fi +} + +do_transfer() +{ + local listener_ns=3D"$1" + local connector_ns=3D"$2" + local cl_proto=3D"$3" + local srv_proto=3D"$4" + local connect_addr=3D"$5" + local test_link_fail=3D"$6" + local speed=3D"$7" + local sflags=3D"${8}" + + local port=3D$((10000 + TEST_COUNT - 1)) + local cappid + + :> "$cout" + :> "$sout" + :> "$capout" + + if [ $capture -eq 1 ]; then + local capuser + if [ -z $SUDO_USER ] ; then + capuser=3D"" + else + capuser=3D"-Z $SUDO_USER" + fi + + capfile=3D$(printf "mp_join-%02u-%s.pcap" "$TEST_COUNT" "${listener_ns}") + + echo "Capturing traffic for test $TEST_COUNT into $capfile" + ip netns exec ${listener_ns} tcpdump -i any -s 65535 -B 32768 $capuser -= w $capfile > "$capout" 2>&1 & + cappid=3D$! + + sleep 1 + fi + + NSTAT_HISTORY=3D/tmp/${listener_ns}.nstat ip netns exec ${listener_ns} \ + nstat -n + NSTAT_HISTORY=3D/tmp/${connector_ns}.nstat ip netns exec ${connector_ns} \ + nstat -n + + local extra_args + if [ $speed =3D "fast" ]; then + extra_args=3D"-j" + elif [ $speed =3D "slow" ]; then + extra_args=3D"-r 50" + elif [[ $speed =3D "speed_"* ]]; then + extra_args=3D"-r ${speed:6}" + fi + + local extra_cl_args=3D"" + local extra_srv_args=3D"" + local trunc_size=3D"" + if [[ "${sflags}" =3D "fastclose_"* ]]; then + if [ ${test_link_fail} -le 1 ]; then + echo "fastclose tests need test_link_fail argument" + fail_test + return 1 + fi + + # disconnect + trunc_size=3D${test_link_fail} + local side=3D${sflags:10} + + if [ ${side} =3D "client" ]; then + extra_cl_args=3D"-f ${test_link_fail}" + extra_srv_args=3D"-f -1" + elif [ ${side} =3D "server" ]; then + extra_srv_args=3D"-f ${test_link_fail}" + extra_cl_args=3D"-f -1" + else + echo "wrong/unknown fastclose spec ${side}" + fail_test + return 1 + fi + fi + + extra_srv_args=3D"$extra_args $extra_srv_args" + if [ "$test_link_fail" -gt 1 ];then + timeout ${timeout_test} \ + ip netns exec ${listener_ns} \ + ./mptcp_connect -t ${timeout_poll} -l -p $port -s ${srv_proto} \ + $extra_srv_args "::" < "$sinfail" > "$sout" & + else + timeout ${timeout_test} \ + ip netns exec ${listener_ns} \ + ./mptcp_connect -t ${timeout_poll} -l -p $port -s ${srv_proto} \ + $extra_srv_args "::" < "$sin" > "$sout" & + fi + local spid=3D$! + + wait_local_port_listen "${listener_ns}" "${port}" + + extra_cl_args=3D"$extra_args $extra_cl_args" + if [ "$test_link_fail" -eq 0 ];then + timeout ${timeout_test} \ + ip netns exec ${connector_ns} \ + ./mptcp_connect -t ${timeout_poll} -p $port -s ${cl_proto} \ + $extra_cl_args $connect_addr < "$cin" > "$cout" & + elif [ "$test_link_fail" -eq 1 ] || [ "$test_link_fail" -eq 2 ];then + ( cat "$cinfail" ; sleep 2; link_failure $listener_ns ; cat "$cinfail" )= | \ + tee "$cinsent" | \ + timeout ${timeout_test} \ + ip netns exec ${connector_ns} \ + ./mptcp_connect -t ${timeout_poll} -p $port -s ${cl_proto} \ + $extra_cl_args $connect_addr > "$cout" & + else + tee "$cinsent" < "$cinfail" | \ + timeout ${timeout_test} \ + ip netns exec ${connector_ns} \ + ./mptcp_connect -t ${timeout_poll} -p $port -s ${cl_proto} \ + $extra_cl_args $connect_addr > "$cout" & + fi + local cpid=3D$! =20 wait $cpid local retc=3D$? @@ -1128,10 +1136,8 @@ run_tests() local connector_ns=3D"$2" local connect_addr=3D"$3" local test_linkfail=3D"${4:-0}" - local addr_nr_ns1=3D"${5:-0}" - local addr_nr_ns2=3D"${6:-0}" - local speed=3D"${7:-fast}" - local sflags=3D"${8:-""}" + local speed=3D"${5:-fast}" + local sflags=3D"${6:-""}" =20 local size =20 @@ -1176,7 +1182,27 @@ run_tests() fi =20 do_transfer ${listener_ns} ${connector_ns} MPTCP MPTCP ${connect_addr} \ - ${test_linkfail} ${addr_nr_ns1} ${addr_nr_ns2} ${speed} ${sflags} + ${test_linkfail} ${speed} ${sflags} +} + +run_tests_bg() +{ + local listener_ns=3D"$1" + local connector_ns=3D"$2" + local connect_addr=3D"$3" + local test_linkfail=3D"${4:-0}" + local addr_nr_ns1=3D"${5:-0}" + local addr_nr_ns2=3D"${6:-0}" + local speed=3D"${7:-fast}" + local sflags=3D"${8:-""}" + local wait_join=3D"${9:-0}" + + run_tests $listener_ns $connector_ns $connect_addr $test_linkfail $speed & + local tests_pid=3D$! + [ $wait_join -eq 1 ] && wait_mpj $connector_ns + pm_nl_set_endpoint $listener_ns $connector_ns $connect_addr $addr_nr_ns1 \ + $addr_nr_ns2 $sflags + wait $tests_pid } =20 dump_stats() @@ -1977,7 +2003,7 @@ subflows_error_tests() pm_nl_set_limits $ns1 0 1 pm_nl_set_limits $ns2 0 1 pm_nl_add_endpoint $ns2 10.0.1.2 flags subflow - run_tests $ns1 $ns2 10.0.1.1 0 0 0 slow + run_tests $ns1 $ns2 10.0.1.1 0 slow chk_join_nr 0 0 0 fi =20 @@ -1988,7 +2014,7 @@ subflows_error_tests() pm_nl_set_limits $ns2 0 2 pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow pm_nl_add_endpoint $ns2 10.0.2.2 flags subflow - run_tests $ns1 $ns2 10.0.1.1 0 0 0 slow + run_tests $ns1 $ns2 10.0.1.1 0 slow chk_join_nr 1 1 1 fi =20 @@ -1999,7 +2025,7 @@ subflows_error_tests() pm_nl_set_limits $ns2 0 2 pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow pm_nl_add_endpoint $ns2 10.0.2.2 flags subflow - run_tests $ns1 $ns2 10.0.1.1 0 0 0 slow + run_tests $ns1 $ns2 10.0.1.1 0 slow chk_join_nr 1 1 1 fi =20 @@ -2011,7 +2037,7 @@ subflows_error_tests() pm_nl_set_limits $ns1 0 1 pm_nl_set_limits $ns2 0 1 pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow - run_tests $ns1 $ns2 10.0.1.1 0 0 0 slow & + run_tests $ns1 $ns2 10.0.1.1 0 slow & =20 # mpj subflow will be in TW after the reset wait_attempt_fail $ns2 @@ -2110,7 +2136,7 @@ signal_address_tests() =20 # the peer could possibly miss some addr notification, allow retransmiss= ion ip netns exec $ns1 sysctl -q net.mptcp.add_addr_timeout=3D1 - run_tests $ns1 $ns2 10.0.1.1 0 0 0 slow + run_tests $ns1 $ns2 10.0.1.1 0 slow =20 # It is not directly linked to the commit introducing this # symbol but for the parent one which is linked anyway. @@ -2218,7 +2244,7 @@ add_addr_timeout_tests() pm_nl_set_limits $ns1 0 1 pm_nl_set_limits $ns2 1 1 pm_nl_add_endpoint $ns1 10.0.2.1 flags signal - run_tests $ns1 $ns2 10.0.1.1 0 0 0 slow + run_tests $ns1 $ns2 10.0.1.1 0 slow chk_join_nr 1 1 1 chk_add_tx_nr 4 4 chk_add_nr 4 0 @@ -2229,7 +2255,7 @@ add_addr_timeout_tests() pm_nl_set_limits $ns1 0 1 pm_nl_set_limits $ns2 1 1 pm_nl_add_endpoint $ns1 dead:beef:2::1 flags signal - run_tests $ns1 $ns2 dead:beef:1::1 0 0 0 slow + run_tests $ns1 $ns2 dead:beef:1::1 0 slow chk_join_nr 1 1 1 chk_add_nr 4 0 fi @@ -2240,7 +2266,7 @@ add_addr_timeout_tests() pm_nl_add_endpoint $ns1 10.0.2.1 flags signal pm_nl_add_endpoint $ns1 10.0.3.1 flags signal pm_nl_set_limits $ns2 2 2 - run_tests $ns1 $ns2 10.0.1.1 0 0 0 speed_10 + run_tests $ns1 $ns2 10.0.1.1 0 speed_10 chk_join_nr 2 2 2 chk_add_nr 8 0 fi @@ -2251,7 +2277,7 @@ add_addr_timeout_tests() pm_nl_add_endpoint $ns1 10.0.12.1 flags signal pm_nl_add_endpoint $ns1 10.0.3.1 flags signal pm_nl_set_limits $ns2 2 2 - run_tests $ns1 $ns2 10.0.1.1 0 0 0 speed_10 + run_tests $ns1 $ns2 10.0.1.1 0 speed_10 chk_join_nr 1 1 1 chk_add_nr 8 0 fi @@ -2264,7 +2290,7 @@ remove_tests() pm_nl_set_limits $ns1 0 1 pm_nl_set_limits $ns2 0 1 pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow - run_tests $ns1 $ns2 10.0.1.1 0 0 -1 slow + run_tests_bg $ns1 $ns2 10.0.1.1 0 0 -1 slow chk_join_nr 1 1 1 chk_rm_tx_nr 1 chk_rm_nr 1 1 @@ -2276,7 +2302,7 @@ remove_tests() pm_nl_set_limits $ns2 0 2 pm_nl_add_endpoint $ns2 10.0.2.2 flags subflow pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow - run_tests $ns1 $ns2 10.0.1.1 0 0 -2 slow + run_tests_bg $ns1 $ns2 10.0.1.1 0 0 -2 slow chk_join_nr 2 2 2 chk_rm_nr 2 2 fi @@ -2286,7 +2312,7 @@ remove_tests() pm_nl_set_limits $ns1 0 1 pm_nl_add_endpoint $ns1 10.0.2.1 flags signal pm_nl_set_limits $ns2 1 1 - run_tests $ns1 $ns2 10.0.1.1 0 -1 0 slow + run_tests_bg $ns1 $ns2 10.0.1.1 0 -1 0 slow chk_join_nr 1 1 1 chk_add_nr 1 1 chk_rm_nr 1 1 invert @@ -2298,7 +2324,7 @@ remove_tests() pm_nl_add_endpoint $ns1 10.0.2.1 flags signal pm_nl_set_limits $ns2 1 2 pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow - run_tests $ns1 $ns2 10.0.1.1 0 -1 -1 slow + run_tests_bg $ns1 $ns2 10.0.1.1 0 -1 -1 slow chk_join_nr 2 2 2 chk_add_nr 1 1 chk_rm_nr 1 1 @@ -2311,7 +2337,7 @@ remove_tests() pm_nl_set_limits $ns2 1 3 pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow pm_nl_add_endpoint $ns2 10.0.4.2 flags subflow - run_tests $ns1 $ns2 10.0.1.1 0 -1 -2 speed_10 + run_tests_bg $ns1 $ns2 10.0.1.1 0 -1 -2 speed_10 "" 1 chk_join_nr 3 3 3 chk_add_nr 1 1 chk_rm_nr 2 2 @@ -2324,7 +2350,7 @@ remove_tests() pm_nl_add_endpoint $ns1 10.0.3.1 flags signal pm_nl_add_endpoint $ns1 10.0.4.1 flags signal pm_nl_set_limits $ns2 3 3 - run_tests $ns1 $ns2 10.0.1.1 0 -3 0 speed_10 + run_tests_bg $ns1 $ns2 10.0.1.1 0 -3 0 speed_10 "" 1 chk_join_nr 3 3 3 chk_add_nr 3 3 chk_rm_nr 3 3 invert @@ -2337,7 +2363,7 @@ remove_tests() pm_nl_add_endpoint $ns1 10.0.3.1 flags signal pm_nl_add_endpoint $ns1 10.0.14.1 flags signal pm_nl_set_limits $ns2 3 3 - run_tests $ns1 $ns2 10.0.1.1 0 -3 0 speed_10 + run_tests_bg $ns1 $ns2 10.0.1.1 0 -3 0 speed_10 chk_join_nr 1 1 1 chk_add_nr 3 3 chk_rm_nr 3 1 invert @@ -2350,7 +2376,7 @@ remove_tests() pm_nl_set_limits $ns2 1 3 pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow pm_nl_add_endpoint $ns2 10.0.4.2 flags subflow - run_tests $ns1 $ns2 10.0.1.1 0 -8 -8 slow + run_tests_bg $ns1 $ns2 10.0.1.1 0 -8 -8 speed_10 "" 1 chk_join_nr 3 3 3 chk_add_nr 1 1 chk_rm_nr 1 3 invert simult @@ -2363,7 +2389,7 @@ remove_tests() pm_nl_add_endpoint $ns2 10.0.2.2 flags subflow id 150 pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow pm_nl_add_endpoint $ns2 10.0.4.2 flags subflow - run_tests $ns1 $ns2 10.0.1.1 0 -8 -8 slow + run_tests_bg $ns1 $ns2 10.0.1.1 0 -8 -8 speed_10 "" 1 chk_join_nr 3 3 3 =20 if mptcp_lib_kversion_ge 5.18; then @@ -2381,7 +2407,7 @@ remove_tests() pm_nl_add_endpoint $ns1 10.0.3.1 flags signal pm_nl_add_endpoint $ns1 10.0.4.1 flags signal pm_nl_set_limits $ns2 3 3 - run_tests $ns1 $ns2 10.0.1.1 0 -8 -8 slow + run_tests_bg $ns1 $ns2 10.0.1.1 0 -8 -8 speed_10 "" 1 chk_join_nr 3 3 3 chk_add_nr 3 3 chk_rm_nr 3 3 invert simult @@ -2394,7 +2420,7 @@ remove_tests() pm_nl_add_endpoint $ns1 10.0.3.1 flags signal pm_nl_add_endpoint $ns1 10.0.14.1 flags signal pm_nl_set_limits $ns2 3 3 - run_tests $ns1 $ns2 10.0.1.1 0 -8 0 slow + run_tests_bg $ns1 $ns2 10.0.1.1 0 -8 0 speed_10 "" 1 chk_join_nr 1 1 1 chk_add_nr 3 3 chk_rm_nr 3 1 invert @@ -2405,7 +2431,7 @@ remove_tests() pm_nl_set_limits $ns1 0 1 pm_nl_set_limits $ns2 0 1 pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow - run_tests $ns1 $ns2 10.0.1.1 0 0 -9 slow + run_tests_bg $ns1 $ns2 10.0.1.1 0 0 -9 speed_10 "" 1 chk_join_nr 1 1 1 chk_rm_nr 1 1 fi @@ -2415,7 +2441,7 @@ remove_tests() pm_nl_set_limits $ns1 0 1 pm_nl_add_endpoint $ns1 10.0.2.1 flags signal pm_nl_set_limits $ns2 1 1 - run_tests $ns1 $ns2 10.0.1.1 0 -9 0 slow + run_tests_bg $ns1 $ns2 10.0.1.1 0 -9 0 speed_10 "" 1 chk_join_nr 1 1 1 chk_add_nr 1 1 chk_rm_nr 1 1 invert @@ -2428,7 +2454,7 @@ add_tests() if reset "add single subflow"; then pm_nl_set_limits $ns1 0 1 pm_nl_set_limits $ns2 0 1 - run_tests $ns1 $ns2 10.0.1.1 0 0 1 slow + run_tests_bg $ns1 $ns2 10.0.1.1 0 0 1 slow chk_join_nr 1 1 1 fi =20 @@ -2436,7 +2462,7 @@ add_tests() if reset "add signal address"; then pm_nl_set_limits $ns1 0 1 pm_nl_set_limits $ns2 1 1 - run_tests $ns1 $ns2 10.0.1.1 0 1 0 slow + run_tests_bg $ns1 $ns2 10.0.1.1 0 1 0 slow chk_join_nr 1 1 1 chk_add_nr 1 1 fi @@ -2445,7 +2471,7 @@ add_tests() if reset "add multiple subflows"; then pm_nl_set_limits $ns1 0 2 pm_nl_set_limits $ns2 0 2 - run_tests $ns1 $ns2 10.0.1.1 0 0 2 slow + run_tests_bg $ns1 $ns2 10.0.1.1 0 0 2 slow chk_join_nr 2 2 2 fi =20 @@ -2453,7 +2479,7 @@ add_tests() if reset "add multiple subflows IPv6"; then pm_nl_set_limits $ns1 0 2 pm_nl_set_limits $ns2 0 2 - run_tests $ns1 $ns2 dead:beef:1::1 0 0 2 slow + run_tests_bg $ns1 $ns2 dead:beef:1::1 0 0 2 slow chk_join_nr 2 2 2 fi =20 @@ -2461,7 +2487,7 @@ add_tests() if reset "add multiple addresses IPv6"; then pm_nl_set_limits $ns1 0 2 pm_nl_set_limits $ns2 2 2 - run_tests $ns1 $ns2 dead:beef:1::1 0 2 0 slow + run_tests_bg $ns1 $ns2 dead:beef:1::1 0 2 0 slow chk_join_nr 2 2 2 chk_add_nr 2 2 fi @@ -2474,14 +2500,14 @@ ipv6_tests() pm_nl_set_limits $ns1 0 1 pm_nl_set_limits $ns2 0 1 pm_nl_add_endpoint $ns2 dead:beef:3::2 dev ns2eth3 flags subflow - run_tests $ns1 $ns2 dead:beef:1::1 0 0 0 slow + run_tests $ns1 $ns2 dead:beef:1::1 0 slow chk_join_nr 1 1 1 fi =20 # add_address, unused IPv6 if reset "unused signal address IPv6"; then pm_nl_add_endpoint $ns1 dead:beef:2::1 flags signal - run_tests $ns1 $ns2 dead:beef:1::1 0 0 0 slow + run_tests $ns1 $ns2 dead:beef:1::1 0 slow chk_join_nr 0 0 0 chk_add_nr 1 1 fi @@ -2491,7 +2517,7 @@ ipv6_tests() pm_nl_set_limits $ns1 0 1 pm_nl_add_endpoint $ns1 dead:beef:2::1 flags signal pm_nl_set_limits $ns2 1 1 - run_tests $ns1 $ns2 dead:beef:1::1 0 0 0 slow + run_tests $ns1 $ns2 dead:beef:1::1 0 slow chk_join_nr 1 1 1 chk_add_nr 1 1 fi @@ -2501,7 +2527,7 @@ ipv6_tests() pm_nl_set_limits $ns1 0 1 pm_nl_add_endpoint $ns1 dead:beef:2::1 flags signal pm_nl_set_limits $ns2 1 1 - run_tests $ns1 $ns2 dead:beef:1::1 0 -1 0 slow + run_tests_bg $ns1 $ns2 dead:beef:1::1 0 -1 0 speed_10 "" 1 chk_join_nr 1 1 1 chk_add_nr 1 1 chk_rm_nr 1 1 invert @@ -2513,7 +2539,7 @@ ipv6_tests() pm_nl_add_endpoint $ns1 dead:beef:2::1 flags signal pm_nl_set_limits $ns2 1 2 pm_nl_add_endpoint $ns2 dead:beef:3::2 dev ns2eth3 flags subflow - run_tests $ns1 $ns2 dead:beef:1::1 0 -1 -1 slow + run_tests_bg $ns1 $ns2 dead:beef:1::1 0 -1 -1 speed_10 "" 1 chk_join_nr 2 2 2 chk_add_nr 1 1 chk_rm_nr 1 1 @@ -2614,7 +2640,7 @@ mixed_tests() pm_nl_set_limits $ns1 0 1 pm_nl_set_limits $ns2 1 1 pm_nl_add_endpoint $ns1 dead:beef:2::1 flags signal - run_tests $ns1 $ns2 10.0.1.1 0 0 0 slow + run_tests $ns1 $ns2 10.0.1.1 0 slow chk_join_nr 0 0 0 fi =20 @@ -2624,7 +2650,7 @@ mixed_tests() pm_nl_set_limits $ns1 0 1 pm_nl_set_limits $ns2 1 1 pm_nl_add_endpoint $ns1 10.0.1.1 flags signal - run_tests $ns1 $ns2 dead:beef:2::1 0 0 0 slow + run_tests $ns1 $ns2 dead:beef:2::1 0 slow chk_join_nr 1 1 1 fi =20 @@ -2635,7 +2661,7 @@ mixed_tests() pm_nl_set_limits $ns2 1 4 pm_nl_add_endpoint $ns2 dead:beef:2::2 flags subflow,fullmesh pm_nl_add_endpoint $ns1 10.0.1.1 flags signal - run_tests $ns1 $ns2 dead:beef:2::1 0 0 0 slow + run_tests $ns1 $ns2 dead:beef:2::1 0 slow chk_join_nr 1 1 1 fi =20 @@ -2647,7 +2673,7 @@ mixed_tests() pm_nl_set_limits $ns2 2 4 pm_nl_add_endpoint $ns1 10.0.2.1 flags signal pm_nl_add_endpoint $ns1 dead:beef:2::1 flags signal - run_tests $ns1 $ns2 dead:beef:1::1 0 0 fullmesh_1 slow + run_tests_bg $ns1 $ns2 dead:beef:1::1 0 0 fullmesh_1 speed_10 "" 1 chk_join_nr 4 4 4 fi } @@ -2660,7 +2686,7 @@ backup_tests() pm_nl_set_limits $ns1 0 1 pm_nl_set_limits $ns2 0 1 pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow,backup - run_tests $ns1 $ns2 10.0.1.1 0 0 0 slow nobackup + run_tests_bg $ns1 $ns2 10.0.1.1 0 0 0 slow nobackup chk_join_nr 1 1 1 chk_prio_nr 0 1 fi @@ -2671,7 +2697,7 @@ backup_tests() pm_nl_set_limits $ns1 0 1 pm_nl_add_endpoint $ns1 10.0.2.1 flags signal pm_nl_set_limits $ns2 1 1 - run_tests $ns1 $ns2 10.0.1.1 0 0 0 slow backup + run_tests_bg $ns1 $ns2 10.0.1.1 0 0 0 speed_10 backup 1 chk_join_nr 1 1 1 chk_add_nr 1 1 chk_prio_nr 1 1 @@ -2683,7 +2709,7 @@ backup_tests() pm_nl_set_limits $ns1 0 1 pm_nl_add_endpoint $ns1 10.0.2.1 flags signal port 10100 pm_nl_set_limits $ns2 1 1 - run_tests $ns1 $ns2 10.0.1.1 0 0 0 slow backup + run_tests_bg $ns1 $ns2 10.0.1.1 0 0 0 speed_10 backup 1 chk_join_nr 1 1 1 chk_add_nr 1 1 chk_prio_nr 1 1 @@ -2692,7 +2718,7 @@ backup_tests() if reset "mpc backup" && continue_if mptcp_lib_kallsyms_doesnt_have "mptcp_subflow_send_ack$"; = then pm_nl_add_endpoint $ns2 10.0.1.2 flags subflow,backup - run_tests $ns1 $ns2 10.0.1.1 0 0 0 slow + run_tests $ns1 $ns2 10.0.1.1 0 slow chk_join_nr 0 0 0 chk_prio_nr 0 1 fi @@ -2701,7 +2727,7 @@ backup_tests() continue_if mptcp_lib_kallsyms_doesnt_have "mptcp_subflow_send_ack$"; = then pm_nl_add_endpoint $ns1 10.0.1.1 flags subflow,backup pm_nl_add_endpoint $ns2 10.0.1.2 flags subflow,backup - run_tests $ns1 $ns2 10.0.1.1 0 0 0 slow + run_tests $ns1 $ns2 10.0.1.1 0 slow chk_join_nr 0 0 0 chk_prio_nr 1 1 fi @@ -2709,7 +2735,7 @@ backup_tests() if reset "mpc switch to backup" && continue_if mptcp_lib_kallsyms_doesnt_have "mptcp_subflow_send_ack$"; = then pm_nl_add_endpoint $ns2 10.0.1.2 flags subflow - run_tests $ns1 $ns2 10.0.1.1 0 0 0 slow backup + run_tests_bg $ns1 $ns2 10.0.1.1 0 0 0 slow backup chk_join_nr 0 0 0 chk_prio_nr 0 1 fi @@ -2718,7 +2744,7 @@ backup_tests() continue_if mptcp_lib_kallsyms_doesnt_have "mptcp_subflow_send_ack$"; = then pm_nl_add_endpoint $ns1 10.0.1.1 flags subflow pm_nl_add_endpoint $ns2 10.0.1.2 flags subflow - run_tests $ns1 $ns2 10.0.1.1 0 0 0 slow backup + run_tests_bg $ns1 $ns2 10.0.1.1 0 0 0 slow backup chk_join_nr 0 0 0 chk_prio_nr 1 1 fi @@ -2809,7 +2835,7 @@ add_addr_ports_tests() pm_nl_set_limits $ns1 0 1 pm_nl_add_endpoint $ns1 10.0.2.1 flags signal port 10100 pm_nl_set_limits $ns2 1 1 - run_tests $ns1 $ns2 10.0.1.1 0 -1 0 slow + run_tests_bg $ns1 $ns2 10.0.1.1 0 -1 0 slow chk_join_nr 1 1 1 chk_add_nr 1 1 1 chk_rm_nr 1 1 invert @@ -2825,7 +2851,7 @@ add_addr_ports_tests() pm_nl_add_endpoint $ns1 10.0.2.1 flags signal port 10100 pm_nl_set_limits $ns2 1 2 pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow - run_tests $ns1 $ns2 10.0.1.1 0 -1 -1 slow + run_tests_bg $ns1 $ns2 10.0.1.1 0 -1 -1 speed_10 chk_join_nr 2 2 2 chk_add_nr 1 1 1 chk_rm_nr 1 1 @@ -2838,7 +2864,7 @@ add_addr_ports_tests() pm_nl_set_limits $ns2 1 3 pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow pm_nl_add_endpoint $ns2 10.0.4.2 flags subflow - run_tests $ns1 $ns2 10.0.1.1 0 -8 -2 slow + run_tests_bg $ns1 $ns2 10.0.1.1 0 -8 -2 speed_10 "" 1 chk_join_nr 3 3 3 chk_add_nr 1 1 chk_rm_nr 1 3 invert simult @@ -3040,7 +3066,7 @@ fullmesh_tests() pm_nl_set_limits $ns2 1 4 pm_nl_add_endpoint $ns2 10.0.2.2 flags subflow,fullmesh pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow,fullmesh - run_tests $ns1 $ns2 10.0.1.1 0 1 0 slow + run_tests_bg $ns1 $ns2 10.0.1.1 0 1 0 slow chk_join_nr 4 4 4 chk_add_nr 1 1 fi @@ -3052,7 +3078,7 @@ fullmesh_tests() pm_nl_set_limits $ns1 1 3 pm_nl_set_limits $ns2 1 3 pm_nl_add_endpoint $ns1 10.0.2.1 flags signal - run_tests $ns1 $ns2 10.0.1.1 0 0 fullmesh_1 slow + run_tests_bg $ns1 $ns2 10.0.1.1 0 0 fullmesh_1 slow chk_join_nr 3 3 3 chk_add_nr 1 1 fi @@ -3064,7 +3090,7 @@ fullmesh_tests() pm_nl_set_limits $ns1 2 5 pm_nl_set_limits $ns2 1 5 pm_nl_add_endpoint $ns1 10.0.2.1 flags signal - run_tests $ns1 $ns2 10.0.1.1 0 0 fullmesh_2 slow + run_tests_bg $ns1 $ns2 10.0.1.1 0 0 fullmesh_2 slow chk_join_nr 5 5 5 chk_add_nr 1 1 fi @@ -3077,7 +3103,7 @@ fullmesh_tests() pm_nl_set_limits $ns1 2 4 pm_nl_set_limits $ns2 1 4 pm_nl_add_endpoint $ns1 10.0.2.1 flags signal - run_tests $ns1 $ns2 10.0.1.1 0 0 fullmesh_2 slow + run_tests_bg $ns1 $ns2 10.0.1.1 0 0 fullmesh_2 slow chk_join_nr 4 4 4 chk_add_nr 1 1 fi @@ -3088,7 +3114,7 @@ fullmesh_tests() pm_nl_set_limits $ns1 4 4 pm_nl_add_endpoint $ns1 10.0.2.1 flags subflow pm_nl_set_limits $ns2 4 4 - run_tests $ns1 $ns2 10.0.1.1 0 0 1 slow fullmesh + run_tests_bg $ns1 $ns2 10.0.1.1 0 0 1 slow fullmesh chk_join_nr 2 2 2 chk_rm_nr 0 1 fi @@ -3099,7 +3125,7 @@ fullmesh_tests() pm_nl_set_limits $ns1 4 4 pm_nl_add_endpoint $ns1 10.0.2.1 flags subflow,fullmesh pm_nl_set_limits $ns2 4 4 - run_tests $ns1 $ns2 10.0.1.1 0 0 fullmesh_1 slow nofullmesh + run_tests_bg $ns1 $ns2 10.0.1.1 0 0 fullmesh_1 slow nofullmesh chk_join_nr 2 2 2 chk_rm_nr 0 1 fi @@ -3110,7 +3136,7 @@ fullmesh_tests() pm_nl_set_limits $ns1 4 4 pm_nl_add_endpoint $ns1 10.0.2.1 flags subflow pm_nl_set_limits $ns2 4 4 - run_tests $ns1 $ns2 10.0.1.1 0 0 1 slow backup,fullmesh + run_tests_bg $ns1 $ns2 10.0.1.1 0 0 1 slow backup,fullmesh chk_join_nr 2 2 2 chk_prio_nr 0 1 chk_rm_nr 0 1 @@ -3122,7 +3148,7 @@ fullmesh_tests() pm_nl_set_limits $ns1 4 4 pm_nl_set_limits $ns2 4 4 pm_nl_add_endpoint $ns2 10.0.2.2 flags subflow,backup,fullmesh - run_tests $ns1 $ns2 10.0.1.1 0 0 0 slow nobackup,nofullmesh + run_tests_bg $ns1 $ns2 10.0.1.1 0 0 0 slow nobackup,nofullmesh chk_join_nr 2 2 2 chk_prio_nr 0 1 chk_rm_nr 0 1 @@ -3132,14 +3158,14 @@ fullmesh_tests() fastclose_tests() { if reset_check_counter "fastclose test" "MPTcpExtMPFastcloseTx"; then - run_tests $ns1 $ns2 10.0.1.1 1024 0 0 fast fastclose_client + run_tests $ns1 $ns2 10.0.1.1 1024 fast fastclose_client chk_join_nr 0 0 0 chk_fclose_nr 1 1 chk_rst_nr 1 1 invert fi =20 if reset_check_counter "fastclose server test" "MPTcpExtMPFastcloseRx"; t= hen - run_tests $ns1 $ns2 10.0.1.1 1024 0 0 fast fastclose_server + run_tests $ns1 $ns2 10.0.1.1 1024 fast fastclose_server chk_join_nr 0 0 0 chk_fclose_nr 1 1 invert chk_rst_nr 1 1 @@ -3287,7 +3313,7 @@ userspace_tests() pm_nl_set_limits $ns1 1 1 pm_nl_set_limits $ns2 1 1 pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow - run_tests $ns1 $ns2 10.0.1.1 0 0 0 slow backup + run_tests $ns1 $ns2 10.0.1.1 0 slow backup chk_join_nr 1 1 0 chk_prio_nr 0 0 fi @@ -3300,7 +3326,7 @@ userspace_tests() pm_nl_set_limits $ns1 0 1 pm_nl_set_limits $ns2 0 1 pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow - run_tests $ns1 $ns2 10.0.1.1 0 0 -1 slow + run_tests_bg $ns1 $ns2 10.0.1.1 0 0 -1 slow chk_join_nr 0 0 0 chk_rm_nr 0 0 fi @@ -3310,7 +3336,7 @@ userspace_tests() continue_if mptcp_lib_has_file '/proc/sys/net/mptcp/pm_type'; then set_userspace_pm $ns1 pm_nl_set_limits $ns2 1 1 - run_tests $ns1 $ns2 10.0.1.1 0 0 0 speed_10 & + run_tests $ns1 $ns2 10.0.1.1 0 speed_10 & local tests_pid=3D$! wait_mpj $ns1 userspace_pm_add_addr 10.0.2.1 10 @@ -3332,7 +3358,7 @@ userspace_tests() continue_if mptcp_lib_has_file '/proc/sys/net/mptcp/pm_type'; then set_userspace_pm $ns2 pm_nl_set_limits $ns1 0 1 - run_tests $ns1 $ns2 10.0.1.1 0 0 0 speed_10 & + run_tests $ns1 $ns2 10.0.1.1 0 speed_10 & local tests_pid=3D$! wait_mpj $ns2 userspace_pm_add_sf 10.0.3.2 20 @@ -3356,7 +3382,7 @@ endpoint_tests() pm_nl_set_limits $ns1 2 2 pm_nl_set_limits $ns2 2 2 pm_nl_add_endpoint $ns1 10.0.2.1 flags signal - run_tests $ns1 $ns2 10.0.1.1 0 0 0 slow 2>/dev/null & + run_tests $ns1 $ns2 10.0.1.1 0 slow 2>/dev/null & =20 wait_mpj $ns1 pm_nl_check_endpoint 1 "creation" \ @@ -3381,7 +3407,7 @@ endpoint_tests() pm_nl_set_limits $ns1 1 1 pm_nl_set_limits $ns2 1 1 pm_nl_add_endpoint $ns2 10.0.2.2 id 2 dev ns2eth2 flags subflow - run_tests $ns1 $ns2 10.0.1.1 4 0 0 speed_20 2>/dev/null & + run_tests $ns1 $ns2 10.0.1.1 4 speed_20 2>/dev/null & =20 wait_mpj $ns2 chk_subflow_nr needtitle "before delete" 2 --=20 2.35.3