From nobody Fri Apr 26 22:41:06 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:a02:b119:0:0:0:0:0 with SMTP id r25csp345857jah; Thu, 13 Jan 2022 07:09:45 -0800 (PST) X-Google-Smtp-Source: ABdhPJxyWi8VeKf2qWwhil7IPA9CZD2bFc2KAmbrfxT1kLnbGYZyC63xsuDR+Gi21DtS7cRdb5z3 X-Received: by 2002:a37:bb07:: with SMTP id l7mr3408800qkf.244.1642086585111; Thu, 13 Jan 2022 07:09:45 -0800 (PST) Return-Path: Received: from ewr.edge.kernel.org (ewr.edge.kernel.org. [2604:1380:1:3600::1]) by mx.google.com with ESMTPS id z21si1235848qtw.777.2022.01.13.07.09.45 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 13 Jan 2022 07:09:45 -0800 (PST) Received-SPF: pass (google.com: domain of mptcp+bounces-3122-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:1:3600::1 as permitted sender) client-ip=2604:1380:1:3600::1; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.com header.s=mimecast20200619 header.b=Wv8xSzvj; arc=fail (body hash mismatch); spf=pass (google.com: domain of mptcp+bounces-3122-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:1:3600::1 as permitted sender) smtp.mailfrom="mptcp+bounces-3122-wpasupplicant.patchew=gmail.com@lists.linux.dev"; dmarc=pass (p=QUARANTINE sp=NONE dis=NONE) header.from=suse.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ewr.edge.kernel.org (Postfix) with ESMTPS id AD7631C0C62 for ; Thu, 13 Jan 2022 15:09:44 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 1E97A2C9C; Thu, 13 Jan 2022 15:09:43 +0000 (UTC) X-Original-To: mptcp@lists.linux.dev Received: from de-smtp-delivery-102.mimecast.com (de-smtp-delivery-102.mimecast.com [194.104.111.102]) (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 DBA292C80 for ; Thu, 13 Jan 2022 15:09:39 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1642086578; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=BgvlraIKmWqAi2m1/NTdwlPcdMv4RW2YObzv6i873Sw=; b=Wv8xSzvjPW19hPnbMqOaD2tB5UiUBOF4GtmM75jELwHG2R4NQyUlnj8bTXVTHN9snoJ0/R c+Gmhn26SwfrTEmHSl02pJZXwatw+j6YnTWTkqzwLaq+m2Z0yyKG0dqMsGaCvt5k37XAeY sRsiwuuJhGbokd4hxGdZt4p2CXpF4eM= Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05lp2111.outbound.protection.outlook.com [104.47.18.111]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-8-YxlWPYJ-O6On0VL-f0SRqA-1; Thu, 13 Jan 2022 16:09:37 +0100 X-MC-Unique: YxlWPYJ-O6On0VL-f0SRqA-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=DIFnguZJ2jjOXNCk/54y/xWL3iOXXPQ55Q+Af3Ib2/yfdBLy2Eqw0OJ+O+09tdjomlT9g/w/AAgQaLnQ7wFUhdul//rbZAA1tq9hnXm9SqepCfGUs3oY6NGMwOIn8jdCzYuqvBJhGqGz1WqqJW5QzdaLOMn9tRfCQAyK4+V2gKuc68qo0nFtcx/CCxUgGUINKixQui9Yo8zdzCyNBvbPENCKRTnsvWX6GCIU9w3OwHQaqG7Z3ySfjd4CRbGsaAcjycPUNrP3pr+qGVSnJP4NAkuywFM71iuHjOxMsc61KgdZ8WKCNbsaRBWXUk/f7+aeCJMA5fQlM7Xftm0x0NOR8w== 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=P67aeZ6Jr+M/IdCc66O0UfHnzz2MG+ug7IwMb4nBzY8=; b=DR6dIeyG2imWWzydHmhRBIW4l14dL6oL1q6DXk2rHxJCdmcCN20xJWwjJDggHugYFxYO6BKB755mXtWjDpFbLs6stDzfQHDsG3OrK2Utypzila47vWWIC0P7zI1fCDcsnQI8Pw2kwtFhoq5wUTEizqbo1VycgKIxgWm2WvAc5Yeo7DWhsHWWKrysrCJQfUIqS2u8ZsUGy5vOaag6gsedVs2CKIS9kUjYu70R4O6bG3bvHIhBvE94yc/3AWPndDuDqWKOw1qvkqtOA1s0x9kVnfuls5sFwfNTLSwlt6AwYhsQpW1vCQBkXx/WECTSjbUL8DHsz38xKcs6t4ycUEeAVw== 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 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 HE1PR0401MB2489.eurprd04.prod.outlook.com (2603:10a6:3:86::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4867.9; Thu, 13 Jan 2022 15:09:33 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::b5bf:e1b5:42fd:4dba]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::b5bf:e1b5:42fd:4dba%5]) with mapi id 15.20.4867.011; Thu, 13 Jan 2022 15:09:33 +0000 From: Geliang Tang To: mptcp@lists.linux.dev CC: Geliang Tang Subject: [PATCH mptcp-next v5 1/5] selftests: mptcp: add ip mptcp wrappers Date: Thu, 13 Jan 2022 23:08:35 +0800 Message-ID: X-Mailer: git-send-email 2.31.1 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: HK2PR02CA0197.apcprd02.prod.outlook.com (2603:1096:201:21::33) 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-Office365-Filtering-Correlation-Id: cd233ebf-9fca-4e6a-0e1e-08d9d6a6b48a X-MS-TrafficTypeDiagnostic: HE1PR0401MB2489:EE_ X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:1443; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 14DZ3iuFB3OYQALXIudh6wUeFZYYVJqravNRRC4u/jLz/J6/lCTrFjcgC2aPEWpqxv/5Y2ceYsNGq2pK3UhNQPKrZ+KieHx1NpGzrErSYETtdGeZlnJXrSPqot2NJgdvcY6zGBohAwChQxqXIp/tE0JIcK1Dm08QqfJpUOkJ9K79U7T/uVaACCOwVfgIVBMdSGfx4Qkh+OLrdCK0G2oj6N4mtfQUbC84EdSfFoaNyy0MVvpPNzdf4y/nS0kY1y9WxaE1PnqQznRfHC8bUgTAP2Ci2J3r/Q3RsebxtLil6tJn7xW2jiMLhnQl0Ast/cRwggqggCuRq06KaIbOYSnk790RY/ez32NQY118TRzl8/7Oep/JkOXOvq03cbxg6De7OqHH2JltV3+cs9WEF0m///KVx0rR4zsVKKsRW1T/rWaMzqQjfS1C8npnAdkh+mFU8u0H2JaZ2jJKeZQM5vCyqPn4rCoe2ccqWAm4S9BFKXlN+2TLO085Zmn++obE5PRfTcK+t9bWIP7HDsdSb6jjsXJ7iCL/E0pYz2sb5kqj362BbNVKerZXWFNob0/lMgU8W+cvJOpSrSAuM2OjaWyg8v34df5qydi1yLFi+SSLNaPCXb5PaBg+c+CvxrjAy6IaMyxxCNFLqOzy2a3oMcc9vw== 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:(366004)(6506007)(8936002)(2906002)(2616005)(86362001)(44832011)(186003)(4326008)(36756003)(66946007)(316002)(83380400001)(6916009)(66556008)(508600001)(30864003)(5660300002)(8676002)(107886003)(6512007)(38100700002)(66476007)(6486002)(559001)(579004);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?0qmfUhfn62CvDH9xaTBNbzY0sUg2AwUIdpa6YQE82vCkrd/qTefL7Ljm/K9M?= =?us-ascii?Q?L/u71UVcyKNEE5VBsbTKzZD1t7mJdOmERFDtKo0URyyudXFFvp+dalcvbuR3?= =?us-ascii?Q?rCtPD2QxemRVZsWwqYRPsm6BNSc5+sxeSrCr5rjRw3Iy7lyTIpBbHLpRSWLq?= =?us-ascii?Q?7morPD/8M83CDg/GUG885IPYBXvELrPenPiJPdWitHhpWZL76eEgSqXxrGQ8?= =?us-ascii?Q?+DG+GK+nET+nsMle0/FZ7h2NMihsD8CeHct6ZbtqdZmxKJXMvazILKL7JBst?= =?us-ascii?Q?r27s/mFxinCwE3tp+dIBggEVmDrADwA0+pY9fzEp3i5uBUMDAtO5iRuWxrfE?= =?us-ascii?Q?9M6QmVV2qGEFGdvtFTakLkpfEeP9birWYV0lrFSqZ82erUFolOuPQ/DXbR66?= =?us-ascii?Q?0m0dlydtmm/cuNWly6BTDyklixZ9EXRdVbJvG+31azWWaG6LTi7pbBF5JD7L?= =?us-ascii?Q?JGuQcDZn+coaixE9OoXF5JFgw8B5b9DzfnE+243e0leAZgQNFGT16rxeWxck?= =?us-ascii?Q?WjUjV/himBtLI62kkAJEHEMcfzqW+XdS6cr8fUm1xCBaOmbD2ed5rVb78Hgq?= =?us-ascii?Q?6uIbMnCWYi277kGmcUfnAPDFVjY/7PCtbuU+IasZ55suF99GGw7evR83k9tS?= =?us-ascii?Q?k4xyi59fjImC2iAhbrObD57OqHit7sNdDhvyeKQJHtVh8FNqyFM/fyPP46tr?= =?us-ascii?Q?HJCvbbSL14MGTc7fYeIUkgynYzPHCG/Bk05OHbeHv5f6/WtUW1Od2CWZqPGh?= =?us-ascii?Q?VWtaxKRR/DXCccLWekJb5hM7UK/wbRhS62ra5pwu8HrSYOuPjS8pad6YO36m?= =?us-ascii?Q?LWSJTX0UTbBNlIgvpKyhKMaIksEJgDBBOr0cquBV8zxDvbsi3N+0tsvskTbr?= =?us-ascii?Q?Irb6ttF6Zrw6PIGbO+EfaPsjMkpoqrbWn7nJYGFsPlsGNVUW46GIa0g+qE95?= =?us-ascii?Q?9EuJBLBaLOsmde5Fi8av8EZoM9hwAPkBQSXbGOzGzOuxJTKkK52tHZl2dIJJ?= =?us-ascii?Q?LP8mEuGqP7KOw5dfRLm5Poeyrom4piQwb1ZoiGIjTMSgf55SoLjKzlA51F43?= =?us-ascii?Q?kTGEY/nxaDx5M413ptoMHUNGB/f/Er2SrEVVIKC+1e4I3GqLzrIkZhXvhco2?= =?us-ascii?Q?n3OSGpdEYerbfm2d6e7bzqcF8hEI5gvz/De/JskIS2hS/3FEIVRvk66/AV/Z?= =?us-ascii?Q?1CYDWqbLD+2OLYR8h5vaqKjy5PXWyh8WiEWwlfQ51Ok1v3Ybvvmbcz0AFWIZ?= =?us-ascii?Q?w5A3pfPpwowQq51C29PShHXANd9Uqzk7mwyt4H5Je8tJ8ZZsQ1BAjHs9dBCL?= =?us-ascii?Q?RQ5kf4XtNcRMnw5tw1Ubfzl8TYxEfWWsijecVRm0f9Ln7aHKnpEjNUKcfIvB?= =?us-ascii?Q?re/5/AaY3JrWPyK9dzC9uzsqAEJeKCMp1rAqwZImG4HcPEu/6J+TZmW2zUV4?= =?us-ascii?Q?bhckllvCX214HoP+b7Ao6vQTch6M4St8OrT00Q/GizbCYJpALjK0Rd4vIIRb?= =?us-ascii?Q?koBv8Fxtju6v4ssKoTK16rd22sD+2ZI3k74fc7fdtGrr6S1i3XvMWNdpe7Zu?= =?us-ascii?Q?sRSR9IIPxUi4WB09rC7YN09tOFX6fBeigRV7cqo1aD+bvfFAMbXS/J7brwJ3?= =?us-ascii?Q?a9ciGqsVho+gV/gA+LHZtfFu8kXMeWhGyVaDcNr2xwDQ6k1BvXqsaprykdUc?= =?us-ascii?Q?2Jx74XrJr+cSrvkkCWS5S+NL01k=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: cd233ebf-9fca-4e6a-0e1e-08d9d6a6b48a X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Jan 2022 15:09:33.5403 (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: 13M8ROCO2Tkp1uB6fz98F/S39UT3bdEal3xEEou4nnds5wxIfI9ou3GN1dSF/ZpDjYRJJ1f2oI/FtjMnbp0jDA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1PR0401MB2489 Content-Type: text/plain; charset="utf-8" This patch added four basic 'ip mptcp' wrappers: pm_nl_set_limits() pm_nl_add_endpoint() pm_nl_del_endpoint() pm_nl_flush_endpoint(). Wraped the PM netlink commands 'ip mptcp' and 'pm_nl_ctl' in them, and used a new argument 'ip_mptcp' to choose which one to use for setting the PM limits, adding or deleting the PM endpoint. Used the wrappers in all the selftests in mptcp_join.sh instead of using the pm_nl_ctl commands directly. Signed-off-by: Geliang Tang --- .../testing/selftests/net/mptcp/mptcp_join.sh | 761 ++++++++++-------- 1 file changed, 419 insertions(+), 342 deletions(-) diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testin= g/selftests/net/mptcp/mptcp_join.sh index 39dffde68ae2..9954e0106c1a 100755 --- a/tools/testing/selftests/net/mptcp/mptcp_join.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh @@ -15,6 +15,7 @@ timeout_test=3D$((timeout_poll * 2 + 1)) mptcp_connect=3D"" capture=3D0 checksum=3D0 +ip_mptcp=3D0 do_all_tests=3D1 =20 TEST_COUNT=3D0 @@ -288,6 +289,82 @@ wait_rm_addr() done } =20 +pm_nl_set_limits() +{ + local ns=3D$1 + local nr_addrs=3D$2 + local nr_subflows=3D$3 + + if [ $ip_mptcp -eq 1 ]; then + ip -n $ns mptcp limits set add_addr_accepted $nr_addrs subflows $nr_subf= lows + else + ip netns exec $ns ./pm_nl_ctl limits $nr_addrs $nr_subflows + fi +} + +pm_nl_add_endpoint() +{ + local ns=3D$1 + local addr=3D$2 + local flags + local port + local dev + local id + local nr=3D2 + + for p in $@ + do + if [ $p =3D "flags" ]; then + eval _flags=3D\$"$nr" + [ ! -z $_flags ]; flags=3D"flags $_flags" + fi + if [ $p =3D "dev" ]; then + eval _dev=3D\$"$nr" + [ ! -z $_dev ]; dev=3D"dev $_dev" + fi + if [ $p =3D "id" ]; then + eval _id=3D\$"$nr" + [ ! -z $_id ]; id=3D"id $_id" + fi + if [ $p =3D "port" ]; then + eval _port=3D\$"$nr" + [ ! -z $_port ]; port=3D"port $_port" + fi + + let nr+=3D1 + done + + if [ $ip_mptcp -eq 1 ]; then + ip -n $ns mptcp endpoint add $addr ${_flags/,/ } $dev $id $port + else + ip netns exec $ns ./pm_nl_ctl add $addr $flags $dev $id $port + fi +} + +pm_nl_del_endpoint() +{ + local ns=3D$1 + local id=3D$2 + local addr=3D$3 + + if [ $ip_mptcp -eq 1 ]; then + ip -n $ns mptcp endpoint delete id $id $addr + else + ip netns exec $ns ./pm_nl_ctl del $id $addr + fi +} + +pm_nl_flush_endpoint() +{ + local ns=3D$1 + + if [ $ip_mptcp -eq 1 ]; then + ip -n $ns mptcp endpoint flush + else + ip netns exec $ns ./pm_nl_ctl flush + fi +} + do_transfer() { listener_ns=3D"$1" @@ -388,7 +465,7 @@ do_transfer() else addr=3D"10.0.$counter.1" fi - ip netns exec $ns1 ./pm_nl_ctl add $addr flags signal + pm_nl_add_endpoint $ns1 $addr flags signal let counter+=3D1 let add_nr_ns1-=3D1 done @@ -403,16 +480,16 @@ do_transfer() do id=3D${dump[$pos]} rm_addr=3D$(rm_addr_count ${connector_ns}) - ip netns exec ${listener_ns} ./pm_nl_ctl del $id + pm_nl_del_endpoint ${listener_ns} $id wait_rm_addr ${connector_ns} ${rm_addr} let counter+=3D1 let pos+=3D5 done fi elif [ $rm_nr_ns1 -eq 8 ]; then - ip netns exec ${listener_ns} ./pm_nl_ctl flush + pm_nl_flush_endpoint ${listener_ns} elif [ $rm_nr_ns1 -eq 9 ]; then - ip netns exec ${listener_ns} ./pm_nl_ctl del 0 ${connect_addr} + pm_nl_del_endpoint ${listener_ns} 0 ${connect_addr} fi fi =20 @@ -436,7 +513,7 @@ do_transfer() else addr=3D"10.0.$counter.2" fi - ip netns exec $ns2 ./pm_nl_ctl add $addr flags $flags + pm_nl_add_endpoint $ns2 $addr flags $flags let counter+=3D1 let add_nr_ns2-=3D1 done @@ -452,14 +529,14 @@ do_transfer() # rm_addr are serialized, allow the previous one to complete id=3D${dump[$pos]} rm_addr=3D$(rm_addr_count ${listener_ns}) - ip netns exec ${connector_ns} ./pm_nl_ctl del $id + pm_nl_del_endpoint ${connector_ns} $id wait_rm_addr ${listener_ns} ${rm_addr} let counter+=3D1 let pos+=3D5 done fi elif [ $rm_nr_ns2 -eq 8 ]; then - ip netns exec ${connector_ns} ./pm_nl_ctl flush + pm_nl_flush_endpoint ${connector_ns} elif [ $rm_nr_ns2 -eq 9 ]; then local addr if is_v6 "${connect_addr}"; then @@ -467,7 +544,7 @@ do_transfer() else addr=3D"10.0.1.2" fi - ip netns exec ${connector_ns} ./pm_nl_ctl del 0 $addr + pm_nl_del_endpoint ${connector_ns} 0 $addr fi fi =20 @@ -1036,51 +1113,51 @@ subflows_tests() =20 # subflow limited by client reset - ip netns exec $ns1 ./pm_nl_ctl limits 0 0 - ip netns exec $ns2 ./pm_nl_ctl limits 0 0 - ip netns exec $ns2 ./pm_nl_ctl add 10.0.3.2 flags subflow + pm_nl_set_limits $ns1 0 0 + pm_nl_set_limits $ns2 0 0 + pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow run_tests $ns1 $ns2 10.0.1.1 chk_join_nr "single subflow, limited by client" 0 0 0 =20 # subflow limited by server reset - ip netns exec $ns1 ./pm_nl_ctl limits 0 0 - ip netns exec $ns2 ./pm_nl_ctl limits 0 1 - ip netns exec $ns2 ./pm_nl_ctl add 10.0.3.2 flags subflow + pm_nl_set_limits $ns1 0 0 + 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 chk_join_nr "single subflow, limited by server" 1 1 0 =20 # subflow reset - ip netns exec $ns1 ./pm_nl_ctl limits 0 1 - ip netns exec $ns2 ./pm_nl_ctl limits 0 1 - ip netns exec $ns2 ./pm_nl_ctl add 10.0.3.2 flags subflow + 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 chk_join_nr "single subflow" 1 1 1 =20 # multiple subflows reset - ip netns exec $ns1 ./pm_nl_ctl limits 0 2 - ip netns exec $ns2 ./pm_nl_ctl limits 0 2 - ip netns exec $ns2 ./pm_nl_ctl add 10.0.3.2 flags subflow - ip netns exec $ns2 ./pm_nl_ctl add 10.0.2.2 flags subflow + 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 run_tests $ns1 $ns2 10.0.1.1 chk_join_nr "multiple subflows" 2 2 2 =20 # multiple subflows limited by server reset - ip netns exec $ns1 ./pm_nl_ctl limits 0 1 - ip netns exec $ns2 ./pm_nl_ctl limits 0 2 - ip netns exec $ns2 ./pm_nl_ctl add 10.0.3.2 flags subflow - ip netns exec $ns2 ./pm_nl_ctl add 10.0.2.2 flags subflow + pm_nl_set_limits $ns1 0 1 + 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 chk_join_nr "multiple subflows, limited by server" 2 2 1 =20 # single subflow, dev reset - ip netns exec $ns1 ./pm_nl_ctl limits 0 1 - ip netns exec $ns2 ./pm_nl_ctl limits 0 1 - ip netns exec $ns2 ./pm_nl_ctl add 10.0.3.2 flags subflow dev ns2eth3 + 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 dev ns2eth3 run_tests $ns1 $ns2 10.0.1.1 chk_join_nr "single subflow, dev" 1 1 1 } @@ -1090,28 +1167,28 @@ subflows_error_tests() # If a single subflow is configured, and matches the MPC src # address, no additional subflow should be created reset - ip netns exec $ns1 ./pm_nl_ctl limits 0 1 - ip netns exec $ns2 ./pm_nl_ctl limits 0 1 - ip netns exec $ns2 ./pm_nl_ctl add 10.0.1.2 flags subflow + 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 chk_join_nr "no MPC reuse with single endpoint" 0 0 0 =20 # multiple subflows, with subflow creation error reset - ip netns exec $ns1 ./pm_nl_ctl limits 0 2 - ip netns exec $ns2 ./pm_nl_ctl limits 0 2 - ip netns exec $ns2 ./pm_nl_ctl add 10.0.3.2 flags subflow - ip netns exec $ns2 ./pm_nl_ctl add 10.0.2.2 flags subflow + 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 ip netns exec $ns1 iptables -A INPUT -s 10.0.3.2 -p tcp -j REJECT run_tests $ns1 $ns2 10.0.1.1 0 0 0 slow chk_join_nr "multi subflows, with failing subflow" 1 1 1 =20 # multiple subflows, with subflow timeout on MPJ reset - ip netns exec $ns1 ./pm_nl_ctl limits 0 2 - ip netns exec $ns2 ./pm_nl_ctl limits 0 2 - ip netns exec $ns2 ./pm_nl_ctl add 10.0.3.2 flags subflow - ip netns exec $ns2 ./pm_nl_ctl add 10.0.2.2 flags subflow + 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 ip netns exec $ns1 iptables -A INPUT -s 10.0.3.2 -p tcp -j DROP run_tests $ns1 $ns2 10.0.1.1 0 0 0 slow chk_join_nr "multi subflows, with subflow timeout" 1 1 1 @@ -1120,9 +1197,9 @@ subflows_error_tests() # closed subflow (due to reset) is not reused if additional # subflows are added later reset - ip netns exec $ns1 ./pm_nl_ctl limits 0 1 - ip netns exec $ns2 ./pm_nl_ctl limits 0 1 - ip netns exec $ns2 ./pm_nl_ctl add 10.0.3.2 flags subflow + 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 ip netns exec $ns1 iptables -A INPUT -s 10.0.3.2 -p tcp -j REJECT run_tests $ns1 $ns2 10.0.1.1 0 0 0 slow & =20 @@ -1132,7 +1209,7 @@ subflows_error_tests() =20 # mpj subflow will be in TW after the reset wait_for_tw $ns2 - ip netns exec $ns2 ./pm_nl_ctl add 10.0.2.2 flags subflow + pm_nl_add_endpoint $ns2 10.0.2.2 flags subflow wait =20 # additional subflow could be created only if the PM select @@ -1144,16 +1221,16 @@ signal_address_tests() { # add_address, unused reset - ip netns exec $ns1 ./pm_nl_ctl add 10.0.2.1 flags signal + pm_nl_add_endpoint $ns1 10.0.2.1 flags signal run_tests $ns1 $ns2 10.0.1.1 chk_join_nr "unused signal address" 0 0 0 chk_add_nr 1 1 =20 # accept and use add_addr reset - ip netns exec $ns1 ./pm_nl_ctl limits 0 1 - ip netns exec $ns2 ./pm_nl_ctl limits 1 1 - ip netns exec $ns1 ./pm_nl_ctl add 10.0.2.1 flags signal + 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 chk_join_nr "signal address" 1 1 1 chk_add_nr 1 1 @@ -1163,59 +1240,59 @@ signal_address_tests() # belong to different subnets or one of the listed local address could be # used for 'add_addr' subflow reset - ip netns exec $ns1 ./pm_nl_ctl add 10.0.2.1 flags signal - ip netns exec $ns1 ./pm_nl_ctl limits 0 2 - ip netns exec $ns2 ./pm_nl_ctl limits 1 2 - ip netns exec $ns2 ./pm_nl_ctl add 10.0.3.2 flags subflow + pm_nl_add_endpoint $ns1 10.0.2.1 flags signal + pm_nl_set_limits $ns1 0 2 + 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 chk_join_nr "subflow and signal" 2 2 2 chk_add_nr 1 1 =20 # accept and use add_addr with additional subflows reset - ip netns exec $ns1 ./pm_nl_ctl limits 0 3 - ip netns exec $ns1 ./pm_nl_ctl add 10.0.2.1 flags signal - ip netns exec $ns2 ./pm_nl_ctl limits 1 3 - ip netns exec $ns2 ./pm_nl_ctl add 10.0.3.2 flags subflow - ip netns exec $ns2 ./pm_nl_ctl add 10.0.4.2 flags subflow + pm_nl_set_limits $ns1 0 3 + pm_nl_add_endpoint $ns1 10.0.2.1 flags signal + 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 chk_join_nr "multiple subflows and signal" 3 3 3 chk_add_nr 1 1 =20 # signal addresses reset - ip netns exec $ns1 ./pm_nl_ctl limits 3 3 - ip netns exec $ns1 ./pm_nl_ctl add 10.0.2.1 flags signal - ip netns exec $ns1 ./pm_nl_ctl add 10.0.3.1 flags signal - ip netns exec $ns1 ./pm_nl_ctl add 10.0.4.1 flags signal - ip netns exec $ns2 ./pm_nl_ctl limits 3 3 + pm_nl_set_limits $ns1 3 3 + pm_nl_add_endpoint $ns1 10.0.2.1 flags signal + 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 chk_join_nr "signal addresses" 3 3 3 chk_add_nr 3 3 =20 # signal invalid addresses reset - ip netns exec $ns1 ./pm_nl_ctl limits 3 3 - ip netns exec $ns1 ./pm_nl_ctl add 10.0.12.1 flags signal - ip netns exec $ns1 ./pm_nl_ctl add 10.0.3.1 flags signal - ip netns exec $ns1 ./pm_nl_ctl add 10.0.14.1 flags signal - ip netns exec $ns2 ./pm_nl_ctl limits 3 3 + pm_nl_set_limits $ns1 3 3 + pm_nl_add_endpoint $ns1 10.0.12.1 flags signal + 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 chk_join_nr "signal invalid addresses" 1 1 1 chk_add_nr 3 3 =20 # signal addresses race test reset - ip netns exec $ns1 ./pm_nl_ctl limits 4 4 - ip netns exec $ns2 ./pm_nl_ctl limits 4 4 - ip netns exec $ns1 ./pm_nl_ctl add 10.0.1.1 flags signal - ip netns exec $ns1 ./pm_nl_ctl add 10.0.2.1 flags signal - ip netns exec $ns1 ./pm_nl_ctl add 10.0.3.1 flags signal - ip netns exec $ns1 ./pm_nl_ctl add 10.0.4.1 flags signal - ip netns exec $ns2 ./pm_nl_ctl add 10.0.1.2 flags signal - ip netns exec $ns2 ./pm_nl_ctl add 10.0.2.2 flags signal - ip netns exec $ns2 ./pm_nl_ctl add 10.0.3.2 flags signal - ip netns exec $ns2 ./pm_nl_ctl add 10.0.4.2 flags signal + pm_nl_set_limits $ns1 4 4 + pm_nl_set_limits $ns2 4 4 + pm_nl_add_endpoint $ns1 10.0.1.1 flags signal + pm_nl_add_endpoint $ns1 10.0.2.1 flags signal + pm_nl_add_endpoint $ns1 10.0.3.1 flags signal + pm_nl_add_endpoint $ns1 10.0.4.1 flags signal + pm_nl_add_endpoint $ns2 10.0.1.2 flags signal + pm_nl_add_endpoint $ns2 10.0.2.2 flags signal + pm_nl_add_endpoint $ns2 10.0.3.2 flags signal + pm_nl_add_endpoint $ns2 10.0.4.2 flags signal run_tests $ns1 $ns2 10.0.1.1 =20 # the server will not signal the address terminating @@ -1235,11 +1312,11 @@ link_failure_tests() # active backup and link switch-over. # Let's set some arbitrary (low) virtual link limits. init_shapers - ip netns exec $ns1 ./pm_nl_ctl limits 0 3 - ip netns exec $ns1 ./pm_nl_ctl add 10.0.2.1 dev ns1eth2 flags signal - ip netns exec $ns2 ./pm_nl_ctl limits 1 3 - ip netns exec $ns2 ./pm_nl_ctl add 10.0.3.2 dev ns2eth3 flags subflow - ip netns exec $ns2 ./pm_nl_ctl add 10.0.4.2 dev ns2eth4 flags subflow + pm_nl_set_limits $ns1 0 3 + pm_nl_add_endpoint $ns1 10.0.2.1 dev ns1eth2 flags signal + pm_nl_set_limits $ns2 1 3 + pm_nl_add_endpoint $ns2 10.0.3.2 dev ns2eth3 flags subflow + pm_nl_add_endpoint $ns2 10.0.4.2 dev ns2eth4 flags subflow run_tests $ns1 $ns2 10.0.1.1 1 chk_join_nr "multiple flows, signal, link failure" 3 3 3 chk_add_nr 1 1 @@ -1249,11 +1326,11 @@ link_failure_tests() # for bidirectional transfer reset init_shapers - ip netns exec $ns1 ./pm_nl_ctl limits 0 3 - ip netns exec $ns1 ./pm_nl_ctl add 10.0.2.1 dev ns1eth2 flags signal - ip netns exec $ns2 ./pm_nl_ctl limits 1 3 - ip netns exec $ns2 ./pm_nl_ctl add 10.0.3.2 dev ns2eth3 flags subflow - ip netns exec $ns2 ./pm_nl_ctl add 10.0.4.2 dev ns2eth4 flags subflow + pm_nl_set_limits $ns1 0 3 + pm_nl_add_endpoint $ns1 10.0.2.1 dev ns1eth2 flags signal + pm_nl_set_limits $ns2 1 3 + pm_nl_add_endpoint $ns2 10.0.3.2 dev ns2eth3 flags subflow + pm_nl_add_endpoint $ns2 10.0.4.2 dev ns2eth4 flags subflow run_tests $ns1 $ns2 10.0.1.1 2 chk_join_nr "multi flows, signal, bidi, link fail" 3 3 3 chk_add_nr 1 1 @@ -1263,11 +1340,11 @@ link_failure_tests() # will never be used reset init_shapers - ip netns exec $ns1 ./pm_nl_ctl limits 0 2 - ip netns exec $ns1 ./pm_nl_ctl add 10.0.2.1 dev ns1eth2 flags signal - ip netns exec $ns2 ./pm_nl_ctl limits 1 2 + pm_nl_set_limits $ns1 0 2 + pm_nl_add_endpoint $ns1 10.0.2.1 dev ns1eth2 flags signal + pm_nl_set_limits $ns2 1 2 export FAILING_LINKS=3D"1" - ip netns exec $ns2 ./pm_nl_ctl add 10.0.3.2 dev ns2eth3 flags subflow,bac= kup + pm_nl_add_endpoint $ns2 10.0.3.2 dev ns2eth3 flags subflow,backup run_tests $ns1 $ns2 10.0.1.1 1 chk_join_nr "backup subflow unused, link failure" 2 2 2 chk_add_nr 1 1 @@ -1277,10 +1354,10 @@ link_failure_tests() # the traffic reset init_shapers - ip netns exec $ns1 ./pm_nl_ctl limits 0 2 - ip netns exec $ns1 ./pm_nl_ctl add 10.0.2.1 dev ns1eth2 flags signal - ip netns exec $ns2 ./pm_nl_ctl limits 1 2 - ip netns exec $ns2 ./pm_nl_ctl add 10.0.3.2 dev ns2eth3 flags subflow,bac= kup + pm_nl_set_limits $ns1 0 2 + pm_nl_add_endpoint $ns1 10.0.2.1 dev ns1eth2 flags signal + pm_nl_set_limits $ns2 1 2 + pm_nl_add_endpoint $ns2 10.0.3.2 dev ns2eth3 flags subflow,backup export FAILING_LINKS=3D"1 2" run_tests $ns1 $ns2 10.0.1.1 1 chk_join_nr "backup flow used, multi links fail" 2 2 2 @@ -1292,10 +1369,10 @@ link_failure_tests() # for bidirectional transfer reset init_shapers - ip netns exec $ns1 ./pm_nl_ctl limits 0 2 - ip netns exec $ns1 ./pm_nl_ctl add 10.0.2.1 dev ns1eth2 flags signal - ip netns exec $ns2 ./pm_nl_ctl limits 1 3 - ip netns exec $ns2 ./pm_nl_ctl add 10.0.3.2 dev ns2eth3 flags subflow,bac= kup + pm_nl_set_limits $ns1 0 2 + pm_nl_add_endpoint $ns1 10.0.2.1 dev ns1eth2 flags signal + pm_nl_set_limits $ns2 1 3 + pm_nl_add_endpoint $ns2 10.0.3.2 dev ns2eth3 flags subflow,backup run_tests $ns1 $ns2 10.0.1.1 2 chk_join_nr "backup flow used, bidi, link failure" 2 2 2 chk_add_nr 1 1 @@ -1307,38 +1384,38 @@ add_addr_timeout_tests() { # add_addr timeout reset_with_add_addr_timeout - ip netns exec $ns1 ./pm_nl_ctl limits 0 1 - ip netns exec $ns2 ./pm_nl_ctl limits 1 1 - ip netns exec $ns1 ./pm_nl_ctl add 10.0.2.1 flags signal + 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 chk_join_nr "signal address, ADD_ADDR timeout" 1 1 1 chk_add_nr 4 0 =20 # add_addr timeout IPv6 reset_with_add_addr_timeout 6 - ip netns exec $ns1 ./pm_nl_ctl limits 0 1 - ip netns exec $ns2 ./pm_nl_ctl limits 1 1 - ip netns exec $ns1 ./pm_nl_ctl add dead:beef:2::1 flags signal + 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 chk_join_nr "signal address, ADD_ADDR6 timeout" 1 1 1 chk_add_nr 4 0 =20 # signal addresses timeout reset_with_add_addr_timeout - ip netns exec $ns1 ./pm_nl_ctl limits 2 2 - ip netns exec $ns1 ./pm_nl_ctl add 10.0.2.1 flags signal - ip netns exec $ns1 ./pm_nl_ctl add 10.0.3.1 flags signal - ip netns exec $ns2 ./pm_nl_ctl limits 2 2 + pm_nl_set_limits $ns1 2 2 + 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 least chk_join_nr "signal addresses, ADD_ADDR timeout" 2 2 2 chk_add_nr 8 0 =20 # signal invalid addresses timeout reset_with_add_addr_timeout - ip netns exec $ns1 ./pm_nl_ctl limits 2 2 - ip netns exec $ns1 ./pm_nl_ctl add 10.0.12.1 flags signal - ip netns exec $ns1 ./pm_nl_ctl add 10.0.3.1 flags signal - ip netns exec $ns2 ./pm_nl_ctl limits 2 2 + pm_nl_set_limits $ns1 2 2 + 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 least chk_join_nr "invalid address, ADD_ADDR timeout" 1 1 1 chk_add_nr 8 0 @@ -1348,28 +1425,28 @@ remove_tests() { # single subflow, remove reset - ip netns exec $ns1 ./pm_nl_ctl limits 0 1 - ip netns exec $ns2 ./pm_nl_ctl limits 0 1 - ip netns exec $ns2 ./pm_nl_ctl add 10.0.3.2 flags subflow + 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 chk_join_nr "remove single subflow" 1 1 1 chk_rm_nr 1 1 =20 # multiple subflows, remove reset - ip netns exec $ns1 ./pm_nl_ctl limits 0 2 - ip netns exec $ns2 ./pm_nl_ctl limits 0 2 - ip netns exec $ns2 ./pm_nl_ctl add 10.0.2.2 flags subflow - ip netns exec $ns2 ./pm_nl_ctl add 10.0.3.2 flags subflow + pm_nl_set_limits $ns1 0 2 + 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 chk_join_nr "remove multiple subflows" 2 2 2 chk_rm_nr 2 2 =20 # single address, remove reset - ip netns exec $ns1 ./pm_nl_ctl limits 0 1 - ip netns exec $ns1 ./pm_nl_ctl add 10.0.2.1 flags signal - ip netns exec $ns2 ./pm_nl_ctl limits 1 1 + 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 chk_join_nr "remove single address" 1 1 1 chk_add_nr 1 1 @@ -1377,10 +1454,10 @@ remove_tests() =20 # subflow and signal, remove reset - ip netns exec $ns1 ./pm_nl_ctl limits 0 2 - ip netns exec $ns1 ./pm_nl_ctl add 10.0.2.1 flags signal - ip netns exec $ns2 ./pm_nl_ctl limits 1 2 - ip netns exec $ns2 ./pm_nl_ctl add 10.0.3.2 flags subflow + pm_nl_set_limits $ns1 0 2 + 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 chk_join_nr "remove subflow and signal" 2 2 2 chk_add_nr 1 1 @@ -1388,11 +1465,11 @@ remove_tests() =20 # subflows and signal, remove reset - ip netns exec $ns1 ./pm_nl_ctl limits 0 3 - ip netns exec $ns1 ./pm_nl_ctl add 10.0.2.1 flags signal - ip netns exec $ns2 ./pm_nl_ctl limits 1 3 - ip netns exec $ns2 ./pm_nl_ctl add 10.0.3.2 flags subflow - ip netns exec $ns2 ./pm_nl_ctl add 10.0.4.2 flags subflow + pm_nl_set_limits $ns1 0 3 + pm_nl_add_endpoint $ns1 10.0.2.1 flags signal + 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 slow chk_join_nr "remove subflows and signal" 3 3 3 chk_add_nr 1 1 @@ -1400,11 +1477,11 @@ remove_tests() =20 # addresses remove reset - ip netns exec $ns1 ./pm_nl_ctl limits 3 3 - ip netns exec $ns1 ./pm_nl_ctl add 10.0.2.1 flags signal id 250 - ip netns exec $ns1 ./pm_nl_ctl add 10.0.3.1 flags signal - ip netns exec $ns1 ./pm_nl_ctl add 10.0.4.1 flags signal - ip netns exec $ns2 ./pm_nl_ctl limits 3 3 + pm_nl_set_limits $ns1 3 3 + pm_nl_add_endpoint $ns1 10.0.2.1 flags signal id 250 + 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 slow chk_join_nr "remove addresses" 3 3 3 chk_add_nr 3 3 @@ -1412,11 +1489,11 @@ remove_tests() =20 # invalid addresses remove reset - ip netns exec $ns1 ./pm_nl_ctl limits 3 3 - ip netns exec $ns1 ./pm_nl_ctl add 10.0.12.1 flags signal - ip netns exec $ns1 ./pm_nl_ctl add 10.0.3.1 flags signal - ip netns exec $ns1 ./pm_nl_ctl add 10.0.14.1 flags signal - ip netns exec $ns2 ./pm_nl_ctl limits 3 3 + pm_nl_set_limits $ns1 3 3 + pm_nl_add_endpoint $ns1 10.0.12.1 flags signal + 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 slow chk_join_nr "remove invalid addresses" 1 1 1 chk_add_nr 3 3 @@ -1424,11 +1501,11 @@ remove_tests() =20 # subflows and signal, flush reset - ip netns exec $ns1 ./pm_nl_ctl limits 0 3 - ip netns exec $ns1 ./pm_nl_ctl add 10.0.2.1 flags signal - ip netns exec $ns2 ./pm_nl_ctl limits 1 3 - ip netns exec $ns2 ./pm_nl_ctl add 10.0.3.2 flags subflow - ip netns exec $ns2 ./pm_nl_ctl add 10.0.4.2 flags subflow + pm_nl_set_limits $ns1 0 3 + pm_nl_add_endpoint $ns1 10.0.2.1 flags signal + 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 chk_join_nr "flush subflows and signal" 3 3 3 chk_add_nr 1 1 @@ -1436,22 +1513,22 @@ remove_tests() =20 # subflows flush reset - ip netns exec $ns1 ./pm_nl_ctl limits 3 3 - ip netns exec $ns2 ./pm_nl_ctl limits 3 3 - ip netns exec $ns2 ./pm_nl_ctl add 10.0.2.2 flags subflow id 150 - ip netns exec $ns2 ./pm_nl_ctl add 10.0.3.2 flags subflow - ip netns exec $ns2 ./pm_nl_ctl add 10.0.4.2 flags subflow + pm_nl_set_limits $ns1 3 3 + pm_nl_set_limits $ns2 3 3 + 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 chk_join_nr "flush subflows" 3 3 3 chk_rm_nr 3 3 =20 # addresses flush reset - ip netns exec $ns1 ./pm_nl_ctl limits 3 3 - ip netns exec $ns1 ./pm_nl_ctl add 10.0.2.1 flags signal id 250 - ip netns exec $ns1 ./pm_nl_ctl add 10.0.3.1 flags signal - ip netns exec $ns1 ./pm_nl_ctl add 10.0.4.1 flags signal - ip netns exec $ns2 ./pm_nl_ctl limits 3 3 + pm_nl_set_limits $ns1 3 3 + pm_nl_add_endpoint $ns1 10.0.2.1 flags signal id 250 + 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 chk_join_nr "flush addresses" 3 3 3 chk_add_nr 3 3 @@ -1459,11 +1536,11 @@ remove_tests() =20 # invalid addresses flush reset - ip netns exec $ns1 ./pm_nl_ctl limits 3 3 - ip netns exec $ns1 ./pm_nl_ctl add 10.0.12.1 flags signal - ip netns exec $ns1 ./pm_nl_ctl add 10.0.3.1 flags signal - ip netns exec $ns1 ./pm_nl_ctl add 10.0.14.1 flags signal - ip netns exec $ns2 ./pm_nl_ctl limits 3 3 + pm_nl_set_limits $ns1 3 3 + pm_nl_add_endpoint $ns1 10.0.12.1 flags signal + 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 chk_join_nr "flush invalid addresses" 1 1 1 chk_add_nr 3 3 @@ -1471,18 +1548,18 @@ remove_tests() =20 # remove id 0 subflow reset - ip netns exec $ns1 ./pm_nl_ctl limits 0 1 - ip netns exec $ns2 ./pm_nl_ctl limits 0 1 - ip netns exec $ns2 ./pm_nl_ctl add 10.0.3.2 flags subflow + 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 chk_join_nr "remove id 0 subflow" 1 1 1 chk_rm_nr 1 1 =20 # remove id 0 address reset - ip netns exec $ns1 ./pm_nl_ctl limits 0 1 - ip netns exec $ns1 ./pm_nl_ctl add 10.0.2.1 flags signal - ip netns exec $ns2 ./pm_nl_ctl limits 1 1 + 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 chk_join_nr "remove id 0 address" 1 1 1 chk_add_nr 1 1 @@ -1493,37 +1570,37 @@ add_tests() { # add single subflow reset - ip netns exec $ns1 ./pm_nl_ctl limits 0 1 - ip netns exec $ns2 ./pm_nl_ctl limits 0 1 + 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 chk_join_nr "add single subflow" 1 1 1 =20 # add signal address reset - ip netns exec $ns1 ./pm_nl_ctl limits 0 1 - ip netns exec $ns2 ./pm_nl_ctl limits 1 1 + 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 chk_join_nr "add signal address" 1 1 1 chk_add_nr 1 1 =20 # add multiple subflows reset - ip netns exec $ns1 ./pm_nl_ctl limits 0 2 - ip netns exec $ns2 ./pm_nl_ctl limits 0 2 + 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 chk_join_nr "add multiple subflows" 2 2 2 =20 # add multiple subflows IPv6 reset - ip netns exec $ns1 ./pm_nl_ctl limits 0 2 - ip netns exec $ns2 ./pm_nl_ctl limits 0 2 + 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 chk_join_nr "add multiple subflows IPv6" 2 2 2 =20 # add multiple addresses IPv6 reset - ip netns exec $ns1 ./pm_nl_ctl limits 0 2 - ip netns exec $ns2 ./pm_nl_ctl limits 2 2 + 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 chk_join_nr "add multiple addresses IPv6" 2 2 2 chk_add_nr 2 2 @@ -1533,33 +1610,33 @@ ipv6_tests() { # subflow IPv6 reset - ip netns exec $ns1 ./pm_nl_ctl limits 0 1 - ip netns exec $ns2 ./pm_nl_ctl limits 0 1 - ip netns exec $ns2 ./pm_nl_ctl add dead:beef:3::2 flags subflow + pm_nl_set_limits $ns1 0 1 + pm_nl_set_limits $ns2 0 1 + pm_nl_add_endpoint $ns2 dead:beef:3::2 flags subflow run_tests $ns1 $ns2 dead:beef:1::1 0 0 0 slow chk_join_nr "single subflow IPv6" 1 1 1 =20 # add_address, unused IPv6 reset - ip netns exec $ns1 ./pm_nl_ctl add dead:beef: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 0 slow chk_join_nr "unused signal address IPv6" 0 0 0 chk_add_nr 1 1 =20 # signal address IPv6 reset - ip netns exec $ns1 ./pm_nl_ctl limits 0 1 - ip netns exec $ns1 ./pm_nl_ctl add dead:beef:2::1 flags signal - ip netns exec $ns2 ./pm_nl_ctl limits 1 1 + 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 chk_join_nr "single address IPv6" 1 1 1 chk_add_nr 1 1 =20 # single address IPv6, remove reset - ip netns exec $ns1 ./pm_nl_ctl limits 0 1 - ip netns exec $ns1 ./pm_nl_ctl add dead:beef:2::1 flags signal - ip netns exec $ns2 ./pm_nl_ctl limits 1 1 + 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 chk_join_nr "remove single address IPv6" 1 1 1 chk_add_nr 1 1 @@ -1567,10 +1644,10 @@ ipv6_tests() =20 # subflow and signal IPv6, remove reset - ip netns exec $ns1 ./pm_nl_ctl limits 0 2 - ip netns exec $ns1 ./pm_nl_ctl add dead:beef:2::1 flags signal - ip netns exec $ns2 ./pm_nl_ctl limits 1 2 - ip netns exec $ns2 ./pm_nl_ctl add dead:beef:3::2 flags subflow + pm_nl_set_limits $ns1 0 2 + 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 flags subflow run_tests $ns1 $ns2 dead:beef:1::1 0 -1 -1 slow chk_join_nr "remove subflow and signal IPv6" 2 2 2 chk_add_nr 1 1 @@ -1581,76 +1658,76 @@ v4mapped_tests() { # subflow IPv4-mapped to IPv4-mapped reset - ip netns exec $ns1 ./pm_nl_ctl limits 0 1 - ip netns exec $ns2 ./pm_nl_ctl limits 0 1 - ip netns exec $ns2 ./pm_nl_ctl add "::ffff:10.0.3.2" flags subflow + pm_nl_set_limits $ns1 0 1 + pm_nl_set_limits $ns2 0 1 + pm_nl_add_endpoint $ns2 "::ffff:10.0.3.2" flags subflow run_tests $ns1 $ns2 "::ffff:10.0.1.1" chk_join_nr "single subflow IPv4-mapped" 1 1 1 =20 # signal address IPv4-mapped with IPv4-mapped sk reset - ip netns exec $ns1 ./pm_nl_ctl limits 0 1 - ip netns exec $ns2 ./pm_nl_ctl limits 1 1 - ip netns exec $ns1 ./pm_nl_ctl add "::ffff:10.0.2.1" flags signal + pm_nl_set_limits $ns1 0 1 + pm_nl_set_limits $ns2 1 1 + pm_nl_add_endpoint $ns1 "::ffff:10.0.2.1" flags signal run_tests $ns1 $ns2 "::ffff:10.0.1.1" chk_join_nr "signal address IPv4-mapped" 1 1 1 chk_add_nr 1 1 =20 # subflow v4-map-v6 reset - ip netns exec $ns1 ./pm_nl_ctl limits 0 1 - ip netns exec $ns2 ./pm_nl_ctl limits 0 1 - ip netns exec $ns2 ./pm_nl_ctl add 10.0.3.2 flags subflow + 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 "::ffff:10.0.1.1" chk_join_nr "single subflow v4-map-v6" 1 1 1 =20 # signal address v4-map-v6 reset - ip netns exec $ns1 ./pm_nl_ctl limits 0 1 - ip netns exec $ns2 ./pm_nl_ctl limits 1 1 - ip netns exec $ns1 ./pm_nl_ctl add 10.0.2.1 flags signal + 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 "::ffff:10.0.1.1" chk_join_nr "signal address v4-map-v6" 1 1 1 chk_add_nr 1 1 =20 # subflow v6-map-v4 reset - ip netns exec $ns1 ./pm_nl_ctl limits 0 1 - ip netns exec $ns2 ./pm_nl_ctl limits 0 1 - ip netns exec $ns2 ./pm_nl_ctl add "::ffff:10.0.3.2" flags subflow + pm_nl_set_limits $ns1 0 1 + pm_nl_set_limits $ns2 0 1 + pm_nl_add_endpoint $ns2 "::ffff:10.0.3.2" flags subflow run_tests $ns1 $ns2 10.0.1.1 chk_join_nr "single subflow v6-map-v4" 1 1 1 =20 # signal address v6-map-v4 reset - ip netns exec $ns1 ./pm_nl_ctl limits 0 1 - ip netns exec $ns2 ./pm_nl_ctl limits 1 1 - ip netns exec $ns1 ./pm_nl_ctl add "::ffff:10.0.2.1" flags signal + pm_nl_set_limits $ns1 0 1 + pm_nl_set_limits $ns2 1 1 + pm_nl_add_endpoint $ns1 "::ffff:10.0.2.1" flags signal run_tests $ns1 $ns2 10.0.1.1 chk_join_nr "signal address v6-map-v4" 1 1 1 chk_add_nr 1 1 =20 # no subflow IPv6 to v4 address reset - ip netns exec $ns1 ./pm_nl_ctl limits 0 1 - ip netns exec $ns2 ./pm_nl_ctl limits 0 1 - ip netns exec $ns2 ./pm_nl_ctl add dead:beef:2::2 flags subflow + pm_nl_set_limits $ns1 0 1 + pm_nl_set_limits $ns2 0 1 + pm_nl_add_endpoint $ns2 dead:beef:2::2 flags subflow run_tests $ns1 $ns2 10.0.1.1 chk_join_nr "no JOIN with diff families v4-v6" 0 0 0 =20 # no subflow IPv6 to v4 address even if v6 has a valid v4 at the end reset - ip netns exec $ns1 ./pm_nl_ctl limits 0 1 - ip netns exec $ns2 ./pm_nl_ctl limits 0 1 - ip netns exec $ns2 ./pm_nl_ctl add dead:beef:2::10.0.3.2 flags subflow + pm_nl_set_limits $ns1 0 1 + pm_nl_set_limits $ns2 0 1 + pm_nl_add_endpoint $ns2 dead:beef:2::10.0.3.2 flags subflow run_tests $ns1 $ns2 10.0.1.1 chk_join_nr "no JOIN with diff families v4-v6-2" 0 0 0 =20 # no subflow IPv4 to v6 address, no need to slow down too then reset - ip netns exec $ns1 ./pm_nl_ctl limits 0 1 - ip netns exec $ns2 ./pm_nl_ctl limits 0 1 - ip netns exec $ns2 ./pm_nl_ctl add 10.0.3.2 flags subflow + 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 dead:beef:1::1 chk_join_nr "no JOIN with diff families v6-v4" 0 0 0 } @@ -1659,9 +1736,9 @@ backup_tests() { # single subflow, backup reset - ip netns exec $ns1 ./pm_nl_ctl limits 0 1 - ip netns exec $ns2 ./pm_nl_ctl limits 0 1 - ip netns exec $ns2 ./pm_nl_ctl add 10.0.3.2 flags subflow,backup + 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 chk_join_nr "single subflow, backup" 1 1 1 chk_prio_nr 0 1 @@ -1669,9 +1746,9 @@ backup_tests() =20 # single address, backup reset - ip netns exec $ns1 ./pm_nl_ctl limits 0 1 - ip netns exec $ns1 ./pm_nl_ctl add 10.0.2.1 flags signal - ip netns exec $ns2 ./pm_nl_ctl limits 1 1 + 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 chk_join_nr "single address, backup" 1 1 1 chk_add_nr 1 1 @@ -1680,9 +1757,9 @@ backup_tests() =20 # single address with port, backup reset - ip netns exec $ns1 ./pm_nl_ctl limits 0 1 - ip netns exec $ns1 ./pm_nl_ctl add 10.0.2.1 flags signal port 10100 - ip netns exec $ns2 ./pm_nl_ctl limits 1 1 + 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 chk_join_nr "single address with port, backup" 1 1 1 chk_add_nr 1 1 @@ -1693,28 +1770,28 @@ add_addr_ports_tests() { # signal address with port reset - ip netns exec $ns1 ./pm_nl_ctl limits 0 1 - ip netns exec $ns2 ./pm_nl_ctl limits 1 1 - ip netns exec $ns1 ./pm_nl_ctl add 10.0.2.1 flags signal port 10100 + 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 port 10100 run_tests $ns1 $ns2 10.0.1.1 chk_join_nr "signal address with port" 1 1 1 chk_add_nr 1 1 1 =20 # subflow and signal with port reset - ip netns exec $ns1 ./pm_nl_ctl add 10.0.2.1 flags signal port 10100 - ip netns exec $ns1 ./pm_nl_ctl limits 0 2 - ip netns exec $ns2 ./pm_nl_ctl limits 1 2 - ip netns exec $ns2 ./pm_nl_ctl add 10.0.3.2 flags subflow + pm_nl_add_endpoint $ns1 10.0.2.1 flags signal port 10100 + pm_nl_set_limits $ns1 0 2 + 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 chk_join_nr "subflow and signal with port" 2 2 2 chk_add_nr 1 1 1 =20 # single address with port, remove reset - ip netns exec $ns1 ./pm_nl_ctl limits 0 1 - ip netns exec $ns1 ./pm_nl_ctl add 10.0.2.1 flags signal port 10100 - ip netns exec $ns2 ./pm_nl_ctl limits 1 1 + 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 chk_join_nr "remove single address with port" 1 1 1 chk_add_nr 1 1 1 @@ -1722,10 +1799,10 @@ add_addr_ports_tests() =20 # subflow and signal with port, remove reset - ip netns exec $ns1 ./pm_nl_ctl limits 0 2 - ip netns exec $ns1 ./pm_nl_ctl add 10.0.2.1 flags signal port 10100 - ip netns exec $ns2 ./pm_nl_ctl limits 1 2 - ip netns exec $ns2 ./pm_nl_ctl add 10.0.3.2 flags subflow + pm_nl_set_limits $ns1 0 2 + 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 chk_join_nr "remove subflow and signal with port" 2 2 2 chk_add_nr 1 1 1 @@ -1733,11 +1810,11 @@ add_addr_ports_tests() =20 # subflows and signal with port, flush reset - ip netns exec $ns1 ./pm_nl_ctl limits 0 3 - ip netns exec $ns1 ./pm_nl_ctl add 10.0.2.1 flags signal port 10100 - ip netns exec $ns2 ./pm_nl_ctl limits 1 3 - ip netns exec $ns2 ./pm_nl_ctl add 10.0.3.2 flags subflow - ip netns exec $ns2 ./pm_nl_ctl add 10.0.4.2 flags subflow + pm_nl_set_limits $ns1 0 3 + pm_nl_add_endpoint $ns1 10.0.2.1 flags signal port 10100 + 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 chk_join_nr "flush subflows and signal with port" 3 3 3 chk_add_nr 1 1 @@ -1745,20 +1822,20 @@ add_addr_ports_tests() =20 # multiple addresses with port reset - ip netns exec $ns1 ./pm_nl_ctl limits 2 2 - ip netns exec $ns1 ./pm_nl_ctl add 10.0.2.1 flags signal port 10100 - ip netns exec $ns1 ./pm_nl_ctl add 10.0.3.1 flags signal port 10100 - ip netns exec $ns2 ./pm_nl_ctl limits 2 2 + pm_nl_set_limits $ns1 2 2 + pm_nl_add_endpoint $ns1 10.0.2.1 flags signal port 10100 + pm_nl_add_endpoint $ns1 10.0.3.1 flags signal port 10100 + pm_nl_set_limits $ns2 2 2 run_tests $ns1 $ns2 10.0.1.1 chk_join_nr "multiple addresses with port" 2 2 2 chk_add_nr 2 2 2 =20 # multiple addresses with ports reset - ip netns exec $ns1 ./pm_nl_ctl limits 2 2 - ip netns exec $ns1 ./pm_nl_ctl add 10.0.2.1 flags signal port 10100 - ip netns exec $ns1 ./pm_nl_ctl add 10.0.3.1 flags signal port 10101 - ip netns exec $ns2 ./pm_nl_ctl limits 2 2 + pm_nl_set_limits $ns1 2 2 + pm_nl_add_endpoint $ns1 10.0.2.1 flags signal port 10100 + pm_nl_add_endpoint $ns1 10.0.3.1 flags signal port 10101 + pm_nl_set_limits $ns2 2 2 run_tests $ns1 $ns2 10.0.1.1 chk_join_nr "multiple addresses with ports" 2 2 2 chk_add_nr 2 2 2 @@ -1768,56 +1845,56 @@ syncookies_tests() { # single subflow, syncookies reset_with_cookies - ip netns exec $ns1 ./pm_nl_ctl limits 0 1 - ip netns exec $ns2 ./pm_nl_ctl limits 0 1 - ip netns exec $ns2 ./pm_nl_ctl add 10.0.3.2 flags subflow + 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 chk_join_nr "single subflow with syn cookies" 1 1 1 =20 # multiple subflows with syn cookies reset_with_cookies - ip netns exec $ns1 ./pm_nl_ctl limits 0 2 - ip netns exec $ns2 ./pm_nl_ctl limits 0 2 - ip netns exec $ns2 ./pm_nl_ctl add 10.0.3.2 flags subflow - ip netns exec $ns2 ./pm_nl_ctl add 10.0.2.2 flags subflow + 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 run_tests $ns1 $ns2 10.0.1.1 chk_join_nr "multiple subflows with syn cookies" 2 2 2 =20 # multiple subflows limited by server reset_with_cookies - ip netns exec $ns1 ./pm_nl_ctl limits 0 1 - ip netns exec $ns2 ./pm_nl_ctl limits 0 2 - ip netns exec $ns2 ./pm_nl_ctl add 10.0.3.2 flags subflow - ip netns exec $ns2 ./pm_nl_ctl add 10.0.2.2 flags subflow + pm_nl_set_limits $ns1 0 1 + 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 chk_join_nr "subflows limited by server w cookies" 2 1 1 =20 # test signal address with cookies reset_with_cookies - ip netns exec $ns1 ./pm_nl_ctl limits 0 1 - ip netns exec $ns2 ./pm_nl_ctl limits 1 1 - ip netns exec $ns1 ./pm_nl_ctl add 10.0.2.1 flags signal + 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 chk_join_nr "signal address with syn cookies" 1 1 1 chk_add_nr 1 1 =20 # test cookie with subflow and signal reset_with_cookies - ip netns exec $ns1 ./pm_nl_ctl add 10.0.2.1 flags signal - ip netns exec $ns1 ./pm_nl_ctl limits 0 2 - ip netns exec $ns2 ./pm_nl_ctl limits 1 2 - ip netns exec $ns2 ./pm_nl_ctl add 10.0.3.2 flags subflow + pm_nl_add_endpoint $ns1 10.0.2.1 flags signal + pm_nl_set_limits $ns1 0 2 + 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 chk_join_nr "subflow and signal w cookies" 2 2 2 chk_add_nr 1 1 =20 # accept and use add_addr with additional subflows reset_with_cookies - ip netns exec $ns1 ./pm_nl_ctl limits 0 3 - ip netns exec $ns1 ./pm_nl_ctl add 10.0.2.1 flags signal - ip netns exec $ns2 ./pm_nl_ctl limits 1 3 - ip netns exec $ns2 ./pm_nl_ctl add 10.0.3.2 flags subflow - ip netns exec $ns2 ./pm_nl_ctl add 10.0.4.2 flags subflow + pm_nl_set_limits $ns1 0 3 + pm_nl_add_endpoint $ns1 10.0.2.1 flags signal + 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 chk_join_nr "subflows and signal w. cookies" 3 3 3 chk_add_nr 1 1 @@ -1827,29 +1904,29 @@ checksum_tests() { # checksum test 0 0 reset_with_checksum 0 0 - ip netns exec $ns1 ./pm_nl_ctl limits 0 1 - ip netns exec $ns2 ./pm_nl_ctl limits 0 1 + pm_nl_set_limits $ns1 0 1 + pm_nl_set_limits $ns2 0 1 run_tests $ns1 $ns2 10.0.1.1 chk_csum_nr "checksum test 0 0" =20 # checksum test 1 1 reset_with_checksum 1 1 - ip netns exec $ns1 ./pm_nl_ctl limits 0 1 - ip netns exec $ns2 ./pm_nl_ctl limits 0 1 + pm_nl_set_limits $ns1 0 1 + pm_nl_set_limits $ns2 0 1 run_tests $ns1 $ns2 10.0.1.1 chk_csum_nr "checksum test 1 1" =20 # checksum test 0 1 reset_with_checksum 0 1 - ip netns exec $ns1 ./pm_nl_ctl limits 0 1 - ip netns exec $ns2 ./pm_nl_ctl limits 0 1 + pm_nl_set_limits $ns1 0 1 + pm_nl_set_limits $ns2 0 1 run_tests $ns1 $ns2 10.0.1.1 chk_csum_nr "checksum test 0 1" =20 # checksum test 1 0 reset_with_checksum 1 0 - ip netns exec $ns1 ./pm_nl_ctl limits 0 1 - ip netns exec $ns2 ./pm_nl_ctl limits 0 1 + pm_nl_set_limits $ns1 0 1 + pm_nl_set_limits $ns2 0 1 run_tests $ns1 $ns2 10.0.1.1 chk_csum_nr "checksum test 1 0" } @@ -1858,26 +1935,26 @@ deny_join_id0_tests() { # subflow allow join id0 ns1 reset_with_allow_join_id0 1 0 - ip netns exec $ns1 ./pm_nl_ctl limits 1 1 - ip netns exec $ns2 ./pm_nl_ctl limits 1 1 - ip netns exec $ns2 ./pm_nl_ctl add 10.0.3.2 flags subflow + 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 chk_join_nr "single subflow allow join id0 ns1" 1 1 1 =20 # subflow allow join id0 ns2 reset_with_allow_join_id0 0 1 - ip netns exec $ns1 ./pm_nl_ctl limits 1 1 - ip netns exec $ns2 ./pm_nl_ctl limits 1 1 - ip netns exec $ns2 ./pm_nl_ctl add 10.0.3.2 flags subflow + 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 chk_join_nr "single subflow allow join id0 ns2" 0 0 0 =20 # signal address allow join id0 ns1 # ADD_ADDRs are not affected by allow_join_id0 value. reset_with_allow_join_id0 1 0 - ip netns exec $ns1 ./pm_nl_ctl limits 1 1 - ip netns exec $ns2 ./pm_nl_ctl limits 1 1 - ip netns exec $ns1 ./pm_nl_ctl add 10.0.2.1 flags signal + pm_nl_set_limits $ns1 1 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 chk_join_nr "signal address allow join id0 ns1" 1 1 1 chk_add_nr 1 1 @@ -1885,28 +1962,28 @@ deny_join_id0_tests() # signal address allow join id0 ns2 # ADD_ADDRs are not affected by allow_join_id0 value. reset_with_allow_join_id0 0 1 - ip netns exec $ns1 ./pm_nl_ctl limits 1 1 - ip netns exec $ns2 ./pm_nl_ctl limits 1 1 - ip netns exec $ns1 ./pm_nl_ctl add 10.0.2.1 flags signal + pm_nl_set_limits $ns1 1 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 chk_join_nr "signal address allow join id0 ns2" 1 1 1 chk_add_nr 1 1 =20 # subflow and address allow join id0 ns1 reset_with_allow_join_id0 1 0 - ip netns exec $ns1 ./pm_nl_ctl limits 2 2 - ip netns exec $ns2 ./pm_nl_ctl limits 2 2 - ip netns exec $ns1 ./pm_nl_ctl add 10.0.2.1 flags signal - ip netns exec $ns2 ./pm_nl_ctl add 10.0.3.2 flags subflow + 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 + pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow run_tests $ns1 $ns2 10.0.1.1 chk_join_nr "subflow and address allow join id0 1" 2 2 2 =20 # subflow and address allow join id0 ns2 reset_with_allow_join_id0 0 1 - ip netns exec $ns1 ./pm_nl_ctl limits 2 2 - ip netns exec $ns2 ./pm_nl_ctl limits 2 2 - ip netns exec $ns1 ./pm_nl_ctl add 10.0.2.1 flags signal - ip netns exec $ns2 ./pm_nl_ctl add 10.0.3.2 flags subflow + 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 + pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow run_tests $ns1 $ns2 10.0.1.1 chk_join_nr "subflow and address allow join id0 2" 1 1 1 } @@ -1917,10 +1994,10 @@ fullmesh_tests() # 2 fullmesh addrs in ns2, added before the connection, # 1 non-fullmesh addr in ns1, added during the connection. reset - ip netns exec $ns1 ./pm_nl_ctl limits 0 4 - ip netns exec $ns2 ./pm_nl_ctl limits 1 4 - ip netns exec $ns2 ./pm_nl_ctl add 10.0.2.2 flags subflow,fullmesh - ip netns exec $ns2 ./pm_nl_ctl add 10.0.3.2 flags subflow,fullmesh + pm_nl_set_limits $ns1 0 4 + 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 chk_join_nr "fullmesh test 2x1" 4 4 4 chk_add_nr 1 1 @@ -1929,9 +2006,9 @@ fullmesh_tests() # 1 non-fullmesh addr in ns1, added before the connection, # 1 fullmesh addr in ns2, added during the connection. reset - ip netns exec $ns1 ./pm_nl_ctl limits 1 3 - ip netns exec $ns2 ./pm_nl_ctl limits 1 3 - ip netns exec $ns1 ./pm_nl_ctl add 10.0.2.1 flags signal + 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 chk_join_nr "fullmesh test 1x1" 3 3 3 chk_add_nr 1 1 @@ -1940,9 +2017,9 @@ fullmesh_tests() # 1 non-fullmesh addr in ns1, added before the connection, # 2 fullmesh addrs in ns2, added during the connection. reset - ip netns exec $ns1 ./pm_nl_ctl limits 2 5 - ip netns exec $ns2 ./pm_nl_ctl limits 1 5 - ip netns exec $ns1 ./pm_nl_ctl add 10.0.2.1 flags signal + 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 chk_join_nr "fullmesh test 1x2" 5 5 5 chk_add_nr 1 1 @@ -1952,18 +2029,18 @@ fullmesh_tests() # 2 fullmesh addrs in ns2, added during the connection, # limit max_subflows to 4. reset - ip netns exec $ns1 ./pm_nl_ctl limits 2 4 - ip netns exec $ns2 ./pm_nl_ctl limits 1 4 - ip netns exec $ns1 ./pm_nl_ctl add 10.0.2.1 flags signal + 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 chk_join_nr "fullmesh test 1x2, limited" 4 4 4 chk_add_nr 1 1 =20 # set fullmesh flag reset - ip netns exec $ns1 ./pm_nl_ctl limits 4 4 - ip netns exec $ns1 ./pm_nl_ctl add 10.0.2.1 flags subflow - ip netns exec $ns2 ./pm_nl_ctl limits 4 4 + 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 chk_join_nr "set fullmesh flag test" 2 2 2 chk_prio_nr 0 1 @@ -1971,9 +2048,9 @@ fullmesh_tests() =20 # set nofullmesh flag reset - ip netns exec $ns1 ./pm_nl_ctl limits 4 4 - ip netns exec $ns1 ./pm_nl_ctl add 10.0.2.1 flags subflow,fullmesh - ip netns exec $ns2 ./pm_nl_ctl limits 4 4 + 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 chk_join_nr "set nofullmesh flag test" 2 2 2 chk_prio_nr 0 1 @@ -1985,9 +2062,9 @@ userspace_tests() # userspace pm type prevents add_addr reset ip netns exec $ns1 sysctl -q net.mptcp.pm_type=3D1 - ip netns exec $ns1 ./pm_nl_ctl limits 0 2 - ip netns exec $ns2 ./pm_nl_ctl limits 0 2 - ip netns exec $ns1 ./pm_nl_ctl add 10.0.2.1 flags signal + pm_nl_set_limits $ns1 0 2 + pm_nl_set_limits $ns2 0 2 + pm_nl_add_endpoint $ns1 10.0.2.1 flags signal run_tests $ns1 $ns2 10.0.1.1 chk_join_nr "userspace pm type prevents add_addr" 0 0 0 chk_add_nr 0 0 @@ -1995,9 +2072,9 @@ userspace_tests() # userspace pm type echoes add_addr reset ip netns exec $ns2 sysctl -q net.mptcp.pm_type=3D1 - ip netns exec $ns1 ./pm_nl_ctl limits 0 2 - ip netns exec $ns2 ./pm_nl_ctl limits 0 2 - ip netns exec $ns1 ./pm_nl_ctl add 10.0.2.1 flags signal + pm_nl_set_limits $ns1 0 2 + pm_nl_set_limits $ns2 0 2 + pm_nl_add_endpoint $ns1 10.0.2.1 flags signal run_tests $ns1 $ns2 10.0.1.1 chk_join_nr "userspace pm type echoes add_addr" 0 0 0 chk_add_nr 1 1 @@ -2005,27 +2082,27 @@ userspace_tests() # userspace pm type rejects join reset ip netns exec $ns1 sysctl -q net.mptcp.pm_type=3D1 - ip netns exec $ns1 ./pm_nl_ctl limits 1 1 - ip netns exec $ns2 ./pm_nl_ctl limits 1 1 - ip netns exec $ns2 ./pm_nl_ctl add 10.0.3.2 flags subflow + 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 chk_join_nr "userspace pm type rejects join" 1 1 0 =20 # userspace pm type does not send join reset ip netns exec $ns2 sysctl -q net.mptcp.pm_type=3D1 - ip netns exec $ns1 ./pm_nl_ctl limits 1 1 - ip netns exec $ns2 ./pm_nl_ctl limits 1 1 - ip netns exec $ns2 ./pm_nl_ctl add 10.0.3.2 flags subflow + 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 chk_join_nr "userspace pm type does not send join" 0 0 0 =20 # userspace pm type prevents mp_prio reset ip netns exec $ns1 sysctl -q net.mptcp.pm_type=3D1 - ip netns exec $ns1 ./pm_nl_ctl limits 1 1 - ip netns exec $ns2 ./pm_nl_ctl limits 1 1 - ip netns exec $ns2 ./pm_nl_ctl add 10.0.3.2 flags subflow + 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 chk_join_nr "userspace pm type prevents mp_prio" 1 1 0 chk_prio_nr 0 0 @@ -2034,9 +2111,9 @@ userspace_tests() reset ip netns exec $ns1 sysctl -q net.mptcp.pm_type=3D1 ip netns exec $ns2 sysctl -q net.mptcp.pm_type=3D1 - ip netns exec $ns1 ./pm_nl_ctl limits 0 1 - ip netns exec $ns2 ./pm_nl_ctl limits 0 1 - ip netns exec $ns2 ./pm_nl_ctl add 10.0.3.2 flags subflow + 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 chk_join_nr "userspace pm type prevents rm_addr" 0 0 0 chk_rm_nr 0 0 --=20 2.31.1 From nobody Fri Apr 26 22:41:06 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:a02:b119:0:0:0:0:0 with SMTP id r25csp345880jah; Thu, 13 Jan 2022 07:09:46 -0800 (PST) X-Google-Smtp-Source: ABdhPJyx3ERVnstXmxqla0gT19hZemuCQhfRlMmkrszxoKjmMLn8kyovqH8MCY5BngI+fX9TKcuL X-Received: by 2002:a17:902:aa8b:b0:148:ee33:70fe with SMTP id d11-20020a170902aa8b00b00148ee3370femr5177509plr.38.1642086586188; Thu, 13 Jan 2022 07:09:46 -0800 (PST) Return-Path: Received: from sjc.edge.kernel.org (sjc.edge.kernel.org. [2604:1380:1000:8100::1]) by mx.google.com with ESMTPS id np2si2968333pjb.173.2022.01.13.07.09.45 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 13 Jan 2022 07:09:46 -0800 (PST) Received-SPF: pass (google.com: domain of mptcp+bounces-3123-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:1000:8100::1 as permitted sender) client-ip=2604:1380:1000:8100::1; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.com header.s=mimecast20200619 header.b=PwGq1RRS; arc=fail (body hash mismatch); spf=pass (google.com: domain of mptcp+bounces-3123-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:1000:8100::1 as permitted sender) smtp.mailfrom="mptcp+bounces-3123-wpasupplicant.patchew=gmail.com@lists.linux.dev"; dmarc=pass (p=QUARANTINE sp=NONE dis=NONE) header.from=suse.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sjc.edge.kernel.org (Postfix) with ESMTPS id A50443E0FEB for ; Thu, 13 Jan 2022 15:09:45 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id D44C92CA3; Thu, 13 Jan 2022 15:09:44 +0000 (UTC) X-Original-To: mptcp@lists.linux.dev Received: from de-smtp-delivery-102.mimecast.com (de-smtp-delivery-102.mimecast.com [194.104.109.102]) (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 A12E62C80 for ; Thu, 13 Jan 2022 15:09:43 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1642086582; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=Pk2vVTdqSdjsLhTZ6R69xwHe/laxHIMIiAX328CQViM=; b=PwGq1RRSGKjD3ETdLwTKtfjr5XJ/Gv5JlClwH+oxcFsJ54RN2kNTurc5hjCzlLyKWYqHoI G2ge0573iuMir5SFno1CtSPOfPWPyp2/4kH8yiFn9bENude2ezAw62fsS+K+uzAjxGP3kT hwIUN81MMq5f2dSrIgLpQ7eQg+vE/FQ= Received: from EUR04-DB3-obe.outbound.protection.outlook.com (mail-db3eur04lp2052.outbound.protection.outlook.com [104.47.12.52]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-35-e443Z-m7ORie7NzimNEAMg-1; Thu, 13 Jan 2022 16:09:41 +0100 X-MC-Unique: e443Z-m7ORie7NzimNEAMg-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=EDY8zcSDhaxYoFPw3gP4hHZYgdw3vgDBh4aB+JwX1GXpLqAE1kQVwkH85ZRE/t4t1Z2bQ1YphumU1dh4fs9Qhfi6pXbilFXF0dYwVNwOFWxc5fLmWOuq01e6WMdhA5WTTQqRl8SiwLz8zePIyB0A+EUBHUZvGpjQlntO7gePxDxnZxU+7I3nTK55dM9j/BQz1NmFSYSykeudBheK97qtfTjlu1m1ukGdsmsia37aXZp2vpvXRTTK0eIBeMLEg1YK47TzgacPNhrVzXwlnmFEFH0wYA++zmRQ40rsWzWSAtvKVRBjeLFnvAKVHffEDcdOXyLItWxxekycHVfkYqFavw== 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=BufGqQERJQDuc9LX9Fmz32KkebCz65zInVqp79wlF2g=; b=QXKOHGvcIee3ZnAPbUeigXW9Eaeuqn1aAL7xuDCGUQiV38i7FwWJuLOKaaWUl2wQ/rhhCnDX6ggNfm/nv5wJmk623hIRRLPlzZdFSIREVYRocLsy+BgVIhFkwIMAgdspYDdTFXKxsh6dyXhQJvGM8lUfKnir94v6Qp0I+KoNe6XOljARLN2fBTDUJPKyawoH+nz2CHHyNnCgvl5msnjt742mv8JZRPKVW4mg+1bnTD/XxrgjTh8ITTETtA3pgQXgLPSpsyzhAFOBIhvK7mAdZNT7kgq74b0fi52BtnFCdHYKlJSaJoTCeHvcuUQpmUUT02qHxJJ2e9xIjnr8S+3q+Q== 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 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 AM8PR04MB7361.eurprd04.prod.outlook.com (2603:10a6:20b:1d2::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4888.9; Thu, 13 Jan 2022 15:09:40 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::b5bf:e1b5:42fd:4dba]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::b5bf:e1b5:42fd:4dba%5]) with mapi id 15.20.4867.011; Thu, 13 Jan 2022 15:09:40 +0000 From: Geliang Tang To: mptcp@lists.linux.dev CC: Geliang Tang Subject: [PATCH mptcp-next v5 2/5] selftests: mptcp: new approach of getting ID Date: Thu, 13 Jan 2022 23:08:36 +0800 Message-ID: <723e575b4ad64f2a2b6d186d94c8d09eb1545c52.1642086296.git.geliang.tang@suse.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: HK2PR02CA0159.apcprd02.prod.outlook.com (2603:1096:201:1f::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-Office365-Filtering-Correlation-Id: af13af0d-f8c2-49d8-0578-08d9d6a6b884 X-MS-TrafficTypeDiagnostic: AM8PR04MB7361:EE_ X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:6108; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: AgcR39qb2BdMrnA0qQyRs92TZdS4ySjBMZTqAsjxJvz8WSLUdCb0jaQGBzGbJF5myoaGbjafXunXdZ+6C08DHCVFujEao9xgdS4jtbUV63xFMvF8WTQQRJqVvsYFKyEK8XtMkmz3vPRBm8DN1wM2nGm9cGEiqzqxBbreEuzyRicvDG4DocpcXCGZNIm619BvmtKcamp4LqaY+ZaTHP91jvtyFLb/5YLthp446aoFUPKw1pxMXO3oax2K1VRrjjhf85HnuNjA3muSSeljsmPs3GLS7JrUiZC/p7Zj2f2GpT838uBBbACF0whOUHfUTBVVrgvxSLLGfuoduY5krCr5+DCd694tG121wm8XqAheSgOR87pPJTFRcypmIZm998WwQH18q95eCxk0ueyC9ogk9Ep9PX9UHOF7huhZIZ5WAMfhM10ESVkZb6bXwZqosDHZZQ3k1Yh5wGNiyuZnbFLS/wr+GeB5a5RmsjmXqsZO8MK3EANpk3K7IZiACHPGMQP0Am6wBQPlQg4xDA1Fl5u98C7/aGy6dDWc07cBDg/h9ZmtfOr2zBqY8cIcSt3TwVV1RbrpFlT9v8YDQgWBxAfw4OJgr7IlyqiTrPJs6HW5w6lrPXthLuOIEPCbvCIBHeI6vbWjJgvKSJ+jEc9wUPK9ow== 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:(366004)(6486002)(8936002)(86362001)(508600001)(44832011)(107886003)(6916009)(6666004)(38100700002)(316002)(2906002)(36756003)(186003)(66476007)(83380400001)(5660300002)(6512007)(6506007)(66556008)(8676002)(66946007)(2616005)(4326008);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?+XWBIgubEkFjU1xIERZ3p/upQLHIG9J3K7QV+y49FrouA8UEqGUYd2ZKXDcM?= =?us-ascii?Q?b0moFEQOC6Aq6gllrdkAsxvbKuWCRiD0hoon9cK/h23zZWNzWFNWua9abzL9?= =?us-ascii?Q?FJu3iCM1/sdGK/Jc5bT2lL+oVn7DM97Tec+D5h0s0p3j/X76CCWUq5LjDWEw?= =?us-ascii?Q?AQBLeBA15hFQmJA99Z2U9//3vIaqzdSrR1DW+Zia/WZYw/4fmF1LA6fx55Yu?= =?us-ascii?Q?da2qtySgx6kUldXHb8Gmrup5e+MmEfEAirc2MS/vyBo5u+sqqTX6AMNUjKsg?= =?us-ascii?Q?rH/euS+Cg5DgHb3w2WIzZD/Ih53jw+1mcsAYA6aSYI8B+Yr5pfMtqHOdnD2L?= =?us-ascii?Q?NYPDZAZmyWmwQ1gG48BBhMI3eJPRU1z/bYwXGC8pN4kP91b75yQUhfz9M2r3?= =?us-ascii?Q?LNFL7KshWXPgKkOy3XxyUE9IfTQKx6Sl4i5y2hQ0WmB7VVmwy8XbuaaJFKiO?= =?us-ascii?Q?l10FrYuJfjl+3Dsauub2y49kmjquirSpvut0lgaW7gG8YWkb0KQuBPzIx0dq?= =?us-ascii?Q?gQQ9gHNOyZknsyo4OWqNDb9IQJCk+UjRh8bNMNhE/SgJ05ldPjP9yfL57ZFF?= =?us-ascii?Q?sPy7rtUXSS9PDJx9AG4fM71TyuNsXincRpe1lwkscGLQOEsoIRMgPsoU5mrf?= =?us-ascii?Q?9uIekVWLtni/Ica8vnDtCybK3ym4Pjy1XyJrU317dpRw2n8Lu09tPe7+1rp2?= =?us-ascii?Q?pQqCbsNAttlVDrFp96Q0mWp3sTQhkzNCCWpLNZgFlS88FRUk2I9PGUXDt3t0?= =?us-ascii?Q?W2sAQv3LWzVr+D7FEfVoKvU8TNg86shBkMpFl4DBqoi7jMYiVZw/Pa00HgI4?= =?us-ascii?Q?iCul3QSA4SWsoUuoVMVa/cfq1S3RzP92DLNKmXMcd8QDkAA/Is/QelFJ/S8f?= =?us-ascii?Q?zVOQc2v9y9IesNPB2LW+DRu060cm2cYkH67BQG4c8OLA5lVYO1j4rW/kjp8v?= =?us-ascii?Q?XIjdo0NNPJjXHUvd5NU53iRv/ybfnZIXv4H0ujR/UtXQiw7Nrpa7WuyWHlN4?= =?us-ascii?Q?NGad3ofvkVrqvfeeMm1SUzblDG4nChcFIuazqlG5BMJuDTx0wsxGr0yJvvX/?= =?us-ascii?Q?GRVVwoGGZBgRKwrF3EBuSo8ObfcILW36ev8/F9JVOnASGDkO8blbvnmaSwue?= =?us-ascii?Q?z2Tl/SxeHbA91zviEaI3DOgDt3sUPa++s8BS4Gji9SMlsQe2raKgpuoFc/Tt?= =?us-ascii?Q?X8zLZRSN6jtt8BC9Eh2xEtPFTY9jYEuR1uWO7Ex3u/+2GepFvrWZbePIQL7u?= =?us-ascii?Q?g6U9UqKxt+4Oqcjf3W3M4JzWC8RNjZGL6wCcvwk5RTBGq4ZEBVZS4k08zTYs?= =?us-ascii?Q?CDSWj/KDRJTopZFCMIy/VJ3DewXVTS4fOSkVEBJ6tm4qN/WCs6gRrQUMaRc7?= =?us-ascii?Q?DnlhVgnsFg+ss5vRhAb6qfI8VfrgQfxvNm6+Pn99uvVszVtpGEN/weq60bhb?= =?us-ascii?Q?eCb8emg4TxglHEHkNc1crEA1R48vo+wXy861gs3qE3lwavwJAP52AsXUCHwd?= =?us-ascii?Q?W3Vl2lC8jK297nSwr9NZjHz2qo2MmsF3BVlpSroi9C84SyeRQ8b0Yn3QDn3Y?= =?us-ascii?Q?VaHNgYFQosKV+yZDddoL6P0rEdIsk1ORoeNB5piLhtVQfBG0lfNjAPBo2WCm?= =?us-ascii?Q?y9I6Jj2z5csU2NGsV/u6P1k8P7cqxb1eQo0Cpo0W8QZhGqDO19qyE6F1iViX?= =?us-ascii?Q?JaOFcaZuv+bASZ/SXdM4NKMND2U=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: af13af0d-f8c2-49d8-0578-08d9d6a6b884 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Jan 2022 15:09:39.9460 (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: i4H0WqP7XgHOrh6WB1KWnlrci3fSnCYGfUdOCpWRKc1PXuhQO4lKXS4F/Y6sxpSmKBdBQqLiiRog5yKcyTlSvA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM8PR04MB7361 Content-Type: text/plain; charset="utf-8" This patch implemented a more flexible approach to get the address ID from the PM dump output. The original 'pos+=3D5' in the remoing tests only works for the simple case of 'pm_nl_ctl show': id 1 flags subflow 10.0.1.1 It dosen't work for the outputs with dev or port: id 1 flags signal 10.0.2.1 10100 id 1 flags subflow dev ns2eth3 10.0.3.2 This patch rewrites it to fit for more cases and the output of 'ip mptcp'. Signed-off-by: Geliang Tang --- .../testing/selftests/net/mptcp/mptcp_join.sh | 65 +++++++++++-------- 1 file changed, 38 insertions(+), 27 deletions(-) diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testin= g/selftests/net/mptcp/mptcp_join.sh index 9954e0106c1a..9150007fec30 100755 --- a/tools/testing/selftests/net/mptcp/mptcp_join.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh @@ -472,20 +472,25 @@ do_transfer() elif [ $addr_nr_ns1 -lt 0 ]; then let rm_nr_ns1=3D-addr_nr_ns1 if [ $rm_nr_ns1 -lt 8 ]; then - counter=3D1 - pos=3D1 - dump=3D(`ip netns exec ${listener_ns} ./pm_nl_ctl dump`) - if [ ${#dump[@]} -gt 0 ]; then - while [ $counter -le $rm_nr_ns1 ] - do - id=3D${dump[$pos]} - rm_addr=3D$(rm_addr_count ${connector_ns}) - pm_nl_del_endpoint ${listener_ns} $id - wait_rm_addr ${connector_ns} ${rm_addr} - let counter+=3D1 - let pos+=3D5 + counter=3D0 + ip netns exec ${listener_ns} ./pm_nl_ctl dump | while read line; do + local arr=3D($line) + local nr=3D0 + + for i in ${arr[@]}; do + if [ $i =3D "id" ]; then + if [ $counter -eq $rm_nr_ns1 ]; then + break + fi + id=3D${arr[$nr+1]} + rm_addr=3D$(rm_addr_count ${connector_ns}) + pm_nl_del_endpoint ${listener_ns} $id + wait_rm_addr ${connector_ns} ${rm_addr} + let counter+=3D1 + fi + let nr+=3D1 done - fi + done elif [ $rm_nr_ns1 -eq 8 ]; then pm_nl_flush_endpoint ${listener_ns} elif [ $rm_nr_ns1 -eq 9 ]; then @@ -520,21 +525,27 @@ do_transfer() elif [ $addr_nr_ns2 -lt 0 ]; then let rm_nr_ns2=3D-addr_nr_ns2 if [ $rm_nr_ns2 -lt 8 ]; then - counter=3D1 - pos=3D1 - dump=3D(`ip netns exec ${connector_ns} ./pm_nl_ctl dump`) - if [ ${#dump[@]} -gt 0 ]; then - while [ $counter -le $rm_nr_ns2 ] - do - # rm_addr are serialized, allow the previous one to complete - id=3D${dump[$pos]} - rm_addr=3D$(rm_addr_count ${listener_ns}) - pm_nl_del_endpoint ${connector_ns} $id - wait_rm_addr ${listener_ns} ${rm_addr} - let counter+=3D1 - let pos+=3D5 + counter=3D0 + ip netns exec ${connector_ns} ./pm_nl_ctl dump | while read line; do + local arr=3D($line) + local nr=3D0 + + for i in ${arr[@]}; do + if [ $i =3D "id" ]; then + if [ $counter -eq $rm_nr_ns2 ]; then + break + fi + # rm_addr are serialized, allow the previous one to + # complete + id=3D${arr[$nr+1]} + rm_addr=3D$(rm_addr_count ${listener_ns}) + pm_nl_del_endpoint ${connector_ns} $id + wait_rm_addr ${listener_ns} ${rm_addr} + let counter+=3D1 + fi + let nr+=3D1 done - fi + done elif [ $rm_nr_ns2 -eq 8 ]; then pm_nl_flush_endpoint ${connector_ns} elif [ $rm_nr_ns2 -eq 9 ]; then --=20 2.31.1 From nobody Fri Apr 26 22:41:06 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:a02:b119:0:0:0:0:0 with SMTP id r25csp346118jah; Thu, 13 Jan 2022 07:09:53 -0800 (PST) X-Google-Smtp-Source: ABdhPJzb5njZxgtAV0s50sZmOpfy2C02ZSjP6BDXv/WyC6cs2Ok83ZHPbGRNRXMZlJm4ZhhHRwPq X-Received: by 2002:ae9:e318:: with SMTP id v24mr3410576qkf.248.1642086593109; Thu, 13 Jan 2022 07:09:53 -0800 (PST) Return-Path: Received: from ewr.edge.kernel.org (ewr.edge.kernel.org. [147.75.197.195]) by mx.google.com with ESMTPS id h2si1455038qkn.638.2022.01.13.07.09.53 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 13 Jan 2022 07:09:53 -0800 (PST) Received-SPF: pass (google.com: domain of mptcp+bounces-3124-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 147.75.197.195 as permitted sender) client-ip=147.75.197.195; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.com header.s=mimecast20200619 header.b=DpmV88dL; arc=fail (body hash mismatch); spf=pass (google.com: domain of mptcp+bounces-3124-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 147.75.197.195 as permitted sender) smtp.mailfrom="mptcp+bounces-3124-wpasupplicant.patchew=gmail.com@lists.linux.dev"; dmarc=pass (p=QUARANTINE sp=NONE dis=NONE) header.from=suse.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ewr.edge.kernel.org (Postfix) with ESMTPS id C0B081C0C63 for ; Thu, 13 Jan 2022 15:09:52 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 949C62C9C; Thu, 13 Jan 2022 15:09:51 +0000 (UTC) X-Original-To: mptcp@lists.linux.dev Received: from de-smtp-delivery-102.mimecast.com (de-smtp-delivery-102.mimecast.com [194.104.109.102]) (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 687F92C80 for ; Thu, 13 Jan 2022 15:09:50 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1642086588; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=Kd4e2AFgcFcFjQDy0IJna4J4mRyL7gobrT4pkp+TLNw=; b=DpmV88dL1oBjXn3BePGkV/YZ1Bt57S7JoVh8hZ5D5vAD7E84akAp2z12ENjIp1hz+ENOXH S6D04FWeV1t7YwVnxACn7B0RdOPqak7CKle1kxS3Fi1lQDUngH5h0dUaOI5uuZNHacgl5N UYae+/cAX5Kaqdi4cuVeW33rgFQ9fcE= Received: from EUR04-DB3-obe.outbound.protection.outlook.com (mail-db3eur04lp2051.outbound.protection.outlook.com [104.47.12.51]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-9-O30nlrcVOUedofJQeMAYuQ-1; Thu, 13 Jan 2022 16:09:47 +0100 X-MC-Unique: O30nlrcVOUedofJQeMAYuQ-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=LoMnxlYEwn9WZmidnYLo6sxziS4Yav8BUWX2UgFtWE/pEyR+kNBub2UycVft9ADbyqcvxWAlsT7XeCJi8SbsXkCX4lmkyQn20Czimvv4hrTO0mGD2jOI5FozsUO5S/pnJUMV6Kdu7ekXnNjnLHRKQ83r35oiN66CFnL8jq8vD94KPoCQuUkzDQndnU5rTzeLFVpjG2U2Sq5+yCq0RYfVtdRnWmXdhIuyDCeHH6kml4SRyVivCkD90Qx1VGvb9RTKokShjyody4O5nJDpXnuB8socVt5SjDUmEKk0D1GM5qSQ0d4hWjVyYgHvIEQ5LAsQc5neZH3nZsUAL/qjvVDCXw== 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=HoJ8KRhayw9EuJihr0SxhpBsGAk86luyvXgy1cv9G/o=; b=BEfEUr2B1GHkiopeRLN7plGwqRcNWgOOrqBNwivxB22pOuA2t/qH6cXK2tid7Dk4IKSXB56G7SeIvk5rXq9tsZe6Ukhl7H7++AJtvgSOpZioUacWUipgBmNtBCq/h3I+4Li2DTGCa12u9clB+Pkq//DrdoDa18ZxEyfjCW6AdPRoQEj14wCrC30NfdLRZETgG8bgOXHiwWKrIarXSFfCJiR1pXanbiWQAx+4ieSxY6mHCNujpI+0UJrlMVMJMkm4h3LVDYRYvFZFxRhIyLrk2jSr/Wahfj2Xic3mbgXJE8LKlQ2QXBgKiIHEhN/XqJQic+0D4WHAUlADi1tutvR14Q== 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 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 AM8PR04MB7361.eurprd04.prod.outlook.com (2603:10a6:20b:1d2::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4888.9; Thu, 13 Jan 2022 15:09:47 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::b5bf:e1b5:42fd:4dba]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::b5bf:e1b5:42fd:4dba%5]) with mapi id 15.20.4867.011; Thu, 13 Jan 2022 15:09:46 +0000 From: Geliang Tang To: mptcp@lists.linux.dev CC: Geliang Tang Subject: [PATCH mptcp-next v5 3/5] selftests: mptcp: add wrapper for showing addrs Date: Thu, 13 Jan 2022 23:08:37 +0800 Message-ID: <0b33d984c614b3ef3fa29056c3187ea9ef7fdda1.1642086296.git.geliang.tang@suse.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: HK2PR02CA0161.apcprd02.prod.outlook.com (2603:1096:201:1f::21) To HE1PR0402MB3497.eurprd04.prod.outlook.com (2603:10a6:7:83::14) Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 8d287dd7-2d62-499b-e857-08d9d6a6bc89 X-MS-TrafficTypeDiagnostic: AM8PR04MB7361:EE_ X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:6430; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: Spn7rKTnY5/Mm0pRbUfAWUO4+TehWvQtwxG3/Od/mJGmtTmTS7bbV1HZ3Ka+hw6vzdkL305nmt+VAqZRA3jiXKOvlweBgoxNkzwwl1/A0jc3WcpaYpTE68nfOlImR7PR/VegElCUe4EmIdQ6jXRq2ie8a5tGd3OogtHV0bk1n8OytYsUgtlwkaCkJHIkedGdA739STmb6XHiFv7iIfGp26zBioSkWryYTFZVEL79+dpAcqg5Bz98yo5ZwWaE3vmCZp5zR03Mw4GQbqKDSRF+2fXDWvIaPjTubEwZu1L6R5vdyeiTq8ivgrIQhpyc0OBDt3mc48Sx+Yot6MkNacOFpO0PTmOe+Mq/X9abwBdG3l4/dk7u63pROWLcWUJIfpDhJZfXJPEMe0LJhyd04yZ5AsvlViIln4kHPeBQxeG9mjz3QuA+hGpga3lnkzsnEL8myJheDHocRgzne65CX13S84L8yIv9eO9T50hwMzJydDUpRuAZ0sq0f3UCexdHZj32cVdB90FwlIsjilDr4Mwb37abb21fGdQLBDfpK9Ge5JOpCLA3Yqr4LA0IW3GeAPNz1emnzxqStvqmU+LVibl5MSN+d014e1Vz0egL80UMl0SRK8sxQLqLke0TP9Rf9nGYkMtAeTNZblaQcb0qugMmSw== 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:(366004)(6486002)(8936002)(86362001)(508600001)(44832011)(107886003)(6916009)(6666004)(38100700002)(316002)(2906002)(36756003)(186003)(66476007)(83380400001)(5660300002)(6512007)(6506007)(66556008)(8676002)(66946007)(2616005)(4326008);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?idyYCSnQTsGihIJLVkyy7WzaVjClOINKsHMhK4AsygUEEpXhkWCoTsnvzkd2?= =?us-ascii?Q?CusJwpy4cXiJhZkCqpITZ2TlSa5H5vk/QhSW7jO/TzlVsz3iojybDyxaIiN3?= =?us-ascii?Q?UOZVYK7mm59B7xLGTCxtTjciC7K3cmlJHm6HTjXl+hPoA5OHyx5k37a1OsaB?= =?us-ascii?Q?l2CTWhSV74mtCmSw+YYpEgu3SXIm7aulYp+6BfdCG0MUeVdtchj+OUkKkUUr?= =?us-ascii?Q?Kwe5JLg/bf9oVG4DFPlIS/bvNsg/INyKuq0ptZSIxELLp4acuaHKbwNrecaD?= =?us-ascii?Q?dx2PyaNf8IPRZHx01HWvgMT+Jn4F8YNCBPZNFftP99NAGJZPAy6awp/BJeGF?= =?us-ascii?Q?jHpj/63yFluBBplIBYkOPsyes43JqhZvDL1x4L7H25LNnpRwy6ZdGNYJFdiH?= =?us-ascii?Q?85ipGZl7clIY2HHNKu/LPK8DAohueLZrvYT/T3eWx0zeDs5Rau0HiVqvGTNw?= =?us-ascii?Q?ZI/2Lqz5K0wd147GpLZvu2fx+uRC82QqCQQeHg5l3h1TxE5gSiiwthuR52FK?= =?us-ascii?Q?q67VzPZ/Yrhayc5n6Q304bjlXt1O608WTbcb+I1XHsYWWBwYpM6azmKA5tn/?= =?us-ascii?Q?/fJnmbeStkVLqVXYXZ3BcaLerRrr9BzkIxgmfJof8Nd2z86pUE9KeCr2UAM2?= =?us-ascii?Q?RI6+GS3O/tndxjJxLweM+iWMTlde8rKSeJfGe7FL8Z/u4IbZ6uG+kDFSnang?= =?us-ascii?Q?2eYZwfo7yLm3TbEIhh/YQ7Wy59PbIs4nbIFbbNqdk4TSzvnX4Z/vd3UENJxu?= =?us-ascii?Q?iNqliFRmDBnld/5Dsoo2OxtJcdgAGKKh9M/RdiAsR+HfUHLaWs8eKZpYE81J?= =?us-ascii?Q?s0XVaMdE52ecD3fUyONR0mkOnIA2Yf6V6GEX3VMMN1Ce2t6eg7Mo2vArjjIX?= =?us-ascii?Q?PQKVuJLoYfVkBHahnkrPBgqrmtb+rTM92yGVvuS7QSMTxReI6BWq4t2pS/BM?= =?us-ascii?Q?KA+ozMJe9YSLnrjjnlIwVetqs6DXnPRqCDUMKgaQ/IdUEUdkyXIqfObOALQJ?= =?us-ascii?Q?OpyrxtwtDUdadYfUCGOp0UOkTd0NsoMB4bJq/lDT9NsZiWIJhUvA/XLcNwxk?= =?us-ascii?Q?ANlBgfA4UVbBrPWgst5tMvK33mh2jpN9hSqCBK7kHbMKsA1By/on0xu/nbKa?= =?us-ascii?Q?kd1CI2VuQzbuRHd+usrakVtewHqH1oPCi9JaOwuklsyTxW/4x2lmNmWcXO4I?= =?us-ascii?Q?QEqiwIIbeoS9B/QXP+V8R5cbJUfat4/XU2q6oAC97sZXjuEpZEjL8e7UWXCo?= =?us-ascii?Q?4jUznNm6Yswri01f/AX+XgIjmT+yOOoyf+jnJcFVMs91tKCs+kcrsjEAoHE+?= =?us-ascii?Q?RmIQnjDLVD2jOOXqUWAAFvpvk5K917Y2bE+IqdI1teF2viDAWHu6clBJuSuX?= =?us-ascii?Q?63saAguZo+5TR7gBqoQrQFSDKZH6IjP9HMrWWRZFPwXPSHkZzglI5FIAyCYj?= =?us-ascii?Q?ED/NOAqyDV0q84KcUFMeH46GkJSipTxq7k2Cwv+3xA9uc8dmGCb2pdfQu3/1?= =?us-ascii?Q?3I68y5I9tkGHYM+PQ9LSFO8z5WOLtBuyfA0r2rfwfcWDkxZ5PrAWVUGi3/4a?= =?us-ascii?Q?bkkaeCPCl1E8sASshK2kOPhnlCE2nCacM9EJkThiBOMtql1BUJkCeVwEH7XC?= =?us-ascii?Q?l5jRx46TDvpHo7Gl9FUQ8pEvwLTh0QsLu8cL20vRGIN0sC3IVk/yaF1z8Vri?= =?us-ascii?Q?+oUM3E1ZoDhZsnAZmWI1VIEGgtI=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8d287dd7-2d62-499b-e857-08d9d6a6bc89 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Jan 2022 15:09:46.8830 (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: AHuvhZrx1NkdyJv+YgmaEtlhcFqbVrQRCfDcDT/lHRKe94FN8/TORh2F9xU0jCAuAyIyWj3fO1NsJY8JqTzM1A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM8PR04MB7361 Content-Type: text/plain; charset="utf-8" This patch implemented a new function named pm_nl_show_endpoints(), wraped the PM netlink commands 'ip mptcp' and 'pm_nl_ctl' in it, and used a new argument 'ip_mptcp' to choose which one to use to show all the PM endpoints. Used this wrapper in do_transfer() instead of using the pm_nl_ctl commands directly. Signed-off-by: Geliang Tang --- tools/testing/selftests/net/mptcp/mptcp_join.sh | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testin= g/selftests/net/mptcp/mptcp_join.sh index 9150007fec30..06b1a3823bb4 100755 --- a/tools/testing/selftests/net/mptcp/mptcp_join.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh @@ -365,6 +365,17 @@ pm_nl_flush_endpoint() fi } =20 +pm_nl_show_endpoints() +{ + local ns=3D$1 + + if [ $ip_mptcp -eq 1 ]; then + ip -n $ns mptcp endpoint show + else + ip netns exec $ns ./pm_nl_ctl dump + fi +} + do_transfer() { listener_ns=3D"$1" @@ -473,7 +484,7 @@ do_transfer() let rm_nr_ns1=3D-addr_nr_ns1 if [ $rm_nr_ns1 -lt 8 ]; then counter=3D0 - ip netns exec ${listener_ns} ./pm_nl_ctl dump | while read line; do + pm_nl_show_endpoints ${listener_ns} | while read line; do local arr=3D($line) local nr=3D0 =20 @@ -526,7 +537,7 @@ do_transfer() let rm_nr_ns2=3D-addr_nr_ns2 if [ $rm_nr_ns2 -lt 8 ]; then counter=3D0 - ip netns exec ${connector_ns} ./pm_nl_ctl dump | while read line; do + pm_nl_show_endpoints ${connector_ns} | while read line; do local arr=3D($line) local nr=3D0 =20 @@ -562,7 +573,7 @@ do_transfer() if [ ! -z $sflags ]; then sleep 1 for netns in "$ns1" "$ns2"; do - ip netns exec $netns ./pm_nl_ctl dump | while read line; do + pm_nl_show_endpoints $netns | while read line; do local arr=3D($line) local addr local port=3D0 --=20 2.31.1 From nobody Fri Apr 26 22:41:06 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:a02:b119:0:0:0:0:0 with SMTP id r25csp346326jah; Thu, 13 Jan 2022 07:10:04 -0800 (PST) X-Google-Smtp-Source: ABdhPJyBhrdlpyypBdBO/9dLDMJ1SC7cp238DkOSKplBRMTZE4frMchRLTiT+Z1TWKKxQew3vS/3 X-Received: by 2002:a05:6830:44ab:: with SMTP id r43mr3546321otv.162.1642086604266; Thu, 13 Jan 2022 07:10:04 -0800 (PST) Return-Path: Received: from sjc.edge.kernel.org (sjc.edge.kernel.org. [147.75.69.165]) by mx.google.com with ESMTPS id t24si39795oiw.12.2022.01.13.07.10.04 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 13 Jan 2022 07:10:04 -0800 (PST) Received-SPF: pass (google.com: domain of mptcp+bounces-3125-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 147.75.69.165 as permitted sender) client-ip=147.75.69.165; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.com header.s=mimecast20200619 header.b=YrNt9Mzq; arc=fail (body hash mismatch); spf=pass (google.com: domain of mptcp+bounces-3125-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 147.75.69.165 as permitted sender) smtp.mailfrom="mptcp+bounces-3125-wpasupplicant.patchew=gmail.com@lists.linux.dev"; dmarc=pass (p=QUARANTINE sp=NONE dis=NONE) header.from=suse.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sjc.edge.kernel.org (Postfix) with ESMTPS id 78E743E0FE8 for ; Thu, 13 Jan 2022 15:10:03 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 5EA102C9C; Thu, 13 Jan 2022 15:10:02 +0000 (UTC) X-Original-To: mptcp@lists.linux.dev Received: from de-smtp-delivery-102.mimecast.com (de-smtp-delivery-102.mimecast.com [194.104.109.102]) (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 AE5D52C80 for ; Thu, 13 Jan 2022 15:10:00 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1642086599; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=uNVtYcJK6vuVSkIheINpN94YYpqtGl1UyW51FBPOvZE=; b=YrNt9Mzq1dWaK+vs8rbIetASqJNRcztyHVjI30wefXFkkiwCjFWtvbdYuQbTSq2RtvS8fJ m1IHrxhjjH4zE5NDphMtjqE/M1S1Zm+Gx3gfue7mWzr9da/5iBFarG6iA9ipHGYyPhx97J ryXYq2up9l377+qiSUKD1QcwR+9nRz4= Received: from EUR04-DB3-obe.outbound.protection.outlook.com (mail-db3eur04lp2059.outbound.protection.outlook.com [104.47.12.59]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-37-TSbeUaveMg29yJAMwyUgzQ-1; Thu, 13 Jan 2022 16:09:58 +0100 X-MC-Unique: TSbeUaveMg29yJAMwyUgzQ-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=FurLu2PVxzCACYulQb9xD16+qmepDYc/IYsZ5xBlRlgxPfp8Jp8Hb73STTpx9ZYBClpWcpN6Cf/UAfp4zG5/KC74eslnIVdREsmtCXGE1KXFcCOVMg99GcF5s1NlcsdLhEOZIzB5GKRKHxOyjOe/RIo1AJpNxu6z21D5l/6Tebkz7Kzk6CHqjXbK9ktfHNlpF6gaaNF9n9zzEyBsJa4+oK5p3PX7YIB+h3qCMk/Hr2nRZNmS67La6J72Up0Chwxc+HycWXEbh33VSR7EKE+bXA2Pw4RnkGqrrU8XGeFxJDbnADoH8ON0HQL+2tEQkHVb3lVb12CV4NkpbNuMcjKMXg== 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=9z33dTlhWch9eDLNhhCW6UM4aJgFzu1I98VpoP5mde8=; b=TT59c5zWJBf68x1iYtK7IbWrxXCXZOfAJyBdWXa87/beSoUBJPIpE4cbNp19WW5LPnegWAtW7noD/g7GPMi+1Rpz6fjSvi6ptSJBNBIccFMncpQo/bq3bgv+eFQbdr3wIKihIhuKvPokLgkCbTaJ37FO35W/z0yB3eYneleJiH47ViLL4arhmTkfPJFTGaXnRQGr4NQYi+SK5yes7XqAt4eMipygFJ7LdxNUsu/hgheMPUKdeVdwsnHTUMqHoeh8K+T7ODNhEWQ9GaWTcPQLn9fl8ZLoZWnXickwWmo+vJJSNtX/NvjsiWxvQ7VVxssTdpgJe/IX3DdNSCnToUpL2g== 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 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 AM8PR04MB7361.eurprd04.prod.outlook.com (2603:10a6:20b:1d2::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4888.9; Thu, 13 Jan 2022 15:09:57 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::b5bf:e1b5:42fd:4dba]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::b5bf:e1b5:42fd:4dba%5]) with mapi id 15.20.4867.011; Thu, 13 Jan 2022 15:09:55 +0000 From: Geliang Tang To: mptcp@lists.linux.dev CC: Geliang Tang Subject: [PATCH mptcp-next v5 4/5] selftests: mptcp: add wrapper for setting flags Date: Thu, 13 Jan 2022 23:08:38 +0800 Message-ID: <8a2d91283f44b89e855aa838ed9ea4985370aaa1.1642086296.git.geliang.tang@suse.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: HK2PR02CA0206.apcprd02.prod.outlook.com (2603:1096:201:20::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-Office365-Filtering-Correlation-Id: db592261-8bb9-45ae-1f10-08d9d6a6c16b X-MS-TrafficTypeDiagnostic: AM8PR04MB7361:EE_ X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:4941; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: n0GU9Dvns3x70ILUOyVzHflHOqc2u0x/fUsSAz/W8tGuk3ZDqgVKuod2vYNMo9iT7TrRB+OafJkVuNGs8zKhpjO5ZFZ9NxhUXUc2uT0igxH2t7UOIFnHuqoNjlbj5mW5Ad0xg11PsBqFliAerel7Qe9Ga+ONznx5ZeSf91xRJWsGuI8PrjzL2x6Q1hGIRqzFWB002EN2P5e0Rd8dWP//i0q1rE78tFLs9ANIR6ccEvktVpVWxhEsCGGJt61GXF5mTMTpQiRDA9HFGU0BEH2s4r/3FKhchNM8IMaFahAQA9I5kZ5irgwrpgie0hV58VgX5y3Rq+RfL6M0Yh565gq6Okqi7Ywd8+OzL/3prc8ZFr+9UxgdDfN1R7M3zPHrcTtwYFnxos+jhxjQR2LoE2PZLZLv9YbtRxh/cpftPTMj4r8QZdUGhecxbNpKzfa33Pz09MSOgyD15Ff2wU3Gs8nONJjvYJTuRBhNL1hhgr8c9AtgAUlaAs44N4QFwqGTBbnZ0RKNp5//NyCLaPB1VO9L8hCmfRL36kSnKr3XoS0shQiO3eBCIlgPR1DXzxT7SECwMu2x+FIzkOD6zVIYDT7dtp0JtKMFQ1A7iRtZgfgE17FRKql08lPFPpIF79U7JMVUMQHfg5Ud7Mgh7cXcHl2Nmg== 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:(366004)(6486002)(8936002)(86362001)(508600001)(44832011)(107886003)(6916009)(6666004)(38100700002)(316002)(2906002)(36756003)(186003)(66476007)(83380400001)(5660300002)(6512007)(6506007)(66556008)(8676002)(66946007)(2616005)(4326008);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?wxSv3BXP7mwvSA7qsQ4PLRTOXZc4d3pABhhXMx/puhsWQPdKy4YyNltKvQG+?= =?us-ascii?Q?m9HhHahf8yS4dI/ndPjZHjlUFFgH3w7S7d1vJTWI8N0IX2SzSJeq5zuGfuNk?= =?us-ascii?Q?/n59+1e+NYcvUf9ubMf9seJpPXIbLZp0HpQN/Z0ohKOGEviWLTfJu7XJ9M11?= =?us-ascii?Q?azvkl8EfgoVER7p2YOfW0+VRES6g2h2NdUuL3H6sxb+4Nxn86sAiZsQ39OGk?= =?us-ascii?Q?Q5k3B13B4Jk2vLgrd37hz6X66yarmWFaWEAVh4cT0F0jyMSRNfinRni5VLFz?= =?us-ascii?Q?4gagxbYEYCMfjlG3DpgC8vaESJBCAmgXFQxL1hfSP7mllGRYEFecnCvY9C35?= =?us-ascii?Q?UGM1Q1nj75EPUOZSHxArME40ZcKyLijU3L5T812AWOJVhaRPELg4pRl7upoi?= =?us-ascii?Q?PimosJrih92TvYbePrXFaqJY8CaKVvE/MkuijVsZm4iWuLc/Wnh3WA2CkUX7?= =?us-ascii?Q?RF8crpgK8mZTg7AdCYJ1Nkk8gqnpzpJsY1wI5AoouCCo+PXWLJrIdi9y9QxQ?= =?us-ascii?Q?fDNax4TF2uHNaR5k/kb773w88lRyJ080ERh8rhteBqnA2T0BBXnhZN4ttTMe?= =?us-ascii?Q?q6A89m3EOumOpLtBBJnz1fTsXSiR7Q05D9APNl/9cBGLT8ntH2a1hd4Mde1/?= =?us-ascii?Q?48dtJ1VZrG6V294sFmlEDXChP9oustxUHO3zv1T7I3YfPUkfhtgZvqZuMHCr?= =?us-ascii?Q?762ymJNFfjqWcK1UMHz1EMZUkFupZgejbs98s1Ac/b5WhZTLw6klHKXNdgC0?= =?us-ascii?Q?sFjGajDpTMxvZjZEhE/O6LtYNHcCkCTJTR6+OzQ3ekUCLxDSICavb++7OZgG?= =?us-ascii?Q?7V2iak7eMl+BKrJI2qsmSxwejvhtPcG+eLaqgNaXkDNQCfAKjeVPUNeeo/6M?= =?us-ascii?Q?pQ03xGoqbpksqqfZcS0jlno3bXX/pb+pcugeAPChcusrrswaNFR1PXeib4jU?= =?us-ascii?Q?9+Ei+GNgf5MkzIwyQl5nU5/jFzI4Lq4z6bgmbJtQsiHIGBZZeOXbssHtkst1?= =?us-ascii?Q?9e/YEoBYgC8r/SfdTBqkDsf6sKagUX4iQot+awOtXHn6flQPXg+1epL/nyo3?= =?us-ascii?Q?i1Y1RY31IjT+nBSvxjAQMD4K4LE6yS7j9z4YWUrxPxKAg0VFS7aEAyYznd8H?= =?us-ascii?Q?FxEy6d87o6FziS95jSoFolvHluapsQk7VqXtEm2FyNRZ/mvsa33LTcdQnlnk?= =?us-ascii?Q?fZed4HmIe1UkIjt4Dzm1rxWNtYcHxSt3DcT4WLRe9XNChLjVpyX8ruYulw4J?= =?us-ascii?Q?lacT0Z31nov0yvahMQwkNSxTW8v0qEIg0DeM5QPGCQnbZNsPyygCnsFwGoff?= =?us-ascii?Q?1UgZz4BibSA8IkJ+GqM1yPzu50jQj/yFSlYNGCtdgw3Fzs70EyUcJyI37jyw?= =?us-ascii?Q?yuYhhF4ZVDe5qnK3FnOS3JgGKrXZn4ZqK8pcxaBNeJAeDloCbO8sSyX0ABq+?= =?us-ascii?Q?nlTiVGmQ1SYZmJPjJMH6DKTDSjFNOaOWf+DFLf47uwQcXtH7RmQXCUGMDJJY?= =?us-ascii?Q?cLhkVL3yf+WxULXsJH/25vK+1qXkwu8ypIpTOwFfvQqkK/5C/3AXDBtY9BfO?= =?us-ascii?Q?WoQH60EvLC4R59DEL1QlY2wXOFu5ZzP4WK7B2vD5/T6kIV7qGKmisK+QZIZG?= =?us-ascii?Q?xmM+3CltNyItvjtW2qwZMDRHmx62dhqBH9rDsQ4VTKb4LLwtGp1GPB5EI2hZ?= =?us-ascii?Q?W2TVtZsQSUMldE6InsqwmTJ2T+Y=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: db592261-8bb9-45ae-1f10-08d9d6a6c16b X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Jan 2022 15:09:55.0698 (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: FvhK86NcEGIXuipjUV6kS8TEcGg+yuvzflKaXfCeUEecyEbcnPLiQthMWuX79taKq1N+RG/KljxJGbuEMWoESg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM8PR04MB7361 Content-Type: text/plain; charset="utf-8" This patch implemented a new function named pm_nl_set_endpoint(), wraped the PM netlink commands 'ip mptcp' and 'pm_nl_ctl' in it, and used a new argument 'ip_mptcp' to choose which one to use to set the flags of the PM endpoint. Used this wrapper in do_transfer() instead of using the pm_nl_ctl command directly. Signed-off-by: Geliang Tang --- .../testing/selftests/net/mptcp/mptcp_join.sh | 31 ++++++++++++++++--- 1 file changed, 26 insertions(+), 5 deletions(-) diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testin= g/selftests/net/mptcp/mptcp_join.sh index 06b1a3823bb4..529765f3ab5e 100755 --- a/tools/testing/selftests/net/mptcp/mptcp_join.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh @@ -376,6 +376,25 @@ pm_nl_show_endpoints() fi } =20 +pm_nl_change_endpoint() +{ + local ns=3D$1 + local addr=3D$2 + local id=3D$3 + local flags=3D$4 + local port=3D$5 + local _port=3D"" + + if [ $ip_mptcp -eq 1 ]; then + ip -n $ns mptcp endpoint change id $id $flags + else + if [ $port -gt 0 ]; then + _port=3D"port $port" + fi + ip netns exec $ns ./pm_nl_ctl set $addr flags $flags $_port + fi +} + do_transfer() { listener_ns=3D"$1" @@ -577,7 +596,8 @@ do_transfer() local arr=3D($line) local addr local port=3D0 - local _port=3D"" + local nr=3D0 + local id =20 for i in ${arr[@]}; do if is_addr $i; then @@ -588,11 +608,12 @@ do_transfer() port=3D$i fi fi + if [ $i =3D "id" ]; then + id=3D${arr[$nr+1]} + fi + let nr+=3D1 done - if [ $port -gt 0 ]; then - _port=3D"port $port" - fi - ip netns exec $netns ./pm_nl_ctl set $addr flags $sflags $_port + pm_nl_change_endpoint $netns $addr $id $sflags $port done done fi --=20 2.31.1 From nobody Fri Apr 26 22:41:06 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:a02:b119:0:0:0:0:0 with SMTP id r25csp346429jah; Thu, 13 Jan 2022 07:10:08 -0800 (PST) X-Google-Smtp-Source: ABdhPJwfxrrFbZ0/veodFeIXkwDrYEWs/0vS5BVilS1sr1IgEDa7b/WECzwsPXxZh4TvasDfCW6a X-Received: by 2002:a37:f505:: with SMTP id l5mr3414459qkk.193.1642086608743; Thu, 13 Jan 2022 07:10:08 -0800 (PST) Return-Path: Received: from ewr.edge.kernel.org (ewr.edge.kernel.org. [147.75.197.195]) by mx.google.com with ESMTPS id p7si1299087qtw.464.2022.01.13.07.10.08 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 13 Jan 2022 07:10:08 -0800 (PST) Received-SPF: pass (google.com: domain of mptcp+bounces-3126-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 147.75.197.195 as permitted sender) client-ip=147.75.197.195; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.com header.s=mimecast20200619 header.b=nkht61hy; arc=fail (body hash mismatch); spf=pass (google.com: domain of mptcp+bounces-3126-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 147.75.197.195 as permitted sender) smtp.mailfrom="mptcp+bounces-3126-wpasupplicant.patchew=gmail.com@lists.linux.dev"; dmarc=pass (p=QUARANTINE sp=NONE dis=NONE) header.from=suse.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ewr.edge.kernel.org (Postfix) with ESMTPS id 74D6E1C0D08 for ; Thu, 13 Jan 2022 15:10:08 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 0B17C2C9C; Thu, 13 Jan 2022 15:10:07 +0000 (UTC) X-Original-To: mptcp@lists.linux.dev Received: from de-smtp-delivery-102.mimecast.com (de-smtp-delivery-102.mimecast.com [194.104.111.102]) (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 98A642C80 for ; Thu, 13 Jan 2022 15:10:05 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1642086604; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=ioXXm5dj2cySei/OvbdNURbSrfrkcuyd6tgU4t95UrQ=; b=nkht61hyV7jMZsnPgtBMWByXJT8diiFUU/UDfRiJIT2IouGRCp/hcr6yZ5WPXtlGttehTx 7AAxubjHyvPwIPRQlAVtGDd/Zn/bnw0worpxrDQxXK0cxL9/VUUmp6DmCZZ9SELTGShxVW ielw1vwhmXRgwtx2EvVBldCLGv6+y+Q= Received: from EUR04-DB3-obe.outbound.protection.outlook.com (mail-db3eur04lp2051.outbound.protection.outlook.com [104.47.12.51]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-36-df7xcGvkPmGL6oSKIi20aw-1; Thu, 13 Jan 2022 16:10:03 +0100 X-MC-Unique: df7xcGvkPmGL6oSKIi20aw-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=oIwmCLoqiR7IaZznQ5Ivfu4OTEBNMod+IQQuKc/2jr761EEQ6amPspy8skJPlZ1nXotHLzEqyeR6F8K0Hzb1tdfXQrx3euA6wEUv9Rn9+Y/4OVAeuIsSSAT29AktL/FV77DTp4I5Y/ATIi3ii8vYh8ZTHuDy9RqUReS9YHlq5WSTTlLDy4pBj94vkEQ779R4YZDbEpdaf5lsNk0GFTiLQmrkmlfLrOOMWLB32m1pyN7sVwiILopaJUAdmwSdwGFTnxEemMpByrUiAlas49XaK6435TjkyU1NRsdEk/HtTttQBMFR8JEnIKJca8OYhLIXs4kdJWWi7cxMiLXphsEQ2A== 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=peXLm9e9r++ppynZFAbEO2UtPGF+bU5j+xe6QidYMQk=; b=GgChwQB1ys8Oe38J4HR+dkFHiB9tZPCgbs4+B1b581CrppVJZnkPHlaMFc/RcWOg2xovF3txYSpUmYQqBjNvMb33KwiQtaupCa6v9asw8jX2DPA5MiCIzatIHmBEX/gZJ0zU2KGBakk9HcIXNH9ANGTWGamK6i46johcLs7g4GPotx6TModoG3OfezFjhoU6iJ4mciG1A6H+93cbA11bSqvkg9OQDFQL1DmsDF9jRaEt8u92tg/hiCtTqinFS4pu9z+As6O66unYHOkxu1TTfEsxnmtImMARwCqw+mvMucC/eUVUNVk56zSFi5KhvJxRV2QkkcjK6XEh55hbM5+p9Q== 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 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 AM8PR04MB7361.eurprd04.prod.outlook.com (2603:10a6:20b:1d2::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4888.9; Thu, 13 Jan 2022 15:10:02 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::b5bf:e1b5:42fd:4dba]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::b5bf:e1b5:42fd:4dba%5]) with mapi id 15.20.4867.011; Thu, 13 Jan 2022 15:10:02 +0000 From: Geliang Tang To: mptcp@lists.linux.dev CC: Geliang Tang Subject: [PATCH mptcp-next v5 5/5] selftests: mptcp: set ip_mptcp in command line Date: Thu, 13 Jan 2022 23:08:39 +0800 Message-ID: <01aa080335478b774fe99f83167fcbec53d86302.1642086296.git.geliang.tang@suse.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: HK2PR02CA0205.apcprd02.prod.outlook.com (2603:1096:201:20::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-Office365-Filtering-Correlation-Id: 1652afd0-a122-40e9-124a-08d9d6a6c5a3 X-MS-TrafficTypeDiagnostic: AM8PR04MB7361:EE_ X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:2512; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: GwlgJVUSr3IaSk8yODYPYP7nHTNF95pQ3ybmRvEZmXMG7+1TF6WT2jqp51CzodI6WKtCqXk0+Ugq6wI8v1q7rfwL56ydfHmmtkjWwsRbEllHq2uOpjLwSPm6cll7Gf7AvAOM28ZleeO5sq9xAM8z8HI8UuCa22tapokqrsGt2TNdrzd+qvNBNw+D4QpdWoH83WhB4dlzuDhKJem6jyLAaB8QeOwCWgIKPDCpJd6fl/5bJ30NMLi12N3uVtbaeuG6plKhqsvvN9IuNPPoGxQDqYRSEj0/VlQG5FHWLIgKMRAVgqu0jB2OrETjqIFpklbBiR4iQlegWKLUY/RBZw2fHvUCBk13pZAJetk8KjjNeSXcSfhC0kLX+5N+uc8Dkww6QnH1qP+kOZmH5619ZxuX3G2b67CkjiE4tIRNA9PTI8tvQNylB0z9gtOKpV9Or1HaF6Zj7XE1WoXn5374NBYVNH3ymGwHypLyG2GPCpVd4J1zlQVy0ujY/J/avRjuYLBsQ59zrG+BDViJyliBf2od/TiOMA53a37XeQ8O6h59oqcWLbAINsiH2kLthAA1n2TXpOQRju6+T3LUTSt6PbPyLX23smTFJgOrEWIqn+65IkSUn3GiNQB/wBlSNUP1SZH7Dsh2DRbDdZ8CHX+BQvDI/g== 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:(366004)(6486002)(8936002)(86362001)(508600001)(44832011)(107886003)(6916009)(6666004)(38100700002)(316002)(2906002)(36756003)(186003)(66476007)(83380400001)(5660300002)(6512007)(6506007)(66556008)(8676002)(66946007)(2616005)(4326008);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?gCfFYOSQSBUIfJp2gogyqnZvGDY57OKWdEG01cc7U4IiCJAsi+jueB/crKIX?= =?us-ascii?Q?sRo2H/5VACSVEv4zYV+iDKeHQYFnKC3+pxGivIRHEDZafXrYbBT80bIDoKMH?= =?us-ascii?Q?1mdMTw9u2NOrLlZVzixwz+m2XFNrsf7uhGyEorDdOHJlOvRJOXolN2F0viz6?= =?us-ascii?Q?7iOtxvji+Bw1FxqPnmwnTegSA1a63/oOrLSN48qftRPIoF4ZWOpiz/mC4cD/?= =?us-ascii?Q?gJ+4t0UZn1krm48gFUFrwGdy2mV1Fq+0ySGosMtJyprPkyf/MOIxpA5wdV6/?= =?us-ascii?Q?3m8tqHLIaV3RLYcFrJDA9/HK7kaQpTOnYSn56IUfrm/8rRiBjL6vrl9E+hEE?= =?us-ascii?Q?1jAUplgKjBW6GGuQTVlIvu+rrphzrUONLKURZtxrXlK0FiahTdGopllT3t7v?= =?us-ascii?Q?bkFEKEP7KVhgt7bW9VVzS6EYEW+tVLulUyNaAqsMeuDsa9EV6+uiOzglzdij?= =?us-ascii?Q?NAAYxiE4+CnC/9mdEu8/4ytcXO109ilbIhbj1HEcgLd3LQijuPCF2IucIg9m?= =?us-ascii?Q?efnO6ZTT+8P95w653TMXXlSGgjS7JJ5UIgIBVco3YhNmACyIzp77Md/x5F5M?= =?us-ascii?Q?1w8OkUnIKrulSgVgFTEb2bhc/KCW2zRLwWW1aiJqtWhh0V5wCnvT3mh/jfSM?= =?us-ascii?Q?431dz2/+FkLEtTSU7xiJeCkndsaWpHiRa9sKjNDbt4PTJx07ipyagqpLptHr?= =?us-ascii?Q?CIQJIY4+sXhkZ4MK2L1Lh/7j+GIEnMhb0oErfL1+yO88MBZuxUqRgcpWKWEL?= =?us-ascii?Q?xvDFX4CbpRNwz3XpekPRToNH/mxT6oRWdNDFPP8qHdHg6T++mlUiymtTBv9T?= =?us-ascii?Q?HETDj1ZLZg+MF9paMxY2U90K4dFXx1bIou8/6N3Cc4xnNIXJFmqNYbY6vOZz?= =?us-ascii?Q?eEvzIffkEptkEriTqjIbMGX+jTvmPaUeN5h84Hh94RiChJgKNbB7tzLdLQCW?= =?us-ascii?Q?yBbhOVRGZTRLLZ5+eN1Wku37QYgTzwUEeq+1xMrpN8Dot6IEVcbOHMEDGp7a?= =?us-ascii?Q?dVdbIPSkMwTZ34/ThvyhH2qTF5/7h7GgQse8kOpNprWxzCeQdkeRfWlGM7gk?= =?us-ascii?Q?9FpxZZzuLD1FVpOVoUQAYn4bPWFaIH4FKeugVTbWyHufMFYqZTK3bsqn5H/g?= =?us-ascii?Q?n4mzA4/z9R/Ycv71/elMsJTyeWzeZMi1Kkk0o9HPOw9if+mv6eDph5bzGFEM?= =?us-ascii?Q?gPxsnJ9cbn99qprzvDoYUviPeqe3XZLymYTuUPECVhxXV4xNL9m6AoApGhTe?= =?us-ascii?Q?c1UUdbUflCECKxZKd9Lna98poWp2Bv2OX6o94EU4j6/mSmYzyaCH7bsEJk69?= =?us-ascii?Q?sh1Zub99uqBPQvaBz4KvAbdQ8HHsyjTpwIq10fGmUBQC3m4uZ2wWCsgOwRSo?= =?us-ascii?Q?3+QnPfyg6Ja8baLti2+Qd4XPcE0u6u3t9JHZFKikzN2AAoJMACZ9GPpU47wV?= =?us-ascii?Q?iNHXBUaanfuWuaXRh7h5JvTCuk+n1PPbN+XBS6tg8klo7Mr/KvA50bsbaqYX?= =?us-ascii?Q?KVkEBD6f6RrsSPyU7GFYdBxVmrosDfrwdTopntOpnsQp0reI2EiUaqVhllcV?= =?us-ascii?Q?IJwgUPGE/+jW9ycbOElapamMXF93X46J2VhgQqIaPQqkYQ+D9zu8tPxcZYvq?= =?us-ascii?Q?Yzx3qHJhl8ogOR7c7OJDaLO1jsgYG2JlkvBpxpd18A2WmiPBezk/vv8g2ZGv?= =?us-ascii?Q?5V/2rtapRWD48IoEqqsraMd9rBE=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1652afd0-a122-40e9-124a-08d9d6a6c5a3 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Jan 2022 15:10:02.1318 (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: 29BxZ2eTAxQoJk+yMTXd3K9SnM2CQIZDgOBbsU1WeXXGLeNxhUwuTU4BKxIH9O7D36d73+3gYD8nqfOeltRA+g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM8PR04MB7361 Content-Type: text/plain; charset="utf-8" This patch added a command line option '-i' for mptcp_join.sh to use 'ip mptcp' commands instead of using 'pm_nl_ctl' commands to deal with PM netlink. Signed-off-by: Geliang Tang --- tools/testing/selftests/net/mptcp/mptcp_join.sh | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testin= g/selftests/net/mptcp/mptcp_join.sh index 529765f3ab5e..193fa5adb9ad 100755 --- a/tools/testing/selftests/net/mptcp/mptcp_join.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh @@ -2203,6 +2203,7 @@ usage() echo " -u userspace_tests" echo " -c capture pcap files" echo " -C enable data checksum" + echo " -i use ip mptcp" echo " -h help" } =20 @@ -2224,9 +2225,12 @@ for arg in "$@"; do if [[ "${arg}" =3D~ ^"-"[0-9a-zA-Z]*"C"[0-9a-zA-Z]*$ ]]; then checksum=3D1 fi + if [[ "${arg}" =3D~ ^"-"[0-9a-zA-Z]*"i"[0-9a-zA-Z]*$ ]]; then + ip_mptcp=3D1 + fi =20 - # exception for the capture/checksum options, the rest means: a part of t= he tests - if [ "${arg}" !=3D "-c" ] && [ "${arg}" !=3D "-C" ]; then + # exception for the capture/checksum/ip_mptcp options, the rest means: a = part of the tests + if [ "${arg}" !=3D "-c" ] && [ "${arg}" !=3D "-C" ] && [ "${arg}" !=3D "-= i" ]; then do_all_tests=3D0 fi done @@ -2236,7 +2240,7 @@ if [ $do_all_tests -eq 1 ]; then exit $ret fi =20 -while getopts 'fesltra64bpkdmuchCS' opt; do +while getopts 'fesltra64bpkdmuchCSi' opt; do case $opt in f) subflows_tests @@ -2290,6 +2294,8 @@ while getopts 'fesltra64bpkdmuchCS' opt; do ;; C) ;; + i) + ;; h | *) usage ;; --=20 2.31.1