From nobody Sun May 5 14:00:14 2024 Received: from EUR05-DB8-obe.outbound.protection.outlook.com (mail-db8eur05on2068.outbound.protection.outlook.com [40.107.20.68]) (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 7F97F1381 for ; Mon, 15 May 2023 02:11:30 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=a8L6T3rBXe4X14NU3wquicMsK3SWdE7x72oec4mKv2wq3TPdFMGhNDgGgGnzNVEN0Dvur/AoNVxJ/K/TKNp2OO6J5ZwdFDiql71sLzDCFeDqheDI1k30XDTNp2GpE8YapTUnS1MS9sazt8x5DjmMHHyEAC4Z5JLBg3/Pmo84HXWv3de+gWjm7B3piJvpvwfnWV1el3BOkV5t2vBnwPrFbhb41ydTr8SDETH/XLhZQmZ0zg+8WiDn5BDDqtBpL4s9mY2HUGHVw561cBS+0MvSQvdQj0QgWFZecFK4qgg90nfxCPtnGGXq1Q9dr21eMubD+gOu+UirVKeOn39sukHkDw== 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=Sh2E5GPAGV51T8E4YYty/7VIxbGUziYfDQb52rJRl3M=; b=iCWHix25DMdMtGc5pleGu3s0CMQO5HvSmH744/JvT3DFQuEHsWvUSQgnQz8ymafjNrXuL0c1fwG0gOq7tiByc27iZP1TCvSHm2L9RuVSV+4hSqxlbBgcZLdQD+LlMFJxqZik7Y4lXrj5hMSMMST/h8ZVUjb73Dq9vZB6jeF6ZefIHTzzSm4REy/OtW48zVlw+IiOHeRG7LzcrYlUTN4I0oBQBVamCR5GR+tBz6pjny4HHUfF9/VFyfDcfaKUNTzGXirgvQmFn6KEDt6Fdqf2xAt1HDSj/cZBVsnnu9BeiVummyPL2k2p8FkU4orcg9ncjG+zUvcfrYscYNps/TvvfQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com; dkim=pass header.d=suse.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Sh2E5GPAGV51T8E4YYty/7VIxbGUziYfDQb52rJRl3M=; b=PxO82+RIa10fbIWwWnlokAOhuQ2jJ+/0dLvnsp6xB6w/z+DQzs5TpS4msDdHYR+fhQU27liVsFi145igiRcNUf1XsEdj9EWiouOFrBQAE2GqU2Tssj2lbJ54z8fwJAaCxoq4PygotxfHQansRiTNBrbRBkD/n17+4KpRePBEqalPoqt6lcsZ8InjanJI31vioK6x0KpuYKcu4aWOED6Y5MRtpqRpLx0QEQ9EEoKOgpknJ5pa3vD9Cnvvo5STxgQcYtWaOx6PgNBJX1rm5fjyd3w97BLxq0wH5XtjlLy358gFsYYghdKTQHaF8gXBaNQ97r0fv2vsERoMt6r31uMOwg== 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 AS4PR04MB9361.eurprd04.prod.outlook.com (2603:10a6:20b:4e6::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6387.30; Mon, 15 May 2023 02:11:28 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::423a:a30f:5342:9d35]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::423a:a30f:5342:9d35%6]) with mapi id 15.20.6387.027; Mon, 15 May 2023 02:11:28 +0000 From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next v13 1/7] mptcp: update userspace pm infos Date: Mon, 15 May 2023 10:10:52 +0800 Message-Id: <6f3fe80ded90e36d08b395333071b2cf55bb4258.1684116357.git.geliang.tang@suse.com> X-Mailer: git-send-email 2.35.3 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: TYAPR04CA0007.apcprd04.prod.outlook.com (2603:1096:404:15::19) To HE1PR0402MB3497.eurprd04.prod.outlook.com (2603:10a6:7:83::14) Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: HE1PR0402MB3497:EE_|AS4PR04MB9361:EE_ X-MS-Office365-Filtering-Correlation-Id: 63a8245a-efca-4ae7-8b8b-08db54e9b112 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: zp7Ua0VAX7aUlU6v15qojI78/h38eJZO1KWXbsDxTHDObE351d18nofTfIPLSBg1cpOlmka5byTHrgTgOO2cUYl5XRHjRhHnGevm15Xgonx+bPfbDy94l6+AHYyMNjBuA6X4Y4Kq8xoAn4qgZjh2z6JxouOMJcGR7GzakeGxGawQqJs9n6ASZDksig75dS8GbLMVi1s+2okhoEOiMzWojaRgA395LqpJNu6R5Bg92lWTMjNk2B2H0Ma0Ua6fxq2WagTDfUQpULkJM44AtpIBrnFMCBNbemldTkRwr51RaP4quTc6+trNRoqWFBuNP0/cD7YA8wz9Am/Rfu6ERgoD22NKZVavy+8xRaCzQdFSRseaxAN31F5yskk1xmLJmEhSTjgHVuCACccubwIY4bR6XzFqP4s2hGPafCK2J0beLumK+zL1YdU3f+k5FkAMwKPlaNS4K51o4TO34ubdx0wu2mctH6Jg0VvCfWxsnCqXCpiEphiwVON4RAUVin/K7Jd8/v15J0YaS8GTOHW5bn9ZYBZyxpVvw0KGB63dmwk11GA= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:HE1PR0402MB3497.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(376002)(136003)(346002)(366004)(39860400002)(396003)(451199021)(83380400001)(66476007)(66556008)(66946007)(2616005)(26005)(6486002)(6512007)(6506007)(107886003)(966005)(478600001)(6666004)(186003)(5660300002)(44832011)(15650500001)(86362001)(8676002)(8936002)(2906002)(36756003)(41300700001)(4326008)(6916009)(316002)(38100700002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?kdb1Ta45Ppeej2Vq55yJfmAiezsNmL5z08JBSe5wPlVjfvlapn8TwGzq1Bn6?= =?us-ascii?Q?ZXSu02Q/Cu7ez5qIghyzQQdz7Vod/6qjYr46H5J7csgXCdqzax0xOAr6x/L8?= =?us-ascii?Q?bO5JeNOHVPnd2bLWBq7+aSGnS3ODh2/EafLfqxsaNLv+j0usY8TCVFQzLSya?= =?us-ascii?Q?obdlbi1tqJB43j+6GcYKiSm/w5/8cWRLYUpkmsC50ZNRilQT8MDCgzFpy1xs?= =?us-ascii?Q?0G1C7L+ltWmYm/F4j4xDLvP03Qvv5cZNMQgRotCgSEvJc39klN9q3sLRbERd?= =?us-ascii?Q?FdrxTo58KKgHKBYqjRq9TzqNGsxq+UyMTTlEwiCVYsFTzt0c+a8oilh00WcK?= =?us-ascii?Q?jSzRZqDukqH9DrG5kQAMLoWebMiathdj4lEgSW3VQUYUpYxJcIz49mwpYKZ6?= =?us-ascii?Q?HJYs+PtC1D09xsWYmSLu3K7sSaTl+vQ67xTWaq6DiFoHPstlKWVFkPHThnlE?= =?us-ascii?Q?rJQ4todAiu6cv+1cCT2UG0BV7xfJat38jXkRZcFZAX4lWGO8HrpxY4A8z86G?= =?us-ascii?Q?EoPdNfTwa71Kkr2WKY82/GqWy/dNDKaAYw/goRnkXXHml6GEtGVqxkiWHpsi?= =?us-ascii?Q?Y3DEIceXbUhRIcHpq3A4coD1iNt1/PYgYJhK7h6zu1FB2FlBZyNZ9MZX/m9U?= =?us-ascii?Q?d5bVRbKNKvkDdTLKP/5dXWQmPfv7jV1++KeiwrxvzfbvGubSAPtNgC43jfp7?= =?us-ascii?Q?E8z52mfCuVaYE6G/L23y2OxQwYTPAD9pqECL5nKxY4FjAaKZLLJo5TzgVtCe?= =?us-ascii?Q?e85xW/3fJnhdxZfb/Vt6Zc/z45fIUyJ1YLYjggrntBjOCBpk+LCz8bJYemkl?= =?us-ascii?Q?iORwnqYR8zhotOYCZAvoKV43g1WEsU+GMnEjPPJJ/eLbZeLiCX7lo1JK+VhO?= =?us-ascii?Q?5s0b2Xr+mSBttJiGI4ZbjRhRfrx/iVpE6rbjETs3K4EB6W+g0ByokIbm565g?= =?us-ascii?Q?VB1bv+UA1fNGtUbhWnSjjyNDAdyfi5LnSmJvYL8dnTGH7J7VynZepc9sNfFZ?= =?us-ascii?Q?fYsnCiTshB8A+kq6dOeKYXrtg6DlBaXYmLXDfxBy00oiCcB5I6d0yvUcypa6?= =?us-ascii?Q?czegUALgWJ5TkNzy4vbL2WkexTcMLSTzkXboLJNtIx+cbMcqNPeTR3bc04sB?= =?us-ascii?Q?hIJ2xsttQKLZiLOQinGCpjFvOxtLYgYaXNH0aTNnbzBZ3FbAxx2ggHanRCRB?= =?us-ascii?Q?AToLK3jLhqiStclcx3IZJCGKfeFY6VNRwVz7Cjg/zN2PX0D9tLrZco6lzTWb?= =?us-ascii?Q?B1EWSREf7NLcA2uXVoWsozJ0V9JnZZaCQydUO+LhxsxfUUp+DWMUK9h1lJ20?= =?us-ascii?Q?5uWO0m+2IUf+Dg7dqTsb2cDtQ91I2iu2XlMJybo7QFjNjC4nLT9jGvpZ+5Se?= =?us-ascii?Q?WVc/933yt7I+ltX2w43G43lYr1qrgPYscLvoU1kgf7CKE2eJV2ZyElj8uwwu?= =?us-ascii?Q?b8QcafsI6h7fBIRO73v+M5aRfiajuApDF5CCkrTXXlnrB224OBEy/1Z8ReS3?= =?us-ascii?Q?kh3GK9Y6s0eFbajXHV1IuD95yIvzh2KMM3fa/ggZFAWYIljNxRErO+IUiTJG?= =?us-ascii?Q?JV9TLanPRwh6OoP16jSQQzFkbPyl9EZWjEkXLymo?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 63a8245a-efca-4ae7-8b8b-08db54e9b112 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 May 2023 02:11:28.1971 (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: 3o4yzA8ekdCkgyBFgGcJeF3GGzx98QuuAIYs9u3cWOxhRvHLHPNS2+DQmy+AK6Zc/3bdjOHZvlUkN0WbhxjpFg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS4PR04MB9361 Content-Type: text/plain; charset="utf-8" Increase pm subflows counter on both server side and client side when userspace pm creates a new subflow, and decrease the counter when it closes a subflow. Increase add_addr_signaled counter in mptcp_nl_cmd_announce() when the address is announced by userspace PM. This modification is similar to how the in-kernel PM is updating the counter: when additional subflows are created/removed. Fixes: 9ab4807c84a4 ("mptcp: netlink: Add MPTCP_PM_CMD_ANNOUNCE") Fixes: 702c2f646d42 ("mptcp: netlink: allow userspace-driven subflow establ= ishment") Link: https://github.com/multipath-tcp/mptcp_net-next/issues/329 Signed-off-by: Geliang Tang --- net/mptcp/pm.c | 23 +++++++++++++++++++---- net/mptcp/pm_userspace.c | 9 ++++++++- 2 files changed, 27 insertions(+), 5 deletions(-) diff --git a/net/mptcp/pm.c b/net/mptcp/pm.c index 7539137719ef..e7f944d09fcd 100644 --- a/net/mptcp/pm.c +++ b/net/mptcp/pm.c @@ -89,8 +89,15 @@ bool mptcp_pm_allow_new_subflow(struct mptcp_sock *msk) unsigned int subflows_max; int ret =3D 0; =20 - if (mptcp_pm_is_userspace(msk)) - return mptcp_userspace_pm_active(msk); + if (mptcp_pm_is_userspace(msk)) { + if (mptcp_userspace_pm_active(msk)) { + spin_lock_bh(&pm->lock); + pm->subflows++; + spin_unlock_bh(&pm->lock); + return true; + } + return false; + } =20 subflows_max =3D mptcp_pm_get_subflows_max(msk); =20 @@ -183,8 +190,16 @@ void mptcp_pm_subflow_check_next(struct mptcp_sock *ms= k, const struct sock *ssk, struct mptcp_pm_data *pm =3D &msk->pm; bool update_subflows; =20 - update_subflows =3D (subflow->request_join || subflow->mp_join) && - mptcp_pm_is_kernel(msk); + update_subflows =3D subflow->request_join || subflow->mp_join; + if (mptcp_pm_is_userspace(msk)) { + if (update_subflows) { + spin_lock_bh(&pm->lock); + pm->subflows--; + spin_unlock_bh(&pm->lock); + } + return; + } + if (!READ_ONCE(pm->work_pending) && !update_subflows) return; =20 diff --git a/net/mptcp/pm_userspace.c b/net/mptcp/pm_userspace.c index 016df47d7d6a..febf3cf0e935 100644 --- a/net/mptcp/pm_userspace.c +++ b/net/mptcp/pm_userspace.c @@ -69,6 +69,7 @@ static int mptcp_userspace_pm_append_new_local_addr(struc= t mptcp_sock *msk, MPTCP_PM_MAX_ADDR_ID + 1, 1); list_add_tail_rcu(&e->list, &msk->pm.userspace_pm_local_addr_list); + msk->pm.local_addr_used++; ret =3D e->addr.id; } else if (match) { ret =3D entry->addr.id; @@ -89,6 +90,7 @@ static int mptcp_userspace_pm_delete_local_addr(struct mp= tcp_sock *msk, /* TODO: a refcount is needed because the entry can * be used multiple times (e.g. fullmesh mode). */ + msk->pm.local_addr_used--; list_del_rcu(&entry->list); kfree(entry); return 0; @@ -190,6 +192,7 @@ int mptcp_nl_cmd_announce(struct sk_buff *skb, struct g= enl_info *info) spin_lock_bh(&msk->pm.lock); =20 if (mptcp_pm_alloc_anno_list(msk, &addr_val)) { + msk->pm.add_addr_signaled++; mptcp_pm_announce_addr(msk, &addr_val.addr, false); mptcp_pm_nl_addr_send_ack(msk); } @@ -348,7 +351,11 @@ int mptcp_nl_cmd_sf_create(struct sk_buff *skb, struct= genl_info *info) =20 release_sock(sk); =20 - if (err) { + if (!err) { + spin_lock_bh(&msk->pm.lock); + msk->pm.subflows++; + spin_unlock_bh(&msk->pm.lock); + } else { spin_lock_bh(&msk->pm.lock); mptcp_pm_remove_anno_list_by_saddr(msk, &addr_l); anno_list_err: --=20 2.35.3 From nobody Sun May 5 14:00:14 2024 Received: from EUR03-DBA-obe.outbound.protection.outlook.com (mail-dbaeur03on2042.outbound.protection.outlook.com [40.107.104.42]) (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 C4DDF10EA for ; Mon, 15 May 2023 02:11:41 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=JI2p4Opo3DzGDyzr+/jBdwl8Z2sTWnse0IrgtsxFNOYFOukgpT4W6HUuWCECM5IbmA+SbB5IUQSTX+P5sCwz94ajSteOuGfKXOEBH8hRsANEiekyOaaTKBgqXvXI57K/uLHs/LFMFnYUkoCZAcynQAeiytfV67fkM+XBrlQI9B71MLVi9++rHX7IsQKJQ+ipF4FSWP6wOaoFrhy3T7bCjmTT0vG6OnQzchmh9dCSCVnKOzrmIPDjr+UZi8bD4JngEhnq2PLQ3EfvcI3YL8lVPieNF+vYmuofaaisj40JBV/TPNd8SKJPpeZLqzwGnZ24uRGVwyS5j3pQqO1mLNJpcA== 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=0uw/u9MYYb0qmKlxuV/13zxwyYqTKS4pyY7+vF/jkGc=; b=dvu9aSt0tokC9Yp/7VFjzIcmwzEJzr+qNZQndcHDyeaOf9B0E1wcJumtXpy5NDrioaoy7w2tctdAkLtoWtxReKqD8kB9exWKLH+A8bew5QG61V5FbBfgKbj9QMxjJLaxnCirwz57z60WTwjdlOS0vgPEaNf6nf0nwQA2VTrrBgmAW0+NhyI1cJmysjsYMYcnQqSVHHy6SOSoaFuK3JJpBTJL0uT/zDiydfd67GlfHQGOgQJ+7q5e4jQCkrWR2O0bqOJP4OCARZuSD5YEEeV1Y4+8bXwG2ounlIlsEX+Zz8LDShDSOXPUTQUJ5jIMjz0I6E2jO/QNZDIJbynwD0AjQQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com; dkim=pass header.d=suse.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=0uw/u9MYYb0qmKlxuV/13zxwyYqTKS4pyY7+vF/jkGc=; b=DK4Ks65tX4MLPb2JBDYZlkP3Dv44MK6tsKPqzYJPW9BFw59fePEb53+/FAstqli168RpV+l+bUoJUQ8B8v1lBXhX6Lo21muJ6O/G0M6HQsTf1EyrWdxUh1phpbjs44q+hmFoQnNALaoeWWG1Qh7qRsv/4ViwfckcNeJ5V/oPm5uOpB+jYz6DMgGizd8jIqSYT0JG4w5cKRKszZ0rqUPqaUTjVdvBy3rQcq1s7+PXaTrzO53HQxwC9rC/feNJLaLspiuDsLaZhkLsDsF94dBrxLRehWIwFMx7meCyLWr7zITG9xX5vN6f6uIeYGAsfGVKy3/trqTtsDS3NQaZ/xzqBw== 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 AS4PR04MB9361.eurprd04.prod.outlook.com (2603:10a6:20b:4e6::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6387.30; Mon, 15 May 2023 02:11:39 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::423a:a30f:5342:9d35]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::423a:a30f:5342:9d35%6]) with mapi id 15.20.6387.027; Mon, 15 May 2023 02:11:39 +0000 From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next v13 2/7] selftests: mptcp: test userspace pm out of transfer Date: Mon, 15 May 2023 10:10:53 +0800 Message-Id: <8c0b3b33eb79be864cc5b106a5eb21ec1ea84b96.1684116357.git.geliang.tang@suse.com> X-Mailer: git-send-email 2.35.3 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: TYAPR04CA0024.apcprd04.prod.outlook.com (2603:1096:404:15::36) To HE1PR0402MB3497.eurprd04.prod.outlook.com (2603:10a6:7:83::14) Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: HE1PR0402MB3497:EE_|AS4PR04MB9361:EE_ X-MS-Office365-Filtering-Correlation-Id: 6aaec3a2-eb68-49ea-f541-08db54e9b794 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: mmhftJGlN0SMJaFWrgPJgW9Fm0Svsxu5wfybgVSHwx20faH005fipU6mWOSVIt2b8r5FJEhCCQsP+ZuRtPQHFPGMQwCLmUAkWVF0QSrlMW7Zh6cDyv6SPikDSL3BAnJU4L6VjWQ19YkBm3btZR1rbfP5zUQlDQ1IkwHlLbGlwsYgxBEiHokNmW5tTxkM+zK3k6x//zCNYcWgbSt6Yp1mgPBB9F5/hbMFpBWQbIOsTk5M8+sdrYIduZE3LiFZTvHVR8IxYCmJocljZy9CMbJYQ1RgwLmJTX8MJmGkoZ0KGTkGc4vJ1c29ypWP9BroROKcBeG/TKaO+l6a57c4yOuPvOxH5ts5o7f2k9IPi2bnvbgzcYUxW1PtmDiGXuDcPyE/VwU3/NO/ZAj7fK8szg56H+zP8Sg6f2nBw4qqO7+OL8k8iEpw/ypP1kTO3E8KJoOS5iYkMgRK5DYSwl5YXCK01CjRXQ3Y0QI8b8Z+9wFguWmSH/bgaolpM5jSI4BLJz/k3FgQHoSUi+sKZAJZpOg8nMOnH74VOMm9We9Mfbq1B52EAV2Jz+XUy5pUgphE11cE X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:HE1PR0402MB3497.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(376002)(136003)(346002)(366004)(39860400002)(396003)(451199021)(83380400001)(66476007)(66556008)(66946007)(2616005)(26005)(6486002)(6512007)(6506007)(107886003)(478600001)(6666004)(186003)(5660300002)(44832011)(86362001)(8676002)(8936002)(2906002)(36756003)(41300700001)(4326008)(6916009)(316002)(38100700002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?G8RSn4DTPkvQsSU+h5GQ9suDQIHyjTa/Gul1I/uMUmT2G+4zGoRnuTTq7K1H?= =?us-ascii?Q?10qnAiLMxYmM7HSJZ+M+u4jN/wHzo92La9qbEeoV5Z3Lp2e2GdinPshtVUq+?= =?us-ascii?Q?u10nP/MW3gtep7FeJvztMSLemJ1Ew8OdpV2oCmTV8bk2VxeGuhOFZvZ9QXja?= =?us-ascii?Q?e9Av/aH5Lrf1s/yJr2CtSVDqiW8hXbrodAVP1bUAXaJusOYW6TRWcx7QvfJy?= =?us-ascii?Q?MLOPsUur3B0kaJ4/AQqupM6dP8AmpkFLnkRDGDyx0XvWvaCbNastIrUmGLDG?= =?us-ascii?Q?LzJPvsftppoXfOvRV7phSEd9UxkQikAJafa1knTnsSnKWot6feuWxba7v49C?= =?us-ascii?Q?DOPNqMz41wvoNZ1oDsxl9rvdMt648ZPGRDKQ+VOUWBQTp8+zdGhLvazwM8YL?= =?us-ascii?Q?E4FLAfKoP9dNnNu91O/BuriDTrONNQYVGucSG0jt+kF2vgKxY/WnN2a0Ujpq?= =?us-ascii?Q?jQ5MPk7I9BFxeCGBfbLLw02DQhJy2mpJSC61Y33iMHBh/2MwYGhoVTgyomM1?= =?us-ascii?Q?cM0ypemvVCrYCGoR2gwMzG/G2QQHUhhnFmyMNXZR2bvbU3iGgRkuRwT641Nw?= =?us-ascii?Q?DiOErqyZC9dRHz4H1jPmq2b4Oxe5sDZuLWIxlX6PGGpzoJjcjmN0wdwbqJG8?= =?us-ascii?Q?HXsHL4zSAHGZXD+nHPLBKhVbSbQv/MJ2HqADM5B/W6NIegoMLH2c3BHKZ/dx?= =?us-ascii?Q?IiFNPRTPsHPQ+vNjST6JvH91QJhB10kiB2OMWrefyqBLO3CVusbs3EX7aYLY?= =?us-ascii?Q?Bv47PttSSfyXGHJM38ejbGhhM7C9ZgiWL5OIpPcN7ridTJYNqCUDBmumO9F2?= =?us-ascii?Q?/zHs0cpOyKMdfI2doxyvNR1t5rBMEbEFTcuNSrX0fWpz5okAZZdSdt8d4y29?= =?us-ascii?Q?aNrFfdZ+Mr49YAujn7FD59p21mmlnY/OulvMdHT6jcmdiBnB5Ik/77Fj3H4V?= =?us-ascii?Q?gmVCIgIkGb4A7m7XFDQ3vgWl9sYYK21D6fN0UKcydNyMcNmNSTtKtNO+w+hX?= =?us-ascii?Q?neQVzBjUllE4yy7M30vioY92yTfQW7oPvgwJNw/NE2x21fud+KVnMFxInEbY?= =?us-ascii?Q?c5A/NPQSh0mQMHL81aPECUCuU/XZWtu1OskO0g5dz30W9W0ktuxOtFkqYLqx?= =?us-ascii?Q?ZtnzAR0LfSUcWEMMbn59VKwgqOk0nPRNDcazvaIYPkL5KO8Caye9jNLC0AQa?= =?us-ascii?Q?nQ3/kZvTnIk/yz7r4YQJDu8jMrMChsUM9ypSJksO+pdB/oZFuLu5hMyQxFsu?= =?us-ascii?Q?bT3hr59qrxS88sn/1d1t6jvBDFYLLlGnqafr21p7aGY3TmVGqRyW4ZewYKVD?= =?us-ascii?Q?qqfFdr0mbGN3TIzjWhqlvQ8s2LaoDomGTibAx4eUcJUV1ODkYHhAvFLNQZDw?= =?us-ascii?Q?GbvFSkAIXxq0Gl697oge7+RYZZ5Hyf1QugLqCbfrTlwEPiNeAU3bN6VHjew0?= =?us-ascii?Q?ru/G7orRXRXdkEq0HCIUcjmT6HBJNj/O/BsBRrCkT9zUQd4StMNpLtxH1p1i?= =?us-ascii?Q?UsVnfThFEVPd9vhAhxyTYOtGwBTADsUNsJrwIajcgwP6OUfyeQabtNRvCFBf?= =?us-ascii?Q?r8q1bYot2ilmaGjitsgA6nYaUfEizDPMfUit/nm/?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6aaec3a2-eb68-49ea-f541-08db54e9b794 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 May 2023 02:11:39.0947 (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: PHqtoX3kwsv7mvG59nWwVzMXXNaUS8UpcnZjCKjsn8Z5U82awqqsQoOe1YDREPTbDeouSROKj9G10gxamvN/AQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS4PR04MB9361 Content-Type: text/plain; charset="utf-8" This patch moves userspace pm tests out of do_transfer(). Move add addrese test into a new function userspace_pm_add_addr(), and remove address test into userspace_pm_rm_addr(). Move add subflow test into userspace_pm_add_sf() and remove subflow into userspace_pm_rm_sf(). Signed-off-by: Geliang Tang --- .../testing/selftests/net/mptcp/mptcp_join.sh | 122 +++++++++++------- 1 file changed, 76 insertions(+), 46 deletions(-) diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testin= g/selftests/net/mptcp/mptcp_join.sh index 6aacffa32bb6..ac3fa8f0df0f 100755 --- a/tools/testing/selftests/net/mptcp/mptcp_join.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh @@ -723,7 +723,6 @@ do_transfer() =20 local port=3D$((10000 + TEST_COUNT - 1)) local cappid - local userspace_pm=3D0 =20 :> "$cout" :> "$sout" @@ -760,11 +759,6 @@ do_transfer() extra_args=3D"-r ${speed:6}" fi =20 - if [[ "${addr_nr_ns1}" =3D "userspace_"* ]]; then - userspace_pm=3D1 - addr_nr_ns1=3D${addr_nr_ns1:10} - fi - local flags=3D"subflow" local extra_cl_args=3D"" local extra_srv_args=3D"" @@ -792,9 +786,6 @@ do_transfer() return 1 fi addr_nr_ns2=3D0 - elif [[ "${addr_nr_ns2}" =3D "userspace_"* ]]; then - userspace_pm=3D1 - addr_nr_ns2=3D${addr_nr_ns2:10} elif [[ "${addr_nr_ns2}" =3D "fullmesh_"* ]]; then flags=3D"${flags},fullmesh" addr_nr_ns2=3D${addr_nr_ns2:9} @@ -848,7 +839,6 @@ do_transfer() local counter=3D2 local add_nr_ns1=3D${addr_nr_ns1} local id=3D10 - local tk while [ $add_nr_ns1 -gt 0 ]; do local addr if is_v6 "${connect_addr}"; then @@ -856,24 +846,7 @@ do_transfer() else addr=3D"10.0.$counter.1" fi - if [ $userspace_pm -eq 0 ]; then - pm_nl_add_endpoint $ns1 $addr flags signal - else - tk=3D$(grep "type:1," "$evts_ns1" | - sed -n 's/.*\(token:\)\([[:digit:]]*\).*$/\2/p;q') - ip netns exec ${listener_ns} ./pm_nl_ctl ann $addr token $tk id $id - sleep 1 - sp=3D$(grep "type:10" "$evts_ns1" | - sed -n 's/.*\(sport:\)\([[:digit:]]*\).*$/\2/p;q') - da=3D$(grep "type:10" "$evts_ns1" | - sed -n 's/.*\(daddr6:\)\([0-9a-f:.]*\).*$/\2/p;q') - dp=3D$(grep "type:10" "$evts_ns1" | - sed -n 's/.*\(dport:\)\([[:digit:]]*\).*$/\2/p;q') - ip netns exec ${listener_ns} ./pm_nl_ctl dsf lip "::ffff:$addr" \ - lport $sp rip $da rport $dp token $tk - ip netns exec ${listener_ns} ./pm_nl_ctl rem token $tk id $id - fi - + pm_nl_add_endpoint $ns1 $addr flags signal counter=3D$((counter + 1)) add_nr_ns1=3D$((add_nr_ns1 - 1)) id=3D$((id + 1)) @@ -918,7 +891,6 @@ do_transfer() local add_nr_ns2=3D${addr_nr_ns2} local counter=3D3 local id=3D20 - local tk da dp sp while [ $add_nr_ns2 -gt 0 ]; do local addr if is_v6 "${connect_addr}"; then @@ -926,21 +898,7 @@ do_transfer() else addr=3D"10.0.$counter.2" fi - if [ $userspace_pm -eq 0 ]; then - pm_nl_add_endpoint $ns2 $addr flags $flags - else - tk=3D$(sed -n 's/.*\(token:\)\([[:digit:]]*\).*$/\2/p;q' "$evts_ns2") - da=3D$(sed -n 's/.*\(daddr4:\)\([0-9.]*\).*$/\2/p;q' "$evts_ns2") - dp=3D$(sed -n 's/.*\(dport:\)\([[:digit:]]*\).*$/\2/p;q' "$evts_ns2") - ip netns exec ${connector_ns} ./pm_nl_ctl csf lip $addr lid $id \ - rip $da rport $dp token $tk - sleep 1 - sp=3D$(grep "type:10" "$evts_ns2" | - sed -n 's/.*\(sport:\)\([[:digit:]]*\).*$/\2/p;q') - ip netns exec ${connector_ns} ./pm_nl_ctl dsf lip $addr lport $sp \ - rip $da rport $dp token $tk - ip netns exec ${connector_ns} ./pm_nl_ctl rem token $tk id $id - fi + pm_nl_add_endpoint $ns2 $addr flags $flags counter=3D$((counter + 1)) add_nr_ns2=3D$((add_nr_ns2 - 1)) id=3D$((id + 1)) @@ -3069,6 +3027,65 @@ fail_tests() fi } =20 +userspace_pm_add_addr() +{ + local addr=3D$1 + local id=3D$2 + local tk + + tk=3D$(grep "type:1," "$evts_ns1" | + sed -n 's/.*\(token:\)\([[:digit:]]*\).*$/\2/p;q') + ip netns exec $ns1 ./pm_nl_ctl ann $addr token $tk id $id +} + +userspace_pm_rm_addr() +{ + local addr=3D$1 + local id=3D$2 + local tk sp da dp + + tk=3D$(grep "type:1," "$evts_ns1" | + sed -n 's/.*\(token:\)\([[:digit:]]*\).*$/\2/p;q') + sp=3D$(grep "type:10" "$evts_ns1" | + sed -n 's/.*\(sport:\)\([[:digit:]]*\).*$/\2/p;q') + da=3D$(grep "type:10" "$evts_ns1" | + sed -n 's/.*\(daddr6:\)\([0-9a-f:.]*\).*$/\2/p;q') + dp=3D$(grep "type:10" "$evts_ns1" | + sed -n 's/.*\(dport:\)\([[:digit:]]*\).*$/\2/p;q') + ip netns exec $ns1 ./pm_nl_ctl dsf lip "::ffff:$addr" \ + lport $sp rip $da rport $dp token $tk + ip netns exec $ns1 ./pm_nl_ctl rem token $tk id $id +} + +userspace_pm_add_sf() +{ + local addr=3D$1 + local id=3D$2 + local tk da dp + + tk=3D$(sed -n 's/.*\(token:\)\([[:digit:]]*\).*$/\2/p;q' "$evts_ns2") + da=3D$(sed -n 's/.*\(daddr4:\)\([0-9.]*\).*$/\2/p;q' "$evts_ns2") + dp=3D$(sed -n 's/.*\(dport:\)\([[:digit:]]*\).*$/\2/p;q' "$evts_ns2") + ip netns exec $ns2 ./pm_nl_ctl csf lip $addr lid $id \ + rip $da rport $dp token $tk +} + +userspace_pm_rm_sf() +{ + local addr=3D$1 + local id=3D$2 + local tk da dp sp + + tk=3D$(sed -n 's/.*\(token:\)\([[:digit:]]*\).*$/\2/p;q' "$evts_ns2") + da=3D$(sed -n 's/.*\(daddr4:\)\([0-9.]*\).*$/\2/p;q' "$evts_ns2") + dp=3D$(sed -n 's/.*\(dport:\)\([[:digit:]]*\).*$/\2/p;q' "$evts_ns2") + sp=3D$(grep "type:10" "$evts_ns2" | + sed -n 's/.*\(sport:\)\([[:digit:]]*\).*$/\2/p;q') + ip netns exec $ns2 ./pm_nl_ctl dsf lip $addr lport $sp \ + rip $da rport $dp token $tk + ip netns exec $ns2 ./pm_nl_ctl rem token $tk id $id +} + userspace_tests() { # userspace pm type prevents add_addr @@ -3140,21 +3157,34 @@ userspace_tests() if reset_with_events "userspace pm add & remove address"; then set_userspace_pm $ns1 pm_nl_set_limits $ns2 1 1 - run_tests $ns1 $ns2 10.0.1.1 0 userspace_1 0 slow + run_tests $ns1 $ns2 10.0.1.1 0 0 0 speed_10 2>/dev/null & + local tests_pid=3D$! + wait_mpj $ns1 + userspace_pm_add_addr 10.0.2.1 10 + sleep 1 chk_join_nr 1 1 1 chk_add_nr 1 1 + userspace_pm_rm_addr 10.0.2.1 10 + wait_rm_addr $ns1 1 chk_rm_nr 1 1 invert kill_events_pids + wait $tests_pid fi =20 # userspace pm create destroy subflow if reset_with_events "userspace pm create destroy subflow"; then set_userspace_pm $ns2 pm_nl_set_limits $ns1 0 1 - run_tests $ns1 $ns2 10.0.1.1 0 0 userspace_1 slow + run_tests $ns1 $ns2 10.0.1.1 0 0 0 speed_10 2>/dev/null & + local tests_pid=3D$! + wait_mpj $ns2 + userspace_pm_add_sf 10.0.3.2 20 + sleep 1 chk_join_nr 1 1 1 + userspace_pm_rm_sf 10.0.3.2 20 chk_rm_nr 1 1 kill_events_pids + wait $tests_pid fi } =20 --=20 2.35.3 From nobody Sun May 5 14:00:14 2024 Received: from EUR05-DB8-obe.outbound.protection.outlook.com (mail-db8eur05on2061.outbound.protection.outlook.com [40.107.20.61]) (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 CB2FD1381 for ; Mon, 15 May 2023 02:11:51 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Fkrik5Ihrz7v1fvR3Yu68yxGzspJV/6VBAACHD3T58i+Xd2l/jCxpgsobfl16+fV6cmpemtrFZNn6AGTifvZB9NbMY4hlekeYBk66uMpMNVwYMNv1WjhLU3eMlpf8aoe6296vbXXNyPeV3dqGYEVUWryuehZdk2ZmoEwTno2Y3cpjP1/U2g6eZbS/0JFEBPjrBNsyio2FIvuJLi+n5Pd/5YBiQDnqqyuspgEr5zIpRKDGxC8aGf+/uDJToXUI2JixtuVd5q86Pq/3B55+uZy8voPF3YaEiR8uXZfEoQj+Jdmn3Fue91GBQ1kj37c4kSouh29XkpCcEeDi4gc5TKvJA== 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=wkVLarjcUjeQ8W5f7yqf8nyUuTuh8M/bngw4jRiF+dA=; b=iArZKsynPtnATH1ysTY9n/rE6dC6g/Zs7QTFw83f11nb4DAZMMb0hCF8DCHGY4HpAYx2ndKDLxTx8AKzPa9ltzi3SPJu4+Vi2k8hURbVNvFyeU07Y23VYwPoae5lhU5KiG/9MTsm/qpwPrpIUkN7/lDLKprhONjPvsD3g3CjoT4N5ruA0Pf7F48AeYc7UWSfqZA4MY4pLs8lbanPN8/IJGNB/+WxcSIkJyvRFSrP1RpcylNLsF9QLtc3/lX4njDyIGs87cxbga8SI62zrmCSSuIK5Hq2dzsB9eRtqQqC6wievVWPVNKURA+XfwWwizU67H/gDipWgqw4NlVlad5P5w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com; dkim=pass header.d=suse.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=wkVLarjcUjeQ8W5f7yqf8nyUuTuh8M/bngw4jRiF+dA=; b=S8xkfg7o1z2fCsxYNTkg8LdSlg4zKdBBx8pYY+ZeoTGdQ0dsp9BmNZ/YWvd7pnxiCRggM8IVQulRZ95vVlzcNxEiiHMQGc8z21UyZ2/jvFRDlzHgx79EU5bDzXFHF9mHvty7OJsVvQcM7eBfuvuwOQ+3pagW3y181AKBJ76GX6/NuwK+b1OwfHGxfwkIkLf2HH+zb4z4T5TpopLmKeNl/pPILDf7PWN7/eZ4vRldcuSPsM70ja6tB7dDJQXx7KGgoP5EYFLoRFzDao07IU1KVT4KhbaG0eFZCo5hM2JWV9S/LLUpSbeOuPWaSCWZpwEJOuDexaNIE5Cn3Y9hf8XOHA== 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 AS4PR04MB9361.eurprd04.prod.outlook.com (2603:10a6:20b:4e6::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6387.30; Mon, 15 May 2023 02:11:49 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::423a:a30f:5342:9d35]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::423a:a30f:5342:9d35%6]) with mapi id 15.20.6387.027; Mon, 15 May 2023 02:11:49 +0000 From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next v13 3/7] selftests: mptcp: check subflows infos Date: Mon, 15 May 2023 10:10:54 +0800 Message-Id: X-Mailer: git-send-email 2.35.3 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: TYAPR04CA0016.apcprd04.prod.outlook.com (2603:1096:404:15::28) To HE1PR0402MB3497.eurprd04.prod.outlook.com (2603:10a6:7:83::14) Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: HE1PR0402MB3497:EE_|AS4PR04MB9361:EE_ X-MS-Office365-Filtering-Correlation-Id: fc482ea9-bca6-42c8-d7e5-08db54e9bdee X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: V3um0a3OoI41qfluapViq3qjPbY72a6nUZhIzUsoE7k3Tj2ZWmwIi7ZK9SeFMNDJOvIlXuzzjZSwmmFEHsi2noEHajnCc5UZSzBWxdNYRYsa/fsW6Qn7lBom5bH/u+c3cpjspsJSOE15sME9dPkWi3F49d2ZkbXGC75jpIX6NbMSlHmflfPQBMtxHMpjZ85LAEAbUB8NO0nAF4L5vkRW5z2o+ZuIsvWRiyvRfF5iT/PuNLugxs89e6Lv0w8mbyPHtoo4/16IIvvxyd7/9oF4xxUMaZLBdncO63ZdckzphFkVbzCf7je7TM9AvOFhY5fZtAE50mIwFFontjlwb/STTWU65S0st+KEZ8xNK2VUxjIKi+BXu8BDt5lAkXI4z+6mkOIVwgeen8y2EUTWj2CHXVLQuEuJ1fXTwWqNa0nAYeVTPxBFExJx9hkgskN0Ckbdw87FKz0Q0iUZFI3TXh45ofzNVMyM/7fWnacYnNgVWjI6b5GwQByk9lQER78NEUG5gFzTZbsopA+Dq7INKCR2tBiZ8sJeGfTWnvp6ifhoZeIP27goHj+x6SRX87ieZ+gt X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:HE1PR0402MB3497.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(376002)(136003)(346002)(366004)(39860400002)(396003)(451199021)(66476007)(66556008)(66946007)(2616005)(26005)(6486002)(6512007)(6506007)(107886003)(478600001)(6666004)(186003)(5660300002)(44832011)(86362001)(8676002)(8936002)(2906002)(36756003)(41300700001)(4326008)(6916009)(316002)(38100700002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?Mf1K3ZgRNLkTzbI4cl2iFe+V9Iype5SsOzRCnoHbBZrKQA1Jl/GCE0JVvbz8?= =?us-ascii?Q?iT6Hi1pJb7wK1ZDX/2ObRCtYNv374ljvh/Q79zu01488tOBqSs5HYFgjW091?= =?us-ascii?Q?iYNfaHje3gkV7Dp4hPI3jkemnqThl0UeMIM40akTtncwgsVR5P3hVk1TndlK?= =?us-ascii?Q?KuWlUE5opAumkZWWN1/4JF79vzLy9BkWPtDd5PgIfWPryJDxwU/jkEDCUEKq?= =?us-ascii?Q?muwH3row2WfugXajO7fm5ttyPLbtR+QNS4md3HmASl7UMoWJpAv5g6b3F6rX?= =?us-ascii?Q?7beWzcuyVhRdisvvGFQr1LfaVoNVRK+nKezf7fQIUYZl0ZqaMYLcty1rt3r5?= =?us-ascii?Q?BPQ1mWKhlVxoJux16hY/obX2ciAoBtuhgnVU3wYYrbi8pHG6Msg0vHtBODYm?= =?us-ascii?Q?H4QdKMbIrx5xcvUknPxJgcbYnzcoYkkrEt+fxcjRsqRy8PxDKJkTpzNey1z+?= =?us-ascii?Q?pQfBnz9c59Q66WkFSNfcam9NvFsBGHfKa0gLquFAuz0zRshYb7V0GFL29bb1?= =?us-ascii?Q?cELEgUYxq7ql1KozRwhaRABocdKtXFeqR2P1auLHJ2EzqVWmN7KcQLd9pKoO?= =?us-ascii?Q?DkrzRupFzys6DvpCvk91R0BRnS1DN0rlZcj5zbnSrFnap3b7SfYd4bmmDuc5?= =?us-ascii?Q?+fsigPgL2Uyg7Y4NjIHCKyL0M0X2P9ZPv2O95n2jV/lbW3Ng+zuC3TKnKeTq?= =?us-ascii?Q?JG8jkO95dDdKooV6J81zAHAa+XsfE3MAWGs8ZLpYTMknRxuE2ge+y6iogRN7?= =?us-ascii?Q?MjNvOzCEOX2CXzhtgDxkEt6/owAdzVNloir5k9Db9LRG7RCQOrQHotl0RKiG?= =?us-ascii?Q?OUMeY154Rf3Q34wv9eK5iVPyk4mpGWGs6cKxboNhsl5hAcHzGEXQgMHzz1Fi?= =?us-ascii?Q?A6WKUYaNAIxs5ewP+fQ79oGABdlbhEInrC4RqudlcLOisrQ3aXAEa6ajgmuG?= =?us-ascii?Q?uC6DRe6VNcxA7rQWiPaoHc3DA72aoNiLgJNOf0wqo1xI71NoOkH+ZW4UZPnX?= =?us-ascii?Q?/2c2WfS5ZEGDmjOw2Ic763QxkvscloKXzhmkN7m0BuvRrmnArJgA+Xz1cfcZ?= =?us-ascii?Q?Q4LSJjR8lOjfjcuWczPDY33j33Ggxsq9e6K33z/oxSJ9kkNrSOeGrzJ+YdAI?= =?us-ascii?Q?b1MjX6E8DfcuAxR24hL6VJckLCj5XqAxVntai2xBNb00nANPDb/7uPx7X74f?= =?us-ascii?Q?uwvFD6HDmtRpDzSGKPRUfD4V/z1x1yYhnAKKp9536Z9EIkOW3+onf2L0wbgY?= =?us-ascii?Q?rXRe5+mXAspGLY2C1aLq59F8JsX1mO+gK3VloKlneXjq/pSPy59MUTKWArp+?= =?us-ascii?Q?/7S9aezS5iQlIY/XUadHetvUR0IjUCjVErm3kjXbEbWn/34dTWaadKTacam8?= =?us-ascii?Q?ouFs6HhSESDHyn6oA3HKJnUBXwhH+BEJ5j4LzD/RrlS/KDgBoG/UeKmnDfCV?= =?us-ascii?Q?A42ZccBbozflSp0duFaqX4X/h7ZM+l88uB2ObPOiuFUlgGlK1EZrRG3HkSV8?= =?us-ascii?Q?AJtCcy8fUUkmfoi/LWy4FPpS/8Zj7fyTeQiV4ipwNeTnSP0XkzIACVMPQGqZ?= =?us-ascii?Q?Njf0nAY0JQj+Pe9XOF+rE+Oxf/RjB0mysH2i4qot?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: fc482ea9-bca6-42c8-d7e5-08db54e9bdee X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 May 2023 02:11:49.5066 (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: oQpjq72hjDbiItRh+ZuXUXqQ9nlu0Q9Im/lR2YYDziSyz0/YX8XOr3wR6ZGbJxrKPl8vzLClkd2VpwmdP21gRQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS4PR04MB9361 Content-Type: text/plain; charset="utf-8" This patch invokes chk_mptcp_info() to check subflows infos of userspace PM tests and endpoint tests. Signed-off-by: Geliang Tang --- tools/testing/selftests/net/mptcp/mptcp_join.sh | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testin= g/selftests/net/mptcp/mptcp_join.sh index ac3fa8f0df0f..0e8124290c7a 100755 --- a/tools/testing/selftests/net/mptcp/mptcp_join.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh @@ -3164,9 +3164,11 @@ userspace_tests() sleep 1 chk_join_nr 1 1 1 chk_add_nr 1 1 + chk_mptcp_info subflows_1 userspace_pm_rm_addr 10.0.2.1 10 wait_rm_addr $ns1 1 chk_rm_nr 1 1 invert + chk_mptcp_info subflows_0 kill_events_pids wait $tests_pid fi @@ -3181,8 +3183,10 @@ userspace_tests() userspace_pm_add_sf 10.0.3.2 20 sleep 1 chk_join_nr 1 1 1 + chk_mptcp_info subflows_1 userspace_pm_rm_sf 10.0.3.2 20 chk_rm_nr 1 1 + chk_mptcp_info subflows_0 kill_events_pids wait $tests_pid fi @@ -3200,14 +3204,17 @@ endpoint_tests() wait_mpj $ns1 pm_nl_check_endpoint 1 "creation" \ $ns2 10.0.2.2 id 1 flags implicit + chk_mptcp_info subflows_1 =20 pm_nl_add_endpoint $ns2 10.0.2.2 id 33 pm_nl_check_endpoint 0 "ID change is prevented" \ $ns2 10.0.2.2 id 1 flags implicit + chk_mptcp_info subflows_1 =20 pm_nl_add_endpoint $ns2 10.0.2.2 flags signal pm_nl_check_endpoint 0 "modif is allowed" \ $ns2 10.0.2.2 id 1 flags signal + chk_mptcp_info subflows_1 kill_tests_wait fi =20 --=20 2.35.3 From nobody Sun May 5 14:00:14 2024 Received: from EUR03-DBA-obe.outbound.protection.outlook.com (mail-dbaeur03on2063.outbound.protection.outlook.com [40.107.104.63]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id EB09710EA for ; Mon, 15 May 2023 02:12:03 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=mx8MN3j6b9rSyY4LYN6RtZPnZWI3OYB+8DkEXMZAgmQGpjPJ+lusBpGA8Eui5FZpq8cJBSHKE6sdAH9XObXiLJSjtNWtnSFn/V5INSdeY+YMCF/k0MbNnF+TTCkaqww32stuT/Mv1EVTnnoQ73C4k/py1S6VfMMoXqDkrOhhK1vobhBVt4geDxbHjd8YqFimVW7BhPEU5Bd1G+hiiRq4pJgGzTYNRB7LCccdfkag9xA5141XsiSD2flSiBEzkGo3DVcEkSq9gQ7e8g+LAe74G+6Ou0UGMSuIL5x17IE7oynSonQqmTZRjBLH1lIdlFRZNZGHumxaDxLZQhoOuVzdHg== 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=g8O/iYORdGCi4eN/Wy/C+I0a9T965+KcWYpWZuZmYok=; b=Mm5F3aMjaGMXl+0uuB32Cjum1fGUe/KAnE1pKPBluwjpU0NCnHotyIBAuygEH+H1twiEBwHmE4Y10Rg0wGg+LojmZRU9w0Tbx7MDkrYsYxtLiuajQasJdQ3m5uFyTFGWzXlsYp4bzjVa7v2KmOgTdWsZaxv1LFBIdc+ZY/25yYX7jzZB0jpFBmJsl6IxPWcmP7Pst7DWrhFGU9M7XFtuAB9wx84hNc9Aj5RPORuoyCXK1UKtk0nBUNzSifY2q6TqYkB+uKnpd2/au27mZgShCv8f8NZz2CPHHOwyrK4sBdzBuzII6igAoN6nmPszR1ABPwbM0k55yw0gbm1GO1iVSw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com; dkim=pass header.d=suse.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=g8O/iYORdGCi4eN/Wy/C+I0a9T965+KcWYpWZuZmYok=; b=ILNvGblguYedmz3i35lIsouQrrM4WNypky2BPxjMtLFffA6paBCS/j3GzJMkVOBfcJPv2SwsNFCcytW5lOiH4kkLe7ZTUoNHbWwrR4vP0ACkeq0MjNVtoS1GZBDKUiudINMFNvG3br7sAkB6MTHYZOQeLDKRlw46MfuibT/H6jDtNNrEQgOGYczg0CKS/GcXcsv0YqZtlZEro38Uq57TWIfzmmNosBsZsyHBYkNH0SYHOjLfs9xt+Nf3IwbPIrvO5XIVOlO98nuLwz+aVh2GriNsu9OoJ1n/yqpnFG7fTt/svlBG2XBaLIJuTYoWqWfdZrrMM8B3B2KABthnvh4kQg== 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 AS4PR04MB9361.eurprd04.prod.outlook.com (2603:10a6:20b:4e6::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6387.30; Mon, 15 May 2023 02:12:01 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::423a:a30f:5342:9d35]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::423a:a30f:5342:9d35%6]) with mapi id 15.20.6387.027; Mon, 15 May 2023 02:12:01 +0000 From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next v13 4/7] selftests: mptcp: check add_addr infos Date: Mon, 15 May 2023 10:10:55 +0800 Message-Id: <9e205d5cb37fef98cf6434bda295e845155102cb.1684116357.git.geliang.tang@suse.com> X-Mailer: git-send-email 2.35.3 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: TYAPR04CA0010.apcprd04.prod.outlook.com (2603:1096:404:15::22) To HE1PR0402MB3497.eurprd04.prod.outlook.com (2603:10a6:7:83::14) Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: HE1PR0402MB3497:EE_|AS4PR04MB9361:EE_ X-MS-Office365-Filtering-Correlation-Id: 4d9d941c-20d2-49c5-76d7-08db54e9c4c9 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: H7YIcN9mYVEMHVUTh/RNc2MYnX80+TJ6GJTj3TnbouP3DtnpcWWSCEE4LSi7PZ5bTKHtbrQt9W2qwwXw4pUFkUnCLF7DeYWmW+JYaChn94NC2gR3bydt0EH5QXDXLvlSoqUW+xvUUsRtrDMPW8VOyQGRHJYC3o9+u1BgRUCKlPKpC77v/wjr3yuXwUX+MXq2jNeiJNRdr62wlo8e7kv65+zgaSG/FJvj8BdZnzOkcxBbw4FNHDiwFSEhIQ5uBwlQrR/KWKg9/6DUZMOV9aNUG+kWWCvcRR1tBHJAKDyTL9V9ZjUb9jLmZK8gyVUelCqUTd1V51gVLWNux6COQbHoq6ZietqoAFTKEaImRDGUaR311ckCVH2kFuKJOKtKQNplbtAW+V3mrXDzJZnY1C2DuJPJKOc+8orGKzGfDzl+FO80MRA4gpU9eljO6R/o2VxkTtgls2uknnLeTApR1e2usnCi4MpZwQtb1UStQ/WaVBKcqHw4qWHwqtp3Tp0Evjvsb84LJYfumaXCmP/dRMcHTRHpFUvizEnJjA1CVDuG+Lx9zx3WaFHHZMDmF4rQSSVh X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:HE1PR0402MB3497.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(376002)(136003)(346002)(366004)(39860400002)(396003)(451199021)(83380400001)(66476007)(66556008)(66946007)(2616005)(26005)(6486002)(6512007)(6506007)(107886003)(478600001)(6666004)(186003)(5660300002)(44832011)(86362001)(8676002)(8936002)(2906002)(36756003)(41300700001)(4326008)(6916009)(316002)(38100700002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?uvV9utOCu8cZQIfTLWxRY4sTZOhtmbP5aYvXyT9Ukk3jhwlDAltzDHurLw6K?= =?us-ascii?Q?VY8bWC8UYkWjmc+KWCqv7Qvq9gf567cLVznFplqsbNwpf0TSP3mJlTyatNUB?= =?us-ascii?Q?vnaX8GP2xnuHC6SZjMcpMyl8Jx8NL+1F4KOGB6+fLR0Lx3rAfHm47WN1E2UH?= =?us-ascii?Q?KdLLxftYtOrMqGe/D7m3/JtsdS0O7liPDS9QrU85MWRB/mTWlS6fdhgmt6hG?= =?us-ascii?Q?tpRcO9KuXXUEG8Eq8krQwz8oCfzcVuBDpQTTX0XQXDXWjUO1RpwitM1vfwSc?= =?us-ascii?Q?CWlVwRJH4QpFvLxEoKrHDHiqSrb3cvvwt9yz1KYU/DHsLWbqeSaFWGBioCi3?= =?us-ascii?Q?v6LCOwcG2qvLPxoEOov8Kb2y7siVlGq85WVb0CwvD3eA9d+H0VeFgIGFDhaF?= =?us-ascii?Q?w2Cwbka2jsQ7mYJWUe03KkqVA6K4VA9qhCoGOgakaKxX6hddDabdAc42aDpF?= =?us-ascii?Q?lAcgCUK4s0HcnbL5bobQ478Y5frWigi/O2pv5dNWschizIHr7oaWG6dxMNje?= =?us-ascii?Q?Gbi86Bmucmz/bFI8eKly8qr/X8Jn0bGmPo5kCwcBv+BNtMWrt08V4zP1AaXa?= =?us-ascii?Q?68w+SQx1I+Wl8oW05zWBcZOnYozuGHUCgzP58nFnu/xoeY61zWN79mEvwLOI?= =?us-ascii?Q?6CAXYSmSvvfnO1DJAdGyJKC3qrJ6bTHkga5r4EV3URYe1Mmc6X2MhCStV8tS?= =?us-ascii?Q?GHVeK+zzCk8Abkbnkg8zuvOzG4/2O6VN3umApXX6g3IaCc0hGQA5rj2vWE+3?= =?us-ascii?Q?Yr5orhs3n0BKpt/VZVoXfLhdgTePMXQKomPqI56eniPdz9LwF9uqDHnzRIg8?= =?us-ascii?Q?W5edSphJrD8klPjIjQ5Zxurhhg5dH3SOx0jOrtVFA2upXJls7aBfZdTqEioK?= =?us-ascii?Q?AC422tMYdB+UGtal1ADdBmoi3yq2AmiVRAy9QWgQrz2hnlDmaOYfFwVCKPmP?= =?us-ascii?Q?x8kPAeABfZ9dKP+spTT7ZmS3w8WnpNM8yrvKfgq9k6SE6m8PV79iV9TF03PW?= =?us-ascii?Q?YckjSoUKhd3eQ/YLkxEyqoS+MEtcRkjUuBvCxl+hk2Dm95Pd5cFOePj+FFCi?= =?us-ascii?Q?xGS77NT8Wo8aDjzGbMXXXOui5kcQve+DUgvI6clyLKdrGHyXRz+Bte+fOHLN?= =?us-ascii?Q?ppYBCEdPCrj+AHAym6lI+4oJGy9FPSoo+o2+7y+z8J3t6DcTihWnheLhMqgG?= =?us-ascii?Q?+NTpy3/rmc3IoXS1iGh9P7d8zQKx0mIMEZ3g7Cq/biDwrlLLxwhSjbq0wza7?= =?us-ascii?Q?e7887vn++g6gtmgXfF4he7bfbsQLsVOAMBq71xfz4/D6YPKUv7Km8tES8RXK?= =?us-ascii?Q?FP7AeJ+Mk69DI7r6WCsGSYpLk0PftBFDUf/2zvuVRLP2j6UtWHT1kg7Egv+X?= =?us-ascii?Q?w1YIRA6VgqF25HplQ0TZ6sm/EgLpP36+GANeCzBprV4abMbflCSua7jQDlh8?= =?us-ascii?Q?xXT79dUHzeJK5Rd4GebLaS95EAPLMvjSRbdkmOf1bAdQD222Rdvwq+twePb/?= =?us-ascii?Q?ozIsHl6blpJMBKqRBROw3YSRhMjxdwNSf20mkfCz7y8Bt0aqX6890Q6Th5R/?= =?us-ascii?Q?HHLVcwU/ZPIuXZNSoY1hjPFKfdyOR/QHbxJV7gBX?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4d9d941c-20d2-49c5-76d7-08db54e9c4c9 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 May 2023 02:12:01.2611 (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: EXAVOgWr9CxK5l7GqIS09JVxlD/vg7u70i61AcMfnbkrJb+I8rv3XYd24vIBXjefmufiTmdjI+nbzQOTKU6GWg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS4PR04MB9361 Content-Type: text/plain; charset="utf-8" This patch checks add_addr_signal and add_addr_accepted in chk_mptcp_info(), and do this checks in userspace_tests() and endpoint_tests(). Signed-off-by: Geliang Tang --- .../testing/selftests/net/mptcp/mptcp_join.sh | 26 ++++++++++++------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testin= g/selftests/net/mptcp/mptcp_join.sh index 0e8124290c7a..d8404d1354b7 100755 --- a/tools/testing/selftests/net/mptcp/mptcp_join.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh @@ -1707,13 +1707,17 @@ chk_subflow_nr() chk_mptcp_info() { local nr_info=3D$1 - local info - local cnt1 - local cnt2 + local info1 info2 + local cnt1 cnt2 local dump_stats =20 if [[ $nr_info =3D "subflows_"* ]]; then - info=3D"subflows" + info1=3D"subflows" + info2=3D"subflows" + nr_info=3D${nr_info:9} + elif [[ $nr_info =3D "add_addr_"* ]]; then + info1=3D"add_addr_signal" + info2=3D"add_addr_accepted" nr_info=3D${nr_info:9} else echo "[fail] unsupported argument: $nr_info" @@ -1721,16 +1725,16 @@ chk_mptcp_info() return 1 fi =20 - printf "%-${nr_blank}s %-30s" " " "mptcp_info $info=3D$nr_info" + printf "%-${nr_blank}s %-30s" " " "mptcp_info $info1:$info2=3D$nr_info" =20 - cnt1=3D$(ss -N $ns1 -inmHM | grep "$info:" | - sed -n 's/.*\('"$info"':\)\([[:digit:]]*\).*$/\2/p;q') + cnt1=3D$(ss -N $ns1 -inmHM | grep "$info1:" | + sed -n 's/.*\('"$info1"':\)\([[:digit:]]*\).*$/\2/p;q') [ -z "$cnt1" ] && cnt1=3D0 - cnt2=3D$(ss -N $ns2 -inmHM | grep "$info:" | - sed -n 's/.*\('"$info"':\)\([[:digit:]]*\).*$/\2/p;q') + cnt2=3D$(ss -N $ns2 -inmHM | grep "$info2:" | + sed -n 's/.*\('"$info2"':\)\([[:digit:]]*\).*$/\2/p;q') [ -z "$cnt2" ] && cnt2=3D0 if [ "$cnt1" !=3D "$nr_info" ] || [ "$cnt2" !=3D "$nr_info" ]; then - echo "[fail] got $cnt1:$cnt2 $info expected $nr_info" + echo "[fail] got $cnt1:$cnt2 $info1:$info2 expected $nr_info" fail_test dump_stats=3D1 else @@ -3165,6 +3169,7 @@ userspace_tests() chk_join_nr 1 1 1 chk_add_nr 1 1 chk_mptcp_info subflows_1 + chk_mptcp_info add_addr_1 userspace_pm_rm_addr 10.0.2.1 10 wait_rm_addr $ns1 1 chk_rm_nr 1 1 invert @@ -3205,6 +3210,7 @@ endpoint_tests() pm_nl_check_endpoint 1 "creation" \ $ns2 10.0.2.2 id 1 flags implicit chk_mptcp_info subflows_1 + chk_mptcp_info add_addr_1 =20 pm_nl_add_endpoint $ns2 10.0.2.2 id 33 pm_nl_check_endpoint 0 "ID change is prevented" \ --=20 2.35.3 From nobody Sun May 5 14:00:14 2024 Received: from EUR05-DB8-obe.outbound.protection.outlook.com (mail-db8eur05on2087.outbound.protection.outlook.com [40.107.20.87]) (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 18F681381 for ; Mon, 15 May 2023 02:12:12 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=e0VrptJJ/tuVk5B9/ygqqFM51k2NtKf16L2DJgWWJGtaFm6DMPExeFod/A4/NyDZEPfbVS97r/lwr9PYLI9PKBsOGYkQ48OCrhD2V3ap4pXrz8prRtYJE6S+kBt7sWhh6UIw2QGL3GMyl+L1D9cRo9qIkU3ILKlSvWFauOw2p6zxj+LhylpfcUpjVHBrDIsbUmmjmGsLhmo4pHssEX7Zz+ZoMowHelJa9A+f7T8Jn6qx3LP2ciUaQZgWBqrPJgUipy9pQFTd42xaTWaJOVDYl5VkLU2vSomRHEF0kYgPsM68eQM5ZVKU8q6oiWuOTKiUqP25gh9KXgf0lE9PZI9G8g== 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=IP3sziXMgvHO+2QK1/CBdB2g7dTMaOdrwFPepGbCGUg=; b=XyZyO4BVnG/aeB284OsUYazUwmggjSWyOgJnpQc2NMnkMlMPGJm5j8EEbXjKfg03t9PLbc+Wg2vK5OQ7UmfkvgTcRUEE01w1jWMPvWJj/y33T6JtdYknK1lFxtnxmMSTzNIC0z2DllYc1lc/WASD92T0MR+IBTW6YLieaPPJCkslB9+V4WnwqSUOi6ega+MlJcV/hfB3fxkUx4QBIe+TyL6DrbDu/w670Boh4JuF7Z6KOB2iTkCIBcC6PRDN4eSjTAeerB0R4yBJby+zonzJfbsu+qKqqV5gs5ckANxzwsPzortyp4ACY0Hy9MY5PQLEHSPOSegBYCcFaFHOpXaDfA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com; dkim=pass header.d=suse.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=IP3sziXMgvHO+2QK1/CBdB2g7dTMaOdrwFPepGbCGUg=; b=Ggvs6kZX59Row0KJcwmh3TL01ZppRnQvp13jdkYRZzbKn6WsYYY0Qg+r4d2vxd9gttJ182CQZAtnItifhVI/8VhWEg9INIroNDnW/Z3lywt/2V+H7/p8KRUuQEzTAlBWaT6005ZT2o1xuz0FOO58iqKXvUOQGB6zmbb55MWcJU36V+0QrSYsbi9O3uJKU/gxzuAUV1WiE/kf3CBCHm8mgml1K5KJNj0lVuNwnYihOEqB905FRbOKNlZwvkpF2uGpL2dviNrO479xvPb5j0W2shc8dfAaiqlfjFTLnXyW95UJtnQMfuTRjYNbb2wCWAzqo5U7seZlmgu6oGM0fYpMMw== 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 AS4PR04MB9361.eurprd04.prod.outlook.com (2603:10a6:20b:4e6::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6387.30; Mon, 15 May 2023 02:12:09 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::423a:a30f:5342:9d35]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::423a:a30f:5342:9d35%6]) with mapi id 15.20.6387.027; Mon, 15 May 2023 02:12:09 +0000 From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next v13 5/7] mptcp: pass addr to mptcp_pm_alloc_anno_list Date: Mon, 15 May 2023 10:10:56 +0800 Message-Id: X-Mailer: git-send-email 2.35.3 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: TYAPR04CA0010.apcprd04.prod.outlook.com (2603:1096:404:15::22) To HE1PR0402MB3497.eurprd04.prod.outlook.com (2603:10a6:7:83::14) Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: HE1PR0402MB3497:EE_|AS4PR04MB9361:EE_ X-MS-Office365-Filtering-Correlation-Id: cf1dbc6c-169c-427d-f959-08db54e9c9d7 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: Mhu/k6LcHLoFkkf7KAdXyskCHoqNypyMxoWzLdbddjIawQQqB/CCsAIxaPKOueLlfuhHdd9ahoX/AWoKxOtGG9nkacXNKozZrknakand5S+3Dqy0+Ij0fcx8TQ3psxBMaK8z+zP44Ez96cbnxe+3QtiGI/jbd7kJhoD/tb6ue82NwT7HoH1h05fKjczxqsDBmhy7zPQfMZ1Q3CKEY5tCvcmDIDjJlcrf+KWJ9PvEHrMNmqQhUq/eua3r83YF4QzKCkY/5AujleBZRJ7EhzM/hWgnlalcRUFhEScGostl2PyhLJ1XQWXWW6AsWWa5oke/00NwtbEKiBAMz0UKMgo8fvhAqQdc7uKtNfQ+Jby0te+rBeCQ83FJN9vW7WrrZd54tBGxcbJAlOcyFVFc13soDfNVxzy/G2v0Ornc0DwrrV+sHyDLQrvzesWN8uGevppFqMZHcgEMWsj4WnQ5RK+/4jPeDwOa6csSFGjb7ANsPxWXtwNJgGDg69dYK1HKBJbVRaYDGGO+jSBc8YBQrvAsrftN8WhtCe8S7qBu6uLaAKtEhQj4BGeCPsj8TAonebU7 X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:HE1PR0402MB3497.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(376002)(136003)(346002)(366004)(39860400002)(396003)(451199021)(83380400001)(66476007)(66556008)(66946007)(2616005)(26005)(6486002)(6512007)(6506007)(107886003)(478600001)(6666004)(186003)(5660300002)(44832011)(86362001)(8676002)(8936002)(2906002)(36756003)(41300700001)(4326008)(6916009)(316002)(38100700002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?8iSh4jhEUb69VdUQBErEfYzOiK1HY1hac+dNAM3OZF6W758+ZRnJdq6jRSX4?= =?us-ascii?Q?jocmOa76WCG1Ev0P4oBSwRyJuaYsabpDBWRyftRtFYsg5WJdSx+88axrfqF8?= =?us-ascii?Q?ox2gRSoprau2arJYVFdnR7Njqhpstat2/CwlUf40BM9XBM3X4LN9aZ+qmzMV?= =?us-ascii?Q?VpTDcmYy2qET8VHhwyVirSly4S/ufDgiklztQI/mYZwqMrkrMyt3Tg/iWZ5H?= =?us-ascii?Q?qfFjvfczax3Wyj4LLpHfKDkSGJ++UJ6qdAvHqr9txbCG5egkqmDay+yJF2sU?= =?us-ascii?Q?kXtCb4Qa7mjzq/nSnyBdi4BfJCu9tPVvc/bX7wcJ7MLP78LkF+Hh10gGRlix?= =?us-ascii?Q?W478qkTcJ+jQ314VydcdSMTf8OmTG/UkwlFfFMxJf79QzUF7FmTj8T90iBDf?= =?us-ascii?Q?2yWWwE6e3FjG0aV6iNtcjOac9vY7AZhKgiXGyAiKWmmDc0gW97H6vixhbes/?= =?us-ascii?Q?fv+3czXIIgBPjVOuhjzWBsW9fMjCMsDyqX7oRup07HOEKLV+S/PxF3xoIf31?= =?us-ascii?Q?D2PoFLy2DM355Hkm+b2n/94L24bTRpmDMwh5Tz9lB+vBIL3Ncrtmg2MnNt8v?= =?us-ascii?Q?Xea0TmNGjlS87P5mVoaBLEE+NDLFQzREYWPxh6F48A/aV/axlfSugcON49/f?= =?us-ascii?Q?nEQP4pYDonJX3xrlADV4eMgL1UhFNRr2DC8tBP0YHYFBd1mUBCoxZjPlNxQv?= =?us-ascii?Q?7k0EsUzVgFB9EFkm/G9Yxc+AbmqpZEQUZfamYxIQ59cWUjbmPZLtNlMm0XV+?= =?us-ascii?Q?3r/UhQP59AbNx1hrihTsONNvPosc6jv9ZwAp/JR7ANS1f7GQU7+Asc5e1Y3o?= =?us-ascii?Q?LNE46fKnk/rDS1rop8Cm99qQR4qoYkVaEDurfomQfkiYxSwzez3czkUAsltQ?= =?us-ascii?Q?d5oJK4c2IWNgsHPP4oJutK6I7jldAzfU00gwfc3Z0hvp9k3fr9SPFpWVrJQF?= =?us-ascii?Q?Rq8hqranNblXeEvLn1Y00ExWAkMCV9jRTM+Wm8IEaF8nZTAHss33Ee9wuWp/?= =?us-ascii?Q?fJsamUqf28NkHdqRPzSQe8ME+NfObrSGbu5gUNF+JKP1STyXz0o5YD+GaR1V?= =?us-ascii?Q?mKTTcTK1yVliDdFOMh6bIIwCgRrwYq+lW5pZJW+hrzUufFkj0wBQZfAgPF7a?= =?us-ascii?Q?Zg6XKSafTxoKpysIRwxe1N25vD+SWGJmJjpk936s9qA1xoibkD9ppA7R+6MN?= =?us-ascii?Q?t3nI9bqjVVPUhHhg4JkBXiY0yeBwzCFNNxh3p31auLYyI94hYw5AXUhgVQcF?= =?us-ascii?Q?lRhyRQXMkfMTF8Or6opqgHNpo4c2KWqD4+K0Xj4eJxZ+QTfQnjiLaNXEzYqw?= =?us-ascii?Q?dm140B4OHuPSus8/Wl8z9LSYYpu9WX38BzIOoeuDqS/GSzYKyQR6lQ7mhg2v?= =?us-ascii?Q?uimIofV+hGJCwl3J/9S9g4v2m/W/RHmUvXyAn2GNqvBMjri5Zex1LgIv+Juu?= =?us-ascii?Q?G+YyJhnXQy/f42DcCB7cPRsOFpeif4Rcu2S3N68FeAYoiNZo6V+hPLr8UwQL?= =?us-ascii?Q?00BzF04cVFZmiLUsbRcP26GKnyoQLHhun5Vub8kFRDFEOFC4Zu+ZMcs5ipPW?= =?us-ascii?Q?oaxV2lTMVmzIvOm2fh9gTW/MIxiPp3OtyACwmfnZ?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: cf1dbc6c-169c-427d-f959-08db54e9c9d7 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 May 2023 02:12:09.7493 (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: wzD3l5CzuF0bItMC7eAIG5W6l4yJ/E48EIoxXejG5O1HYvpW5cwP1alar8U+sZ0QaHCUbKljzhotKJO5Uub7fg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS4PR04MB9361 Content-Type: text/plain; charset="utf-8" Pass addr parameter to mptcp_pm_alloc_anno_list() instead of entry. We can reduce the scope, e.g. in mptcp_pm_alloc_anno_list(), we only access "entry->addr", we can then restrict to the pointer to "addr" then. Signed-off-by: Geliang Tang --- net/mptcp/pm_netlink.c | 8 ++++---- net/mptcp/pm_userspace.c | 4 ++-- net/mptcp/protocol.h | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/net/mptcp/pm_netlink.c b/net/mptcp/pm_netlink.c index 0b34b57fc8bc..ac68c8a5b8ae 100644 --- a/net/mptcp/pm_netlink.c +++ b/net/mptcp/pm_netlink.c @@ -342,7 +342,7 @@ mptcp_pm_del_add_timer(struct mptcp_sock *msk, } =20 bool mptcp_pm_alloc_anno_list(struct mptcp_sock *msk, - const struct mptcp_pm_addr_entry *entry) + const struct mptcp_addr_info *addr) { struct mptcp_pm_add_entry *add_entry =3D NULL; struct sock *sk =3D (struct sock *)msk; @@ -350,7 +350,7 @@ bool mptcp_pm_alloc_anno_list(struct mptcp_sock *msk, =20 lockdep_assert_held(&msk->pm.lock); =20 - add_entry =3D mptcp_lookup_anno_list_by_saddr(msk, &entry->addr); + add_entry =3D mptcp_lookup_anno_list_by_saddr(msk, addr); =20 if (add_entry) { if (mptcp_pm_is_kernel(msk)) @@ -367,7 +367,7 @@ bool mptcp_pm_alloc_anno_list(struct mptcp_sock *msk, =20 list_add(&add_entry->list, &msk->pm.anno_list); =20 - add_entry->addr =3D entry->addr; + add_entry->addr =3D *addr; add_entry->sock =3D msk; add_entry->retrans_times =3D 0; =20 @@ -574,7 +574,7 @@ static void mptcp_pm_create_subflow_or_signal_addr(stru= ct mptcp_sock *msk) return; =20 if (local) { - if (mptcp_pm_alloc_anno_list(msk, local)) { + if (mptcp_pm_alloc_anno_list(msk, &local->addr)) { __clear_bit(local->addr.id, msk->pm.id_avail_bitmap); msk->pm.add_addr_signaled++; mptcp_pm_announce_addr(msk, &local->addr, false); diff --git a/net/mptcp/pm_userspace.c b/net/mptcp/pm_userspace.c index febf3cf0e935..f0799cfb45c6 100644 --- a/net/mptcp/pm_userspace.c +++ b/net/mptcp/pm_userspace.c @@ -191,7 +191,7 @@ int mptcp_nl_cmd_announce(struct sk_buff *skb, struct g= enl_info *info) lock_sock((struct sock *)msk); spin_lock_bh(&msk->pm.lock); =20 - if (mptcp_pm_alloc_anno_list(msk, &addr_val)) { + if (mptcp_pm_alloc_anno_list(msk, &addr_val.addr)) { msk->pm.add_addr_signaled++; mptcp_pm_announce_addr(msk, &addr_val.addr, false); mptcp_pm_nl_addr_send_ack(msk); @@ -338,7 +338,7 @@ int mptcp_nl_cmd_sf_create(struct sk_buff *skb, struct = genl_info *info) } =20 spin_lock_bh(&msk->pm.lock); - if (!mptcp_pm_alloc_anno_list(msk, &local)) { + if (!mptcp_pm_alloc_anno_list(msk, &local.addr)) { GENL_SET_ERR_MSG(info, "cannot alloc address list"); err =3D -EINVAL; goto anno_list_err; diff --git a/net/mptcp/protocol.h b/net/mptcp/protocol.h index bfa7d93a1c1a..c08d05f48372 100644 --- a/net/mptcp/protocol.h +++ b/net/mptcp/protocol.h @@ -822,7 +822,7 @@ int mptcp_pm_nl_mp_prio_send_ack(struct mptcp_sock *msk, struct mptcp_addr_info *rem, u8 bkup); bool mptcp_pm_alloc_anno_list(struct mptcp_sock *msk, - const struct mptcp_pm_addr_entry *entry); + const struct mptcp_addr_info *addr); void mptcp_pm_free_anno_list(struct mptcp_sock *msk); bool mptcp_pm_sport_in_anno_list(struct mptcp_sock *msk, const struct sock= *sk); struct mptcp_pm_add_entry * --=20 2.35.3 From nobody Sun May 5 14:00:14 2024 Received: from EUR05-DB8-obe.outbound.protection.outlook.com (mail-db8eur05on2044.outbound.protection.outlook.com [40.107.20.44]) (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 24F4910EA for ; Mon, 15 May 2023 02:12:23 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ZeyOfjerwWl8rqOae81HEELinAP9SHQnRAYUSArmWifmIWb8zhBJEE7SUjeOxe3ETVatIA60FUHY4VzGG7XAyNs2Sm1+2xEuwIQV4Cq971L41WMIpcfvDCj/+qtoX/LZUh416GFh87tb8E8g514+9q9a1tXASwKQBEJ6ZizHlGOULnwcV30KFx5mXwVWDAaxqeo3DDfqHV7h/L8dPDftOdTShLukdOvP0hID0E/BQZV5mmYW0n04yzyZAkphNUUKRc3CnNvlkJdR2DZtO0Kzw4RaOvzXIB8NV+fF9LFXNSdPXAOtTa0nI76DAaxwHqRgPzyDX+LFkWJcA75IoN4pBA== 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=II9BZTr+iuXxN+ScTzUhxj2emNYy0u4QW5Wx7Al/rt4=; b=bd+2DIW/B/dj/2/0Pf9frt096jKKuCm3UyHlamohZEYAVNa3L+8iMgf1+daVDHferHFumwM3qS2RafRO+CySqrs4ijnPO7H+3fM2jaQJVz3Xk7tiWXs76QiXdTReCqDDSINYZy0zsNMZR86hHKhwQbGHDCFGxxrgYQ0PTKHCTSOupVDh+Vu+1O6NzxV8YyAynji7dXoCEhEsOB6buG3YSqDkeK2xMJSMe1XCI75YE187qux+KizAHnEXyy6NQBsxg7tlfEmyy0qeFCP8TOjAohgPXnUcanz1mACFmRgzeR7pKsinxVjXKLVThQf0R6JZ+Z+Bn3eN5xVxMET4oa/vcg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com; dkim=pass header.d=suse.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=II9BZTr+iuXxN+ScTzUhxj2emNYy0u4QW5Wx7Al/rt4=; b=z99mvDWEyNvkONCTSQJWlSbOiQ0jv6ulFAwPIg8TnyZbb5DJQHQP5VKiTdjWbGz5NbgSb6UtG/XfDwZl7ZlU+TBoyu140fES5eah19nMKeYWzR8FfltboBkVUYIfPH6Tt0dnDULhXMZkzaqZwOu05mNEtzNEhZ4vOS05OMF6y2fAhgKjnaGMroL45vOrlO/biInpV6JuY2xIrYBKEIBlnhU9/AofW8PvTBaVkJdzVebpustnn0R9UoWPLYduNYfL9sY+c+Bspji0VrrZ5MRDsaF6jrOpiEcbT0W+MvrH8M8012j/XQ56BWuctVJDCxEAPYNqJlQrzEZPLVykkifayg== 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 AS4PR04MB9361.eurprd04.prod.outlook.com (2603:10a6:20b:4e6::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6387.30; Mon, 15 May 2023 02:12:20 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::423a:a30f:5342:9d35]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::423a:a30f:5342:9d35%6]) with mapi id 15.20.6387.027; Mon, 15 May 2023 02:12:20 +0000 From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next v13 6/7] selftests: mptcp: pass fastclose to sflags Date: Mon, 15 May 2023 10:10:57 +0800 Message-Id: <7b6c64dcbaa07ff9cd067495e16205c81185cdbc.1684116357.git.geliang.tang@suse.com> X-Mailer: git-send-email 2.35.3 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: TYAPR04CA0011.apcprd04.prod.outlook.com (2603:1096:404:15::23) To HE1PR0402MB3497.eurprd04.prod.outlook.com (2603:10a6:7:83::14) Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: HE1PR0402MB3497:EE_|AS4PR04MB9361:EE_ X-MS-Office365-Filtering-Correlation-Id: 1ba89425-6a22-4b85-ea4f-08db54e9d082 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: vi8+VdqWHkr+Yjv+Upxoitpzm7opSUY9pqjhhptRkeBkxm8eR/DDtV6en8Pyf2M0AkXYv5soOwYF8CPB52Wl8skAoRRIG4jRoxfWgJ1+Qn7rlN8Nc7tCW0FLkVW8cEPOL73ldnorh/+ToEEnvt7Wcs+so+MbCmev9qLggUzggaT4mQAIUASFnBG8ayNt6tbnd9epjQc4+S8WhecUqjVJ9naCs08Y8NZeziLaHCq4frDWcWzJJj2KpzVOFwnE2ETp500MePgXW0P83FkbvXsJSvt9ulauofp7FjnMsD1YUaWy6QcXqbm3Aqg/x9OfZNCxg8PIf0ZxEjzUzc7UpEtljifQPhACngkASbyZ2d5g8CslDC81AKe/rmKUZHPw7FFnngczqz07YZYdRlRBcBaUzuOAuk66VnxHZ2ulbe8JYSL1aogqzWA/E36/RobS8D5mVliTsq7o/ccmCBbFB50UB44TvxjJ1AYeoo8PEWHrlXBg1sGGmbYiuHjFMPGb0OUPhUeADV3dL0F6Igshs5c/LtNHtZWu/OWZKX2xZBpVvfSuK2HVLM9pBLwGFqqhhiA8 X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:HE1PR0402MB3497.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(376002)(136003)(346002)(366004)(39860400002)(396003)(451199021)(83380400001)(66476007)(66556008)(66946007)(2616005)(26005)(6486002)(6512007)(6506007)(107886003)(478600001)(6666004)(186003)(5660300002)(44832011)(86362001)(8676002)(8936002)(2906002)(36756003)(41300700001)(4326008)(6916009)(316002)(38100700002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?mL6ffffbt5H4/HqUO7LExYElYRMBsbbrwuRxMQT5Q1FyCi8Wibu97sJwmYFn?= =?us-ascii?Q?4ZcNWiQSWIioCCJTGWEf7EliMWCXYONoMnDT7j2AyMhKZoAUdCEr8jyYBfLm?= =?us-ascii?Q?Qx8KVt6NK3O9yBkLZSKWjiMcSj6YIVHZPN3yy27Iu7QY7kyl4aLtTlc/PlWo?= =?us-ascii?Q?CxhX/5wG3KP2FANWFB1lyMYE3R73cgIwSPLYx+1TQ2oAu3WfvmXuWu/h2Chg?= =?us-ascii?Q?Vb06xf6c8YNwSSehjc/qgdbB/TOdhlFxWqs9GF+K6pu/r/hYBaldqEuFZyQj?= =?us-ascii?Q?JeGlRCBxbE+7hk2N9pLEdQBuuTyTheLIzMLZ55wTIRHUDseg+Vd69nNNrrwo?= =?us-ascii?Q?WWEyFJfDC88BCXRceLvXSCWOHiy2VUQs0JiEeKAeEKpyn7aj1c037Bb0cCcg?= =?us-ascii?Q?Av0U4W0XPkwSOI31IlQtYibYDGTAp4Iqbe8WpW6Lxvg7CmbTFBQAXpih7m88?= =?us-ascii?Q?1j1KqM9JtrQI9lXfs/2MEQrWjXbCKmlCHobWcYSIBg75kLL0lKfC8BHEAjfS?= =?us-ascii?Q?3pvFo5andEJkM370JePNM5NL259VPU6D5De2HuSCLDV8FWzKr48NyPbj2/6V?= =?us-ascii?Q?7DKhES8vdcIkG0MHsX2/9wvIwwxSlz4SEd7fYP6Xr6noo2r+0KpMudQ8iY3X?= =?us-ascii?Q?jYXDuBEuNzVbkrblx4N3b8lx+yl5i1r3AKMM73nlI7fA/RkZ5CXN6/ZOKm5b?= =?us-ascii?Q?v2vvIJWhUk0Eo/HmEL8fIgzRgVS2NKZpIeRtoMNXSECUmNLO/53bf5234SiC?= =?us-ascii?Q?vgidO8M3d25qzMpa6NUM+VrtHhuR+3T1EiBOnAghT2bael1bebN3Qz8g0Saw?= =?us-ascii?Q?QexiNjqqCOo2/NQcM4ULOoLj0z8q5znyQDgBWD/caWLTlgXplIHUbkaDA0AP?= =?us-ascii?Q?w4j6mNdiCUaruyS8H+u35gjLzQcAz+ZDz9HCv4Pb8hC/emcYs4WNJADUxMFD?= =?us-ascii?Q?nuibROppJ7k6H5zkROBQ0pEht5/w1MOq4MPWHW3LsW5sdjuXta1ygcmHMvJt?= =?us-ascii?Q?+HblhdG+VMRP5AhEhDwsT71t3DYp2VlZ/SAljnRFT2CDVGvESVnkeTWk/Hsd?= =?us-ascii?Q?DCd25CqvEgPkcDqUY0ixxvqyvT4g3nCU4sIp2JWN4jGxTaLW9iqKaQoclBZW?= =?us-ascii?Q?llvt0DsHkFsfF45kU+vxJIywp1H5iv4OG2nhjR+GiaAgTgfoLUS9bBwUrY1A?= =?us-ascii?Q?3ZJwX+r7FKchZekqsdLSyMl43Q2qwsL3z8G4jekiBWnn9hcL9iaeTcqx2YSB?= =?us-ascii?Q?BmmTSWtH6k7gu+ux8c96V+7PekueM9WU8z6hejQO8/oZfeQwYsAWi4ef+Sf9?= =?us-ascii?Q?1RUztWAANv8gcHOUgrTkOglyybcNPUL587ieNU5Z/9JHogDLQ6kvLOgF3ciO?= =?us-ascii?Q?fDe1AfXGOsj4w+lDC4BDSXNOJBnjeUV8EqURh2bobesN4RS1P3HVcd5oMttj?= =?us-ascii?Q?ZBEuSxIoKtHtkM0OQjzuZQj0lqr26bsoT0KUVvBxqvmcHSn2R0DYq5vk/0Zn?= =?us-ascii?Q?UUU/XW8/knj57NGYTQLCgwLb3ahWzrjNF6b8SiVmhvcgjqnNBcQXaLAso09Q?= =?us-ascii?Q?OLMxBuVKw9nzLuiFtQkZ+9SS9umo6IVyc/zDGmiC?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1ba89425-6a22-4b85-ea4f-08db54e9d082 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 May 2023 02:12:20.7040 (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: S8DUbADMkyM2XL1HfdiZFTH8L6sUDQ+pYZVmNc6EuS2gkHkdRQmIYpyWho400mIjxqxjtDB923t3JIPRE1lr0w== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS4PR04MB9361 Content-Type: text/plain; charset="utf-8" Pass fastclose flag to the sflags argument instead of addr_nr_ns2. Then addr_nr_ns1 and addr_nr_ns2 can be removed in the next commit. Signed-off-by: Geliang Tang --- tools/testing/selftests/net/mptcp/mptcp_join.sh | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testin= g/selftests/net/mptcp/mptcp_join.sh index d8404d1354b7..d749ab8627ca 100755 --- a/tools/testing/selftests/net/mptcp/mptcp_join.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh @@ -763,7 +763,7 @@ do_transfer() local extra_cl_args=3D"" local extra_srv_args=3D"" local trunc_size=3D"" - if [[ "${addr_nr_ns2}" =3D "fastclose_"* ]]; then + if [[ "${sflags}" =3D "fastclose_"* ]]; then if [ ${test_link_fail} -le 1 ]; then echo "fastclose tests need test_link_fail argument" fail_test @@ -772,7 +772,7 @@ do_transfer() =20 # disconnect trunc_size=3D${test_link_fail} - local side=3D${addr_nr_ns2:10} + local side=3D${sflags:10} =20 if [ ${side} =3D "client" ]; then extra_cl_args=3D"-f ${test_link_fail}" @@ -785,8 +785,9 @@ do_transfer() fail_test return 1 fi - addr_nr_ns2=3D0 - elif [[ "${addr_nr_ns2}" =3D "fullmesh_"* ]]; then + sflags=3D0 + fi + if [[ "${addr_nr_ns2}" =3D "fullmesh_"* ]]; then flags=3D"${flags},fullmesh" addr_nr_ns2=3D${addr_nr_ns2:9} fi @@ -2990,14 +2991,14 @@ fullmesh_tests() fastclose_tests() { if reset "fastclose test"; then - run_tests $ns1 $ns2 10.0.1.1 1024 0 fastclose_client + run_tests $ns1 $ns2 10.0.1.1 1024 0 0 fast fastclose_client chk_join_nr 0 0 0 chk_fclose_nr 1 1 chk_rst_nr 1 1 invert fi =20 if reset "fastclose server test"; then - run_tests $ns1 $ns2 10.0.1.1 1024 0 fastclose_server + run_tests $ns1 $ns2 10.0.1.1 1024 0 0 fast fastclose_server chk_join_nr 0 0 0 chk_fclose_nr 1 1 invert chk_rst_nr 1 1 --=20 2.35.3 From nobody Sun May 5 14:00:14 2024 Received: from EUR05-DB8-obe.outbound.protection.outlook.com (mail-db8eur05on2088.outbound.protection.outlook.com [40.107.20.88]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 9E4EC1381 for ; Mon, 15 May 2023 02:12:31 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=amAfF4ykXFMn3eErrIcXg4jWy+iggtYNo7v7Hx8B/5Y1QUfY7Uk1m/MD4cZr5vqvEPZjrwO1bd0rzpI8gCGfJfrDlW0FCf95ycpnWlFAVcBxO8BFFKSAr9XSs+MT7svaJ59VAP00Z1GKoykgN+q4aiTAH9HiZAXlRjnGaGBjRwtBIh0E6n0egVz9gVV1xY7KA0Qu91qqY1rLPIK+AZb6DjGul8PPgKIKPPK9NYe9UAXwh0zinbsp3KGrWGEBGmpX0R9miiHuKPhYUBkGOA3eVJltz7uaWVoHxril7mlBi8Lfhu4SDo4ZICC75m5va7D1hFTnrPUsXRUj3YrJ+qdxog== 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=sF9hPodpYBzqQOIFNUGISJo6c0LmLUv6QS2uPG50Mwk=; b=muhYnrVbKHPpAsPO02E1nDlBvKKrzZ8y3ka4P5U296gbKP3VDy87o9+/loNUn/XlpGp7WAPNlT+ZH3Z14hQcxs4y2t2o2q7sjZkAkMsWr4LXSZXcEx1Voikr4nftKeHd2DunIt1EyrMTLDIbsWap4ZMcOkZZxIUSzzLqIxxksWbw9p7gKRhewKqMQRVBHw1kT8FV2pSnOC/oFjAPGd0CvPzD5U+OhbrSj1Jc1DDbGgZWFm4837NsRGfvQQGs6nICg/IFNijaSQooihnt/2zZZJh/RxlKnmnLnNiK0yAXupNHgEn4pS5EViKPYqKhAcef74n2p51vfEOdAG1CVx2ALw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com; dkim=pass header.d=suse.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=sF9hPodpYBzqQOIFNUGISJo6c0LmLUv6QS2uPG50Mwk=; b=ihATB4zuXfZXDkibjpZ6ltw2sLsaZBmhBqAmDYz7u497/5zVGwa/uKZHBdDMbs/R9hIErDryqW0Y6RtVyQfCXjpJwCKbqccKn1dfN0j8fmQm7le85YfhN3MsI2lue3x/wfybNY7M7jmomUF7lNwcvFlQZ14qwTDWx8fUkK61SdzHpxsvvhf6MUGBqsaOFwlWMJkfChMq/UQJED5irk9WnvfZk7O8Hn7GfMXAfE9Ww/fnsPuG2/2MFEJyPtVvbw1usbHCIhy4xK7ZTPlCYCGctYfwWLaLzDhJTydxHSBDVucBgoblNFL1fwClS1sodsSpObAG4d15IAEn5svw/gZLgg== 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 AS4PR04MB9361.eurprd04.prod.outlook.com (2603:10a6:20b:4e6::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6387.30; Mon, 15 May 2023 02:12:28 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::423a:a30f:5342:9d35]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::423a:a30f:5342:9d35%6]) with mapi id 15.20.6387.027; Mon, 15 May 2023 02:12:28 +0000 From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next v13 7/7] selftests: mptcp: set endpoint out of transfer Date: Mon, 15 May 2023 10:10:58 +0800 Message-Id: X-Mailer: git-send-email 2.35.3 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SG2PR02CA0053.apcprd02.prod.outlook.com (2603:1096:4:54::17) To HE1PR0402MB3497.eurprd04.prod.outlook.com (2603:10a6:7:83::14) Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: HE1PR0402MB3497:EE_|AS4PR04MB9361:EE_ X-MS-Office365-Filtering-Correlation-Id: 8102da42-3f29-4ef7-3bb8-08db54e9d4fb X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: J40MuZMrK4MtLV0u2g4CwGDQJBrLvdQp1K3r0MKsR+wdc+Bl8rl0F1nwWFlrDAd0RG3w/R9BHr9qRYa3kBliRUvFS1Yvr1apL8xCGEv4TG+bJkVwTShbKsz3O2+WRJN7K3Qdu8MYX29JesLYu9D37sRnzPPDNVzp5UjAosf0nq2VQfzDYMjAjqy/i20iY6y7hWPyoIXet7CooMsOEManx/JiL9ZxBo9LnY5EiPSgHuFLuFDBCfBc117YkHrOS6P2QbLPF36UEt0BN7ipcIzp/5hHqoh1RM+R0668zg0UYSgegT9DZpfO/Qujv8xzhqxLJcpjXOtRYZYUyPFBuTszIjqn1fhY0toqO2ey9xb4QcZGbOoZEpad3V6OntQFLTx0x7bFyL6GU2km5yhfX58I11V8pz+bQ9viwvJFZPMH7bMyJ7D3xOj/yUE+OwZE/DJ1Q5ed4PH6a5xOwnFVCFhK+LTuepGOAIgzl/U7gjhdV4G7Bo1KZzP5MVJ179i8gaU06TrYLO276c+C4f6oXKxJnARHUapWZOytiyw63KtnqPaiEFMX0YNYq9570+J7Ydqz X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:HE1PR0402MB3497.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(376002)(136003)(346002)(366004)(39860400002)(396003)(451199021)(83380400001)(66476007)(66556008)(66946007)(2616005)(26005)(6486002)(6512007)(6506007)(107886003)(478600001)(6666004)(186003)(5660300002)(44832011)(30864003)(86362001)(8676002)(8936002)(2906002)(36756003)(41300700001)(4326008)(6916009)(316002)(38100700002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?TAJLwCzmLWXY4U4tHwNJQc61eBqeAS1E9YHvo0Hucxv7MkzCDkzG6/QXfoua?= =?us-ascii?Q?qJiLyTVgaSOVGrcxCaMXGM7SInVT+zhU669AIsXviOyEuNbyxLiVQSYq8cop?= =?us-ascii?Q?3VL4mA/IvOVApmRS4L8F6MnonQiLoy2H7SGSWQma2oyBHWmlUfDBkuM48lha?= =?us-ascii?Q?QX0J9S8h8OxzMJz+vpAeoT5lXuqo0qjR3SeHLVAEysjQJkVxGYx5E+zg9GOz?= =?us-ascii?Q?AgKw0LU+mPEmeeRHSM9Vl2PTz6XxH95hy3230XiC5OajyVEOiYJmhBlucYcm?= =?us-ascii?Q?Zj6UH/8HQoF5dsEljjOZ3CPVtPShkEt5rBmvvfBw/w1rOzrWz0pku9wYX1B8?= =?us-ascii?Q?TlptBgbyRnSW50/hwULKyH/s33yXU3GbvrkK+r6N95Ktecq4ysZIR6tvdhzx?= =?us-ascii?Q?xWAqHFH/gkqd7CMJkxueFDmFh88n2Nhtm9N2V66XESdW11B5jJn9gDRzrmXw?= =?us-ascii?Q?gqfkO0LWwEFuUy8PlXZKW99iY04uLZOAh3xm5fCGJzmIrcu9FwXlxLrYlM0S?= =?us-ascii?Q?SZqKldPbNP310h5FzzFE3BeABGwEbb9/sMVFL2KHLz8pSc4uZOHyKLIb0t8Z?= =?us-ascii?Q?uJZgPnUka3t6gpIi/OIxXvUrb5Gy+0OidW211Ilc96BsYdzz7NRiRQS1VRLM?= =?us-ascii?Q?NmnIWRCrW5gAS3/QZrvKrpJpBAXgz2kQgJaUPVBLmC2GV+M4ETJJl0nzp0cN?= =?us-ascii?Q?YmPuoBnwftE+bMdHojXmJoHq+TCxK607Oqgd2iOp4/FgyvtTqe8xqCC2dgkp?= =?us-ascii?Q?+z6JM5IZ8PHklzrrM5sblcm7EKl2im1VxCInvjukAz28nhVL7zBGK/I3y6By?= =?us-ascii?Q?29y1uJU+L45u57oDk0LHhDclTAjO/XaKM3sNa3ZXDbvP5TRxIoN222nD5SmR?= =?us-ascii?Q?mjanaf2reeA3gzSsUyn7KoGR43yc9CEz/lCeUqz9K3WtsfZeuD6mpD0qvPff?= =?us-ascii?Q?zGOin6ca90dyN2DvWAxHBSzwxhjvplZ8gzQa0Xzn4JaCe6JTEKb1EfL+3jmC?= =?us-ascii?Q?dTU92fKuqFoE5chXxBO+1Jp+/zjIz0Kp/s3aVDDuC+FhkakMWzPyRW2+Gf6K?= =?us-ascii?Q?jugad/JbVFslNCa2duLklj2VPehSOGxjYro1Val72Ps5lOsHSuNR2CIstjtz?= =?us-ascii?Q?UccJZe8IxwC+03K3UCz5hFgxREfxxylcKMwUFX8arJz6/Z2Tk+d1ydqaarWM?= =?us-ascii?Q?YSJdDsYv0w8t7qlipz7ywv75MwT06JSFVKZgtMZg2ccApMRZUAtlHsSX+isp?= =?us-ascii?Q?jIuli3EeQXfZPoQTdJYspskL+6mLOu3XgyYyzbOejZtY3QWweRKmPiHbpQzN?= =?us-ascii?Q?+gl5jtpJaf6v22TgQfFiqiz6LTOADynGFQafpjNojyiHOg0r9cKLYAsMO+hq?= =?us-ascii?Q?R8GLc0/S/N6MMMVtWy58cHTeYZ6VjqtIDcSu2XdJoTbLC+44CVYNA+vNfrtz?= =?us-ascii?Q?xt4GAdoEBD4P05cWA1GGqShRaC+pgAOmxWqj2EzkI11S5/0ZQrLNNOcTeLiE?= =?us-ascii?Q?bjwOujKgG37tLbNdonhzIBWw2pRda/MIUxn0c4ZSFkrgDEhpxJbEjmuiCpY4?= =?us-ascii?Q?YbPmDU3rTO/0M21jbQigvKsQiLTwuPIIosf2piVf?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8102da42-3f29-4ef7-3bb8-08db54e9d4fb X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 May 2023 02:12:28.4719 (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: iVzfk9I5WLWfZZPJXjm/1MUuKX/jX01EEYc1O2s7I+k7z7mUEZ1idxBhfVp/BHNhQwslDjgvqxFfBXtbiB6UpQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS4PR04MB9361 Content-Type: text/plain; charset="utf-8" This patch moves endpoint settings out of do_transfer() into a new function pm_nl_set_endpoint(), then addr_nr_ns1 and addr_nr_ns2 arguments can be removed for do_transfer() and run_tests(). Signed-off-by: Geliang Tang --- .../testing/selftests/net/mptcp/mptcp_join.sh | 549 +++++++++++------- 1 file changed, 347 insertions(+), 202 deletions(-) diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testin= g/selftests/net/mptcp/mptcp_join.sh index d749ab8627ca..3a4eca0714a0 100755 --- a/tools/testing/selftests/net/mptcp/mptcp_join.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh @@ -699,137 +699,19 @@ pm_nl_check_endpoint() fi } =20 -filter_tcp_from() +pm_nl_set_endpoint() { - local ns=3D"${1}" - local src=3D"${2}" - local target=3D"${3}" - - ip netns exec "${ns}" iptables -A INPUT -s "${src}" -p tcp -j "${target}" -} - -do_transfer() -{ - local listener_ns=3D"$1" - local connector_ns=3D"$2" - local cl_proto=3D"$3" - local srv_proto=3D"$4" - local connect_addr=3D"$5" - local test_link_fail=3D"$6" - local addr_nr_ns1=3D"$7" - local addr_nr_ns2=3D"$8" - local speed=3D"$9" - local sflags=3D"${10}" - - local port=3D$((10000 + TEST_COUNT - 1)) - local cappid - - :> "$cout" - :> "$sout" - :> "$capout" - - if [ $capture -eq 1 ]; then - local capuser - if [ -z $SUDO_USER ] ; then - capuser=3D"" - else - capuser=3D"-Z $SUDO_USER" - fi - - capfile=3D$(printf "mp_join-%02u-%s.pcap" "$TEST_COUNT" "${listener_ns}") - - echo "Capturing traffic for test $TEST_COUNT into $capfile" - ip netns exec ${listener_ns} tcpdump -i any -s 65535 -B 32768 $capuser -= w $capfile > "$capout" 2>&1 & - cappid=3D$! - - sleep 1 - fi - - NSTAT_HISTORY=3D/tmp/${listener_ns}.nstat ip netns exec ${listener_ns} \ - nstat -n - NSTAT_HISTORY=3D/tmp/${connector_ns}.nstat ip netns exec ${connector_ns} \ - nstat -n - - local extra_args - if [ $speed =3D "fast" ]; then - extra_args=3D"-j" - elif [ $speed =3D "slow" ]; then - extra_args=3D"-r 50" - elif [[ $speed =3D "speed_"* ]]; then - extra_args=3D"-r ${speed:6}" - fi + local connect_addr=3D"$1" + local addr_nr_ns1=3D"$2" + local addr_nr_ns2=3D"${3:-0}" + local sflags=3D"${4:-""}" =20 local flags=3D"subflow" - local extra_cl_args=3D"" - local extra_srv_args=3D"" - local trunc_size=3D"" - if [[ "${sflags}" =3D "fastclose_"* ]]; then - if [ ${test_link_fail} -le 1 ]; then - echo "fastclose tests need test_link_fail argument" - fail_test - return 1 - fi - - # disconnect - trunc_size=3D${test_link_fail} - local side=3D${sflags:10} - - if [ ${side} =3D "client" ]; then - extra_cl_args=3D"-f ${test_link_fail}" - extra_srv_args=3D"-f -1" - elif [ ${side} =3D "server" ]; then - extra_srv_args=3D"-f ${test_link_fail}" - extra_cl_args=3D"-f -1" - else - echo "wrong/unknown fastclose spec ${side}" - fail_test - return 1 - fi - sflags=3D0 - fi if [[ "${addr_nr_ns2}" =3D "fullmesh_"* ]]; then flags=3D"${flags},fullmesh" addr_nr_ns2=3D${addr_nr_ns2:9} fi =20 - extra_srv_args=3D"$extra_args $extra_srv_args" - if [ "$test_link_fail" -gt 1 ];then - timeout ${timeout_test} \ - ip netns exec ${listener_ns} \ - ./mptcp_connect -t ${timeout_poll} -l -p $port -s ${srv_proto} \ - $extra_srv_args "::" < "$sinfail" > "$sout" & - else - timeout ${timeout_test} \ - ip netns exec ${listener_ns} \ - ./mptcp_connect -t ${timeout_poll} -l -p $port -s ${srv_proto} \ - $extra_srv_args "::" < "$sin" > "$sout" & - fi - local spid=3D$! - - wait_local_port_listen "${listener_ns}" "${port}" - - extra_cl_args=3D"$extra_args $extra_cl_args" - if [ "$test_link_fail" -eq 0 ];then - timeout ${timeout_test} \ - ip netns exec ${connector_ns} \ - ./mptcp_connect -t ${timeout_poll} -p $port -s ${cl_proto} \ - $extra_cl_args $connect_addr < "$cin" > "$cout" & - elif [ "$test_link_fail" -eq 1 ] || [ "$test_link_fail" -eq 2 ];then - ( cat "$cinfail" ; sleep 2; link_failure $listener_ns ; cat "$cinfail" )= | \ - tee "$cinsent" | \ - timeout ${timeout_test} \ - ip netns exec ${connector_ns} \ - ./mptcp_connect -t ${timeout_poll} -p $port -s ${cl_proto} \ - $extra_cl_args $connect_addr > "$cout" & - else - tee "$cinsent" < "$cinfail" | \ - timeout ${timeout_test} \ - ip netns exec ${connector_ns} \ - ./mptcp_connect -t ${timeout_poll} -p $port -s ${cl_proto} \ - $extra_cl_args $connect_addr > "$cout" & - fi - local cpid=3D$! - # let the mptcp subflow be established in background before # do endpoint manipulation if [ $addr_nr_ns1 !=3D "0" ] || [ $addr_nr_ns2 !=3D "0" ]; then @@ -857,7 +739,7 @@ do_transfer() if [ $rm_nr_ns1 -lt 8 ]; then local counter=3D0 local line - pm_nl_show_endpoints ${listener_ns} | while read -r line; do + pm_nl_show_endpoints $ns1 | while read -r line; do # shellcheck disable=3DSC2206 # we do want to split per word local arr=3D($line) local nr=3D0 @@ -869,18 +751,18 @@ do_transfer() 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} + rm_addr=3D$(rm_addr_count $ns2) + pm_nl_del_endpoint $ns1 $id + wait_rm_addr $ns2 ${rm_addr} counter=3D$((counter + 1)) fi nr=3D$((nr + 1)) done done elif [ $rm_nr_ns1 -eq 8 ]; then - pm_nl_flush_endpoint ${listener_ns} + pm_nl_flush_endpoint $ns1 elif [ $rm_nr_ns1 -eq 9 ]; then - pm_nl_del_endpoint ${listener_ns} 0 ${connect_addr} + pm_nl_del_endpoint $ns1 0 ${connect_addr} fi fi =20 @@ -909,7 +791,7 @@ do_transfer() if [ $rm_nr_ns2 -lt 8 ]; then local counter=3D0 local line - pm_nl_show_endpoints ${connector_ns} | while read -r line; do + pm_nl_show_endpoints $ns2 | while read -r line; do # shellcheck disable=3DSC2206 # we do want to split per word local arr=3D($line) local nr=3D0 @@ -924,16 +806,16 @@ do_transfer() # 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} + rm_addr=3D$(rm_addr_count $ns1) + pm_nl_del_endpoint $ns2 $id + wait_rm_addr $ns1 ${rm_addr} counter=3D$((counter + 1)) fi nr=3D$((nr + 1)) done done elif [ $rm_nr_ns2 -eq 8 ]; then - pm_nl_flush_endpoint ${connector_ns} + pm_nl_flush_endpoint $ns2 elif [ $rm_nr_ns2 -eq 9 ]; then local addr if is_v6 "${connect_addr}"; then @@ -941,7 +823,7 @@ do_transfer() else addr=3D"10.0.1.2" fi - pm_nl_del_endpoint ${connector_ns} 0 $addr + pm_nl_del_endpoint $ns2 0 $addr fi fi =20 @@ -968,6 +850,130 @@ do_transfer() done done fi +} + +filter_tcp_from() +{ + local ns=3D"${1}" + local src=3D"${2}" + local target=3D"${3}" + + ip netns exec "${ns}" iptables -A INPUT -s "${src}" -p tcp -j "${target}" +} + +do_transfer() +{ + local listener_ns=3D"$1" + local connector_ns=3D"$2" + local cl_proto=3D"$3" + local srv_proto=3D"$4" + local connect_addr=3D"$5" + local test_link_fail=3D"$6" + local speed=3D"$7" + local sflags=3D"${8}" + + local port=3D$((10000 + TEST_COUNT - 1)) + local cappid + + :> "$cout" + :> "$sout" + :> "$capout" + + if [ $capture -eq 1 ]; then + local capuser + if [ -z $SUDO_USER ] ; then + capuser=3D"" + else + capuser=3D"-Z $SUDO_USER" + fi + + capfile=3D$(printf "mp_join-%02u-%s.pcap" "$TEST_COUNT" "${listener_ns}") + + echo "Capturing traffic for test $TEST_COUNT into $capfile" + ip netns exec ${listener_ns} tcpdump -i any -s 65535 -B 32768 $capuser -= w $capfile > "$capout" 2>&1 & + cappid=3D$! + + sleep 1 + fi + + NSTAT_HISTORY=3D/tmp/${listener_ns}.nstat ip netns exec ${listener_ns} \ + nstat -n + NSTAT_HISTORY=3D/tmp/${connector_ns}.nstat ip netns exec ${connector_ns} \ + nstat -n + + local extra_args + if [ $speed =3D "fast" ]; then + extra_args=3D"-j" + elif [ $speed =3D "slow" ]; then + extra_args=3D"-r 50" + elif [[ $speed =3D "speed_"* ]]; then + extra_args=3D"-r ${speed:6}" + fi + + local extra_cl_args=3D"" + local extra_srv_args=3D"" + local trunc_size=3D"" + if [[ "${sflags}" =3D "fastclose_"* ]]; then + if [ ${test_link_fail} -le 1 ]; then + echo "fastclose tests need test_link_fail argument" + fail_test + return 1 + fi + + # disconnect + trunc_size=3D${test_link_fail} + local side=3D${sflags:10} + + if [ ${side} =3D "client" ]; then + extra_cl_args=3D"-f ${test_link_fail}" + extra_srv_args=3D"-f -1" + elif [ ${side} =3D "server" ]; then + extra_srv_args=3D"-f ${test_link_fail}" + extra_cl_args=3D"-f -1" + else + echo "wrong/unknown fastclose spec ${side}" + fail_test + return 1 + fi + fi + + extra_srv_args=3D"$extra_args $extra_srv_args" + if [ "$test_link_fail" -gt 1 ];then + timeout ${timeout_test} \ + ip netns exec ${listener_ns} \ + ./mptcp_connect -t ${timeout_poll} -l -p $port -s ${srv_proto} \ + $extra_srv_args "::" < "$sinfail" > "$sout" & + else + timeout ${timeout_test} \ + ip netns exec ${listener_ns} \ + ./mptcp_connect -t ${timeout_poll} -l -p $port -s ${srv_proto} \ + $extra_srv_args "::" < "$sin" > "$sout" & + fi + local spid=3D$! + + wait_local_port_listen "${listener_ns}" "${port}" + + extra_cl_args=3D"$extra_args $extra_cl_args" + if [ "$test_link_fail" -eq 0 ];then + timeout ${timeout_test} \ + ip netns exec ${connector_ns} \ + ./mptcp_connect -t ${timeout_poll} -p $port -s ${cl_proto} \ + $extra_cl_args $connect_addr < "$cin" > "$cout" & + elif [ "$test_link_fail" -eq 1 ] || [ "$test_link_fail" -eq 2 ];then + ( cat "$cinfail" ; sleep 2; link_failure $listener_ns ; cat "$cinfail" )= | \ + tee "$cinsent" | \ + timeout ${timeout_test} \ + ip netns exec ${connector_ns} \ + ./mptcp_connect -t ${timeout_poll} -p $port -s ${cl_proto} \ + $extra_cl_args $connect_addr > "$cout" & + else + tee "$cinsent" < "$cinfail" | \ + timeout ${timeout_test} \ + ip netns exec ${connector_ns} \ + ./mptcp_connect -t ${timeout_poll} -p $port -s ${cl_proto} \ + $extra_cl_args $connect_addr > "$cout" & + fi + local cpid=3D$! =20 wait $cpid local retc=3D$? @@ -1038,10 +1044,8 @@ run_tests() local connector_ns=3D"$2" local connect_addr=3D"$3" local test_linkfail=3D"${4:-0}" - local addr_nr_ns1=3D"${5:-0}" - local addr_nr_ns2=3D"${6:-0}" - local speed=3D"${7:-fast}" - local sflags=3D"${8:-""}" + local speed=3D"${5:-fast}" + local sflags=3D"${6:-""}" =20 local size =20 @@ -1086,7 +1090,7 @@ run_tests() fi =20 do_transfer ${listener_ns} ${connector_ns} MPTCP MPTCP ${connect_addr} \ - ${test_linkfail} ${addr_nr_ns1} ${addr_nr_ns2} ${speed} ${sflags} + ${test_linkfail} ${speed} ${sflags} } =20 dump_stats() @@ -1868,7 +1872,7 @@ subflows_error_tests() pm_nl_set_limits $ns1 0 1 pm_nl_set_limits $ns2 0 1 pm_nl_add_endpoint $ns2 10.0.1.2 flags subflow - run_tests $ns1 $ns2 10.0.1.1 0 0 0 slow + run_tests $ns1 $ns2 10.0.1.1 0 slow chk_join_nr 0 0 0 fi =20 @@ -1879,7 +1883,7 @@ subflows_error_tests() pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow pm_nl_add_endpoint $ns2 10.0.2.2 flags subflow filter_tcp_from $ns1 10.0.3.2 REJECT - run_tests $ns1 $ns2 10.0.1.1 0 0 0 slow + run_tests $ns1 $ns2 10.0.1.1 0 slow chk_join_nr 1 1 1 fi =20 @@ -1890,7 +1894,7 @@ subflows_error_tests() pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow pm_nl_add_endpoint $ns2 10.0.2.2 flags subflow filter_tcp_from $ns1 10.0.3.2 DROP - run_tests $ns1 $ns2 10.0.1.1 0 0 0 slow + run_tests $ns1 $ns2 10.0.1.1 0 slow chk_join_nr 1 1 1 fi =20 @@ -1902,7 +1906,7 @@ subflows_error_tests() pm_nl_set_limits $ns2 0 1 pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow filter_tcp_from $ns1 10.0.3.2 REJECT - run_tests $ns1 $ns2 10.0.1.1 0 0 0 slow & + run_tests $ns1 $ns2 10.0.1.1 0 slow & =20 # mpj subflow will be in TW after the reset wait_attempt_fail $ns2 @@ -2001,7 +2005,7 @@ signal_address_tests() =20 # the peer could possibly miss some addr notification, allow retransmiss= ion ip netns exec $ns1 sysctl -q net.mptcp.add_addr_timeout=3D1 - run_tests $ns1 $ns2 10.0.1.1 0 0 0 slow + run_tests $ns1 $ns2 10.0.1.1 0 slow chk_join_nr 3 3 3 =20 # the server will not signal the address terminating @@ -2102,7 +2106,7 @@ add_addr_timeout_tests() pm_nl_set_limits $ns1 0 1 pm_nl_set_limits $ns2 1 1 pm_nl_add_endpoint $ns1 10.0.2.1 flags signal - run_tests $ns1 $ns2 10.0.1.1 0 0 0 slow + run_tests $ns1 $ns2 10.0.1.1 0 slow chk_join_nr 1 1 1 chk_add_tx_nr 4 4 chk_add_nr 4 0 @@ -2113,7 +2117,7 @@ add_addr_timeout_tests() pm_nl_set_limits $ns1 0 1 pm_nl_set_limits $ns2 1 1 pm_nl_add_endpoint $ns1 dead:beef:2::1 flags signal - run_tests $ns1 $ns2 dead:beef:1::1 0 0 0 slow + run_tests $ns1 $ns2 dead:beef:1::1 0 slow chk_join_nr 1 1 1 chk_add_nr 4 0 fi @@ -2124,7 +2128,7 @@ add_addr_timeout_tests() pm_nl_add_endpoint $ns1 10.0.2.1 flags signal pm_nl_add_endpoint $ns1 10.0.3.1 flags signal pm_nl_set_limits $ns2 2 2 - run_tests $ns1 $ns2 10.0.1.1 0 0 0 speed_10 + run_tests $ns1 $ns2 10.0.1.1 0 speed_10 chk_join_nr 2 2 2 chk_add_nr 8 0 fi @@ -2135,7 +2139,7 @@ add_addr_timeout_tests() pm_nl_add_endpoint $ns1 10.0.12.1 flags signal pm_nl_add_endpoint $ns1 10.0.3.1 flags signal pm_nl_set_limits $ns2 2 2 - run_tests $ns1 $ns2 10.0.1.1 0 0 0 speed_10 + run_tests $ns1 $ns2 10.0.1.1 0 speed_10 chk_join_nr 1 1 1 chk_add_nr 8 0 fi @@ -2148,10 +2152,14 @@ remove_tests() pm_nl_set_limits $ns1 0 1 pm_nl_set_limits $ns2 0 1 pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow - run_tests $ns1 $ns2 10.0.1.1 0 0 -1 slow + run_tests $ns1 $ns2 10.0.1.1 0 slow 2>/dev/null & + local tests_pid=3D$! + pm_nl_set_endpoint 10.0.1.1 0 -1 + wait_mpj $ns2 chk_join_nr 1 1 1 chk_rm_tx_nr 1 chk_rm_nr 1 1 + wait $tests_pid fi =20 # multiple subflows, remove @@ -2160,9 +2168,12 @@ remove_tests() pm_nl_set_limits $ns2 0 2 pm_nl_add_endpoint $ns2 10.0.2.2 flags subflow pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow - run_tests $ns1 $ns2 10.0.1.1 0 0 -2 slow + run_tests $ns1 $ns2 10.0.1.1 0 slow 2>/dev/null & + local tests_pid=3D$! + pm_nl_set_endpoint 10.0.1.1 0 -2 chk_join_nr 2 2 2 chk_rm_nr 2 2 + wait $tests_pid fi =20 # single address, remove @@ -2170,10 +2181,13 @@ remove_tests() pm_nl_set_limits $ns1 0 1 pm_nl_add_endpoint $ns1 10.0.2.1 flags signal pm_nl_set_limits $ns2 1 1 - run_tests $ns1 $ns2 10.0.1.1 0 -1 0 slow + run_tests $ns1 $ns2 10.0.1.1 0 slow 2>/dev/null & + local tests_pid=3D$! + pm_nl_set_endpoint 10.0.1.1 -1 chk_join_nr 1 1 1 chk_add_nr 1 1 chk_rm_nr 1 1 invert + wait $tests_pid fi =20 # subflow and signal, remove @@ -2182,10 +2196,13 @@ remove_tests() pm_nl_add_endpoint $ns1 10.0.2.1 flags signal pm_nl_set_limits $ns2 1 2 pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow - run_tests $ns1 $ns2 10.0.1.1 0 -1 -1 slow + run_tests $ns1 $ns2 10.0.1.1 0 slow 2>/dev/null & + local tests_pid=3D$! + pm_nl_set_endpoint 10.0.1.1 -1 -1 chk_join_nr 2 2 2 chk_add_nr 1 1 chk_rm_nr 1 1 + wait $tests_pid fi =20 # subflows and signal, remove @@ -2195,10 +2212,13 @@ remove_tests() pm_nl_set_limits $ns2 1 3 pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow pm_nl_add_endpoint $ns2 10.0.4.2 flags subflow - run_tests $ns1 $ns2 10.0.1.1 0 -1 -2 speed_10 + run_tests $ns1 $ns2 10.0.1.1 0 speed_30 2>/dev/null & + local tests_pid=3D$! + pm_nl_set_endpoint 10.0.1.1 -1 -2 chk_join_nr 3 3 3 chk_add_nr 1 1 chk_rm_nr 2 2 + wait $tests_pid fi =20 # addresses remove @@ -2208,10 +2228,13 @@ remove_tests() pm_nl_add_endpoint $ns1 10.0.3.1 flags signal pm_nl_add_endpoint $ns1 10.0.4.1 flags signal pm_nl_set_limits $ns2 3 3 - run_tests $ns1 $ns2 10.0.1.1 0 -3 0 speed_10 + run_tests $ns1 $ns2 10.0.1.1 0 speed_30 2>/dev/null & + local tests_pid=3D$! + pm_nl_set_endpoint 10.0.1.1 -3 chk_join_nr 3 3 3 chk_add_nr 3 3 chk_rm_nr 3 3 invert + wait $tests_pid fi =20 # invalid addresses remove @@ -2221,10 +2244,13 @@ remove_tests() pm_nl_add_endpoint $ns1 10.0.3.1 flags signal pm_nl_add_endpoint $ns1 10.0.14.1 flags signal pm_nl_set_limits $ns2 3 3 - run_tests $ns1 $ns2 10.0.1.1 0 -3 0 speed_10 + run_tests $ns1 $ns2 10.0.1.1 0 speed_30 2>/dev/null & + local tests_pid=3D$! + pm_nl_set_endpoint 10.0.1.1 -3 chk_join_nr 1 1 1 chk_add_nr 3 3 chk_rm_nr 3 1 invert + wait $tests_pid fi =20 # subflows and signal, flush @@ -2234,10 +2260,15 @@ remove_tests() pm_nl_set_limits $ns2 1 3 pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow pm_nl_add_endpoint $ns2 10.0.4.2 flags subflow - run_tests $ns1 $ns2 10.0.1.1 0 -8 -8 slow + run_tests $ns1 $ns2 10.0.1.1 0 speed_30 2>/dev/null & + local tests_pid=3D$! + wait_mpj $ns2 + pm_nl_set_endpoint 10.0.1.1 -8 -8 chk_join_nr 3 3 3 chk_add_nr 1 1 + wait_rm_addr ${ns2} 1 chk_rm_nr 1 3 invert simult + wait $tests_pid fi =20 # subflows flush @@ -2247,10 +2278,15 @@ remove_tests() pm_nl_add_endpoint $ns2 10.0.2.2 flags subflow id 150 pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow pm_nl_add_endpoint $ns2 10.0.4.2 flags subflow - run_tests $ns1 $ns2 10.0.1.1 0 -8 -8 slow + run_tests $ns1 $ns2 10.0.1.1 0 speed_30 2>/dev/null & + local tests_pid=3D$! + wait_mpj $ns2 + pm_nl_set_endpoint 10.0.1.1 -8 -8 chk_join_nr 3 3 3 chk_rm_tx_nr 0 + wait_rm_addr ${ns2} 1 chk_rm_nr 0 3 simult + wait $tests_pid fi =20 # addresses flush @@ -2260,10 +2296,15 @@ remove_tests() pm_nl_add_endpoint $ns1 10.0.3.1 flags signal pm_nl_add_endpoint $ns1 10.0.4.1 flags signal pm_nl_set_limits $ns2 3 3 - run_tests $ns1 $ns2 10.0.1.1 0 -8 -8 slow + run_tests $ns1 $ns2 10.0.1.1 0 speed_30 2>/dev/null & + local tests_pid=3D$! + wait_mpj $ns2 + pm_nl_set_endpoint 10.0.1.1 -8 -8 chk_join_nr 3 3 3 chk_add_nr 3 3 + wait_rm_addr ${ns2} 1 chk_rm_nr 3 3 invert simult + wait $tests_pid fi =20 # invalid addresses flush @@ -2273,10 +2314,15 @@ remove_tests() pm_nl_add_endpoint $ns1 10.0.3.1 flags signal pm_nl_add_endpoint $ns1 10.0.14.1 flags signal pm_nl_set_limits $ns2 3 3 - run_tests $ns1 $ns2 10.0.1.1 0 -8 0 slow + run_tests $ns1 $ns2 10.0.1.1 0 speed_30 2>/dev/null & + local tests_pid=3D$! + wait_mpj $ns2 + pm_nl_set_endpoint 10.0.1.1 -8 chk_join_nr 1 1 1 chk_add_nr 3 3 + wait_rm_addr ${ns2} 1 chk_rm_nr 3 1 invert + wait $tests_pid fi =20 # remove id 0 subflow @@ -2284,9 +2330,14 @@ remove_tests() pm_nl_set_limits $ns1 0 1 pm_nl_set_limits $ns2 0 1 pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow - run_tests $ns1 $ns2 10.0.1.1 0 0 -9 slow + run_tests $ns1 $ns2 10.0.1.1 0 speed_30 2>/dev/null & + local tests_pid=3D$! + wait_mpj $ns2 + pm_nl_set_endpoint 10.0.1.1 0 -9 chk_join_nr 1 1 1 + wait_rm_addr ${ns2} 1 chk_rm_nr 1 1 + wait $tests_pid fi =20 # remove id 0 address @@ -2294,10 +2345,15 @@ remove_tests() pm_nl_set_limits $ns1 0 1 pm_nl_add_endpoint $ns1 10.0.2.1 flags signal pm_nl_set_limits $ns2 1 1 - run_tests $ns1 $ns2 10.0.1.1 0 -9 0 slow + run_tests $ns1 $ns2 10.0.1.1 0 speed_30 2>/dev/null & + local tests_pid=3D$! + wait_mpj $ns2 + pm_nl_set_endpoint 10.0.1.1 -9 chk_join_nr 1 1 1 chk_add_nr 1 1 + wait_rm_addr ${ns2} 1 chk_rm_nr 1 1 invert + wait $tests_pid fi } =20 @@ -2307,42 +2363,61 @@ add_tests() if reset "add single subflow"; then pm_nl_set_limits $ns1 0 1 pm_nl_set_limits $ns2 0 1 - run_tests $ns1 $ns2 10.0.1.1 0 0 1 slow + run_tests $ns1 $ns2 10.0.1.1 0 speed_30 2>/dev/null & + local tests_pid=3D$! + wait_mpj $ns2 + pm_nl_set_endpoint 10.0.1.1 0 1 chk_join_nr 1 1 1 + wait $tests_pid fi =20 # add signal address if reset "add signal address"; then pm_nl_set_limits $ns1 0 1 pm_nl_set_limits $ns2 1 1 - run_tests $ns1 $ns2 10.0.1.1 0 1 0 slow + run_tests $ns1 $ns2 10.0.1.1 0 speed_30 2>/dev/null & + local tests_pid=3D$! + wait_mpj $ns2 + pm_nl_set_endpoint 10.0.1.1 1 chk_join_nr 1 1 1 chk_add_nr 1 1 + wait $tests_pid fi =20 # add multiple subflows if reset "add multiple subflows"; then pm_nl_set_limits $ns1 0 2 pm_nl_set_limits $ns2 0 2 - run_tests $ns1 $ns2 10.0.1.1 0 0 2 slow + run_tests $ns1 $ns2 10.0.1.1 0 speed_30 2>/dev/null & + local tests_pid=3D$! + pm_nl_set_endpoint 10.0.1.1 0 2 chk_join_nr 2 2 2 + wait $tests_pid fi =20 # add multiple subflows IPv6 if reset "add multiple subflows IPv6"; then pm_nl_set_limits $ns1 0 2 pm_nl_set_limits $ns2 0 2 - run_tests $ns1 $ns2 dead:beef:1::1 0 0 2 slow + run_tests $ns1 $ns2 dead:beef:1::1 0 speed_30 2>/dev/null & + local tests_pid=3D$! + wait_mpj $ns2 + pm_nl_set_endpoint dead:beef:1::1 0 2 chk_join_nr 2 2 2 + wait $tests_pid fi =20 # add multiple addresses IPv6 if reset "add multiple addresses IPv6"; then pm_nl_set_limits $ns1 0 2 pm_nl_set_limits $ns2 2 2 - run_tests $ns1 $ns2 dead:beef:1::1 0 2 0 slow + run_tests $ns1 $ns2 dead:beef:1::1 0 speed_30 2>/dev/null & + local tests_pid=3D$! + wait_mpj $ns2 + pm_nl_set_endpoint dead:beef:1::1 2 chk_join_nr 2 2 2 chk_add_nr 2 2 + wait $tests_pid fi } =20 @@ -2353,14 +2428,14 @@ ipv6_tests() pm_nl_set_limits $ns1 0 1 pm_nl_set_limits $ns2 0 1 pm_nl_add_endpoint $ns2 dead:beef:3::2 dev ns2eth3 flags subflow - run_tests $ns1 $ns2 dead:beef:1::1 0 0 0 slow + run_tests $ns1 $ns2 dead:beef:1::1 0 slow chk_join_nr 1 1 1 fi =20 # add_address, unused IPv6 if reset "unused signal address IPv6"; then pm_nl_add_endpoint $ns1 dead:beef:2::1 flags signal - run_tests $ns1 $ns2 dead:beef:1::1 0 0 0 slow + run_tests $ns1 $ns2 dead:beef:1::1 0 slow chk_join_nr 0 0 0 chk_add_nr 1 1 fi @@ -2370,7 +2445,7 @@ ipv6_tests() pm_nl_set_limits $ns1 0 1 pm_nl_add_endpoint $ns1 dead:beef:2::1 flags signal pm_nl_set_limits $ns2 1 1 - run_tests $ns1 $ns2 dead:beef:1::1 0 0 0 slow + run_tests $ns1 $ns2 dead:beef:1::1 0 slow chk_join_nr 1 1 1 chk_add_nr 1 1 fi @@ -2380,10 +2455,13 @@ ipv6_tests() pm_nl_set_limits $ns1 0 1 pm_nl_add_endpoint $ns1 dead:beef:2::1 flags signal pm_nl_set_limits $ns2 1 1 - run_tests $ns1 $ns2 dead:beef:1::1 0 -1 0 slow + run_tests $ns1 $ns2 dead:beef:1::1 0 slow 2>/dev/null & + local tests_pid=3D$! + pm_nl_set_endpoint dead:beef:1::1 -1 chk_join_nr 1 1 1 chk_add_nr 1 1 chk_rm_nr 1 1 invert + wait $tests_pid fi =20 # subflow and signal IPv6, remove @@ -2392,10 +2470,15 @@ ipv6_tests() pm_nl_add_endpoint $ns1 dead:beef:2::1 flags signal pm_nl_set_limits $ns2 1 2 pm_nl_add_endpoint $ns2 dead:beef:3::2 dev ns2eth3 flags subflow - run_tests $ns1 $ns2 dead:beef:1::1 0 -1 -1 slow + run_tests $ns1 $ns2 dead:beef:1::1 0 speed_20 2>/dev/null & + local tests_pid=3D$! + wait_mpj $ns2 + pm_nl_set_endpoint dead:beef:1::1 -1 -1 chk_join_nr 2 2 2 chk_add_nr 1 1 + wait_rm_addr ${ns2} 1 chk_rm_nr 1 1 + wait $tests_pid fi } =20 @@ -2492,7 +2575,7 @@ mixed_tests() pm_nl_set_limits $ns1 0 1 pm_nl_set_limits $ns2 1 1 pm_nl_add_endpoint $ns1 dead:beef:2::1 flags signal - run_tests $ns1 $ns2 10.0.1.1 0 0 0 slow + run_tests $ns1 $ns2 10.0.1.1 0 slow chk_join_nr 0 0 0 fi =20 @@ -2501,7 +2584,7 @@ mixed_tests() pm_nl_set_limits $ns1 0 1 pm_nl_set_limits $ns2 1 1 pm_nl_add_endpoint $ns1 10.0.1.1 flags signal - run_tests $ns1 $ns2 dead:beef:2::1 0 0 0 slow + run_tests $ns1 $ns2 dead:beef:2::1 0 slow chk_join_nr 1 1 1 fi =20 @@ -2511,7 +2594,7 @@ mixed_tests() pm_nl_set_limits $ns2 1 4 pm_nl_add_endpoint $ns2 dead:beef:2::2 flags subflow,fullmesh pm_nl_add_endpoint $ns1 10.0.1.1 flags signal - run_tests $ns1 $ns2 dead:beef:2::1 0 0 0 slow + run_tests $ns1 $ns2 dead:beef:2::1 0 slow chk_join_nr 1 1 1 fi =20 @@ -2522,8 +2605,13 @@ mixed_tests() pm_nl_set_limits $ns2 2 4 pm_nl_add_endpoint $ns1 10.0.2.1 flags signal pm_nl_add_endpoint $ns1 dead:beef:2::1 flags signal - run_tests $ns1 $ns2 dead:beef:1::1 0 0 fullmesh_1 slow + run_tests $ns1 $ns2 dead:beef:1::1 0 slow 2>/dev/null & + local tests_pid=3D$! + wait_mpj $ns1 + pm_nl_set_endpoint dead:beef:1::1 0 fullmesh_1 + wait_mpj $ns1 chk_join_nr 4 4 4 + wait $tests_pid fi } =20 @@ -2534,9 +2622,12 @@ backup_tests() pm_nl_set_limits $ns1 0 1 pm_nl_set_limits $ns2 0 1 pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow,backup - run_tests $ns1 $ns2 10.0.1.1 0 0 0 slow nobackup + run_tests $ns1 $ns2 10.0.1.1 0 slow 2>/dev/null & + local tests_pid=3D$! + pm_nl_set_endpoint 10.0.1.1 0 0 nobackup chk_join_nr 1 1 1 chk_prio_nr 0 1 + wait $tests_pid fi =20 # single address, backup @@ -2544,10 +2635,14 @@ backup_tests() pm_nl_set_limits $ns1 0 1 pm_nl_add_endpoint $ns1 10.0.2.1 flags signal pm_nl_set_limits $ns2 1 1 - run_tests $ns1 $ns2 10.0.1.1 0 0 0 slow backup + run_tests $ns1 $ns2 10.0.1.1 0 speed_20 2>/dev/null & + local tests_pid=3D$! + wait_mpj $ns2 + pm_nl_set_endpoint 10.0.1.1 0 0 backup chk_join_nr 1 1 1 chk_add_nr 1 1 chk_prio_nr 1 1 + wait $tests_pid fi =20 # single address with port, backup @@ -2555,15 +2650,19 @@ backup_tests() pm_nl_set_limits $ns1 0 1 pm_nl_add_endpoint $ns1 10.0.2.1 flags signal port 10100 pm_nl_set_limits $ns2 1 1 - run_tests $ns1 $ns2 10.0.1.1 0 0 0 slow backup + run_tests $ns1 $ns2 10.0.1.1 0 speed_20 2>/dev/null & + local tests_pid=3D$! + wait_mpj $ns2 + pm_nl_set_endpoint 10.0.1.1 0 0 backup chk_join_nr 1 1 1 chk_add_nr 1 1 chk_prio_nr 1 1 + wait $tests_pid fi =20 if reset "mpc backup"; then pm_nl_add_endpoint $ns2 10.0.1.2 flags subflow,backup - run_tests $ns1 $ns2 10.0.1.1 0 0 0 slow + run_tests $ns1 $ns2 10.0.1.1 0 slow chk_join_nr 0 0 0 chk_prio_nr 0 1 fi @@ -2571,24 +2670,30 @@ backup_tests() if reset "mpc backup both sides"; then pm_nl_add_endpoint $ns1 10.0.1.1 flags subflow,backup pm_nl_add_endpoint $ns2 10.0.1.2 flags subflow,backup - run_tests $ns1 $ns2 10.0.1.1 0 0 0 slow + run_tests $ns1 $ns2 10.0.1.1 0 slow chk_join_nr 0 0 0 chk_prio_nr 1 1 fi =20 if reset "mpc switch to backup"; then pm_nl_add_endpoint $ns2 10.0.1.2 flags subflow - run_tests $ns1 $ns2 10.0.1.1 0 0 0 slow backup + run_tests $ns1 $ns2 10.0.1.1 0 slow 2>/dev/null & + local tests_pid=3D$! + pm_nl_set_endpoint 10.0.1.1 0 0 backup chk_join_nr 0 0 0 chk_prio_nr 0 1 + wait $tests_pid fi =20 if reset "mpc switch to backup both sides"; then pm_nl_add_endpoint $ns1 10.0.1.1 flags subflow pm_nl_add_endpoint $ns2 10.0.1.2 flags subflow - run_tests $ns1 $ns2 10.0.1.1 0 0 0 slow backup + run_tests $ns1 $ns2 10.0.1.1 0 slow 2>/dev/null & + local tests_pid=3D$! + pm_nl_set_endpoint 10.0.1.1 0 0 backup chk_join_nr 0 0 0 chk_prio_nr 1 1 + wait $tests_pid fi } =20 @@ -2672,7 +2777,9 @@ add_addr_ports_tests() pm_nl_set_limits $ns1 0 1 pm_nl_add_endpoint $ns1 10.0.2.1 flags signal port 10100 pm_nl_set_limits $ns2 1 1 - run_tests $ns1 $ns2 10.0.1.1 0 -1 0 slow + run_tests $ns1 $ns2 10.0.1.1 0 slow 2>/dev/null & + local tests_pid=3D$! + pm_nl_set_endpoint 10.0.1.1 -1 chk_join_nr 1 1 1 chk_add_nr 1 1 1 chk_rm_nr 1 1 invert @@ -2680,6 +2787,7 @@ add_addr_ports_tests() verify_listener_events $evts_ns1 $LISTENER_CREATED $AF_INET 10.0.2.1 101= 00 verify_listener_events $evts_ns1 $LISTENER_CLOSED $AF_INET 10.0.2.1 10100 kill_events_pids + wait $tests_pid fi =20 # subflow and signal with port, remove @@ -2688,10 +2796,13 @@ add_addr_ports_tests() pm_nl_add_endpoint $ns1 10.0.2.1 flags signal port 10100 pm_nl_set_limits $ns2 1 2 pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow - run_tests $ns1 $ns2 10.0.1.1 0 -1 -1 slow + run_tests $ns1 $ns2 10.0.1.1 0 slow 2>/dev/null & + local tests_pid=3D$! + pm_nl_set_endpoint 10.0.1.1 -1 -1 chk_join_nr 2 2 2 chk_add_nr 1 1 1 chk_rm_nr 1 1 + wait $tests_pid fi =20 # subflows and signal with port, flush @@ -2701,10 +2812,15 @@ add_addr_ports_tests() pm_nl_set_limits $ns2 1 3 pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow pm_nl_add_endpoint $ns2 10.0.4.2 flags subflow - run_tests $ns1 $ns2 10.0.1.1 0 -8 -2 slow + run_tests $ns1 $ns2 10.0.1.1 0 speed_20 2>/dev/null & + local tests_pid=3D$! + wait_mpj $ns2 + pm_nl_set_endpoint 10.0.1.1 -8 -2 chk_join_nr 3 3 3 chk_add_nr 1 1 + wait_rm_addr $ns2 1 chk_rm_nr 1 3 invert simult + wait $tests_pid fi =20 # multiple addresses with port @@ -2903,9 +3019,13 @@ fullmesh_tests() pm_nl_set_limits $ns2 1 4 pm_nl_add_endpoint $ns2 10.0.2.2 flags subflow,fullmesh pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow,fullmesh - run_tests $ns1 $ns2 10.0.1.1 0 1 0 slow + run_tests $ns1 $ns2 10.0.1.1 0 slow 2>/dev/null & + local tests_pid=3D$! + pm_nl_set_endpoint 10.0.1.1 1 + wait_mpj $ns2 chk_join_nr 4 4 4 chk_add_nr 1 1 + wait $tests_pid fi =20 # fullmesh 2 @@ -2915,9 +3035,13 @@ fullmesh_tests() pm_nl_set_limits $ns1 1 3 pm_nl_set_limits $ns2 1 3 pm_nl_add_endpoint $ns1 10.0.2.1 flags signal - run_tests $ns1 $ns2 10.0.1.1 0 0 fullmesh_1 slow + run_tests $ns1 $ns2 10.0.1.1 0 slow 2>/dev/null & + local tests_pid=3D$! + pm_nl_set_endpoint 10.0.1.1 0 fullmesh_1 + wait_mpj $ns2 chk_join_nr 3 3 3 chk_add_nr 1 1 + wait $tests_pid fi =20 # fullmesh 3 @@ -2927,9 +3051,12 @@ fullmesh_tests() pm_nl_set_limits $ns1 2 5 pm_nl_set_limits $ns2 1 5 pm_nl_add_endpoint $ns1 10.0.2.1 flags signal - run_tests $ns1 $ns2 10.0.1.1 0 0 fullmesh_2 slow + run_tests $ns1 $ns2 10.0.1.1 0 slow 2>/dev/null & + local tests_pid=3D$! + pm_nl_set_endpoint 10.0.1.1 0 fullmesh_2 chk_join_nr 5 5 5 chk_add_nr 1 1 + wait $tests_pid fi =20 # fullmesh 4 @@ -2940,9 +3067,12 @@ fullmesh_tests() pm_nl_set_limits $ns1 2 4 pm_nl_set_limits $ns2 1 4 pm_nl_add_endpoint $ns1 10.0.2.1 flags signal - run_tests $ns1 $ns2 10.0.1.1 0 0 fullmesh_2 slow + run_tests $ns1 $ns2 10.0.1.1 0 slow 2>/dev/null & + local tests_pid=3D$! + pm_nl_set_endpoint 10.0.1.1 0 fullmesh_2 chk_join_nr 4 4 4 chk_add_nr 1 1 + wait $tests_pid fi =20 # set fullmesh flag @@ -2950,9 +3080,12 @@ fullmesh_tests() pm_nl_set_limits $ns1 4 4 pm_nl_add_endpoint $ns1 10.0.2.1 flags subflow pm_nl_set_limits $ns2 4 4 - run_tests $ns1 $ns2 10.0.1.1 0 0 1 slow fullmesh + run_tests $ns1 $ns2 10.0.1.1 0 slow 2>/dev/null & + local tests_pid=3D$! + pm_nl_set_endpoint 10.0.1.1 0 1 fullmesh chk_join_nr 2 2 2 chk_rm_nr 0 1 + wait $tests_pid fi =20 # set nofullmesh flag @@ -2960,9 +3093,12 @@ fullmesh_tests() pm_nl_set_limits $ns1 4 4 pm_nl_add_endpoint $ns1 10.0.2.1 flags subflow,fullmesh pm_nl_set_limits $ns2 4 4 - run_tests $ns1 $ns2 10.0.1.1 0 0 fullmesh_1 slow nofullmesh + run_tests $ns1 $ns2 10.0.1.1 0 slow 2>/dev/null & + local tests_pid=3D$! + pm_nl_set_endpoint 10.0.1.1 0 fullmesh_1 nofullmesh chk_join_nr 2 2 2 chk_rm_nr 0 1 + wait $tests_pid fi =20 # set backup,fullmesh flags @@ -2970,10 +3106,13 @@ fullmesh_tests() pm_nl_set_limits $ns1 4 4 pm_nl_add_endpoint $ns1 10.0.2.1 flags subflow pm_nl_set_limits $ns2 4 4 - run_tests $ns1 $ns2 10.0.1.1 0 0 1 slow backup,fullmesh + run_tests $ns1 $ns2 10.0.1.1 0 slow 2>/dev/null & + local tests_pid=3D$! + pm_nl_set_endpoint 10.0.1.1 0 1 backup,fullmesh chk_join_nr 2 2 2 chk_prio_nr 0 1 chk_rm_nr 0 1 + wait $tests_pid fi =20 # set nobackup,nofullmesh flags @@ -2981,24 +3120,27 @@ fullmesh_tests() pm_nl_set_limits $ns1 4 4 pm_nl_set_limits $ns2 4 4 pm_nl_add_endpoint $ns2 10.0.2.2 flags subflow,backup,fullmesh - run_tests $ns1 $ns2 10.0.1.1 0 0 0 slow nobackup,nofullmesh + run_tests $ns1 $ns2 10.0.1.1 0 slow 2>/dev/null & + local tests_pid=3D$! + pm_nl_set_endpoint 10.0.1.1 0 0 nobackup,nofullmesh chk_join_nr 2 2 2 chk_prio_nr 0 1 chk_rm_nr 0 1 + wait $tests_pid fi } =20 fastclose_tests() { if reset "fastclose test"; then - run_tests $ns1 $ns2 10.0.1.1 1024 0 0 fast fastclose_client + run_tests $ns1 $ns2 10.0.1.1 1024 fast fastclose_client chk_join_nr 0 0 0 chk_fclose_nr 1 1 chk_rst_nr 1 1 invert fi =20 if reset "fastclose server test"; then - run_tests $ns1 $ns2 10.0.1.1 1024 0 0 fast fastclose_server + run_tests $ns1 $ns2 10.0.1.1 1024 fast fastclose_server chk_join_nr 0 0 0 chk_fclose_nr 1 1 invert chk_rst_nr 1 1 @@ -3141,7 +3283,7 @@ userspace_tests() pm_nl_set_limits $ns1 1 1 pm_nl_set_limits $ns2 1 1 pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow - run_tests $ns1 $ns2 10.0.1.1 0 0 0 slow backup + run_tests $ns1 $ns2 10.0.1.1 0 slow backup chk_join_nr 1 1 0 chk_prio_nr 0 0 fi @@ -3153,16 +3295,19 @@ userspace_tests() pm_nl_set_limits $ns1 0 1 pm_nl_set_limits $ns2 0 1 pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow - run_tests $ns1 $ns2 10.0.1.1 0 0 -1 slow + run_tests $ns1 $ns2 10.0.1.1 0 slow 2>/dev/null & + local tests_pid=3D$! + pm_nl_set_endpoint 10.0.1.1 0 -1 chk_join_nr 0 0 0 chk_rm_nr 0 0 + wait $tests_pid fi =20 # userspace pm add & remove address if reset_with_events "userspace pm add & remove address"; then set_userspace_pm $ns1 pm_nl_set_limits $ns2 1 1 - run_tests $ns1 $ns2 10.0.1.1 0 0 0 speed_10 2>/dev/null & + run_tests $ns1 $ns2 10.0.1.1 0 speed_10 2>/dev/null & local tests_pid=3D$! wait_mpj $ns1 userspace_pm_add_addr 10.0.2.1 10 @@ -3183,7 +3328,7 @@ userspace_tests() if reset_with_events "userspace pm create destroy subflow"; then set_userspace_pm $ns2 pm_nl_set_limits $ns1 0 1 - run_tests $ns1 $ns2 10.0.1.1 0 0 0 speed_10 2>/dev/null & + run_tests $ns1 $ns2 10.0.1.1 0 speed_10 2>/dev/null & local tests_pid=3D$! wait_mpj $ns2 userspace_pm_add_sf 10.0.3.2 20 @@ -3205,7 +3350,7 @@ endpoint_tests() pm_nl_set_limits $ns1 2 2 pm_nl_set_limits $ns2 2 2 pm_nl_add_endpoint $ns1 10.0.2.1 flags signal - run_tests $ns1 $ns2 10.0.1.1 0 0 0 slow 2>/dev/null & + run_tests $ns1 $ns2 10.0.1.1 0 slow 2>/dev/null & =20 wait_mpj $ns1 pm_nl_check_endpoint 1 "creation" \ @@ -3229,7 +3374,7 @@ endpoint_tests() pm_nl_set_limits $ns1 1 1 pm_nl_set_limits $ns2 1 1 pm_nl_add_endpoint $ns2 10.0.2.2 id 2 dev ns2eth2 flags subflow - run_tests $ns1 $ns2 10.0.1.1 4 0 0 speed_20 2>/dev/null & + run_tests $ns1 $ns2 10.0.1.1 4 speed_20 2>/dev/null & =20 wait_mpj $ns2 chk_subflow_nr needtitle "before delete" 2 --=20 2.35.3