From nobody Tue May 7 14:23:19 2024 Received: from EUR02-AM0-obe.outbound.protection.outlook.com (mail-am0eur02on2052.outbound.protection.outlook.com [40.107.247.52]) (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 1F4A41FBA for ; Wed, 31 May 2023 08:59:17 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=jzfzktC1vpxLaSglnTrHgJPp2duXtKvqkeRP3uF1+DhjnCj678+8JszoCQKYJ1iJuSOp4sth7ND8Swf++Y2SsxghBTJy2Bul+p7eBcWFvUecN2FA7c9599p69uaeYqScYz8cBr99PuSVmnt2/to7i39iG2qJZh4LDoG4gBsFHwQOh3cPuFdKqllKmZk4WBIMiL3ALIjpPKEBbUWjBVOBhDYgGZ4qJ45UzEdG4KcToPGrlgsVKKAc1yANwaidUelGGXpH2G/eOifzbvXzN+1/uSLl0x3T7JMYIRbApdymBA7ZLSatQS9wGekMgLBmHHyIB6tE4ap3sHwRhi3PKQl3gA== 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=U48kFscM+NlUebAKnl0sfBkpMbSOQbiJvVRyJr7DaC+zAV17WAwfk3lQAdHV/rcKv0nA7P4r1yF1Ga00+EOtC7Rc2xSdenRiIdnFUxpACPjGwqWdMjxx7eT4eFgjGgY6V676nhCUow/W6awzhCQKjiXHuzlLVmn9w19u9l0qY2Q0fNOXK9ouODF+pmxldVRobk1DMw3301Qq9MrbC8aNiMKK8rzvESLGVdPE4Sx2MjjTpahUlTT5vuVB9T5zBKrU0Ry6y2K9mWGQm9hiLr2EEFs5JdQDZ336Orel94M9PpFZqrVA1OfDyVqqpom8O126nHOps/sxnI3PpFhgP5/lqg== 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=KRNdt1vO/pJtnT4k8SLeB8xksC9jZ2oNlVNH9rSHWeaDS/W7i/Y+Xh/MHnFTeHrDho6mE17JiYI4d9uwPSIeuV/zcGzMuDhUdMZzSyX9UQPed/cC6W+R8cTNeARcsVV6A4YWjr2N9K8Xf+vyXVhjv67lh1+Qar6w6L4hdlgJuTJUOjsWSYDWIZ/tYSoUOs5JERzQpnR9j7T/cqKyTCuhHkl0qS22R8QDoI923jC0SNdvm8J/2bzumvVbM/ZXIkJL0LR7uJjjhXPUZuVtN8FQXnV6pBuZKIH4GwJAtVqGU32FpiYIF1ds+nlVpNWmjLXY2LZ2+FbnYH32r/QTz9lNLg== 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 PA4PR04MB7902.eurprd04.prod.outlook.com (2603:10a6:102:c0::22) 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 08:59:12 +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 08:59:12 +0000 From: Geliang Tang To: mptcp@lists.linux.dev Cc: Matthieu Baerts Subject: [PATCH mptcp-next v15 1/7] selftests: mptcp: skip tests when features are not supported Date: Wed, 31 May 2023 16:58:50 +0800 Message-Id: X-Mailer: git-send-email 2.35.3 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SI2PR01CA0005.apcprd01.prod.exchangelabs.com (2603:1096:4:191::23) 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_|PA4PR04MB7902:EE_ X-MS-Office365-Filtering-Correlation-Id: 492f3881-a5b9-408f-30c0-08db61b54d86 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: V+LNYnJArG8/UZXEguly5OSlcBb3p90AIlRhrWc830qKzd6X0/HZbtDlNCVD5BqIW7ix34jIjnWWtPLcbBxyrUxoSrSHVTb9x2JPnn1g6yF3/4tANtX/sWCL6qq2tfX6M+hAz//WUYuPUsnK2dwcnHEAyS0LRy+rEZOpPlDcbJW3AyV8eEYsR5ayXMIV2O9aTV7r7RmmbtKkARQ7Re3Lkn6WP/dhhc63qhGY+pKiF9w7A1doCCiZxCdxfIhFE4Ky3HG3iVdeDMKTtpZh9Y55W37O+EDwq+NMUCGR+6eqjNoH0NT3FGNw6SqlzCT9X04i/jLX7pGKLMJBrFB5giFKjhauiV93N1xAw38dY3OW2lx87+t2nBUnI03jUBHNaZpuiSH6EQpRPPCXU8Rj9Tbi0qbSzeYQo6eMqSek3B1mWgiVk81hQ7OVIOYM9035kKxheutp+FOBLuT+TF4ZqTrWaNTouvr1crnIrPPWmMmn4BdnluLaNkrmiCkplzm+wwTYvTvfZkO+TyvXIEPqi7EQGZ+WdYqxfBvivQE41QrdwpmDUGV91qZjivawmIt7M48P 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)(396003)(346002)(376002)(136003)(366004)(39860400002)(451199021)(2616005)(38100700002)(186003)(41300700001)(83380400001)(26005)(6506007)(6486002)(6512007)(6666004)(478600001)(4326008)(6916009)(66476007)(66946007)(316002)(5660300002)(66556008)(8676002)(8936002)(44832011)(30864003)(2906002)(86362001)(36756003)(579004)(559001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?3N8zkAxpm8FQ9fsvFsnG6q8aJjzc5SuWLHR0/E6ezLVDifQmFX6oBWJ5llUZ?= =?us-ascii?Q?DlcXQoSln13rE+I8GIHLgTOqll2rwDB+ZXWnSfaFYEBwAcn9cFgiA60/wxga?= =?us-ascii?Q?2pTypzwS3N+4ZCHRJ1esI0ewIDuygYcEdJODX0CIYE4ekfNfobE/jzRSDT3y?= =?us-ascii?Q?i1bjm1JlDMxLelHlFDP5EAeDivpgEk9A6fXdWPWyyHRICBZQ+mROjPEWtsJs?= =?us-ascii?Q?1XD/xpSJcefFYa5QP0kpzRWHSlynONgw0zb5qwHDF4ADdPK1j9uJ+a6/HHqr?= =?us-ascii?Q?lqT+KQHSo027+khperubv3gSc//AQ0xwMH7dOQVr1NzURrywJQPCRUHWQd2x?= =?us-ascii?Q?3FBEg3kEdO7rA+6hFk8xcVD4wOwG6AwjPLzE6n+yA0SucCSTQ55sJKo15pl/?= =?us-ascii?Q?S+qO/6xZI2RQVmsBLpS5Syxz9sb5aKoVEj12c9445InRMa5NqFbMwyFqzoIn?= =?us-ascii?Q?zatG7dS8Z/jgSa4YVgprLH7Pj1qBJ7865/hfDbXl9teClA1T1inHk21oM8WU?= =?us-ascii?Q?mvAp/PozGxXqLnBp+HeZPgDlj2G6jzNErVCHsUazITF5AIkO0q/WV+QKukf3?= =?us-ascii?Q?4nCUoOUdoP5DpBKtYEx79lYIn/SfrEvPbpNf15kRxbbpPkTw0UCjtBBSjOc3?= =?us-ascii?Q?mMdIFruWV2psf3XYQWHMhi0VuGSbx9yH5o2CvcxpaSs+1xMTCy9TQ0xMpk0e?= =?us-ascii?Q?2WTRQwHMtlGEdO/j1acx7B317KONv1iNGKxfqNZcYmLEPbVNR/6AaRzRTOuJ?= =?us-ascii?Q?+QRuJGspIt7d3n+ILNtWPQ/5TA+JhXMtlvVOApoI4P7y3Ecd0PDL+LVDVLtA?= =?us-ascii?Q?Imcaa1pY1aTlxtdcx1CwCgZTTU+140+/36URjqFjZTAxyS16dZ7R2drvaQPO?= =?us-ascii?Q?5ujUFi2j+2ix1+MMNWf1f5nR3McvvCAKahBJ7l8HVcPgFv5A1ifekqr/GaBC?= =?us-ascii?Q?gCDA6+wm8K1VwSJl9B9O7+DA6PWZ4e/K3E+SUW5miD/v267xjezPTWSQWA7Y?= =?us-ascii?Q?TOtYl7zq5wYCiEu2PIeUxZ6T6JiVjXx72iKtqoRRb9y+tJ6V4mNYEgiXKrc9?= =?us-ascii?Q?8EN6D29eUjQYoDBc/dB4qX9id8yDg06/5RzPTh/PNCo9EWgUUYaU8mY8S8AI?= =?us-ascii?Q?T9lmzBfHlXmbXFMmS2eLBG6jp+ixAWsBCqAHEwQm/eu6nIA8+ViDa6Gte6nP?= =?us-ascii?Q?Daoy5HAx4G3rRtl2jaY0dZuCm+35b+kUo6P85G28MOQ///OkTw4neYmGA+tg?= =?us-ascii?Q?vCuP3vveI1+uUYkTHJBNORvhJTbzfIS7YWQD/pBPWR2nHndIlLeNCQ2+s8YE?= =?us-ascii?Q?zSiBLTMSDIy2aP0NSVdN8aI01afqm+HlGFMaagAhH0X53XZF5tr7bWY9uca2?= =?us-ascii?Q?hydN7P5/Qm7XPvxiWgeRHViek5Lba32qHqTKurlbCsuhU1l3YbQhlviVkWIG?= =?us-ascii?Q?m9Ngfe6aMu5aweSGYilliAZG5gCZKBPB9Fo7Jo7Jwog04dsf4XlZrgstmE3j?= =?us-ascii?Q?3TgP5LOoYoLfubrsmxDDXy9nFh0P+r7lLXd+hS38cBlWBKmYaT5tMCSmxWse?= =?us-ascii?Q?mbIFpbunjxk07O+yKtOKDk64JLu+uM3/Wfub4b9p?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 492f3881-a5b9-408f-30c0-08db61b54d86 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 May 2023 08:59:12.4874 (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: ANEnaZNPKPxAmDbGc5DZtTKFYRm3yT3FzLhGxdcD1gpq3YEh4B4zEQ1/WnRmzUninjHGZgINXGTTtD46x9bojg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR04MB7902 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 Tue May 7 14:23:19 2024 Received: from EUR02-AM0-obe.outbound.protection.outlook.com (mail-am0eur02on2052.outbound.protection.outlook.com [40.107.247.52]) (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 894241FBA for ; Wed, 31 May 2023 08:59:22 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=VevnoLRNCN4Uyx0wexC9s89/zJRyqdbdbvCY1LIOAd9fjIYE6jShdkxvkPPGw70OCFs2Asuuox3m4ZaXLNab2q7mvRpXZ8FYyBlKuSXzLub6sIAOFhDnkAQu0+YbZHSDOaiQf6QAYtmvuybzMYEnnRvhgFbOGIm3iUWfNSshk3RjzJEQmlidr8dZdS6fcvc2KO5sdN+vdI9FxE+iWOMpWVcREuZRhAo9CaPm9fRPF8r5akj5gwpO44I/Lx1omf3by8xIs6yRT1csv0RPfztT9Yj3elyj55WkSMeaZK4aVKihdMZ1kCddgoq17eS8mzeMcmDz/kaCant4f6VciJIgjA== 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=kk0d6KYwTTVxZyGRLko3pOeCOnjiWLz4Qs4Y1wIgeogGnguMay5CbDY6F3lsc63sskAewVFUo7QuIJdMcPhQn9KWnO4ONFaSvMBSQgtEq3vgSLKr8OxSariQe+Cl18/cwZgpdXlTfAvg++Q5KIv+JZcTw/IShVn+zwKXaHNAnzVPlCUITP6uS6d4UM8DLOTEjz1GQUKPC8I27RCm8E4rJZrfUkAvVquFqOvxkgtm6Islp7IiHYHDqMEap9duCZApi0ZTfoGG4voBfpCAv4OHuI8wcggy8utx1OVD1VIbhAaU7B8h/nx43M3tDFlhePCylcQu55OoTIYk4VDGsFXocw== 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=Th6H6vx+qrBn+sWwMtR50Dh5X30gAUeQBc60hwLdXlFtROqlpYZJ3UlkgmnNFrect3FuetOSopIOQGadIp399UTvj6sBvY+vx4RkH1fH/xfxDcOgEtCwzmM36jKVO+B6WH+gG47Xi5r9JAx/s3MdAx+Fj84mIiYFks0bd46XrjKgzDrH19GG2qrJBEi9+8SDljefMQ5veE9TQN2wVCwsHEDLREK1oIypzHxiGFdX2s7CmoZiBFdNTu9wV0rgCxmMIX7WZa+gFSm7DBIbwRbA19ZTLMKPRZi3WUjRa4DHGaHCEpz37lpKxCUjZjiFuXnXpzb9r1YU3zKJowNV/J1qHA== 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 PA4PR04MB7902.eurprd04.prod.outlook.com (2603:10a6:102:c0::22) 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 08:59:19 +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 08:59:19 +0000 From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next v15 2/7] mptcp: pass addr to mptcp_pm_alloc_anno_list Date: Wed, 31 May 2023 16:58:51 +0800 Message-Id: X-Mailer: git-send-email 2.35.3 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SI2PR01CA0014.apcprd01.prod.exchangelabs.com (2603:1096:4:191::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_|PA4PR04MB7902:EE_ X-MS-Office365-Filtering-Correlation-Id: e308de38-9612-4d74-0dd6-08db61b551e9 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: lV4SexQClHHt803iK5FgRDzOamlfRSKRJssextl51IUWJaWiZi0NoegygKrOh1QhjRyyqYcsJckK5r6jNVOnaQtzAThuJUwkPo1EhNVaMBm4j83x/p2ZLDJO69JKHXMlWwa2+gcdPoYS7USY5ZmbI9BhJQ5DKGPYsk8gAQKSuM/R0oLjs4XIKTqWwwYluWhQAXBFrzUCHPAY6joLK7hrbIW2q3D4VkcVuByakehQpiQvfzzOZC4Ce7spVuk9SLZTXP5YhwUe/4hLUNC+biZ01fN3JevE4ClzzwE7FVPAsrrYcnWcealcZqAU6OKPDg7XEZBGQLpt3WlmNJkFA4GC5ZJt4v5dWSJ4K2WJrUYkV0tyC+O6fJwn5S6m+CCoxxN+yQ7zMDoAyALHf4Rx1GF+KWxeuEs89y0LnohMqLPMr6V06Y+Eqmtku1+lTviBVB9ifaIIzYVFEqhXHPrw6blPGeR7xUErajd+epHpIAeBNLpn1M6/JTMLt4T+4wjq1+y6g6MjfFsGq3yNQHCGOPPqTv9EWkGMMnyn+3kYuqYNlbuO1uZ8TRitZNRxk+x7nEtb 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)(396003)(346002)(376002)(136003)(366004)(39860400002)(451199021)(107886003)(2616005)(38100700002)(186003)(41300700001)(83380400001)(26005)(6506007)(6486002)(6512007)(6666004)(478600001)(4326008)(6916009)(66476007)(66946007)(316002)(5660300002)(66556008)(8676002)(8936002)(44832011)(2906002)(86362001)(36756003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?5SESdGBcF8PQjHShR59lEGHCoDLwXcqaH+KypZZPkSl8UqhAznDOF7Ve+YBR?= =?us-ascii?Q?ZUB7rNjeBZX9T54vx7Z7iWTOwFwAvQFgp7GDRmY4qtVMZNXDrwBaLaxPvD6m?= =?us-ascii?Q?GD3svQIPISTOSMWztPl3Bxu9qixntP2bX4LGHkWmze0Dz9jEWmYNtL0LYfbt?= =?us-ascii?Q?iEMOXNgKLKkdx9rjMs3XUk/tFB5Y+g/6r+wOV8qMPBwr1kDx2FDZ9HW0zT78?= =?us-ascii?Q?x3qzP13lOZpp7WPiTS0o7CVLR0as1Bzzoy1Gh0OZ7N9bdZcCpFeX0iC3c+92?= =?us-ascii?Q?QtAUc88PYn7aQsUamAKGB/moSVnOjz3b4qffmufxajEplYk63qkwLpK5aLHo?= =?us-ascii?Q?EEftxfPB/yn6Q5VeJ2udd60zAcZLOZYbjm/odyhBuftST9GywVy2JixoQVeN?= =?us-ascii?Q?iLPTkIVXWIzYAAY9PPcONrkf8CnTD9djH+T/EvkWEYbH8RhTP34VbIXRU6Jh?= =?us-ascii?Q?JFEj1OgZDgg/sS3F0NvJbq/fhTiduUXXGOrjP6PBC/R+IcElDDevHH9dqpmH?= =?us-ascii?Q?RJNKaBzjLwwrIO4r87l7Uvcuo0HqNzLEHWyC96MR/AWt5qw57Suym8MEY0Ih?= =?us-ascii?Q?E1z0vKmwRFrw8VYXfDSTQmHXdI91lR3Eyl558Fl0xbcrhIXn8kUxNZfDZQyu?= =?us-ascii?Q?o8UV1VWb9I911J+y6Exb8MplF2tr9xUQjU9nJe0VTBujkhFf/ucDSOiZlYt0?= =?us-ascii?Q?NUTkiL6OhRmJGgrvoLL9yQ6ZAFrLOC6khMxl94WgEPK0+F6GjOfwyu50eaLd?= =?us-ascii?Q?OcpDvCeQQTH4IsthVhYqk9J4on6PVE/o+n7Ywn522caYlZs/2A+AhQ3WOPwG?= =?us-ascii?Q?R1YLjob4L4p0pFJgXEOAcOV3N5F9ibv3c8FLIIPewRPtA+qO/plmMQGvUrfU?= =?us-ascii?Q?h3HkXlAvo3U0ao+7H6xGGRBDMa3e0/G0x68WP6HpttyWaJEKn/grUhT565kZ?= =?us-ascii?Q?10w2gc0yBw9EY1HBhlITYAXDFuyO9wuualk8XpZ8kuCW+DOUbzZPzrRUA4vF?= =?us-ascii?Q?dXPxkLoTg8pxYJmxKk2wSSIjRy46772LFLCdYsD5hoS44WRFViPu2/2MMPax?= =?us-ascii?Q?5xxQqIXvx3+q93xi9PPBcVNotURBUXPqEI/sl2HlZfMmnhEQsUKI2fjL4q8I?= =?us-ascii?Q?a4sFlanTu7y6V0xVzxemrouvoZawnM6vEpDa+jDSdFI1Yv/2xMO7Ah3JZw/c?= =?us-ascii?Q?Zumw7FzaIaR/y3VLycKNJ+jB0MsT0FLC2UCabG/YcaOhal6pArLbvQ9dz5ux?= =?us-ascii?Q?REy1VGJ620RW9IiYz3a2cRqn7SrCcFMru75ZwTZNnIvob7Wy4xhqTc3wyTn8?= =?us-ascii?Q?9oMTkh72dcly/eg9MN2x9sGMRvoDsvGyEVfeCiMuhIljtUO1hVkyfaGqE+ZZ?= =?us-ascii?Q?By9uiWcTap1P/Av3ZQFanK8JcuCx+E3WFXjgIIZlxQ1IV+bF92dHBAP3ICfm?= =?us-ascii?Q?q0EFAPWeEemUmnEVBowNxf+Efi0vZQNFyVhjTl7w/+58IBmTUZXHu8LWhlxO?= =?us-ascii?Q?MU6nLw7tfMZt1ij5f7K6HbT5dTe6u4GdiJbRNZeDw52yC9DHzarOp/FC1nzi?= =?us-ascii?Q?0C2VhcnOdPVKWH0//dQ+Up9GzeetNIrOmzVTtsaq?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: e308de38-9612-4d74-0dd6-08db61b551e9 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 May 2023 08:59:19.6581 (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: jHCN/0jBDwmtJaayMDtmbUBi6AJIaJtG2cR1DR7wQMS2aC2bsHtBWRH+5zE4Z51mWd9LCqnLmXLFVG+kAhVJoQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR04MB7902 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 Tue May 7 14:23:19 2024 Received: from EUR02-AM0-obe.outbound.protection.outlook.com (mail-am0eur02on2076.outbound.protection.outlook.com [40.107.247.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 E41721FBA for ; Wed, 31 May 2023 08:59:30 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=LNBnH6lMoitmqDuw3awDkjnOYNCcI9GuFL5LkqihOTPfAruFDxvOkSscPxsU9nTg4TDKVwJdFauRJuyM5GjaXdYfFbqkumULwcuHFZ1JUeXK/FF0L5ie7b3OX0MBigG3WaE6JZlGjHwIIOx1WwW/XvlrgFCuWAsLBQMx1Xcm9KGy1cJIQ2uvfBEJDuXYsSqXY+xsp6knTM3mzx7Cv+qulLJ3MmRDNvOCUMSzDvFxlnoNxdkDeuBj7RAJJdtHVhFRGeufeRdUa+BMb1q8HqdR/7TAYCKfjoT5yGNjyQAdF2XJcZXIh5QQKDxT20VIk6oSvWtCLd7A/1dLpzjnt97cXA== 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=oSB06F5+CxmFHmZs2LI/WviuIpqlhK21Dfu1FLJx+ChV+AsMvx18qJQ7YHKUdAB+acV+SHqe2KIReJ53VcCvuEDtI2HtzSN59VJy2WluUnWy94eyqWy91ntP3x7ahFaaACgvYdxSBJYr36RmxEjE3BlJ6gQfX616uc0DO56Iy2jjA3cae/mlEwsejLEg76BMRr4U5tRLy9NpTRpiqx+afgQGIQOd+cgq6p7mreaabc22disKxVn/6gJ5DxLwkJPtSuZxHau8UKS2AEaIXSZgzxdPAdaNmTOejSs2mTxjkjsUig4BlmIBbWhwfABg/YPgIh0tj8eUbuAPnyVOPEcepQ== 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=nTOnjb5aRTzu58CDGwDYAqQZjXnQcZ/7QsJG40Eo+0VU5xTYtMhOVHx562myYOLZr3a9uOZP53dg1jwQmHORiUnIksjfW5f/H4AovnehNP210SSE/SReLEsIce805QU7hma6bODBuU7DS5kuC9xMYfiymBx0VgLruNGgLX7GVgXLtPWwxv9Sv3ojcM/V31QpY5rpKITKlWFqSrYpAYFcvZoJtqwVUMqjuxm9NAEqCGpWLkQ6WI8tooUnaemrpYSbpKvL2d72M+3Saw4GDVVzfZt8rffmYGHBnPfcY9g6Oc8nbNbq/g+vek73Oi1/SBCCcyaVy+NI/n03Mqwu2t6VJw== 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 PA4PR04MB7902.eurprd04.prod.outlook.com (2603:10a6:102:c0::22) 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 08:59:28 +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 08:59:26 +0000 From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next v15 3/7] selftests: mptcp: test userspace pm out of transfer Date: Wed, 31 May 2023 16:58:52 +0800 Message-Id: X-Mailer: git-send-email 2.35.3 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SI2PR01CA0010.apcprd01.prod.exchangelabs.com (2603:1096:4:191::12) 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_|PA4PR04MB7902:EE_ X-MS-Office365-Filtering-Correlation-Id: 51f079e0-c5e1-46a2-7631-08db61b55636 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 7Mw8wkP3O4rOokQgjCA45oSJIHtPkrPINJBb8vKNSgnePhzsvLnDtPfpTHruYIGpKeCKqBtYU4jodTB7eNp45TmzxQIBJi+n3pXNz2lXrpKsiYa7kMGiT0Hyn6iV1I0UaL5TEgMW7ciYCEvsVRiRJnC0w29u9SyuXD/MT4OoeaEeX+XDmMHpDs9khxdPm9VhldkM+TZCnAdZT66LcP/aoZPw4h2OnalZ6Lghv/xkjcheWwlJ+xl6L09yVYY7Ds9cOY528nLfAWs0edx1XSSB7cmk93PMVU91fPWL0DSscHhof+EwEnHjhj9TihTjnh3pEI7Nv7CpR9gBDH+St58cwg5S9icl+HYDqIfQLHV0b2YV4TQOhCL8/XaMr7l+0n7UsJ/w4RSisM6ZNVob1GPpCfmGsgLNHxA7JbW1C541wPGO6jIhUKzmt/ktynGQacq7QNsXx5ne10J7ci0BI0sQni8l+iqDxU4B2eS5E+TOaESr5MSwlbvBc0iLjzagDqo29hctfuslso+uJRodd0sbKfzDj6iUYbHS+aXbUZxc4tWfxicgA+bZzAl/uUwisCB9 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)(396003)(346002)(376002)(136003)(366004)(39860400002)(451199021)(107886003)(2616005)(38100700002)(186003)(41300700001)(83380400001)(26005)(6506007)(6486002)(6512007)(6666004)(478600001)(4326008)(6916009)(66476007)(66946007)(316002)(5660300002)(66556008)(8676002)(8936002)(44832011)(2906002)(86362001)(36756003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?GJ/ujyBTUGEtNRG+Y388a2KUyCs5so/9aLAJiT1Qwwb+ZraqyixwDHAH6ZCF?= =?us-ascii?Q?o6ZoyUN+8kkgeQAD1TgwiN//AdakIkDMQC/JCfl7FzMIYtHd040mt2Z0uBsr?= =?us-ascii?Q?c4C0jQkwGRsy2D7ViThB3vui4HL7k7NsbHreacgSlDVbaiFSwfOaHtSYIwpL?= =?us-ascii?Q?QsAJ8iml/vvV1R9MaWhh4i8zv0uITNMkiC45mRRBoJRst6ruyGvQFC24RAAj?= =?us-ascii?Q?iMaL5lITQv23JZRonT79AD7CNve2m/WQQs81+G8xrI/fKfdIa/wnw/NE1ii1?= =?us-ascii?Q?CfAup2PTczRZdIq5jX3K1Ak6KGGpNTVPlFMdug0Gh/H1wfk8I3LxHggFtAX6?= =?us-ascii?Q?+yoeYn6iG+b2TnsfY8VkyCHbX9YAmJ2+geWAAy+J3Wounf6FNe3THcK4QY8d?= =?us-ascii?Q?7+JbDhnArmtdiiiDoF1c/Yf9OntBqgacPsL1ORiTwo7jzQy+/7zfiJjtr9ac?= =?us-ascii?Q?loEou0HRew+3j0ftg2bnK8d2p/Hx6xqME9fvnGlpqAivbLEWaqgWG+84SPlW?= =?us-ascii?Q?ayI94D1GJToObkV0xFSMMasRjFCPAOF0apcHkiNAnTsG91COEdHXlmREm2jF?= =?us-ascii?Q?jbSzH9Ur+/QO51LbhwYYOn2IitLdb9Wpyq699lVp+Yd5zY8F/AWHZa5BSP4P?= =?us-ascii?Q?Gxfnc3axJMBcQjvrsHr3udQJUuPlGUM4WjPL7JmblDi7aYuX3EuXTBbqhx5l?= =?us-ascii?Q?ZoqT6fFaAsmv5vuz5ICPO3kGfZSs5qg/jmbrw/PXkhu7KdaBpcRxSNxrQjjK?= =?us-ascii?Q?ffbus28KFOO3J0prP+yYZ4fG3b6CP+mGkSTKeBIg5Nnexl1cvbMqcGBhYAp1?= =?us-ascii?Q?ltMXsiOsEEKC/uPtmBGpJxKdRUyQf3y0tyH164vJujqHS/KVThxjmuAyPMvc?= =?us-ascii?Q?oE3r9K11nJ8xpkPA+VoP6tDpBP1tywDYDCd1P+K5rzPmI7r4t9KDPcZMPGmm?= =?us-ascii?Q?sJsuOygka1hdQma1RD70/ktKWxtYllM3LYUrWbgam1vQldRibj228pHu7QfX?= =?us-ascii?Q?0lrJsa1DUyWT+vKUeNAif5FzZxd7cFlW5rh/+KWMKrnNtNfnk094KHdI2Hc1?= =?us-ascii?Q?MKGKOkpcaSS6R5e6LT7bePaHKOFTW3RQFlUVe5NOn+T4e43NWKSq+QfXMEIU?= =?us-ascii?Q?TizpR3+L2NsFEhWxjlNBdS6qmaaPODBm6JFlGI0yByj2CBbeEBiPP1Za3Kix?= =?us-ascii?Q?3C0PMQLrnnXm3b0dyblHvdLL1Kp/SLGio15DM1k6fFBKcUCpwaKCSIt3ApMi?= =?us-ascii?Q?9GaWf03l6Vz0H1vbLn0cI28ZUBvvq8vdh+2A6fzs/L9Qyy5OezUAsXO0Yodz?= =?us-ascii?Q?U+8OLDWqdTcMgFZD1ssVkBzuyn1nt1WEBug+0i7vZE/ZUvBvEkiXBc0GY/on?= =?us-ascii?Q?4+QRBQYaYaSpdA42XXrDCYfKK84hDBnPVEHWLxxSornPjty2HywybCw0ipoA?= =?us-ascii?Q?S6ZW6d2OyNj/WDAV7AsmI8sXoOIywnFoPyIDgFF2jxAs2ttvsgD7V+LpBMo/?= =?us-ascii?Q?QMiSNWCBy2DnvAZTcNbOgq8rtM2+szpLVy5+XNxe+YdFUHTpK/Aw0es11ezM?= =?us-ascii?Q?gXYyLfdGl/7skkPC68RDSt6J36myEBEfZpzggBgj?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 51f079e0-c5e1-46a2-7631-08db61b55636 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 May 2023 08:59:26.8288 (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: gCv5xIkZx6smaKXNYvsky4qaDBbJH1iaTyT4FB7CW1QErtm1jp725GOe3g+ZojpmQO8j2Ydl4qhziDcSpXRR8g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR04MB7902 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 Tue May 7 14:23:19 2024 Received: from EUR02-AM0-obe.outbound.protection.outlook.com (mail-am0eur02on2086.outbound.protection.outlook.com [40.107.247.86]) (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 C5AA71FBA for ; Wed, 31 May 2023 08:59:36 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Uzy16IC7F+eRY9Fg9LH/Hoas4qbHMRXhgxX8K91HWvwoRLekMwyYAAH+WQljGwSKD5rgMJIYFog9BHK72mbdr5n0BfeRFsGEE/i2f+cw9/bKijHmIaoXccFoFxUZ4GL/Dggw1ETTUE9HHJf5l9fOpQWYvBdTpQHiywTTyXeaRnIebn+dxBVxmtxGE4N5ox0VPOgtWv/MXFO9YkbNUunJlDnC3iossszYjHhH+rDMkQt2BhrdsvHnZ4TCIm/B+D6Q1nWMGcHB6nFgWnNMpATpx5S2eXAe2wn1er7rhoJYWw4njG+vnkXmUBaJMbuX8JqsPYPzRwNnz/vVRLVzJYNEQQ== 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=LOy0aDlybgrbnIDIKh2hLuxYFK4XtLESonH0RX/CVCw=; b=lKE44YHR5wRkMA+Vq4Le8AI56CZRmW5P3QH1qTfEvnhqvvwx/Ui+SWcPsBUKC+MhTJJJv60A4JM689r+s5mv+AotvX1pHNXkD1rT8Yg3bagNoWfR/ljZFiSBhnrtp9pTJixfOgJp5U/IsGKYYv8RzhKnl8N0yJN2cbV4n5dn0+R0MefFIZYz1wGqaLQIbTiKOxWP/p/vmRg/EWmWNx0O7YCX2JI+57NCp+LwUtnF32PErfkIB108LYNohjVM1eW4xkZzINjlBJzrG6jOEj8WYwK5RBbOz8F6+AT05t05YPz+1Sr8EOTuQvD1pCvsWvUCu9QIGqRmi27fpcus5aTbGg== 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=LOy0aDlybgrbnIDIKh2hLuxYFK4XtLESonH0RX/CVCw=; b=yjTKmxJuIbceX/8bEw3ySQ9M/s1cZAfU/9p3+OmEn2+jTyi8/tH90BCP2yNvI8B+kEKHjTyQq+a5S0z3uP/BaZpxIkSi6QbCY2tNrQME8eiVVEtlR6NUwOtbY3jbXMLjp/dlEDJvg93U6Ngh7hZkhyAc6WCUBQ11pDNGJgc7qlE3/LADDnqRyOtLdtdljYJHUpamu4Yqh5dez4PSkPWhPJm0peviPisP5xY541Ocz6VRfyNSnYRSg4SNS7c6INzvovB6VzkDgHKvYs50k/oxuj9KNxnZu2uGVXBN/eEomz+++0zfUaqsaKlGIw3IQkgde0B56IP2IzpIuXJl6gNaVw== 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 PA4PR04MB7902.eurprd04.prod.outlook.com (2603:10a6:102:c0::22) 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 08:59:34 +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 08:59:34 +0000 From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next v15 4/7] selftests: mptcp: check subflows infos Date: Wed, 31 May 2023 16:58:53 +0800 Message-Id: <1cb85d0746c5c9ae05fe1acd90f5ca9950fffb0d.1685523463.git.geliang.tang@suse.com> X-Mailer: git-send-email 2.35.3 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SI2PR01CA0009.apcprd01.prod.exchangelabs.com (2603:1096:4:191::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_|PA4PR04MB7902:EE_ X-MS-Office365-Filtering-Correlation-Id: 1e04ed02-6603-4359-7a40-08db61b55aa0 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: xc8Fh5la6dVWvuxJ13MvzCP8SZnF8/LMb6Utq5Wta7O/DdR8ZeJTOtNXHqdOMikKnLqmIKKU+uXhI1qqhSzs4tIXVJYemoA4uXy6gb9n0DpgUoh4jejQBS5gd3xrnXGGx2W07/hG6hk0yOASLq7COAI5nz7AtYoz7Hkpa71/uA+xM36wEwU1P+FwV0mTNz5hS1XWlREZKZWyxIhqsZdkEyCuZOSzJQgH/4sCW4D/j8o5VBeOGLb2TzrFUzRO+Mql2PaYtPn4KmCqExIes4qn4IEEkKI5h/2za2ozoa7PyrnVkM2URSAhlYCbmhlcK9Cw23XPo+aZ7AG4+QnU02VbEvRP3UuV8ztJejPiUxHaoQ8SAEoSxjj4oBDWhpznFulsQ2gLfwA0GRDOGpwvISCqC21SVEYZ2YQ2Xe6M74GW2qL9RTwv0ROT9iO0bacCddSv66NvSlNu49oHpXiJHA3xUA0uTVLSZLljK9AZQq52tVlAOXAkbUdC7P6Z1zNZH7iF9/lMzPlgQDU7Isu9aLUPv+d14p/O2zbCHh8lFieqja7tq9gcr9G2Cs+MpmtqIwhR 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)(396003)(346002)(376002)(136003)(366004)(39860400002)(451199021)(107886003)(2616005)(38100700002)(186003)(41300700001)(26005)(6506007)(6486002)(6512007)(6666004)(478600001)(4326008)(6916009)(66476007)(66946007)(316002)(5660300002)(66556008)(8676002)(8936002)(44832011)(2906002)(86362001)(36756003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?2HcdlZLSNnUzKCwNnTBsHRMgQ7tWm6V+1ncGr80DSQ8Gq7krEZthnPHkhct1?= =?us-ascii?Q?HQtrx4iq+E1BJ7mKLEjDYvGvs7UKZjvqdNVTAxfp3EUOfKtzbTsPAaIXiK07?= =?us-ascii?Q?zJ8oRrMXdyDmG55tIcf8T8di/ulFTQL+Fbp6LD3FpYLkVKDQZzk6OARr5mW1?= =?us-ascii?Q?xw29HiLUEmsWV2rQR8YotSNo1KKHpbDd3O5RmHk2FlRoGB4EO3AnpwjZFJ4P?= =?us-ascii?Q?6sG5SGr3bHDjNlkZAEeyvS+wwbcR5kM1xRk67RyAhIDZjyinRXyQUtgKmfA4?= =?us-ascii?Q?yLMtv6ldViY0Kl5+bEqVgdIfyt4RYimAJYtIfTmqiziqcOb+miuIJT1Pruck?= =?us-ascii?Q?3q3Tnce7EipXib3lE/L8LKUFWG4P6URKMJcRTtZsk7kC8yCF46NWvCVs7e2k?= =?us-ascii?Q?8jgdPsxF1HS2SBA5NFs5dK+fE4HT63LKQQHr5iAbYKq7nNj34oQkndPdtchD?= =?us-ascii?Q?Uij7jbNdnf/XvKd8g7qagVC4XtLOFbKHqvMynUKgeLg4zZ/Q9OlkuptJmoWd?= =?us-ascii?Q?QIv6/urnddi9HKIy4rX1On1ZLcp73L++FeQeVgOn5KkVXFocrUpPECuE4cCj?= =?us-ascii?Q?Usxp4X26PyeepIgQnkIYUNDOlb3yG24F4N4Vz+gsySzmMtSEnnp8NpWEDZOp?= =?us-ascii?Q?xIVRPTuppNPgH2KB9HxhVAcWPswjpgFXrp7fnLqTSmXh8FgKpbyCoq3jetL2?= =?us-ascii?Q?Gg1qrZk8sd4l8bOh2OtsNldGhoGESNs/R5EoVGmJrLjP4WVcdwqIx15sARsl?= =?us-ascii?Q?AjX95Ly6xa8WPxIlRrMTK9iIowoVC6zsbdpggK9krsRGAj7lfeLyt27JV5H4?= =?us-ascii?Q?QX7uUNxV6pjEQ6oynMERM8BEXoY699NTr/EtDvZBdnk+BOirYjX2J4WivR4N?= =?us-ascii?Q?5unDkNjnuJkd38FR2T0yPxtWybwRC1iwslJCe9+Wc1MDyTwV8hYoEdNJQwma?= =?us-ascii?Q?DfA4NTeJaRV9iEi0yMa9BbM+VL7z/YxRNGXJxDX4ZSGp+pV9GkJK8FtxpzjN?= =?us-ascii?Q?a/AOgAu6fTcD0rfSwFZk4K3Mp115aW+Bc4f7IHmMZ4tUsc/L63jseq21I5tQ?= =?us-ascii?Q?vB6CYdnkwYhNb8TJ/TQCV468zsFBuZ0Dw+NunaxAEvb3rt/UyzRX6if4LiQi?= =?us-ascii?Q?miapqFOi/Ovy8SPdEftqOPNkrcimAcWuFc0fI5f+pAuIWsbJ1si+yfBbIOIJ?= =?us-ascii?Q?bjUVlZgJ4FnlIMPF7mtDporNoNqG+MIRmv+DCR5Cxr5gSR3N8Biz6OWJPbKB?= =?us-ascii?Q?vuLkdWN97hE7//x96J2imnka5essLdI3KLRjUsTnWu+eTop+7SlqBcSFdRNX?= =?us-ascii?Q?OelkDHE+/rAnPIIxegwkLthlstnmS9ymhLCkRwxrcI5Z+xrjITt18RMjBzrT?= =?us-ascii?Q?KCekkZ+SHVSx/H3Hk3UHFrePKufxySwTVlAvnceBgw177aAztHoP4iavvuFg?= =?us-ascii?Q?KacW9VgKzBnHY/ZIUAmMjsro6a9EL4PB3uTAq2+32MIPpvC/weKXX7MyCCGH?= =?us-ascii?Q?aSjkV72D5gHao8/RLGQuPPH7QCGby+cPzyq6ra7D6ly5kFhm0si3H4ELzYS0?= =?us-ascii?Q?kXThS1nCzqj5qCgB6A08bbUfLMHLw85j8nVdvK5g?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1e04ed02-6603-4359-7a40-08db61b55aa0 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 May 2023 08:59:34.1848 (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: e1OQVVgSSHafxlBC/p8HaNHjTQQzR/96gFVgUxnI2BXni+ljDR7CqAGAQM+p66+fkAv919oLvHu+F78q2tewVQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR04MB7902 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 | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testin= g/selftests/net/mptcp/mptcp_join.sh index 04c15fa6f4a1..75f1c69ae78b 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,6 +3355,7 @@ 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" \ --=20 2.35.3 From nobody Tue May 7 14:23:19 2024 Received: from EUR02-AM0-obe.outbound.protection.outlook.com (mail-am0eur02on2062.outbound.protection.outlook.com [40.107.247.62]) (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 71D291FBA for ; Wed, 31 May 2023 08:59:44 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ZiTniojwvhrhBBXnH+kt5FHZoCRc66mbRSWCkTynQiIymIPbVUh5LpFfxRqcT9MuXsLrTHRTC7siuAQHfCHLVnToUyPWf4hjY34rbKceY6hJiIZDmUh10gFls4U0CW3tZMbWhJHRTXARsGuG2kwxUlBQNR2UwpdbNmOHQ20bi2OCB/5YOoRt5lLD/nN2iB6xnJi/3mhUngHNyAtFdQkNmYiFA9Ft/dx8l1WrAMweMyDl+AY40uG9f9Pfv0xdE5s8pwKZL656GQNjqRUH/L1RIEaFSsAj9qD84OD17p/1EiTsk6q77OIhJB/g+PrvxjBXQtNaicybVQfSFjKubZHePw== 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=kJJ/4yR8RJ0esNj479hHrCkEpVfezBSWk5xUe1z6Kfo=; b=gmbZ6UjH7n939KkNCsz7eX3WSsToGRzL5YZmIdHyKZUySrufuf5q+91LbE0qvH4Q/vDLVXEbZ0Ya/E/qPhHZJZ30aAxiXLypBcwmEyQ7XNaMvU01PqOGm3iatzDrkAlRO26PIx/4SqMMcuL7IHDXw6bLjAIuDyG6wG6kRze8T+4uU8TzH0gNF9S+OizQM3LJcC11lNSrLYb0ZM8T2fj9KrFwM5olTLt4CZpJIVZFzn+SneznSBpfFnlL/DUoPFGdM18TzmeJ5MiHXpmM3TxVLjc23pGGXOam1UlG+NvnEpV1dPfoIWXCw/LJXWyzsvsq0vYsttrdTn2tnuaO+oSBsA== 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=kJJ/4yR8RJ0esNj479hHrCkEpVfezBSWk5xUe1z6Kfo=; b=AebiK0C5hnOlACZyokXa5GynObDbZPqS/1eS7jfBb0uH88DvYjqZNH6eYblGgr8U/89XpE19D06VG4JgY8AYsepeWLnb9WHRqTa9x4TONNOfdbLkep8PNuKvvPcufjAIUFoD+a2TJdqUtPVifqdPMaWE6wSXRiW+albP+6pS/DMw4CCw/183czkK5QZVXWWZf9WmX5HwFt8mjDs1wLzuo0GXEOHJT5SwXVpLq19MtKBjDRCIhkvkMmiT2/6jeaniyohX/X3wvdGS6KsPzYfsdgY5R8qykNPOz/IRzNvgpIIWvBt9aIpDGjYg/YvMu3UFygGrXznFbNrKJySnvhM8eg== 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 PA4PR04MB7902.eurprd04.prod.outlook.com (2603:10a6:102:c0::22) 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 08:59:42 +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 08:59:42 +0000 From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next v15 5/7] selftests: mptcp: check add_addr infos Date: Wed, 31 May 2023 16:58:54 +0800 Message-Id: <84841f847f4568ba725f38b3a0ea40d5c0bf4d36.1685523463.git.geliang.tang@suse.com> X-Mailer: git-send-email 2.35.3 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SI2PR01CA0017.apcprd01.prod.exchangelabs.com (2603:1096:4:191::19) 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_|PA4PR04MB7902:EE_ X-MS-Office365-Filtering-Correlation-Id: 5099658d-b7d9-4218-eed2-08db61b55f5d X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: /uixKs4XF3ZjIM7NoHDB3usLV8mxMxb4J9yU5AIdYgKWbCYJD1rClFQPgLjEZ5lcGWQfVNunqzBdpriU1pn9h7rMHwo5cN3iVJBbK4dMR+70aN/KQmW5aP3Meqd+cPFIPEr5TKepSsqCovLRBkUg0a9RJwOqj2c2t5bZyOeFG+kXl/2qCJM3fhagUZxjFm+uXiH58SGG1WWeAG3Vf7mRM4LY6k0h/2X9Oq1Aa+iOeeA6W+GAHLr3D+EqPgYlnokXTlfZ4nhWRo2xwROpcJpkWHuVsDLtURs17ZFQ3sXstCXH5Zw3Yq2Yzw08roaXHEjy6htmPsT+Y3tPL7Ncyr8m5RjJQGehLkAT5NyiaKc8HePUipVKkjft0SRiNvWkShBZ+c2owvadHolxiGjCRaH6UFQiRy3kkSNV1ldLkpbJnQFV6A6g7NEfugrjSIFIdOEgDheEIL27zVgNr+fUI++5jk7IOaBhNrdW6T5S9i7WTOjN9pqCne7pnIwQKqFYwxM054WdbEgk/Gs4qGmi9hySxqJmZArcfDJl8chqvXPoFjuNCYSc19FQmNW5KZDQTsDD 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)(396003)(346002)(376002)(136003)(366004)(39860400002)(451199021)(107886003)(2616005)(38100700002)(186003)(41300700001)(83380400001)(26005)(6506007)(6486002)(6512007)(6666004)(478600001)(4326008)(6916009)(66476007)(66946007)(316002)(5660300002)(66556008)(8676002)(8936002)(44832011)(2906002)(86362001)(36756003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?KunDQkXPD8OWBDDdktucj7/Q0Cp7TXF8Wh67LHxKtRitOc5LfwipPJnqi904?= =?us-ascii?Q?sgl1DkhHD/ohWYE5tUtPvg5V+zWyC7lJ6wiWfz+ieP9jmTMpimCTH+GHjKeR?= =?us-ascii?Q?+T3pvLykur0LY5TcAbqp+v4k0gElTiBvL8zv0nQCfOcwL3jVfKbBUcKLE3CS?= =?us-ascii?Q?r5rCBn1T6LPAaSuNHh1vvb8T6HX0Zc32Y8YZPIgSVp5igGiMMtUIfEyvKEHY?= =?us-ascii?Q?eR2kodHVKbeBbvGKFFuNTZexfPwVzQnOhz8mMT7mWTsc9c/0/HBHdnPl14Tf?= =?us-ascii?Q?zgEzGy0uKE7rOt6YTbcemDbiWrZnzXtLr0uwlMkcqMXsrcKmVSpTxWMyh5Au?= =?us-ascii?Q?4cHQ+OMoctiC0xlu2EPlQSasqs8Y9GpgwZzz6BkZwdZ2KJ8POWmIyPCpIuki?= =?us-ascii?Q?0pEzXakk366+9Yy9Fb8le1UoUj2dZvmljWikgSIS3Z++EwWBTPyaNmgd0muD?= =?us-ascii?Q?mgZzjv05PIx5LrWv9yl2helg4Jd3YVMWR6ocY27GaBuus+3SMCVYB3oJ9QdS?= =?us-ascii?Q?VI/L94z6lCjZQXRJG3N39VutRleUivpq0/0T5W1GumDyZQm6B182J7B9K4Cw?= =?us-ascii?Q?a+uIKI7LtJ6Sl6Frfat6FfrEfbeIKeP5sVag8M3c4UqDh3tou33a5kWf/Fef?= =?us-ascii?Q?u33W+wNq3Lqj3VMJZHY4hg7EkYWI5K44w/ikFA+Ubq/hLpid1Htftz26I0Hd?= =?us-ascii?Q?Ww/HAoJ+ZDcKQLK5vRNvy9t1jU/RllBLqBslJu3PPYS6SRBWdD9oF9mnLrxE?= =?us-ascii?Q?lRVYRUXsGqrn4JLpflHL6qDZQuhpIwYLXEzZmD/5qoWq8BvLPmu+ahxtYDhz?= =?us-ascii?Q?BFS9BowFfhgTtIlgJGUVQO3fHjvI/4vKXGVPVmHpeGoAV5PM0QgSa1PhP5+T?= =?us-ascii?Q?xOBJGFucoaE18hUV6o3kQ/Y5mhTyLsFKBzlxt6Qh1ol1PIQ1pkDYZNm+gmS4?= =?us-ascii?Q?L+sue4lQOZlvp5rL3AsrvmXoKuTI4zpIRwum7UKGteZ2kRwzRuRWiG4B3W1Z?= =?us-ascii?Q?a1B4VZAvM/Z6neHEDIdswE+7SK4/V+jpTL2Lyw0udzGYZfC3W8RfnMyVMRlr?= =?us-ascii?Q?FFaZSatcVAJWVF2p8szufjyToz2c0vES2IaVZC/whBfYBl0wauzYJwyAdxW1?= =?us-ascii?Q?1fU78a4cK6JaifSbk3WHdK88eV5MIm0DCVrXiuXXP6c32A0AGfpJgiFxqvx1?= =?us-ascii?Q?YkVA63qVLo5IgGat26iZQVsgBW1wrgRp+JutRBsyD8DPM0VqVTmC+mdfGm+P?= =?us-ascii?Q?1hDUBEEeMZeS2gVp57nNQjmWHt7sPtr7IKgbaCaFpCWigMrUXmb6T0JgVLgV?= =?us-ascii?Q?QmODnq0ujYWY3zDbPRSBS5JWqw4km0/P+TWXhl20Y28xcs7s8ONA7Yeyn9uG?= =?us-ascii?Q?PCX6WMf5ONPNiHb5XQEVnRhHsmIBoRFfRWsnIPmOYVU5StA8aizsCqCOoBdE?= =?us-ascii?Q?0xymNB89ldsMUUdmakBWAZ8TwSwLy27J8XXvpfWhowGirvy+nfvD0IomWtda?= =?us-ascii?Q?H4EgLiNGlbCARYtGMfIRNA0XlD6l0NbY3F4HDqHJqy+/VMzqB7N+vGfgdAah?= =?us-ascii?Q?a4k8vE5ubPKQLVJwwP3YFTrx916KC99SItquEeB1?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5099658d-b7d9-4218-eed2-08db61b55f5d X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 May 2023 08:59:42.1393 (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: 5VlZxpyHhiVaQiHw4brOuOd5k0jYXKNVcFejI+8prTsYc5Q8n2fSf0Rq5NQ+mixnRak7mMFmtaqAdCT/Lb+pKA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR04MB7902 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 75f1c69ae78b..60cdc36d280f 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 Tue May 7 14:23:19 2024 Received: from EUR02-AM0-obe.outbound.protection.outlook.com (mail-am0eur02on2063.outbound.protection.outlook.com [40.107.247.63]) (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 3E17F1FBA for ; Wed, 31 May 2023 08:59:53 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Xzz7Ai6XEc8aqiU6FmC4uHz7DqHWPlu85zfcmhe4coQ+mVhvwUGTUPtI73GLg6mBbkC7y331IYd9w8TdXyx0ZCjnlMtIpv5EQaW0V84A7mw5TNvktj2uRiFBkthh7phFjD91/wZOzeJusc5u80P3Ci/wKD6mbjiP55xPqbR9A3F7qxvcGPC6XezT91+3dAPW15kW8FOpXvU7EzTwepJlo+/vvCIL9SHkMHmx7DudEmZzXZTSY86BwI4+iklO0hcbeGLyKvHvegB9VuLCPL+/FU7iqYyf4ouNjkg+yPfKJ3bIkNXXmFHu1le7dC/yC4UTNN8O8+nU0HFuMaYZcmZYtg== 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=Y+HnqeaNIWUHLgDkCLRS60vjUwIHs0u27ARU6CB9XXQ=; b=QWBpkO4Qaf3TuRdCFulOkI4ssfE6FYKV10+lO0o/nAOJR0dnvDWucFPN6CzpT/CM+gDzNgrWtjjOc4g62OIFceY5L+h4odN6Kyp00Ah0MMwg6bs7OZehlH751LrAwZkxd61zZuZThfR4nxKPqA/GRoB3OpkgkUg9Pg5HWtjNOcxcT2GUrhQrjVK/KbBYjg6UD4mqnPTsoXYC0jloOtK/oi+zZCYrqM9URJDvMq2+Pz9F6Nfhuso1FNhltn2Fko55uoJdnArFZP1uCJoK4ITZygnggILWs/1GQH7zKCwGVcuAaCOsZRFDsiIHN+hesGNJOn9AcMFy/yymnf/lS48fwQ== 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=Y+HnqeaNIWUHLgDkCLRS60vjUwIHs0u27ARU6CB9XXQ=; b=ruvR2YQ4wSecdQtP7BmmbyW/V/0HrkxiiUvkJKfOMVBqmtKS4vC6twktBqHSaRAtHefZNGyq9Blp+783KB6CZHNoGDppanffiq5LXyYv1AJF81rR+VvjZHn50aCaTnAMQmYNlH6euNrry82ccbpjdYnwbVUQnMMCdADnh7SqLXdnmlyCbNN8T0xlGd5ayILv03LgxdmsV/dkwixwgog60UCNWuB36pNLtbZ24uMAdJQU5Ef3E0NC2hItTaqGlrTu+ypl6q6KVXBkHXESzCepAGXdXJgtTW5TEaxI22L5aEDN4po15tqxO7KlyYHXtPc00f/dZPXFixixp05t8zjWow== 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 PA4PR04MB7902.eurprd04.prod.outlook.com (2603:10a6:102:c0::22) 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 08:59:50 +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 08:59:50 +0000 From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next v15 6/7] selftests: mptcp: pass fastclose to sflags Date: Wed, 31 May 2023 16:58:55 +0800 Message-Id: X-Mailer: git-send-email 2.35.3 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SI2PR01CA0003.apcprd01.prod.exchangelabs.com (2603:1096:4:191::16) 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_|PA4PR04MB7902:EE_ X-MS-Office365-Filtering-Correlation-Id: 823e16bb-eee1-4a26-c1b2-08db61b5645b X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: GfpvtQsyyCYMvylhNkULZFW25GUMEM/8Q7C6GYtPEHRGxL/1aA5AMGdxtdKYfAbidybkdah88DQEqa7PEIVD2/J2BWg+XZavwwW+Kv5nZerZs+l/NA4MCEfx0Zl/1lzYKTPsk+kWF8Kh+BB1vLDLxUybgGzO/IT9UDHbs9x++cAhstB+SZEuIXg/3053+5JVb3jWfMxwvSebRIQrqECzgLIKXHW3tJm4ObLRoOirWFJDj+ByuzVK0SA50Utmrgcp5mqWD6mPSk55twHJYvp5o4gcEY4fdl+MEOYRKtqEnlsKMK2In42gNmbdaizA7ctUEJFMN1d0NDFkMVchztxoEUwP8Vurikoehi3wUgqv7ImrliKfixfArPqqy4HIUNQQKm8iUTFWyAPcYBe0S+kTTOOt00uDZU4m3VOB0JgDqztCOk/ZIi8hFyJUQEWWZbT1CkkJ22VU9TNbof8/Wce443zYRCP3V8mBaTO/D+Fz5iLst92lTAJRjeME5mV0FJ66gsPdzTZJJRppLu6ZK/P6qmvLDoXeMEoIe6vfDDX8dNKHPN5pKfWpqKxi18IEQ9Hx 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)(396003)(346002)(376002)(136003)(366004)(39860400002)(451199021)(107886003)(2616005)(38100700002)(186003)(41300700001)(83380400001)(26005)(6506007)(6486002)(6512007)(478600001)(4326008)(6916009)(66476007)(66946007)(316002)(5660300002)(66556008)(8676002)(8936002)(44832011)(2906002)(86362001)(36756003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?MXKHuUxBoNldPGV7cN84T39w5BNaymx2qP5XlaV2pC0frqVe/PMfc01mqgpp?= =?us-ascii?Q?9OVogssNNVgKv0qb7Tg46VUF8fjGgGIazOjbWcDF5gChyIbrFNLAfeMvD+Hy?= =?us-ascii?Q?6Yl3Nxx1eMsTiLlgktCi7tbSaRqOFKcGxXFt3R6HhTzZ2xZrOQaQW97bORde?= =?us-ascii?Q?b87m5mzH2Tbqr2Uj7lzC+pSCAhf8J7WaiWgwFvl68PJm3i9C9hgk+YnBjkIP?= =?us-ascii?Q?Lau4sUGIUOkF+/oSOLnIIFhBYOIuHj7gZf3yA+qvRVxdYvHHAuXGLlk5OeG5?= =?us-ascii?Q?dwnrCFfVJ9e0UvVs47IUpOIXL8WhLSl70EfL1btF5aZ0eFMa2KHGC2XpciIO?= =?us-ascii?Q?CGCmBgycxK0VfrkbDxKqrotGQWkpbWF+Sp61jv1mEXCfI9nbJ+nd27606LkJ?= =?us-ascii?Q?xm1yHGCl6HuwSonDetRQRCv0ZBeorOGmq7x1VdF9Qg+hGzHDDfA/QrR5dGCI?= =?us-ascii?Q?SZI/DegZBEra44GErOOub9EFbng9OzXTbvC++JOduO6TMf3DETHdiUPE93Ff?= =?us-ascii?Q?bDQfEo1qD0ObE/rw88hwGC+Qi9ArSYqlsRQs+dKCo6cLmPekL0U5KE1Ns7vQ?= =?us-ascii?Q?pbD1hf8y6UPY0YnFvS+ozmiP6MJoQ0UQd14aRz+hUvjaw5WK2URa57Q94GPN?= =?us-ascii?Q?wmC3AbJbWBSAFeyrOOrVge0YWPvtjW5zILzQ1vI2CN+bdohv8Ei0ADzBNBBO?= =?us-ascii?Q?FA2Iv8YU6hmcYvO7lhuxv1cLtzfn3n6GlquTlh0ZJaYa0zq+YyzVJsLi0SBB?= =?us-ascii?Q?C2MBVf27YeRWoxQmXAUrk+Kxy5kRQKRcg5vsQW/0u7oZKZFDHoN/lUVeBZp2?= =?us-ascii?Q?NpMtoE+nr/BtTrOEPd7W89bgtQuuQgN4KYEMcyRkUkArYJMqOCWxLU4UZiMH?= =?us-ascii?Q?u3vRClly6Nxrg+QR5ni21WXYLSxxl6f0MUYxeiH67Y1aXW5lVMQVddCrIOuQ?= =?us-ascii?Q?re5+xZbvz2HlixyiMCF+egtLkjK+EwRZLe13jnUXNdnSEUxEIi+g5AiOV09k?= =?us-ascii?Q?No5zWnoZuNetQo7HXTxazGY0biREODtUna0i6riipo4jsA4riyxBoGLKShtM?= =?us-ascii?Q?T9isKBNCe3Tm5UgD5/OS/nd3qz+pFWrnMI9YMImGo+Hy0zsobcse6AxC0asY?= =?us-ascii?Q?Fr38C50lvaHa65tkWaYGeSDhNTRhOKN4+yJFETgsdd/eU0jUIkUHfWgQSP86?= =?us-ascii?Q?mEncyEnL6OO4sG3+t0MUs3GVV8cT1n7+ymoSejhJENxVkWKMzkFPbCOvWR+8?= =?us-ascii?Q?qh3/3+KZvPHkq1+wVfNPeVF9So7JZnPJ/wp4DetCl0jlvhOabmTmCBOLjrHW?= =?us-ascii?Q?KEPO1dIPp1RNiFeA5hWH3Ed8AjiRebCkgusn7rug6ea7eRrqaxynV271T+mj?= =?us-ascii?Q?Q+EUSo0+XlnxbThrXa8UNxy1KnfqYuzYhHO/h0UnwKL8KuQQnqWinK7m4EAe?= =?us-ascii?Q?tLu+w4nJBgix1mjTqgoIyXmr4wh8vgXh15b3+PEwj9uYkkuv0LoKE1QhpXt0?= =?us-ascii?Q?+8bf4NdZ503EMJr4PETjCchPN1EtlgDDY/0PlB4RhbR/5BfbuUnY2viSGnYb?= =?us-ascii?Q?rg5gFvxgpON0jvMjhgm4PkBaY3nPl4jD1cs5ki1h?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 823e16bb-eee1-4a26-c1b2-08db61b5645b X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 May 2023 08:59:50.4993 (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: B9tiSjsH7AmPhCF+LDPYesYDckRM38tsF0maCqTC5gsU/Yo4jPNgsxPc66jWPRHyXZsTiBafYiq4LMxd+S98HA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR04MB7902 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 60cdc36d280f..e91ce69e983b 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 Tue May 7 14:23:19 2024 Received: from EUR02-AM0-obe.outbound.protection.outlook.com (mail-am0eur02on2051.outbound.protection.outlook.com [40.107.247.51]) (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 3F7741FBA for ; Wed, 31 May 2023 09:00:01 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ID8caxhDBMvQqnpyPJZycf5NDW5dkMd/6wYwpiP2JlWZ4e1FENncEPibanyj9IC0j/HCJRZiHsS1CnLAEN046z9C196Mw1QxKyJj3kzayMKLwIrZMY8z51Ejp2zdJ+r6pqn0mWkdV1jZDGkLUm2E20MMQ64JqT9sBKG8hAUOPgMZ4RhB8TyqDP/26SdTbs1jegEskuGIJ8EPGNfV7xF7qVZZGkVGG+swT/YWXjIymjL0gYOdeCHn0GDsxFw2ITIBfxpgDafnNwKp5+Pqey1AfGkdBrV2S4J57sKzk3CKtqLCLduOhMbzTGIxvK+wTRhydYu4otPAfRgP377G2xOZ2w== 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=ApJUx88M541wSffoRbRoFycGTs+RLwnVofZvQMIx96g=; b=oS9nlmkJcx3uaFd1xi0jl3ERPxFbOZLKWNSw84IRgSptk/EoMLn8W5B6ognnCFWoiymmRPEB3o/omQSwRzgnPA/qjBTHCbWrETzp2uZRgD0Wc3iluCqlNqN06oAmMBcxEYe3uoRdmfTd/BiDEki2mHuBE9J6EXJpIiZ8ZDdIoB0OXQJ6YAcTRR2CHttuGdFje2motQkEIWsQRoOzfHLxBcitVPVNk7SHQB7N11ICxKBKZnYT6KCJsw33IhiYN9SFIyO9N5vbGqL4y7lqp+SW/1OzrfEaK8iuU+8lo6tBnQtpggGAN/EjacvHGJD3eVXprcslRbuFHI1SpNRuSM8BNg== 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=ApJUx88M541wSffoRbRoFycGTs+RLwnVofZvQMIx96g=; b=yZJpirqnEqMbSuhaFCpbN+Lu4U3CRUdM+DkaTGRNtV2gsuxQ/n6qMb3GzRhvYzcm9kkaIRiEYVWb+GorwM3b9QVk8we09zr6IRZjYS8BhfcB7gov0Cc5m6ewPindX3KNJE+sB6YI0d26UJGQ33xjZ1ScEg2xTq0QL+aK2lYPbPt6RZ/sJR3U6XW51ErJz9OlrWGR9XD/WCxJWf8FoI7vD9jycZdOSt1Nkzt+/Zx/DL9Hh941mqtDyr2j17rQvN8anKZhyvYdl59sG0Zny1g+Brlmuk4ugTOZ4+iVcMKphLNWL71pc+QZR++zV8+P4HfR63JDcjvrjwl7AT8RYXmuJA== 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 PA4PR04MB7902.eurprd04.prod.outlook.com (2603:10a6:102:c0::22) 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 08:59:57 +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 08:59:57 +0000 From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next v15 7/7] selftests: mptcp: set endpoint out of transfer Date: Wed, 31 May 2023 16:58:56 +0800 Message-Id: <46e0ef22b358efde64e3783c4cce79dbcc45f417.1685523463.git.geliang.tang@suse.com> X-Mailer: git-send-email 2.35.3 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SI2PR01CA0001.apcprd01.prod.exchangelabs.com (2603:1096:4:191::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_|PA4PR04MB7902:EE_ X-MS-Office365-Filtering-Correlation-Id: 4073bda4-c9be-4cf8-8c41-08db61b568ab X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 42C212FLL0FhpeXX6cFYVucO/KNcyWBLeYT8wIaCBKNVem59BpWvDPqe9VsmQEigGtiU+pN+GuvyPFIWxQ45feQWFqz9YCGqlo8kyfp/tp4qjdCVuMXXtqJdkXbzjfaz0ijhOkqeP7QOYB1SDJ8OrQe11vkE3axVV8xBkf/VmeUFZP5rWLZajssL3GmlsHuz0pUOF1ILzlhc8MMFeSvOhLPBdb0s7s0rbyVAQGd7X+o9EG6+ZdBqbnGh3ffU0frJF3+KfXnWLY12dMw6AdlvhJnryT1gUtYHidTDqqAtum3H3GVpGYrvo/yqY/+z9r6ga4WqzW8SdzX3+qZyWkXBv9uWB2laSG/ZvPpFu29VvJUcWk4kK8ivqX6Ht1cn5LQZ7pg7Ld5mCjHVwjZzpbV6qgOtbjlQ9qbkLlfuUEInXLOgQL4ptCxRGGym6r6/FSyuoG4XYuSBvZwbTKErxuxU12/nnSf6Zspi/A5L7+W/oOrJpOFtgdb8sxi4eq0kZI20U35tk+lcuRnOpPsBpJ36FZg8L7y0eXQ69quvyEFqTj4+2/U7vwXYrJWrvUPFWPf/ 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)(396003)(346002)(376002)(136003)(366004)(39860400002)(451199021)(107886003)(2616005)(38100700002)(186003)(41300700001)(83380400001)(26005)(6506007)(6486002)(6512007)(478600001)(4326008)(6916009)(66476007)(66946007)(316002)(5660300002)(66556008)(8676002)(8936002)(44832011)(30864003)(2906002)(86362001)(36756003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?AfXfOalF1wj7g3N1BGgO1QfeHYZ1vPUFMHLn62W23iAhlSXMWWYJESaJw6DQ?= =?us-ascii?Q?IBcxfelF3ooiW/gPvCRBkoF8U5DrS4++ocj++ouUBrPiTQMb1JydQOS0qcbq?= =?us-ascii?Q?GxYyIGENKKYbGR0oA5d3HLO6x6mN1oM9mrWUnfOh2wnHIzK86hVaKpc2URyD?= =?us-ascii?Q?+RClQzPfdw6qFdnPGOoN11X/L3ZLiShRuRMuGaE1kvDiTEO171KU/WNW4t4k?= =?us-ascii?Q?o7pGm5ltLue307z+Ar28XjwOIDWb+xcMwoKjn2Wy/64A+EiwoAQkw8qaUlfV?= =?us-ascii?Q?pur4Fh7vPWKHp245+VmSb7vcCbvXc7M/ye9PMsFFb3iZlalxEcHe81PYxqJM?= =?us-ascii?Q?fYE6P8iLOHDjdox4aGl4ZbRW/8pCvQz0hMA0JNd+MbgyjtgNG6BEKQACT1/I?= =?us-ascii?Q?5LqLFSBV7Sf910j1ui59Um0baJhLytXXAyUPql8nznNXb0w4dMad8Z1B5h8O?= =?us-ascii?Q?BgqQEgw29OyQTDFq4SNdJDg8jF6bDWbEwGaK7Tmotw7IqUJlfyOV3os+EjxH?= =?us-ascii?Q?AG1NdC8NGYuptWlcTlNQaMO1rGTsmppgDqdabZCdib+K+drb0C+96PiWItz1?= =?us-ascii?Q?7U0teJ/biiXbzmF/YBixqDJnDg22YLCNo9RsjzjHuQnn+G0/PHE5hHYJluas?= =?us-ascii?Q?LSKNjmtnQnXpRpYeBtZZcfqkd0rnsWhNoBEPLXNZP2lr4BLjO9r2A2kEaFNZ?= =?us-ascii?Q?wNtvXsez0btHtY3S2OW4BoggPT9RH/kyNbzUDq/BgxridYMQHkBBPkj9/bTI?= =?us-ascii?Q?l9E6HJOHnW42887c0hmUmxVwtzTMvAz0a53Q4BKASZFpbtqdT0pCe6X/OmR4?= =?us-ascii?Q?xlfKhcCu5XhzJ9lSQhbgi5a0DEaRo/K2lUA88Gl9HgT9vxmLUlQoVKjn3bUh?= =?us-ascii?Q?/9CX0OV2zwtUYC5dmPjfjaM8ik1ed8BHkT/QbnSJ9+R3EiU8WXwYvs7oR3Fd?= =?us-ascii?Q?kysG9ZP+NNDIa+wgjGIw9AHF5Cqh5Sb8hGt0khMAl731Nf+HW+9Sigt0kXyW?= =?us-ascii?Q?a7Nk7mW0z5FSFIF6SzCqv9aUHRBSNmtb0KxMcGO/c2OxosPPEjE8cjVjoQ3K?= =?us-ascii?Q?apRiDd8UeF0S7+U8bZndVqgZjzzYdGfa/QM1WFo5E7x8Ml32Eg7DQzMiHfP6?= =?us-ascii?Q?Auya0DJ0IuibU1TK+xPfRWqfdEZ8ZS9rgyQMSZFSQfLktqcq5tKASH1D+5xa?= =?us-ascii?Q?a28Uhm5M5VnMoLNA2wN0IA0tjNNFC0vxLmgBQka8gTYq0jOE0Y7ddTdvNtMa?= =?us-ascii?Q?VBSfvcPjCKgnlO/iQ9YDxkWf/BxCQGP/IgYYNxdLDkX39zijE0k6D/EAFZox?= =?us-ascii?Q?jFEQx/gCNWMipokaiQVgn2Ox2bYPVCEfJSMshlV6FUkw5sC3O3Mp2Sfs9EG1?= =?us-ascii?Q?ZIFl7r9VPRS+MallAOPc1oufe0vmLgZAlWxelWLvfgDtyvVBScLR+kAIDl2c?= =?us-ascii?Q?oQEld1VJLLafHwhb7unyte5efoteNGIs+pQtD1dr0gF5EmDg9aarUh2Uigz7?= =?us-ascii?Q?HM/i+4DtoijYNJ0pW3Sz3SxHOt6sw4ipcASaweOvz7shnW05twBJKH4wn+gw?= =?us-ascii?Q?+R07umJFWSOOXvM85PdYHhAcVlZE2QUEpe1gjUi1?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4073bda4-c9be-4cf8-8c41-08db61b568ab X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 May 2023 08:59:57.7465 (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: lSjlMybRqoOOtaQ3uNNbd9x0G9QLbJ7XwtSEp91ZQtYo1FgGcn6aRYJhb902u4DgZANv/afXTpeTkxtc3Ju8dA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR04MB7902 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 e91ce69e983b..7a14d9e18428 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 speed_10 "" 1 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 "" 1 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 speed_10 nobackup 1 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 speed_10 nobackup,nofullmesh 1 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" \ @@ -3379,7 +3405,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