From nobody Sat Sep 7 23:44:58 2024 Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-vi1eur04on2078.outbound.protection.outlook.com [40.107.8.78]) (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 846F22AB50 for ; Thu, 14 Sep 2023 10:03:05 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=cikhm7EHsvffbVgoUpjPAA7xmqMZfYLEAL13QvmIfQoYJ93qZL1s3vWX/UCsruKWz4wQ7iqzJkpS4J2bAoLCvPg7Hr5WW+A1nTrGHgSftCj3kwGjRz7ewJB2E3M9EgeP4mobQyeTZwook3ucIhpxztB1U8WVtnSiQgzc84zP5IkH0HKe3e3eDBU8bmsAhu3tkD5kl9mblyPOapADgW1Ppg9nWmfjuPYqfqxvQpkiKViQgQy8CPxscbjgnRB1oUq+WGSCXWUsklHrjkLXDZDwQKQr5AIuzrNt9JMvuCDjp2rrhUhoFVxE3J4vJcfEavH9nKsHqHC9QLZ0TzL22HDwXQ== 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=wDodEM9xw6caYX7aY5MJw1vxkQe+htbCEoXdOq5RLC4=; b=JQkWRdAbTpFQy8KMWZUKgyclP1tWI3mYRo0A7eisOsOTdHsE5k1q8uSXHRvIX5MQ3YHR3Sw0JrljxK66cf1XUWNCjg1R0Vib8ygzmIdlAClWNu5Mdm19h1euDc8vtA9USvp/a/BWKsF5oQH+n9oTv/AbT5u0Chs+meBCq7Uay90ETokWYqm+n7mAD00fJhY57N4UWDks5CjEXKoWqnUGpZRL0galxYq9VY4wgbaia2zNxaA6mcff7mus9/HbVPx39Cwvt246UMKh0kPhWlZIzc+cIblLtlyRwpsF1ffD5bpuZC4bZ88kRP54BtA5LIQWl3zb4yFZ5ElZEG1kxYGgeA== 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=wDodEM9xw6caYX7aY5MJw1vxkQe+htbCEoXdOq5RLC4=; b=ygyIbVAywgIPJCTiUx8SnWJdy1lREVRUEfgMyYq/kgwWX1ynmoP6/1xiLxPrhzBAdO9Ahxi3j8iLHKHe9PLbyOR89ARW3Yau6VYqYZRmlbFRyI8BvD+wtgtY4c6BaetZJlwhBKuuUMXLqox9j3M/5ZlmSm/IsFUIwC2O1whQdfyVQgoMG5/seGe/fkPWZQTvXbCJdsrPLunR6RkkQe8uyLhXDp7gmMK83Mq4CiHHVanHX5/G3VemZZXV0b4ESHAKNYR6QYuc116pQ7DUbAl05s/lrG5glOvCYW27UoFlPuddrSAQzCqAzUQBWN1+ELzb2JoIqsf4vTq5FIdT4a7kMA== 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 PAXPR04MB8607.eurprd04.prod.outlook.com (2603:10a6:102:21a::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6792.19; Thu, 14 Sep 2023 10:02:59 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::2867:7a72:20ac:5f71]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::2867:7a72:20ac:5f71%3]) with mapi id 15.20.6768.029; Thu, 14 Sep 2023 10:02:59 +0000 From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next v8 1/8] mptcp: add NO_INITIAL_SUBFLOW flag Date: Thu, 14 Sep 2023 18:03:18 +0800 Message-Id: X-Mailer: git-send-email 2.35.3 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: PS1PR01CA0016.apcprd01.prod.exchangelabs.com (2603:1096:300:75::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_|PAXPR04MB8607:EE_ X-MS-Office365-Filtering-Correlation-Id: 3bfb814c-361a-4045-4d5b-08dbb509c620 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: rNjPJ5Tgk1MO/Rujj7dNRRWhly1hYpFZCIIuxTMENxSva1rPbO78BvRq5xfIAYa2Rxg/sAngwGuNdhZdeDufYAA15m9weaDMH0GNb4pZr3KpJD+Jtk9YIx4Kq9LR1xITiv3nEej1UqbFJD/KfUQifWSQ+dNxNou7VmTuirz/Cs96sLfA8hRinFd2qMWNK1f3seY374G+XUXsHIsXy+GPTcsGt+R3J7rU9jYQwTiDINU8pNCC8PUhXk/CKgJSKn2f9KbkkHAtPDySo0tRmpFOqbUqyXXFJQo94Kc4TSMzuhkzN7p0Dh4wRP3TWXcIRF7ijIRDdHJqCw+5MDhNNxK3HvzyLzqmJJZwu9gudKfm94mVsJY+DvUvWJ86rToM21QJDNpIX7nD+1pnUJcBDbw+P1ftLevYS+BQaJDee3oZhnr4ovMQyKiCDVH5Nyg+74lj42kywQrntQSyGnfk1iWvJ2SMTXF2ANguYdvGCgatRJcB/8y3x3r26Ej3huVDniJKbjBiuOTYVo/Aw5d6u+xen6fyb0emYARKqBhnw+3iKqE= 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:(13230031)(39860400002)(376002)(366004)(346002)(136003)(396003)(1800799009)(451199024)(186009)(83380400001)(2616005)(107886003)(26005)(36756003)(966005)(66946007)(44832011)(5660300002)(4326008)(8936002)(8676002)(2906002)(316002)(66476007)(6916009)(41300700001)(66556008)(6506007)(6512007)(6486002)(6666004)(478600001)(38100700002)(86362001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?m2RKznQnmwTsghcgjihHtQ+gIUjK+gNvfOft9PqvHcgNw0wyv9prP5212Je3?= =?us-ascii?Q?Z1u4G/aHiY954q9+xfZRf7Avq3yt4q7t+UUPkVlGBaY2Aa78OxUHqxUz7a77?= =?us-ascii?Q?exBYl91CqTaH85uXuk8nKp9OZqGYA2n2n/31pdymKbM+kRZGec35SabBj8oA?= =?us-ascii?Q?4exwL9zOOy2qCTseFFP7GNZg1cR8YPg5PBvjAadpHz4sVAlFctDpRw8l7TkN?= =?us-ascii?Q?gRP7CmSwpzl+L+eUhH65eqqECL1JSpTWJTWJERhDq9FG5StLfQjS18HCul2J?= =?us-ascii?Q?8wlnjARybERUMJLo9Iqtrm6qGvsQl4v2JxKYR9BryKZNge/TXUIV7od0STwa?= =?us-ascii?Q?ta55WRkkYSgAmUw5eLw3DLf/SQQ2lH23PX6riXkLDfujoQGfeB+Xz0rrp4Ga?= =?us-ascii?Q?lKKSVPvW5G8v9ikzj5FjvZpfxbvkhxbwRfAJD7/SXdfhQoBwMGm2KZ/fb0r+?= =?us-ascii?Q?3gHsUQ2eiBe2a41yfTV8pIJE86wFVVufkkyhU6hyYPL8AbEEjn64UZriEA4d?= =?us-ascii?Q?hQri0v2tl+xNP/W3EfjyXhAiF74cqv7MPOqsICG9fAZFyl7Z94+1KboEhEb4?= =?us-ascii?Q?dXI6vxD7Tn7r+EZN7ENp0gry4i3NzNFz6Oh22c5qCu56lDWZ6CwFzpxkx7gU?= =?us-ascii?Q?wMbTBmmJQnvNX5ihIxE2ABkLEriTTPZ2YpMhQY/e+bU/wzw7Vec6dCFBC3WL?= =?us-ascii?Q?Wbes4Sa9hXj8XRvAbzCJFHHZbB3cShfUF1SX/cXcBN8LfVuOChNjFaK0jVhx?= =?us-ascii?Q?IhXbt/Qf7vlAQ9av1fb04D4NpJk4SbIx6AgwEo38lvrbaCn5sJY3w6FNv5CZ?= =?us-ascii?Q?EKAKeJBtIrIXjL4lraYWZ4Ze5jI2Cj0vNoAweIijUgv3QsptzVHV37MWrzfm?= =?us-ascii?Q?17ZxbaIttRREZhFuf+U8fimng+R9Z1UEaOWdAzYzcU5i2j4Owo1t+G6HfBuT?= =?us-ascii?Q?H2Aqdz9iUH/5h7ZjjK+EVYlbUnDmYalozIgj1h6d/BffUAHkcq1E/I7EGOFS?= =?us-ascii?Q?OvfBQ00nJdqSGAdoCFWEQhm+S548vHXgLPQ+l+xJWAOsKOZIuQL3/u4pksAg?= =?us-ascii?Q?KfKycxxdH4UUQX3dAVc/GZsP5NvC6htmliHfV/+8fWZ2jnHwn1JDkkhEQjmD?= =?us-ascii?Q?mXQ/2sIuHIEFiQSsnYXeN2VLruBjZcqAelcYZjFrGtvBzOvC2NUFtZJblHiO?= =?us-ascii?Q?CSveK/WA2UtU/rS3k4YrL1HFHQCCstwEylkpupalqOmNl6hLTjTzk0ydXIhq?= =?us-ascii?Q?1hcZcEc9F1iBoBobvket9ZC3GW5grqC0L/J1g9zdug0vw2bKRixLzDh7ghtY?= =?us-ascii?Q?PPRqo0Z2FbBQMNV+HD1wY/frES0csU3IQwIRdvOLqed1yDytG+o3k4tmuGSK?= =?us-ascii?Q?yaHLpgLtPGDs1fZX/ILrSHI4ZeNaaqtusK3/Ok+BVn2dbSPofAqJznmdl9jR?= =?us-ascii?Q?lnc9+SZUzYAs3C7AtRMELeawB1ReTrcpqYvL3kP+L8hgI7Vh0tfjDRGmUqzI?= =?us-ascii?Q?s9R/1I4jeAlFORTGrGR5q80iR4S5UQX4ieoiXjrrYaLdCR/i94Nb3+QIHsyJ?= =?us-ascii?Q?0btkhU9tEqKdjxbAz/Cms3VlyE6e4jKHDOKr1DFm?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3bfb814c-361a-4045-4d5b-08dbb509c620 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Sep 2023 10:02:59.1250 (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: skAdYwaVOffto7iys9Fdq6LkCq6HY0++I5+ytOzEk7oqQ8lpzc6Wf/YnUPn8y94VH2S4Rm99kgmCFdm1SWcypA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR04MB8607 Content-Type: text/plain; charset="utf-8" If the initial subflow has been removed, we cannot know without checking other counters, e.g. ss -ti | grep -c tcp-ulp-mptcp or getsockopt(SOL_MPTCP, MPTCP_FULL_INFO, ...) (or others except MPTCP_INFO of course) and then check mptcp_subflow_data->num_subflows to get the total amount of subflows. This patch adds a new flag NO_INITIAL_SUBFLOW in mptcpi_flags to know if the initial subflow has been removed. With this bit, we can then compute the total amount of subflows from mptcp_info by doing something like: if (mptcpi_flags & MPTCP_INFO_FLAG_HAS_INITIAL_SUBFLOW) mptcpi_subflows +=3D 1; Add two helpers __mptcp_check_no_initial_subflow() and __mptcp_set_no_initial_subflow() too. Closes: https://github.com/multipath-tcp/mptcp_net-next/issues/428 Signed-off-by: Geliang Tang --- include/uapi/linux/mptcp.h | 1 + net/mptcp/pm_netlink.c | 4 +++- net/mptcp/protocol.c | 4 ++++ net/mptcp/protocol.h | 15 +++++++++++++++ net/mptcp/sockopt.c | 2 ++ 5 files changed, 25 insertions(+), 1 deletion(-) diff --git a/include/uapi/linux/mptcp.h b/include/uapi/linux/mptcp.h index ee9c49f949a2..c92421866aaf 100644 --- a/include/uapi/linux/mptcp.h +++ b/include/uapi/linux/mptcp.h @@ -107,6 +107,7 @@ enum { =20 #define MPTCP_INFO_FLAG_FALLBACK _BITUL(0) #define MPTCP_INFO_FLAG_REMOTE_KEY_RECEIVED _BITUL(1) +#define MPTCP_INFO_FLAG_NO_INITIAL_SUBFLOW _BITUL(2) =20 struct mptcp_info { __u8 mptcpi_subflows; diff --git a/net/mptcp/pm_netlink.c b/net/mptcp/pm_netlink.c index 9661f3812682..ffedbb4fbd25 100644 --- a/net/mptcp/pm_netlink.c +++ b/net/mptcp/pm_netlink.c @@ -1462,7 +1462,9 @@ static int mptcp_nl_remove_id_zero_address(struct net= *net, struct sock *sk =3D (struct sock *)msk; struct mptcp_addr_info msk_local; =20 - if (list_empty(&msk->conn_list) || mptcp_pm_is_userspace(msk)) + if (list_empty(&msk->conn_list) || + mptcp_pm_is_userspace(msk) || + __mptcp_check_no_initial_subflow(msk)) goto next; =20 mptcp_local_address((struct sock_common *)msk, &msk_local); diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c index 1a0b463f8c97..420ccd08fe92 100644 --- a/net/mptcp/protocol.c +++ b/net/mptcp/protocol.c @@ -2461,6 +2461,8 @@ static void __mptcp_close_ssk(struct sock *sk, struct= sock *ssk, void mptcp_close_ssk(struct sock *sk, struct sock *ssk, struct mptcp_subflow_context *subflow) { + struct mptcp_sock *msk =3D mptcp_sk(sk); + if (sk->sk_state =3D=3D TCP_ESTABLISHED) mptcp_event(MPTCP_EVENT_SUB_CLOSED, mptcp_sk(sk), ssk, GFP_KERNEL); =20 @@ -2469,6 +2471,8 @@ void mptcp_close_ssk(struct sock *sk, struct sock *ss= k, */ mptcp_pm_subflow_check_next(mptcp_sk(sk), ssk, subflow); =20 + if (ssk =3D=3D msk->first) + __mptcp_set_no_initial_subflow(msk); __mptcp_close_ssk(sk, ssk, subflow, MPTCP_CF_PUSH); } =20 diff --git a/net/mptcp/protocol.h b/net/mptcp/protocol.h index 3c938e3560e4..b0090ef052cb 100644 --- a/net/mptcp/protocol.h +++ b/net/mptcp/protocol.h @@ -115,6 +115,7 @@ #define MPTCP_WORK_RTX 2 #define MPTCP_FALLBACK_DONE 4 #define MPTCP_WORK_CLOSE_SUBFLOW 5 +#define MPTCP_NO_INITIAL_SUBFLOW 6 =20 /* MPTCP socket release cb flags */ #define MPTCP_PUSH_PENDING 1 @@ -1031,6 +1032,20 @@ static inline void __mptcp_do_fallback(struct mptcp_= sock *msk) set_bit(MPTCP_FALLBACK_DONE, &msk->flags); } =20 +static inline bool __mptcp_check_no_initial_subflow(const struct mptcp_soc= k *msk) +{ + return test_bit(MPTCP_NO_INITIAL_SUBFLOW, &msk->flags); +} + +static inline void __mptcp_set_no_initial_subflow(struct mptcp_sock *msk) +{ + if (__mptcp_check_no_initial_subflow(msk)) { + pr_debug("no initial subflow (msk=3D%p)", msk); + return; + } + set_bit(MPTCP_NO_INITIAL_SUBFLOW, &msk->flags); +} + static inline void mptcp_do_fallback(struct sock *ssk) { struct mptcp_subflow_context *subflow =3D mptcp_subflow_ctx(ssk); diff --git a/net/mptcp/sockopt.c b/net/mptcp/sockopt.c index 8260202c0066..aebf692543a5 100644 --- a/net/mptcp/sockopt.c +++ b/net/mptcp/sockopt.c @@ -919,6 +919,8 @@ void mptcp_diag_fill_info(struct mptcp_sock *msk, struc= t mptcp_info *info) flags |=3D MPTCP_INFO_FLAG_FALLBACK; if (READ_ONCE(msk->can_ack)) flags |=3D MPTCP_INFO_FLAG_REMOTE_KEY_RECEIVED; + if (__mptcp_check_no_initial_subflow(msk)) + flags |=3D MPTCP_INFO_FLAG_NO_INITIAL_SUBFLOW; info->mptcpi_flags =3D flags; mptcp_data_lock(sk); info->mptcpi_snd_una =3D msk->snd_una; --=20 2.35.3 From nobody Sat Sep 7 23:44:58 2024 Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-vi1eur04on2088.outbound.protection.outlook.com [40.107.8.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 DB2042AB50 for ; Thu, 14 Sep 2023 10:03:09 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=H6UlYfW71zZ5XfGnXwDZHeA7ONcl9FStH2JAuu9HVlOR0fEzJQIkKCJALUUd5z8hwIN0V0jEv05lTvGid2RuOSdQCfIQ2DnqOsWiX/xrjZKWYC9JSTXu4N3Hln7oA/RpwGPnENG6ksl8vuRfWS+6NBBeYop8BSoGiSOcEzt/B+tL6l9uEr199Ln/inAON9brB1N6ONEesye/P9+CACndjEViKEOtfDi1CKspt4WE8y7LTZdKgyzq8Kt+lRYVEhd8NW+SALvWGfh/L+iZylWz5SrSYAltrjHpD4Tof3uvKthsIm07DmPKqtqVrjLPXnDuJOT7Q9no+wjZvH/Ccc/Aqw== 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=nR1OPqU6gXFlwK7zO5nLsEz7TgE70MHii4ubpmYAoMw=; b=HAVPlFbFQBlTQ7hHmSXjE5oSmKblA53yEroEqtAGpCwUQr0XYec0xT4QMMWEp0GbKbJEiAQBHozvQlWz/Q0hJve7+lBT7EpGUBgnUA3KHJmuLKkaMdNYvJ/8A4bb/6g0inv7BqQLuEiX9ccNm8BlZwZvsM6CFO17NHTdSG3Bt4Yua5QzZ5yRG/5iGDr/qVi7dorQpVZec/XGA/q46dF1Bm8kaCIWLP1GFNdtRJp4hOGTVE010Q+JNy6rfPa2c0lDHS/Of/bfozDvkR4L4SIvo7PGHBM7CbvK1dCK83IIkIBhDgU+XcOwMndaLUF2a/TLz7N1iJZTM8VI2vZlOvQ1kQ== 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=nR1OPqU6gXFlwK7zO5nLsEz7TgE70MHii4ubpmYAoMw=; b=umZgTDIUKGVY0Fw4HnxEmj51jCz8OWKKmmVLbjkRFFirLSj8jT+dKYLCE0cTL89TPBQR1wX3YPtJWgMT9c3VuOiyZKyZnUJw+h5E0td14CsKvUJ0r7jwB2RsAG6TleC/qsgCwatcUR0bIWKyAVYKFjEFAGSH2EiDo2o0l3F9e3PLMb6Wbh+tVezCOJdyARtHIWXTivA4CKvIDal6gT8DSXiZX7r8daGoIT059P35nwXIOK0RxNoLjhKXkeF8IyijtJ2Tf4vufJsHbRyQ8NlDmbGteJM/E0K+fTFuUSPmsTP9hvno5HMsNRwJ5HXwNKS7hER1vX+aDn4u4514VNpJkA== 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 PAXPR04MB8607.eurprd04.prod.outlook.com (2603:10a6:102:21a::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6792.19; Thu, 14 Sep 2023 10:03:06 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::2867:7a72:20ac:5f71]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::2867:7a72:20ac:5f71%3]) with mapi id 15.20.6768.029; Thu, 14 Sep 2023 10:03:06 +0000 From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next v8 2/8] selftests: mptcp: add evts_get_info helper Date: Thu, 14 Sep 2023 18:03:19 +0800 Message-Id: X-Mailer: git-send-email 2.35.3 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SI1PR02CA0035.apcprd02.prod.outlook.com (2603:1096:4:1f6::8) 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_|PAXPR04MB8607:EE_ X-MS-Office365-Filtering-Correlation-Id: e283646a-b708-4708-889c-08dbb509cac3 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: BDwqdKl3MjjDiQ3NDIXp6gyg4y3twGd2eyTs+3uyohIa2WhhImgySrI5n16Q2EVM0/wlf0nTdKoxDC3GbJkvTEvDMwEn7KRG/Kd0kIjlO+5gW2+rOJ1Z/0lQEiOkAdS/xVce7z1PTxPYaBaaSnXo+TKEJdwNCoBRIsKd8me4C9HHWH/8dSnamv29BroTKBhlFbcjYbtDO2nNmZbzo5r7M2I52QsG2uNxNae0MHe5h9KdIuvYEuhotncYZ1xgKA5IlKrcVS4OQEINMsot1ysXW5ZCrwc+wHuskPV6EcPwXZmQmXSZHWmYuziqfK/UcfRIt3fK9LX+EHtlqI3/e+CF12odClFw81d3n77UTrvzXbBpezDnPD8PQadCeVXRyk2rlhn1EaJqaS7AJgr8bHiY7YIxB0CMZR7sWeMkBAKeFf9FHtDPmUf0QMzWM10hmopVN3JJBwoKtd60v5smGmxpX0Hn/fUBVDq8LnfOlY/bbYCcbz4uVOYWZdFMWhwpSCExpDtRu++kqLRrxRiSQKnETPLU6P7Pn3VvRa16smO3y/C/WLklyu1TusPjq/cWKMqM 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:(13230031)(39860400002)(376002)(366004)(346002)(136003)(396003)(1800799009)(451199024)(186009)(83380400001)(2616005)(107886003)(26005)(36756003)(66946007)(44832011)(5660300002)(4326008)(8936002)(8676002)(2906002)(30864003)(316002)(66476007)(6916009)(41300700001)(66556008)(6506007)(6512007)(6486002)(6666004)(478600001)(38100700002)(86362001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?IlvGFWL2LU0VMl351vwFkgmtwt8GiL1loL+dMKoQsrxtRfW5U9PPMtB9no2N?= =?us-ascii?Q?fYINAH3Ay8mSWfB7+7/dl2iaUq77uLQvbTYTZT+MNhIZkbkkS4afVN0XyAyr?= =?us-ascii?Q?Os7NX05INLcQcWNYZ2t8tzT8BJXuw5F1CynZayRTLiOTEPVm1oolWl6FcydK?= =?us-ascii?Q?PvDk1Uucx9/ylo3h8UvpLfoEh7KuN/HHZjgOs+J9Ad691SrZ6Yi0lKeDYFKI?= =?us-ascii?Q?bPkFMnV9ho0JAtIH/bJ8m/8wqvhlIljlBT4EPeqDZZsispbiQDFTvUaJKmmp?= =?us-ascii?Q?0yKS6R+B6OMZjVY5mZbM5tZKV1ZHjnGJImNpOn1Fq6n83kYviwvfdA78pERf?= =?us-ascii?Q?N7fxauWsIpvJW25aWL0tc9Wz/aWsMx4Du3APe4WshHYg9uMSNuY3tT8Qmsbl?= =?us-ascii?Q?SuecxvZHMjDgomN+UAVge0FpFGxgN9hBIMmK/cnFR7TvSRKY8YN1ZPYVNM4w?= =?us-ascii?Q?sd7mXpFIiaH+NGiEJRwbdGB01yTQz7CGvDAAXVqY2SwE7rZbef8kbcn49BHA?= =?us-ascii?Q?7GlHcSOByD32ABnpdkzTJhLBcihkBXMVJB82DBMFFSC3QnxSSXdJ3lRqjvdc?= =?us-ascii?Q?XKA1J56F2UgJWGX1oGHpcagaD75QIiEAPew6wzUHFO3Y891yEJ5TlXSBTF/9?= =?us-ascii?Q?lJpnePu0u9frz3pGtWhVM9fAWQnj1DL8o9Arvo40bJ5jWmdLyQQ4LpouWlNg?= =?us-ascii?Q?B/vGkFIhopkeNan6NF9MWs716o2Wm91Mkv+sUhxURHko2NvbcFR4+E+lv/+h?= =?us-ascii?Q?bmyasbZFEOl7FEQPy7pvpO053EpPD3cdSy+B7CniOr8kP962VVENRuZmYC75?= =?us-ascii?Q?7WdXtqJHvQXFkPvyvBvZUAL6vLylJE/RGfjoUjrQSuNcxgN0DJAU+uHkX61S?= =?us-ascii?Q?EDBKUNkNUiPpGJ4/L48umsFmJcI029E8fwQg8RTT6kXKaadgVF7V4sHqjhbx?= =?us-ascii?Q?sT1FxbBbKXM8kP6MMccH0fzgMZwsrkJaXpuh3WYuV/b0nYiL3Bk3Xyn4VVQH?= =?us-ascii?Q?PMzK8ciw+TqCrByPf9tz5Bsmz7iXJ8mhZJvepntu/lTsMxsH1+dB3NFM8YXu?= =?us-ascii?Q?rQU6PagzyO2gOIL04cE1MM+dFTUY5w5EwnN4a78RmvyQrM4Ss9Gc/q6ZNsoH?= =?us-ascii?Q?RaBMYXjAZIgxH0KitDNCb/4FbZl1IbVuZIlli+iqalwoJSj4luJrXToNnQNs?= =?us-ascii?Q?KmNWMIkMOAWocjQu6QmYp55A2uQYPiopXdjZNQArID6IGoO2oravnSPCjtoB?= =?us-ascii?Q?F8uUQjHugZoojee6i22ZhvTpDoP9WMTNLNQnKZWe0uVu8hQrccVYuhpoV1nK?= =?us-ascii?Q?4FNnmdmrzsJBIYmyKpmm8B+uXlwtLcQpMFD7z7r+YmfY3sg707jjQ4n6vjTH?= =?us-ascii?Q?zk1tFZ9yGvvMDWK6Ve4HAos/Tzh/gYr5uUzBjSaAGBb4WYAkL6tTNuRwRy3t?= =?us-ascii?Q?CGjm6kTTDAM86TOqdc8I+zS+LuSUGWBlxiJLI5wzjPWsakoBbM4yY/TEXfKh?= =?us-ascii?Q?qFt7R2VSSlRmRDMh/iD2vefKqASf+zKGK65iyf5giLSq27XBhG9ILDf0vAi/?= =?us-ascii?Q?SUYrrHzC9J0Mh5Nxl6yLBGpFN9FsfqpKUQaZRFVV?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: e283646a-b708-4708-889c-08dbb509cac3 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Sep 2023 10:03:06.8469 (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: DmorBbuVvwpkXWBmJ+uvR1WAwVlhOVOS2MLz9hjI+BTmoo9krOU8DP9GwNkKAB3Pw+izCobxQ/b6q/L3hHyLrQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR04MB8607 Content-Type: text/plain; charset="utf-8" This patch adds a new helper get_info_value(), using 'sed' command to parse the value of the given item name in the line with the given keyword, to make chk_mptcp_info() and pedit_action_pkts() more readable. Also add another helper evts_get_info() to use get_info_value() to parse the output of 'pm_nl_ctl events' command, to make all the userpsace pm selftests more readable, both in mptcp_join.sh and userspace_pm.sh. Signed-off-by: Geliang Tang --- .../testing/selftests/net/mptcp/mptcp_join.sh | 19 ++-- .../testing/selftests/net/mptcp/mptcp_lib.sh | 10 +++ .../selftests/net/mptcp/userspace_pm.sh | 86 +++++++++---------- 3 files changed, 57 insertions(+), 58 deletions(-) diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testin= g/selftests/net/mptcp/mptcp_join.sh index ee1f89a872b3..27517ba770bc 100755 --- a/tools/testing/selftests/net/mptcp/mptcp_join.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh @@ -1862,10 +1862,8 @@ chk_mptcp_info() =20 print_check "mptcp_info ${info1:0:8}=3D$exp1:$exp2" =20 - cnt1=3D$(ss -N $ns1 -inmHM | grep "$info1:" | - sed -n 's/.*\('"$info1"':\)\([[:digit:]]*\).*$/\2/p;q') - cnt2=3D$(ss -N $ns2 -inmHM | grep "$info2:" | - sed -n 's/.*\('"$info2"':\)\([[:digit:]]*\).*$/\2/p;q') + cnt1=3D$(ss -N $ns1 -inmHM | mptcp_lib_get_info_value "$info1" "$info1") + cnt2=3D$(ss -N $ns2 -inmHM | mptcp_lib_get_info_value "$info2" "$info2") # 'ss' only display active connections and counters that are not 0. [ -z "$cnt1" ] && cnt1=3D0 [ -z "$cnt2" ] && cnt2=3D0 @@ -2828,13 +2826,13 @@ verify_listener_events() return fi =20 - type=3D$(grep "type:$e_type," $evt | sed -n 's/.*\(type:\)\([[:digit:]]*\= ).*$/\2/p;q') - family=3D$(grep "type:$e_type," $evt | sed -n 's/.*\(family:\)\([[:digit:= ]]*\).*$/\2/p;q') - sport=3D$(grep "type:$e_type," $evt | sed -n 's/.*\(sport:\)\([[:digit:]]= *\).*$/\2/p;q') + type=3D$(mptcp_lib_evts_get_info type "$evt" "$e_type") + family=3D$(mptcp_lib_evts_get_info family "$evt" "$e_type") + sport=3D$(mptcp_lib_evts_get_info sport "$evt" "$e_type") if [ $family ] && [ $family =3D $AF_INET6 ]; then - saddr=3D$(grep "type:$e_type," $evt | sed -n 's/.*\(saddr6:\)\([0-9a-f:.= ]*\).*$/\2/p;q') + saddr=3D$(mptcp_lib_evts_get_info saddr6 "$evt" "$e_type") else - saddr=3D$(grep "type:$e_type," $evt | sed -n 's/.*\(saddr4:\)\([0-9.]*\)= .*$/\2/p;q') + saddr=3D$(mptcp_lib_evts_get_info saddr4 "$evt" "$e_type") fi =20 if [ $type ] && [ $type =3D $e_type ] && @@ -3229,8 +3227,7 @@ fastclose_tests() pedit_action_pkts() { tc -n $ns2 -j -s action show action pedit index 100 | \ - grep "packets" | \ - sed 's/.*"packets":\([0-9]\+\),.*/\1/' + mptcp_lib_get_info_value \"packets\" packets } =20 fail_tests() diff --git a/tools/testing/selftests/net/mptcp/mptcp_lib.sh b/tools/testing= /selftests/net/mptcp/mptcp_lib.sh index 92a5befe8039..def35395a254 100644 --- a/tools/testing/selftests/net/mptcp/mptcp_lib.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_lib.sh @@ -207,3 +207,13 @@ mptcp_lib_result_print_all_tap() { printf "%s\n" "${subtest}" done } + +# get the value of keyword $1 in the line marked by keyword $2 +mptcp_lib_get_info_value() { + grep "${2}" | sed -n 's/.*\('${1}':\)\([0-9a-f:.]*\).*$/\2/p;q' +} + +# $1: info name ; $2: evts_ns ; $3: event type +mptcp_lib_evts_get_info() { + cat "${2}" | mptcp_lib_get_info_value "${1}" "^type:${3:-1}," +} diff --git a/tools/testing/selftests/net/mptcp/userspace_pm.sh b/tools/test= ing/selftests/net/mptcp/userspace_pm.sh index b25a3e33eb25..2413059a42e5 100755 --- a/tools/testing/selftests/net/mptcp/userspace_pm.sh +++ b/tools/testing/selftests/net/mptcp/userspace_pm.sh @@ -247,14 +247,11 @@ make_connection() local server_token local server_serverside =20 - client_token=3D$(sed --unbuffered -n 's/.*\(token:\)\([[:digit:]]*\).*$/\= 2/p;q' "$client_evts") - client_port=3D$(sed --unbuffered -n 's/.*\(sport:\)\([[:digit:]]*\).*$/\2= /p;q' "$client_evts") - client_serverside=3D$(sed --unbuffered -n 's/.*\(server_side:\)\([[:digit= :]]*\).*$/\2/p;q'\ - "$client_evts") - server_token=3D$(grep "type:1," "$server_evts" | - sed --unbuffered -n 's/.*\(token:\)\([[:digit:]]*\).*$/\2/p;q') - server_serverside=3D$(grep "type:1," "$server_evts" | - sed --unbuffered -n 's/.*\(server_side:\)\([[:digit:]]*\).*$/\2/p;q= ') + client_token=3D$(mptcp_lib_evts_get_info token "$client_evts") + client_port=3D$(mptcp_lib_evts_get_info sport "$client_evts") + client_serverside=3D$(mptcp_lib_evts_get_info server_side "$client_evts") + server_token=3D$(mptcp_lib_evts_get_info token "$server_evts") + server_serverside=3D$(mptcp_lib_evts_get_info server_side "$server_evts") =20 print_test "Established IP${is_v6} MPTCP Connection ns2 =3D> ns1" if [ "$client_token" !=3D "" ] && [ "$server_token" !=3D "" ] && [ "$clie= nt_serverside" =3D 0 ] && @@ -340,16 +337,16 @@ verify_announce_event() local dport local id =20 - type=3D$(sed --unbuffered -n 's/.*\(type:\)\([[:digit:]]*\).*$/\2/p;q' "$= evt") - token=3D$(sed --unbuffered -n 's/.*\(token:\)\([[:digit:]]*\).*$/\2/p;q' = "$evt") + type=3D$(mptcp_lib_evts_get_info type "$evt" $e_type) + token=3D$(mptcp_lib_evts_get_info token "$evt" $e_type) if [ "$e_af" =3D "v6" ] then - addr=3D$(sed --unbuffered -n 's/.*\(daddr6:\)\([0-9a-f:.]*\).*$/\2/p;q' = "$evt") + addr=3D$(mptcp_lib_evts_get_info daddr6 "$evt" $e_type) else - addr=3D$(sed --unbuffered -n 's/.*\(daddr4:\)\([0-9.]*\).*$/\2/p;q' "$ev= t") + addr=3D$(mptcp_lib_evts_get_info daddr4 "$evt" $e_type) fi - dport=3D$(sed --unbuffered -n 's/.*\(dport:\)\([[:digit:]]*\).*$/\2/p;q' = "$evt") - id=3D$(sed --unbuffered -n 's/.*\(rem_id:\)\([[:digit:]]*\).*$/\2/p;q' "$= evt") + dport=3D$(mptcp_lib_evts_get_info dport "$evt" $e_type) + id=3D$(mptcp_lib_evts_get_info rem_id "$evt" $e_type) =20 check_expected "type" "token" "addr" "dport" "id" } @@ -367,7 +364,7 @@ test_announce() $client_addr_id dev ns2eth1 > /dev/null 2>&1 =20 local type - type=3D$(sed --unbuffered -n 's/.*\(type:\)\([[:digit:]]*\).*$/\2/p;q' "$= server_evts") + type=3D$(mptcp_lib_evts_get_info type "$server_evts") print_test "ADD_ADDR 10.0.2.2 (ns2) =3D> ns1, invalid token" if [ "$type" =3D "" ] then @@ -446,9 +443,9 @@ verify_remove_event() local token local id =20 - type=3D$(sed --unbuffered -n 's/.*\(type:\)\([[:digit:]]*\).*$/\2/p;q' "$= evt") - token=3D$(sed --unbuffered -n 's/.*\(token:\)\([[:digit:]]*\).*$/\2/p;q' = "$evt") - id=3D$(sed --unbuffered -n 's/.*\(rem_id:\)\([[:digit:]]*\).*$/\2/p;q' "$= evt") + type=3D$(mptcp_lib_evts_get_info type "$evt" $e_type) + token=3D$(mptcp_lib_evts_get_info token "$evt" $e_type) + id=3D$(mptcp_lib_evts_get_info rem_id "$evt" $e_type) =20 check_expected "type" "token" "id" } @@ -466,7 +463,7 @@ test_remove() $client_addr_id > /dev/null 2>&1 print_test "RM_ADDR id:${client_addr_id} ns2 =3D> ns1, invalid token" local type - type=3D$(sed --unbuffered -n 's/.*\(type:\)\([[:digit:]]*\).*$/\2/p;q' "$= server_evts") + type=3D$(mptcp_lib_evts_get_info type "$server_evts") if [ "$type" =3D "" ] then test_pass @@ -479,7 +476,7 @@ test_remove() ip netns exec "$ns2" ./pm_nl_ctl rem token "$client4_token" id\ $invalid_id > /dev/null 2>&1 print_test "RM_ADDR id:${invalid_id} ns2 =3D> ns1, invalid id" - type=3D$(sed --unbuffered -n 's/.*\(type:\)\([[:digit:]]*\).*$/\2/p;q' "$= server_evts") + type=3D$(mptcp_lib_evts_get_info type "$server_evts") if [ "$type" =3D "" ] then test_pass @@ -583,19 +580,19 @@ verify_subflow_events() fi fi =20 - type=3D$(sed --unbuffered -n 's/.*\(type:\)\([[:digit:]]*\).*$/\2/p;q' "$= evt") - token=3D$(sed --unbuffered -n 's/.*\(token:\)\([[:digit:]]*\).*$/\2/p;q' = "$evt") - family=3D$(sed --unbuffered -n 's/.*\(family:\)\([[:digit:]]*\).*$/\2/p;q= ' "$evt") - dport=3D$(sed --unbuffered -n 's/.*\(dport:\)\([[:digit:]]*\).*$/\2/p;q' = "$evt") - locid=3D$(sed --unbuffered -n 's/.*\(loc_id:\)\([[:digit:]]*\).*$/\2/p;q'= "$evt") - remid=3D$(sed --unbuffered -n 's/.*\(rem_id:\)\([[:digit:]]*\).*$/\2/p;q'= "$evt") + type=3D$(mptcp_lib_evts_get_info type "$evt" $e_type) + token=3D$(mptcp_lib_evts_get_info token "$evt" $e_type) + family=3D$(mptcp_lib_evts_get_info family "$evt" $e_type) + dport=3D$(mptcp_lib_evts_get_info dport "$evt" $e_type) + locid=3D$(mptcp_lib_evts_get_info loc_id "$evt" $e_type) + remid=3D$(mptcp_lib_evts_get_info rem_id "$evt" $e_type) if [ "$family" =3D "$AF_INET6" ] then - saddr=3D$(sed --unbuffered -n 's/.*\(saddr6:\)\([0-9a-f:.]*\).*$/\2/p;q'= "$evt") - daddr=3D$(sed --unbuffered -n 's/.*\(daddr6:\)\([0-9a-f:.]*\).*$/\2/p;q'= "$evt") + saddr=3D$(mptcp_lib_evts_get_info saddr6 "$evt" $e_type) + daddr=3D$(mptcp_lib_evts_get_info daddr6 "$evt" $e_type) else - saddr=3D$(sed --unbuffered -n 's/.*\(saddr4:\)\([0-9.]*\).*$/\2/p;q' "$e= vt") - daddr=3D$(sed --unbuffered -n 's/.*\(daddr4:\)\([0-9.]*\).*$/\2/p;q' "$e= vt") + saddr=3D$(mptcp_lib_evts_get_info saddr4 "$evt" $e_type) + daddr=3D$(mptcp_lib_evts_get_info daddr4 "$evt" $e_type) fi =20 check_expected "type" "token" "daddr" "dport" "family" "saddr" "locid" "r= emid" @@ -630,7 +627,7 @@ test_subflows() kill_wait $listener_pid =20 local sport - sport=3D$(sed --unbuffered -n 's/.*\(sport:\)\([[:digit:]]*\).*$/\2/p;q' = "$server_evts") + sport=3D$(mptcp_lib_evts_get_info sport "$server_evts" $SUB_ESTABLISHED) =20 # DESTROY_SUBFLOW from server to client machine :>"$server_evts" @@ -668,7 +665,7 @@ test_subflows() # Delete the listener from the client ns, if one was created kill_wait $listener_pid =20 - sport=3D$(sed --unbuffered -n 's/.*\(sport:\)\([[:digit:]]*\).*$/\2/p;q' = "$server_evts") + sport=3D$(mptcp_lib_evts_get_info sport "$server_evts" $SUB_ESTABLISHED) =20 # DESTROY_SUBFLOW6 from server to client machine :>"$server_evts" @@ -707,7 +704,7 @@ test_subflows() # Delete the listener from the client ns, if one was created kill_wait $listener_pid =20 - sport=3D$(sed --unbuffered -n 's/.*\(sport:\)\([[:digit:]]*\).*$/\2/p;q' = "$server_evts") + sport=3D$(mptcp_lib_evts_get_info sport "$server_evts" $SUB_ESTABLISHED) =20 # DESTROY_SUBFLOW from server to client machine :>"$server_evts" @@ -745,7 +742,7 @@ test_subflows() # Delete the listener from the server ns, if one was created kill_wait $listener_pid =20 - sport=3D$(sed --unbuffered -n 's/.*\(sport:\)\([[:digit:]]*\).*$/\2/p;q' = "$client_evts") + sport=3D$(mptcp_lib_evts_get_info sport "$client_evts" $SUB_ESTABLISHED) =20 # DESTROY_SUBFLOW from client to server machine :>"$client_evts" @@ -784,7 +781,7 @@ test_subflows() # Delete the listener from the server ns, if one was created kill_wait $listener_pid =20 - sport=3D$(sed --unbuffered -n 's/.*\(sport:\)\([[:digit:]]*\).*$/\2/p;q' = "$client_evts") + sport=3D$(mptcp_lib_evts_get_info sport "$client_evts" $SUB_ESTABLISHED) =20 # DESTROY_SUBFLOW6 from client to server machine :>"$client_evts" @@ -821,7 +818,7 @@ test_subflows() # Delete the listener from the server ns, if one was created kill_wait $listener_pid =20 - sport=3D$(sed --unbuffered -n 's/.*\(sport:\)\([[:digit:]]*\).*$/\2/p;q' = "$client_evts") + sport=3D$(mptcp_lib_evts_get_info sport "$client_evts" $SUB_ESTABLISHED) =20 # DESTROY_SUBFLOW from client to server machine :>"$client_evts" @@ -867,7 +864,7 @@ test_subflows_v4_v6_mix() # Delete the listener from the server ns, if one was created kill_wait $listener_pid =20 - sport=3D$(sed --unbuffered -n 's/.*\(sport:\)\([[:digit:]]*\).*$/\2/p;q' = "$client_evts") + sport=3D$(mptcp_lib_evts_get_info sport "$client_evts" $SUB_ESTABLISHED) =20 # DESTROY_SUBFLOW from client to server machine :>"$client_evts" @@ -933,18 +930,13 @@ verify_listener_events() print_test "CLOSE_LISTENER $e_saddr:$e_sport" fi =20 - type=3D$(grep "type:$e_type," $evt | - sed --unbuffered -n 's/.*\(type:\)\([[:digit:]]*\).*$/\2/p;q') - family=3D$(grep "type:$e_type," $evt | - sed --unbuffered -n 's/.*\(family:\)\([[:digit:]]*\).*$/\2/p;q') - sport=3D$(grep "type:$e_type," $evt | - sed --unbuffered -n 's/.*\(sport:\)\([[:digit:]]*\).*$/\2/p;q') + type=3D$(mptcp_lib_evts_get_info type $evt $e_type) + family=3D$(mptcp_lib_evts_get_info family $evt $e_type) + sport=3D$(mptcp_lib_evts_get_info sport $evt $e_type) if [ $family ] && [ $family =3D $AF_INET6 ]; then - saddr=3D$(grep "type:$e_type," $evt | - sed --unbuffered -n 's/.*\(saddr6:\)\([0-9a-f:.]*\).*$/\2/p;q') + saddr=3D$(mptcp_lib_evts_get_info saddr6 $evt $e_type) else - saddr=3D$(grep "type:$e_type," $evt | - sed --unbuffered -n 's/.*\(saddr4:\)\([0-9.]*\).*$/\2/p;q') + saddr=3D$(mptcp_lib_evts_get_info saddr4 $evt $e_type) fi =20 check_expected "type" "family" "saddr" "sport" --=20 2.35.3 From nobody Sat Sep 7 23:44:58 2024 Received: from EUR02-VI1-obe.outbound.protection.outlook.com (mail-vi1eur02on2066.outbound.protection.outlook.com [40.107.241.66]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id BC5F22AB4A for ; Thu, 14 Sep 2023 10:03:25 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=oW63GMGuLMVCmi0QVyUK9twD0zYgc9s+RGdc1b27aOJn2tp322vd42hRB9PrnAbWCF5H1pWEvsVZOQbz2tANTuzX0wdVJM1xODsSm6o0+FTLxThmsyf4Cb0pYFBumcYWfqt2yWpLbKFpXpwQ80v9a8p6UfCM4XGBDFzfIcpdfIgy1uZdcCx9LKeMc+cDlDlOnxNktqtMRnWwgdjP0ARZOPREObVTD8k931cB0xgcml/3LgX1JXF5AH3vI6G7bUk97+eQYN4718SYwa1qxaJQsd7ArqnDljtE4AfNIeFELTNjD3fQ0Cht6Sc/+wiWgeiOliNdeKwQuPM5y9PeeeF9nw== 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=GE78aZJ3v6xlnhLBrQKgprjSocMooXv8XYlKh+VFWac=; b=EeLeFHPQZFQjldcTiDIwkUcy5+opXfUd3A2sl9oQa1//dt3U6jOmHT+z3GbhnlmspAQzAsRErKmoRUWp6r3aae9h++tjojzY2ZMof6H2vcrdnwO31yDsW2GXlqFXCqEI/7SU/xc6M4IWsrOOnJv/RzlHWrQdsRCoeIH6vktsdyiGOd2mw+mHL/Tp9JmsN4YzlORo8ZXrYAtTtOr1RYcpi+vgHX+OMAMexl2qCkiQZlQB49UNqkr80XbPPvTOJugKgX2/iZevsm58Jg17s6at9vfANbURXiL71lqupPuWIjeAp6f6X//FueCY2VGq1RjE7z+LVqacGYSTOqsrVJFRdA== 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=GE78aZJ3v6xlnhLBrQKgprjSocMooXv8XYlKh+VFWac=; b=xax2CDkvjDyjpurgtw8rQNHtyIlrFY6Zh2+M3I/GOK4O90jq37efxSiESxjJGOW3PFWQ6Jfl/9DhPofAZkINKYt2hVGfIlTVy10chv/Zpnp7Et0J6krD5jlF+1RBxEVLy7aA54QXykodHzH2+Tipi0mESQLWJfRzrO33C5GJHgg+TV14ZIPH6Eo0NorsrJ6Kh/EbfTCTCp705vA2vPznfxROZ+/zYWnuZdVJz4RwchtRP+g79lfD+xcGbrfYYaW7O1JNamUPouYB/k1ToZyg7o+Pla3xn0yVN0t5GIOdto6Gr95AZBB28cTgkrOEkd8FKLQCqyLDTGAOYpn3Tep4Wg== 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 PAXPR04MB8992.eurprd04.prod.outlook.com (2603:10a6:102:20f::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6792.20; Thu, 14 Sep 2023 10:03:21 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::2867:7a72:20ac:5f71]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::2867:7a72:20ac:5f71%3]) with mapi id 15.20.6768.029; Thu, 14 Sep 2023 10:03:21 +0000 From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next v8 3/8] selftests: mptcp: update userspace pm test helpers Date: Thu, 14 Sep 2023 18:03:20 +0800 Message-Id: X-Mailer: git-send-email 2.35.3 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SI1PR02CA0033.apcprd02.prod.outlook.com (2603:1096:4:1f6::14) 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_|PAXPR04MB8992:EE_ X-MS-Office365-Filtering-Correlation-Id: 7da64163-ae7e-4b54-2e3f-08dbb509d395 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: T5ZlgE+rHby9O5Mse2SWURg5ZaJzinwyV/oDIQwnTUI92Cz22WiA5oyV2rHhIXnNPv+ukBVpVckxiDX6oTryMAm20Qg+mQuEQgmcfrWJYRQ2rzhcHnRJYKlKqq12XVIzP4lX+M6EPj0fPAbMpLMhAHtVyMDg0vAa0/8+nTxSM0ZmuHSGS61Io8P+8eTX6wuhop3hYj/Pi+3iC9cqu7dw7LOcDhmN8YVeMCmgEyGAi2AeMk2vWWJBebKZgxmyk3MsGSpndXSBFE0tL672gLKk9R+TGmmHnC8Zf2vr49UQKg6LvBIBQpsUBxUzlXuth08OkTfehrIAYSjeYgieKBU7ASqh3sHM2m3rFPuVKYTTYOUVtPzuJXuGFzudSj3hhtswRnzxGjLCtQd4B3zzegec0VUCReB4S4fqWTS6AtMpn2Q2+x4aZwfbnDnMq83jRed//TknV3L2RLJALWQaNAt1Ld2ZACaurjTU9qKSbAlwbDvV5p+RzpsiKKxdDW8n3T2eOIivKduRATu+kj+1DuHeOG5nEr41ErQPmCG0NtOQbR+Q/Pr1OXP5YCMIuo/QscpU 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:(13230031)(136003)(366004)(39860400002)(396003)(376002)(346002)(186009)(1800799009)(451199024)(2906002)(86362001)(6512007)(26005)(36756003)(2616005)(107886003)(478600001)(6486002)(6506007)(83380400001)(38100700002)(41300700001)(8676002)(4326008)(8936002)(5660300002)(6916009)(316002)(66946007)(66556008)(66476007)(44832011);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?nDrTXs/jRW2xFIx8Ul1+XyvV3JfUWJHLf4Ka/7B8MypGv9pDnEjFxIz8kgfj?= =?us-ascii?Q?KZ6nYluUR2xsMoN/nywT2CMG1a7hNUqQG0Dmomks7VvG/fTAnEs8KHdXmkKg?= =?us-ascii?Q?wQ8V/S71kNUZdEoLxyxYy58mOh3qYu4+wWHeO8FoJcEZfD7BwFUU/hDHARpZ?= =?us-ascii?Q?95FsFy2s04/m1x20RKADW+ZR1M0A/JVWgUFtc2oBX2xqN652L2OQDHvbggIt?= =?us-ascii?Q?Q8hLpqV3cGSB2RYhpjwdKvEMNmicRYvGgxQI1/IuZwDtXkrc3ReQcCr/fNcG?= =?us-ascii?Q?RRiNLB4jxlXWByIBRrh65EDQv0Dl1aOYj85MMdN8l/0vrGin6RwS5p3zak3C?= =?us-ascii?Q?ZDEWk1z5LKzJjGqUfrJMew/+vjnqRoHKFaDJ04jKxwtSV1gNMeevkeGCQpRv?= =?us-ascii?Q?fjgPvBo7pVAiT+VvZY0b789DVpj0SkRA9qkDVzrp+G2WnQ9W3zEkLVAz15Mh?= =?us-ascii?Q?MfnkQMUfmg3yBX6wt5poPxFIp02pX/yjA9jZ9Sy07YHkVZ0Jws0d+jqNl+CS?= =?us-ascii?Q?Nw1GZhzAduKL3QrChYaDOWW0IACfRq19+B//SUaBPsN+QHQmfTclGv2urg6p?= =?us-ascii?Q?HpHgy7HR7YyqnqhqHCJ0P0O2szFlLlsz8q/Bo++b9kMet0ENBXCV9hxaqOg8?= =?us-ascii?Q?BZ8KLQpl/kEl7r/wpbyz8J1RIwww5Miy7wEOYvW8WQkAfgP4gD7zzLVHkDWN?= =?us-ascii?Q?3A7lAkdLXCWF34ZBlvHgmFPFBxLm+7V2LBuYaBTZvKvI+e1neldMqdb82wFH?= =?us-ascii?Q?XtQsKdpgEVeroNYIDZJesm7kOIjk7yxcPcaYqxHHs2cVYbRdg3O3/Nqwdp6x?= =?us-ascii?Q?m3lZpDKyz/ojCnJ4l3f5at5nwNft15HrQbpiy4DYtlAtwqhyN505GFrJfCGA?= =?us-ascii?Q?RxUpZqqWYlCXKfRqAcQT5IOdYl/ttQOlcIp5RXpsv1FnOJmoaqRSE3bJuXjf?= =?us-ascii?Q?DeicLRfANyniBuEJmV5XF0mDUX0vT/Ev4SItTUAtDNSyxix/iiV0FHgmTL6n?= =?us-ascii?Q?aEg5GweHzn3SuODYo8L9wu+boWmiFhmb5bfxfAkbh31OqDZAeufZu7NZMWio?= =?us-ascii?Q?ZEx/5Sw7VaYWyqfOxeXxjNCBGKssWP0rMbQXJl98PavNNF/kOQGs17/K54hR?= =?us-ascii?Q?7OCe4p/Tj5Ptg1AS/0ja4Q1J1OeDoEMrtEHIRXwiS65Efp/ESWv1OVPAJjnr?= =?us-ascii?Q?94Kg+h03IhI8JLHgq5XEjBMtPemtw4rpndJ0oA+v2NwaF0JZSW6mnYhwES8v?= =?us-ascii?Q?S6MKhRGfnqdag3sby54fD8yLVxXk2q6VbRHAumNvl86nnXNZ6UpoNc3K2c/T?= =?us-ascii?Q?MayyeG/v0uQwOKq+nEB+9mFLPqkXyW8ub94IeT81CCYsUUtjytu++BS10fXi?= =?us-ascii?Q?vNwKPyBkfhOs9vZ416WUUL5TamAvh1dlsItMRzGiv+tCPoi4/aoDWxaHhI6U?= =?us-ascii?Q?ieYF8jV1wRooLVzQ1tLZi1GMIkqp1oHBP+JnIK55da+He3K5d7Pyer9NwDzH?= =?us-ascii?Q?ayvac7zbW/vzegdfe1d/HJU98sSIfk4WLLmmNcFqXXMsk9pKoPJqXzZyCHK8?= =?us-ascii?Q?5Ny/CzTyjZoVsC6qbxMB9BGw0N7/orfvekH4fba9?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7da64163-ae7e-4b54-2e3f-08dbb509d395 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Sep 2023 10:03:21.5803 (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: xx3P5IPHLPTFH725PRcGuHAX+apFAr3ZHAE5AmLOx4QfMa08tW9nGSxqa9NqimMdohCByEGaeproCFdFPtLrvQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR04MB8992 Content-Type: text/plain; charset="utf-8" This patch adds a new argument namespace to userspace_pm_add_addr() and userspace_pm_add_sf() to make these two helper more versatile. Add two more versatile helpers for userspace pm remove subflow or address: userspace_pm_rm_addr() and userspace_pm_rm_sf(). The original test helpers userspace_pm_rm_sf_addr_ns1() and userspace_pm_rm_sf_addr_ns2() can be replaced by these new helpers. Signed-off-by: Geliang Tang --- .../testing/selftests/net/mptcp/mptcp_join.sh | 89 +++++++++---------- .../testing/selftests/net/mptcp/mptcp_lib.sh | 2 + .../selftests/net/mptcp/userspace_pm.sh | 1 - 3 files changed, 46 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 27517ba770bc..2ebe1692edeb 100755 --- a/tools/testing/selftests/net/mptcp/mptcp_join.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh @@ -3252,69 +3252,66 @@ fail_tests() fi } =20 +# $1: ns ; $2: addr ; $3: id userspace_pm_add_addr() { - local addr=3D$1 - local id=3D$2 + local evts=3D$evts_ns1 local tk =20 - 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 + [ "$1" =3D=3D "$ns2" ] && evts=3D$evts_ns2 + tk=3D$(mptcp_lib_evts_get_info token "$evts") + + ip netns exec $1 ./pm_nl_ctl ann $2 token $tk id $3 sleep 1 } =20 -userspace_pm_rm_sf_addr_ns1() +# $1: ns ; $2: id +userspace_pm_rm_addr() { - local addr=3D$1 - local id=3D$2 - local tk sp da dp - - tk=3D$(grep "type:1," "$evts_ns1" | - sed -n 's/.*\(token:\)\([[:digit:]]*\).*$/\2/p;q') - sp=3D$(grep "type:10" "$evts_ns1" | - sed -n 's/.*\(sport:\)\([[:digit:]]*\).*$/\2/p;q') - da=3D$(grep "type:10" "$evts_ns1" | - sed -n 's/.*\(daddr6:\)\([0-9a-f:.]*\).*$/\2/p;q') - dp=3D$(grep "type:10" "$evts_ns1" | - sed -n 's/.*\(dport:\)\([[:digit:]]*\).*$/\2/p;q') - ip netns exec $ns1 ./pm_nl_ctl rem token $tk id $id - ip netns exec $ns1 ./pm_nl_ctl dsf lip "::ffff:$addr" \ - lport $sp rip $da rport $dp token $tk - wait_rm_addr $ns1 1 - wait_rm_sf $ns1 1 + local evts=3D$evts_ns1 + local tk + + [ "$1" =3D=3D "$ns2" ] && evts=3D$evts_ns2 + tk=3D$(mptcp_lib_evts_get_info token "$evts") + + ip netns exec $1 ./pm_nl_ctl rem token $tk id $2 + wait_rm_addr $1 1 } =20 +# $1: ns ; $2: addr ; $3: id userspace_pm_add_sf() { - local addr=3D$1 - local id=3D$2 + local evts=3D$evts_ns1 local tk da dp =20 - 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 \ + [ "$1" =3D=3D "$ns2" ] && evts=3D$evts_ns2 + tk=3D$(mptcp_lib_evts_get_info token "$evts") + da=3D$(mptcp_lib_evts_get_info daddr4 "$evts") + dp=3D$(mptcp_lib_evts_get_info dport "$evts") + + ip netns exec $1 ./pm_nl_ctl csf lip $2 lid $3 \ rip $da rport $dp token $tk sleep 1 } =20 -userspace_pm_rm_sf_addr_ns2() +# $1: ns ; $2: addr $3: event type +userspace_pm_rm_sf() { - local addr=3D$1 - local id=3D$2 + local evts=3D$evts_ns1 + local t=3D${3:-1} + local ip=3D4 local tk da dp sp =20 - tk=3D$(sed -n 's/.*\(token:\)\([[:digit:]]*\).*$/\2/p;q' "$evts_ns2") - da=3D$(sed -n 's/.*\(daddr4:\)\([0-9.]*\).*$/\2/p;q' "$evts_ns2") - dp=3D$(sed -n 's/.*\(dport:\)\([[:digit:]]*\).*$/\2/p;q' "$evts_ns2") - sp=3D$(grep "type:10" "$evts_ns2" | - sed -n 's/.*\(sport:\)\([[:digit:]]*\).*$/\2/p;q') - ip netns exec $ns2 ./pm_nl_ctl rem token $tk id $id - ip netns exec $ns2 ./pm_nl_ctl dsf lip $addr lport $sp \ + [ "$1" =3D=3D "$ns2" ] && evts=3D$evts_ns2 + if is_v6 $2; then ip=3D6; fi + tk=3D$(mptcp_lib_evts_get_info token "$evts") + da=3D$(mptcp_lib_evts_get_info "daddr$ip" "$evts" $t) + dp=3D$(mptcp_lib_evts_get_info dport "$evts" $t) + sp=3D$(mptcp_lib_evts_get_info sport "$evts" $t) + + ip netns exec $1 ./pm_nl_ctl dsf lip $2 lport $sp \ rip $da rport $dp token $tk - wait_rm_addr $ns2 1 - wait_rm_sf $ns2 1 + wait_rm_sf $1 1 } =20 userspace_tests() @@ -3401,12 +3398,13 @@ userspace_tests() run_tests $ns1 $ns2 10.0.1.1 & local tests_pid=3D$! wait_mpj $ns1 - userspace_pm_add_addr 10.0.2.1 10 + userspace_pm_add_addr $ns1 10.0.2.1 10 chk_join_nr 1 1 1 chk_add_nr 1 1 chk_mptcp_info subflows 1 subflows 1 chk_mptcp_info add_addr_signal 1 add_addr_accepted 1 - userspace_pm_rm_sf_addr_ns1 10.0.2.1 10 + userspace_pm_rm_addr $ns1 10 + userspace_pm_rm_sf $ns1 "::ffff:10.0.2.1" $SUB_ESTABLISHED chk_rm_nr 1 1 invert chk_mptcp_info subflows 0 subflows 0 kill_events_pids @@ -3422,10 +3420,11 @@ userspace_tests() run_tests $ns1 $ns2 10.0.1.1 & local tests_pid=3D$! wait_mpj $ns2 - userspace_pm_add_sf 10.0.3.2 20 + userspace_pm_add_sf $ns2 10.0.3.2 20 chk_join_nr 1 1 1 chk_mptcp_info subflows 1 subflows 1 - userspace_pm_rm_sf_addr_ns2 10.0.3.2 20 + userspace_pm_rm_addr $ns2 20 + userspace_pm_rm_sf $ns2 10.0.3.2 $SUB_ESTABLISHED chk_rm_nr 1 1 chk_mptcp_info subflows 0 subflows 0 kill_events_pids diff --git a/tools/testing/selftests/net/mptcp/mptcp_lib.sh b/tools/testing= /selftests/net/mptcp/mptcp_lib.sh index def35395a254..bb95dd967eb3 100644 --- a/tools/testing/selftests/net/mptcp/mptcp_lib.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_lib.sh @@ -8,6 +8,8 @@ readonly KSFT_SKIP=3D4 # shellcheck disable=3DSC2155 # declare and assign separately readonly KSFT_TEST=3D$(basename "${0}" | sed 's/\.sh$//g') =20 +SUB_ESTABLISHED=3D10 # MPTCP_EVENT_SUB_ESTABLISHED + MPTCP_LIB_SUBTESTS=3D() =20 # only if supported (or forced) and not disabled, see no-color.org diff --git a/tools/testing/selftests/net/mptcp/userspace_pm.sh b/tools/test= ing/selftests/net/mptcp/userspace_pm.sh index 2413059a42e5..283c62deb628 100755 --- a/tools/testing/selftests/net/mptcp/userspace_pm.sh +++ b/tools/testing/selftests/net/mptcp/userspace_pm.sh @@ -25,7 +25,6 @@ fi =20 ANNOUNCED=3D6 # MPTCP_EVENT_ANNOUNCED REMOVED=3D7 # MPTCP_EVENT_REMOVED -SUB_ESTABLISHED=3D10 # MPTCP_EVENT_SUB_ESTABLISHED SUB_CLOSED=3D11 # MPTCP_EVENT_SUB_CLOSED LISTENER_CREATED=3D15 #MPTCP_EVENT_LISTENER_CREATED LISTENER_CLOSED=3D16 #MPTCP_EVENT_LISTENER_CLOSED --=20 2.35.3 From nobody Sat Sep 7 23:44:58 2024 Received: from EUR02-VI1-obe.outbound.protection.outlook.com (mail-vi1eur02on2072.outbound.protection.outlook.com [40.107.241.72]) (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 446A52AB4A for ; Thu, 14 Sep 2023 10:03:33 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Sr814Z2YSa8lAV5UWfxhZ5zesLrK1b1bdH4g1fwMTWYhPeFC4eCJsqR2wW77UG905KsNU22EMGCtwIBjuB7Ffz6O2Ymo/3zyX/lCrao//6O0psfC8HDMnJmm/3KZLnJdAZC9Jv3h2Y1mpos8F+8Y/vImZz0xNHbQhBg4tHKpgs2dacqWzJV3c0dzvEbYVITduKHXmZkOwriTQMwgrljJETLdBw11GgT7mOjex1hgUz7dd9axHR9bTMet+RBRx9Isf/e7pn0+7rYeTDfcg1aERhKAFcwtP9180lSfsLeV9nO/difVHWtVCkyRnIJd6BNEDujgM7B862LHPKGTdBjGlw== 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=vodB1uUKHNq3mJj3T1gnVOs+WQCIDLmNEZT+b3CcoiU=; b=frY1DfTgoLeJLt13Jr4Bw4tnu3QdeZzSDiZm5Ulcbr+SN7WP5fODAHcTqYJ2qbCdXtrQY1dhykxG4m7DeMA2HySoEqx5DDKws47UZ2TdRhI4gGSn5MIi4pJAbP394ARAKqbZigfO9CcCr+k59nvVfyvYhU0RdyBafcylMuRV+miDq6J/qFuZ28GbNtU9fP+Bt97eaYj0E3MwLVTGcaO/EuUL0xmjetaaTIofXhFb8FB8xJRMIjJAujGUAk7462nmgAq0L2t42U88Z8hklSihXXmOM1vVJCBwxrXmiyZ9WMX5xBeszVfc+Fw1DqpVl/W/BBMH0V2E9s+teA3J8yKSOQ== 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=vodB1uUKHNq3mJj3T1gnVOs+WQCIDLmNEZT+b3CcoiU=; b=afroBn/oNxQwC0MSbhv6CX10S1WNaenvBm8K0b+8877oE3Wd4Z2F93fkphl1N1Wrb6biVRZuFEn6jL+hyQTFg6+nkPgbjAMgj8d/7GQ2fUz2H1+RDcSHiZrwERdAzt8+WlicIcHSXkjiaQHtQUNwIaXLoneaqJohVOOjIt2L237g4Bshxt0q4fNFQLDd0RRRgwTkyPpy9faXmAbYvCPjHKWZ4CTo2if2yAJ7z+QWw1KhgpN6vkWmmmFrOI0LYwDC7r6v72+vWXh0PqyQWWV0a3vzJ7BPO0eFWSzJ2EbisjitKW4Bs0TG0nnx2g2bhkBmUMGfjokBfoiQ3Ig5jtAKSw== 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 PAXPR04MB8992.eurprd04.prod.outlook.com (2603:10a6:102:20f::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6792.20; Thu, 14 Sep 2023 10:03:30 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::2867:7a72:20ac:5f71]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::2867:7a72:20ac:5f71%3]) with mapi id 15.20.6768.029; Thu, 14 Sep 2023 10:03:30 +0000 From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next v8 4/8] selftests: mptcp: userspace pm remove id 0 subflow Date: Thu, 14 Sep 2023 18:03:21 +0800 Message-Id: <992da57316dbdc881997ed84410fae875b69f6b8.1694685050.git.geliang.tang@suse.com> X-Mailer: git-send-email 2.35.3 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SG2PR06CA0192.apcprd06.prod.outlook.com (2603:1096:4:1::24) 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_|PAXPR04MB8992:EE_ X-MS-Office365-Filtering-Correlation-Id: b17e17b7-57d1-412a-4ab9-08dbb509d8df X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: KdEu3VSdjy3FTdzIix36OPNcvYzfiLBaRSjE0fZ/zgO33ykyzU47/Qx4HC2t37kF/SUsAb50BZJMI23FYJ1AopEDqmeaXt0udy+28Ls/RxOQjPdyi6n+dNj5qQdQh+DjEHIO4cdz0rPqkrQI+P5+ypPSUIweGsm3wY6bgx6XLuyuJuFCxTmli5QvFgnltISB+tvJ039nFm8bjUEXl2n5Nha6xdW/R3gZsqJjobuNmYEyY288z+87bDn98Bt8l7lWKIoDGn5/a7dy4KesYTgstRuF5oP4lNbWXomo2UVLX6KxpLaXvcqn3ucp6PNtaLq6byoRY7Z9C9W6vXaE5IFkg6fCex4KAFG+Gdm8DcBZvi3520hv4jow8EQ1fLamGoaE7U7/BuinskeTMuXgDnv6m5yRXG2PUFPqrvCc/J5lC8Vt+tPm4NeaT5GmiMciiBZugu/WLHIwCgwsC7OSfMTPUE5+D86PukH+iQFzaqc1eBZzHn6jMmFR6/RAVMc+BECdJiF7VeN8d5nWXKyOAHY21wcNgn9AK3NJHZJeAutmGYhLGegOgvdwkTDK/ay5IW/A 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:(13230031)(136003)(366004)(39860400002)(396003)(376002)(346002)(186009)(1800799009)(451199024)(2906002)(86362001)(6512007)(26005)(36756003)(2616005)(107886003)(478600001)(6486002)(6666004)(6506007)(83380400001)(38100700002)(41300700001)(8676002)(4326008)(8936002)(5660300002)(6916009)(316002)(66946007)(66556008)(66476007)(44832011);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?FAA4yi9LkNib92hOoDFQFaTFJs6anPrX+LLYA1vASZvqxkF5ha5rjKSCwW8J?= =?us-ascii?Q?5xBM6Gw1X+aEGmn0LA4QUj537lbyO31SYweQ17OyzOya+kXJ7WZ7DK5/1Cqu?= =?us-ascii?Q?43ABCp/CyD86StarrxpEko0JRrBtGhhjo4RdKywuCywcf5A80JQpa9ItghdD?= =?us-ascii?Q?leMAoptnrRyoViUPBG4laI4gAONpXNUaUeNjYChWzqBSM9QQr7wwbgP7IT9K?= =?us-ascii?Q?BfDwrvtA7LGmqjzzmPmBFuInO7Wnwg3Wfq9RmHVuV7C1WSU8jclJHM+baseo?= =?us-ascii?Q?JC/qCK5bN3BrhJqHxjqhDmNoAi0HlbQYUzIhCWIqNWNvpy8F6+/NjxrJujkG?= =?us-ascii?Q?5sGiHo4ZSl1b0v0OwKjFk6iecKGF3TTyjudxivn2ZjNaGsR32afuzmf9tKey?= =?us-ascii?Q?asqHNCftZI0fwhL+sRvHezE3+1ew3P2BjxUSWJZoV4KhZWl3B3uPNFxiWB3V?= =?us-ascii?Q?NUfNgkugbaBTXk8oAOOZE9cf378Hz1EQMk1QxGZ7i+xTistCPLefRyCuXHP6?= =?us-ascii?Q?gJ6lq4UXiI6nOWR63QiH5z8Q3s1TkyRxOTaJiKDJNZoKcx4QV/AqL3NIe9YP?= =?us-ascii?Q?S6wJNF6LL3yqcmGjvy6dtCbSo02xEJQa5Y1nytBXdzzHRUVcjpzNejY6UleD?= =?us-ascii?Q?fRBA2QtJCiPAASgGTG+2oZd7hLPrB9VSbaTgJ4U9M2Ga6N+UgFHV67UE4DmP?= =?us-ascii?Q?VKTxitohhEion8bGcW30OQr6G3i3FLXQJ6IWTrFxQgjfjHVLV1OQlcLG+oMP?= =?us-ascii?Q?CQ+6Lp7OO+aBXpD2E3rUb+uuPH25SNOxcZOUzWT1hD4T4BSw4b9xPs+7HKNk?= =?us-ascii?Q?q4w5GZR0BGZ2P9ETI5+je77WPJJJfZv+nqfhyyB12oJEbGXiKDcDAsCba3Ij?= =?us-ascii?Q?ttvQNxK5exZImPu76AQKlqCYc1DQwOG4kBOWLRHcDKStiD8KnichoxqaqHLR?= =?us-ascii?Q?+Mz2xRGu51NBFl/8xJx0VfDHYkD82GmPDxPfQRGMVb8KqT41V/zUpgZOLdgd?= =?us-ascii?Q?dhUQhrc666JK8+RrHx9sHB94KEDxO9E2ypjlUxjnwQ9iff0Qjksd+gyWcMt9?= =?us-ascii?Q?osgBy1ZnevSLqIpthH52DCOmiiNp2u/UeystaeepXw/e9ie6eq6HIdFZu43p?= =?us-ascii?Q?W9wZ8W0UN4vU6r8zQ+eyIibE9PUiVjXp/SwfiiyMDpqPS2DkYYCRWGKkDMS6?= =?us-ascii?Q?np3VFFtpZ9/t/mv8ibCkyvbY6FZyLN2qYvpM9yuAA5Lk8L4FSCve6J4daY1x?= =?us-ascii?Q?jGGVw6c9D1DNTkyKb3lK7TWQovb/S/mqlSYWOXc5aims1Rl+TtcCcE1qhy27?= =?us-ascii?Q?+EJ+5hyaPmgORezYCj4bP+MA/ZF9iZXxlrVBbLOyqCp3yoBI3U+QmBVLyH58?= =?us-ascii?Q?2sNhimsFF5ZxHlg1kxaXw1TUWPUIM4nin4hyZLELUFhpJuG2N13lsYuUVDM6?= =?us-ascii?Q?XNuO4X9U750z3E8koEhqoNk/h1xk67fdAbXT2Hb7auujlJ1twLxbtgnPmfBA?= =?us-ascii?Q?JHziFyAuMiF/F4FHp7CDGAUgNEbVJba7YW2v30CV3IRn3xo4zP0cxAJLwRma?= =?us-ascii?Q?ShCq8JlZ6oOT0lAtj9/HJ94c/pQZmvki3VudqeQy?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: b17e17b7-57d1-412a-4ab9-08dbb509d8df X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Sep 2023 10:03:30.4254 (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: zloJhQW7YgzrKaxmCwpHcEQKd4dbyqhvq4eQe1K+vrtlR2QKmAbs7kG3D9Oe+zwNdH3saQTu6FhHSzCfN4YsgQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR04MB8992 Content-Type: text/plain; charset="utf-8" This patch adds a selftest for userpsace PM to remove id 0 subflow. Use userspace_pm_add_sf() to add a subflow, and pass initial ip address to userspace_pm_rm_sf() to remove id 0 subflow. Add a new argument all for chk_mptcp_info() to get the "correct" amount of subflows, including the initial one, if it's set as "all". Add a new helper chk_all_subflows(), in it use 'ss' command ss -ti | grep -c tcp-ulp-mptcp to get all subflows number if iproute2 version is less then 6.5.0. New version of ss will test the no_initial_subflow flag to count number of all subflows. When closing the initial subflow in __mptcp_close_ssk(), dispose_it is false, then tcp_disconnect is invoked. This will send a MP_RST to close a subflow on the peer too. So chk_rst_nr() is added in this test, and chk_all_subflows after closing the initial subflow is '1 1', not '2 1'. Signed-off-by: Geliang Tang --- .../testing/selftests/net/mptcp/mptcp_join.sh | 70 ++++++++++++++++++- 1 file changed, 69 insertions(+), 1 deletion(-) diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testin= g/selftests/net/mptcp/mptcp_join.sh index 2ebe1692edeb..9c3ce3a14804 100755 --- a/tools/testing/selftests/net/mptcp/mptcp_join.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh @@ -1856,14 +1856,23 @@ chk_mptcp_info() local exp1=3D$2 local info2=3D$3 local exp2=3D$4 + local all=3D${5:-""} local cnt1 local cnt2 local dump_stats =20 - print_check "mptcp_info ${info1:0:8}=3D$exp1:$exp2" + print_check "mptcp_info $all ${info1:0:8}=3D$exp1:$exp2" =20 cnt1=3D$(ss -N $ns1 -inmHM | mptcp_lib_get_info_value "$info1" "$info1") cnt2=3D$(ss -N $ns2 -inmHM | mptcp_lib_get_info_value "$info2" "$info2") + if [ "$all" =3D=3D "all" ]; then + local no_initial_1=3D0 no_initial_2=3D0 + + no_initial_1=3D$(ss -N $ns1 -inmHM | grep -c "no_initial_subflow") + no_initial_2=3D$(ss -N $ns2 -inmHM | grep -c "no_initial_subflow") + [ $info1 =3D=3D "subflows" ] && [ $no_initial_1 =3D=3D 0 ] && cnt1=3D$((= cnt1+1)) + [ $info2 =3D=3D "subflows" ] && [ $no_initial_2 =3D=3D 0 ] && cnt2=3D$((= cnt2+1)) + fi # 'ss' only display active connections and counters that are not 0. [ -z "$cnt1" ] && cnt1=3D0 [ -z "$cnt2" ] && cnt2=3D0 @@ -1881,6 +1890,43 @@ chk_mptcp_info() fi } =20 +ver() +{ + printf "%02d%02d%02d%02d" ${1//./ } +} + +# $1: subflows in ns1 ; $2: subflows in ns2 +# number of all subflows, including the initial subflow. +chk_all_subflows() +{ + local ver_iproute2 + local cnt1 + local cnt2 + + ver_iproute2=3D$(ss -v | + sed -n 's/.*\(iproute2-\)\([0-9].[0-9].[0-9]\).*$/\2/p') + (( $(ver $ver_iproute2) > $(ver 6.5.0) )) && \ + chk_mptcp_info subflows $1 subflows $2 all && \ + return + + print_check "all subflows $1:$2" + + cnt1=3D$(ss -N $ns1 -ti | grep -c tcp-ulp-mptcp) + cnt2=3D$(ss -N $ns2 -ti | grep -c tcp-ulp-mptcp) + + if [ "$1" !=3D "$cnt1" ] || [ "$2" !=3D "$cnt2" ]; then + fail_test "got subflows $cnt1:$cnt2 expected $1:$2" + dump_stats=3D1 + else + print_ok + fi + + if [ "$dump_stats" =3D 1 ]; then + ss -N $ns1 -ti + ss -N $ns2 -ti + fi +} + chk_link_usage() { local ns=3D$1 @@ -3430,6 +3476,28 @@ userspace_tests() kill_events_pids wait $tests_pid fi + + # userspace pm remove id 0 subflow + if reset_with_events "userspace pm remove id 0 subflow" && + continue_if mptcp_lib_has_file '/proc/sys/net/mptcp/pm_type'; then + set_userspace_pm $ns2 + pm_nl_set_limits $ns1 0 1 + speed=3D10 \ + run_tests $ns1 $ns2 10.0.1.1 & + local tests_pid=3D$! + wait_mpj $ns2 + userspace_pm_add_sf $ns2 10.0.3.2 20 + chk_join_nr 1 1 1 + chk_mptcp_info subflows 1 subflows 1 + chk_all_subflows 2 2 + userspace_pm_rm_sf $ns2 10.0.1.2 + chk_rm_nr 0 1 + chk_rst_nr 1 1 invert + chk_mptcp_info subflows 1 subflows 1 + chk_all_subflows 1 1 + kill_events_pids + wait $tests_pid + fi } =20 endpoint_tests() --=20 2.35.3 From nobody Sat Sep 7 23:44:58 2024 Received: from EUR03-AM7-obe.outbound.protection.outlook.com (mail-am7eur03on2077.outbound.protection.outlook.com [40.107.105.77]) (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 E30E72AB4A for ; Thu, 14 Sep 2023 10:03:40 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=bCFqhvMrFT/75SLE7nW2cbDBKYbL6s9jYQmO8HpNuv5PmgPn+nctD7YPkzlNJx74vnzHn5smIhsS52zNERwxwr/vvpHRhpGC8iqjry2aTZzS4ZAw1JugXm0EbNE1NJjXHNI1mwjeKgEKHQ8V9Xo5VXiefiVgwLTLkDnctzxbEvFnWBQzVHJoFGhEP6UsTYqdGLHUaJG23iFijY8TB3765ccl+bAK/8foNXMHqEeBH3z3ZmR/SZgHvDS0IEPU5zyJ0+41eOqgfOJfDz13PHFZ0IRUEbwDG1+ys1rZ3xO1FHLLK86U3UsrsHG3ZxWBRVF/R6CWPTuzXru2tTX+u9ZaNQ== 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=NSAF9pVPQMGFCRRIZ2CWkJOpmYr2QAARJNPwTMUnHq4=; b=Hur1F/C5DT9+J6Z7SRYTPVthnqt7538hN/ylCUVqoHSW6jvFaAl9h+Af1dAAFlOpbWDaTSImjTbzgDT0ahctC33iFiaU2Y0gs9wDVzM5AzkZrbZORYwA+bQaKHupy8fBJxu5jlrHpNVjkbKW28ibK4Mtn5Z0nAxhk8d+OONQ2WRg1Xai3yfAumOmqSZq8wYZmXhqATXq6i8skI9m5DrArmKR1I6a8hLRY4CcXVbteLqsExiiTDrBZgHRVXLfSZuPTPKu01DwZQObBA8GNai6xzU7aXgA0NFm9Nc4MWiaSN7n2zE6/oyrxH9FRaub9Sef47Icx9kw5CaqJ9tjJEJ1bQ== 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=NSAF9pVPQMGFCRRIZ2CWkJOpmYr2QAARJNPwTMUnHq4=; b=DOrsr1zZYnF39CGMVFBM3VqtWUHrurxUeOwLxT8WxDG2t0nfKumM/bp3RgvHlXhQ2aYlpLogsJrHmmEj/mtc8n1IPFHdmWHmUXEv+A2mpn+hsSkTzRnQ18T4nPiLuunGwtK4Fw+UWsVcTtiB+/1Bpt/AjIJ8nF1hobGZ3e4GUGMU4BCH7L6x4wJNmo8G3frgASa8G8V2YRHxEaF1LkedkDi1K6tniVUCb/0fFfhfh/qZv5uY6IAOxfxDpUEoAWSAGweuKa5AzNOTX6awi+aA/3PgLBHUV7wzvEqeo5aS5csFgYEPolm7p8tsZiLlgCRtcWld7edanYJefNrz0aHScA== 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 PAXPR04MB8992.eurprd04.prod.outlook.com (2603:10a6:102:20f::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6792.20; Thu, 14 Sep 2023 10:03:38 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::2867:7a72:20ac:5f71]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::2867:7a72:20ac:5f71%3]) with mapi id 15.20.6768.029; Thu, 14 Sep 2023 10:03:38 +0000 From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang , Matthieu Baerts Subject: [PATCH mptcp-next v8 5/8] mptcp: userspace pm allow creating id 0 subflow Date: Thu, 14 Sep 2023 18:03:22 +0800 Message-Id: <9ee5c6d8290fdb54e93cb1e93f292eadd04a1a0b.1694685050.git.geliang.tang@suse.com> X-Mailer: git-send-email 2.35.3 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SG2PR06CA0213.apcprd06.prod.outlook.com (2603:1096:4:68::21) To HE1PR0402MB3497.eurprd04.prod.outlook.com (2603:10a6:7:83::14) Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: HE1PR0402MB3497:EE_|PAXPR04MB8992:EE_ X-MS-Office365-Filtering-Correlation-Id: cf5b2d9a-3a94-4c12-4893-08dbb509dda6 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: R1MdunoAoqEt0LY+AeVUTWQCg2Hxd2yYJ3ArLN6FJ0WsN2EDRpFTpJk2PJUHXb9ztYwSLKtxqUH6w75JJeNEKAYeKYEmFggRmdY3LpfA6/QTloQ7ytUxrmWWlgBtFtl+SD9N3uCu8TEK0/tcZlvUztPjHAt+2fXNbzi3ltEacp5z1f/ttOVp12XSBbRJeOsZcJMTpyyK1VgwednDhOcSMAlwWXV4+h49SPRXUY55jaScLsQGqEb5chsLFPXvNcadnKPi4qF1gzcTqKKb60tEuie8vl2vG+OMyLx8jXSlt3C90iB7Nx4pxPYfBr6tmsW3hRrpHO9ukNQi4AKHAQRDfhKQKVdGDDCXpg6lpcraFDIfAU8EkJp3J65Lzpq5HMuNoqL/Tgh1iyG6hLmhDumyxm3VM9T2cFpnKHjAN4PO+d5c/6j+KMWkG7iunaqGkYg7arRxxk5t0pdW8ZAB7RfIOkhvySpBjQATWJo3LCN5uh3naVclSNsDtFI1/118xTIw/GjNlkyKmpi1w19tMMuWcvh8mVYae5awFJe7p3uHS3w= 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:(13230031)(136003)(366004)(39860400002)(396003)(376002)(346002)(186009)(1800799009)(451199024)(2906002)(86362001)(6512007)(26005)(36756003)(2616005)(966005)(478600001)(6486002)(6666004)(6506007)(83380400001)(38100700002)(41300700001)(8676002)(4326008)(8936002)(5660300002)(54906003)(6916009)(316002)(66946007)(66556008)(66476007)(44832011);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?qWtY9ONJta7ifJrpxRXhw/xgYei2aeDb/Hb4aDcRnwkxF6AdP+uEVsHCZqSF?= =?us-ascii?Q?uIrfMHn146Om2h5bsfFHuhk2g/RxfzvSvlRfVYMuKnfXbX6Mk/fjosF0WtEK?= =?us-ascii?Q?1bg2UCjCY/LRke6Xo3Eo83ir3RM+8ljjaB0u6ilFV7J6up4R/T0y9RNCuQ+b?= =?us-ascii?Q?pP+dFI5X/hlpEZnmuj32pCf4xDhmg7dtZu4kIEWtMlqULXK9V5zI+X4GlD78?= =?us-ascii?Q?naJedjRMZOYu42zr2ai1dAodPjJQU68W60DtEeSYr2xCcsXpAcrhl9nIUv0E?= =?us-ascii?Q?4/NJGITz954x17UZB0kdBEYFPKCaTcH2mfYginbvG5vgDPDkPe1s8NGqJ/H8?= =?us-ascii?Q?6kkKUO+4qBR1qOFCbjlVLXapGfVO+BtKwr+4JYRlFdH0vZdzVy5/o1YLAiy2?= =?us-ascii?Q?wHwYQyFwnA19zrbP9j7FH8yq/qpNkiPCIFDA9aQTyvXWG0GCcMnqoIsSACNv?= =?us-ascii?Q?W1RQKyEvUkOPYTVYKrXpXbt9kfSvVYOipggSoppJ9BhnCPs6vlaGXViP8/RT?= =?us-ascii?Q?UaQaqt/YEI+4v0zmwLof+V5Ui4bJLR9oXyKykRJUYDw4osNWbxUsIe9LQBOP?= =?us-ascii?Q?njTz05x3GER9yahbvTtmIyr7RSWbrn5HmGjN9yhyf6/BzsUG0iKi92y82xzK?= =?us-ascii?Q?lPH/bIIGkpKit/MigvwfttKMEDWbPpyQ6RZcqelGScaXC8BfvRYItTpiJAHQ?= =?us-ascii?Q?DTMEa6F9eJmCRJtRN5h2JC0cYECilzvc3BCZI2ZogE1VjY0fbFcXYgykGpey?= =?us-ascii?Q?niX7UC5XCILt1g03xN58PbBwZlZZ3c1BwLmNA42PW7bmF89CFFCAJwTXGgOl?= =?us-ascii?Q?fXrDh83A4UAe2n15uLyHr3hDETn9Wu+fTeZsnBXJbfYKl9ptDeg+bwGdnpp+?= =?us-ascii?Q?owdhb6BW3dTUTyTnTzsK7S3N1SGpkVYBCMVK5TUfn27KJHlul/S2tcnPDPap?= =?us-ascii?Q?+ipTLly46AAc6xi6egw0PlxrPma7bkYVFp4d6UTxbMEdUdwADfbLAcWb5d0B?= =?us-ascii?Q?nRH0NlYC8kncFIYJ6z5IU4HPEPMHmdSmbVSDqotSqBF8LccELBXzBv3HPf+Z?= =?us-ascii?Q?zyVvXOLzKYebiRmEiTcOGq0caOKqM1RQ4n2LyG1TGsYjyZkKN/OKw/Y4uLbT?= =?us-ascii?Q?tanKMnl+9wAfv7eQwY6n5A22YsP/FnrMhdDCFaDOPcyBH4UN6JxqR05muL92?= =?us-ascii?Q?6RjBwohBC3SpGrzPeHW8F0MtsruS9xpeMjPErP3Lyue55nvI4H/IdRGt/ery?= =?us-ascii?Q?rLMu3j4A/r/qvWHA396bsleUjOkwUKrV1swmBIpLqIqzj7PxOBsMuWJx+AwQ?= =?us-ascii?Q?Gfwl4/8SBkSPu5IRpAAfJYkn3IH8lXysvFzOouMOr23iH2cv0GAHilQ81uSd?= =?us-ascii?Q?D/n0wFybHOfkxDimNycrnV1DQ66P7tsIeiXmuRCeO8/+xFLiax23D3BRv4jf?= =?us-ascii?Q?SPyoRP7Nuw5cndX7xzARP6JfmLscPV+fPU99BSPQbOXoxQtByaiLAKGd5Xbh?= =?us-ascii?Q?FVJ+P5+2HuMNBXtx5js8fCJ8NhX57FHT9edWMWWJPMbdtnRJ4HJvw1y7JjAz?= =?us-ascii?Q?N1mx8xoSb3e0+z4dQomptCsoSarsX4nv0E5SSMBl?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: cf5b2d9a-3a94-4c12-4893-08dbb509dda6 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Sep 2023 10:03:38.2238 (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: DV5t6LiinQY18kPzP637+BbqQzlRTmsbr7mIYitTBsDOkyefUnysSJufZpKkdF3idDRLE5tbMLH6D9RU9fdeow== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR04MB8992 Content-Type: text/plain; charset="utf-8" This patch drops id 0 limitation in mptcp_nl_cmd_sf_create() to allow creating additional subflows with the local addr ID 0. There is no reason not to allow additional subflows from this local address: we should be able to create new subflows from the initial endpoint. This limitation was breaking fullmesh support from userspace. Fixes: 702c2f646d42 ("mptcp: netlink: allow userspace-driven subflow establ= ishment") Closes: https://github.com/multipath-tcp/mptcp_net-next/issues/391 Suggested-by: Matthieu Baerts Signed-off-by: Geliang Tang --- net/mptcp/pm_userspace.c | 6 ------ 1 file changed, 6 deletions(-) diff --git a/net/mptcp/pm_userspace.c b/net/mptcp/pm_userspace.c index b5a8aa4c1ebd..d042d32beb4d 100644 --- a/net/mptcp/pm_userspace.c +++ b/net/mptcp/pm_userspace.c @@ -307,12 +307,6 @@ int mptcp_nl_cmd_sf_create(struct sk_buff *skb, struct= genl_info *info) goto create_err; } =20 - if (addr_l.id =3D=3D 0) { - NL_SET_ERR_MSG_ATTR(info->extack, laddr, "missing local addr id"); - err =3D -EINVAL; - goto create_err; - } - err =3D mptcp_pm_parse_addr(raddr, info, &addr_r); if (err < 0) { NL_SET_ERR_MSG_ATTR(info->extack, raddr, "error parsing remote addr"); --=20 2.35.3 From nobody Sat Sep 7 23:44:58 2024 Received: from EUR03-AM7-obe.outbound.protection.outlook.com (mail-am7eur03on2050.outbound.protection.outlook.com [40.107.105.50]) (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 E1EED34CF7 for ; Thu, 14 Sep 2023 10:03:49 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=RzReRjXBpiuuUt+eXvYpPGgGfQaXdGrpj0vErSUBT8iEj4MQetBn1Iif40DVWiRckEE9P9U7kRM1a5uEYdpJE1I7VP9U4ni1cwKARXk07JKrP2Nl7IqSBCOukusa463IPhu6yGUDMJgnYLLUoh2zQwtUYfT8uaBKi0icH3hJGBB0BRR7lmFM7MLMHpx1V/Um3+SDXm6ekEu/GXBPg3awmFwB2aeJ1OfTdHbxNcnxkt1ApnEnZMoanJxmoSQ1Zc+sYCDq62q8QmUpv1xd8MZc5wCXkIAKPHr7lZt3aaXVMmUOQd3oJZnLZbN5a+M+naXBWrKfmDl93ceg6W/8nPFtpg== 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=Vx4bAUMqMhm4bliYp31uJmKtyXO39VX61QaRfl/Xk3k=; b=gVZV+Kt0yRRvHlfUk0JddukoGZExRe+fhmSXxiOANT6rtb/wK0XmekZ2LKBiOKiCvUm/yaBOUaZ59SDvQXWC2OdKqzv8lFIQHIStmxx5ViTZyp5/tQ8U8zdeIzW1Dikagj3BLQJ29KPXgmfXmGws+p/FU8TXPSeASGHMNbGpv6w4zawI5tmEnkUtcKjJGlKyBf1kAvFO4M69yJtrnkVi61/et4KYXbZGn/SFJ6u4mHKmjKEM8XQagSsMcsTvq3L2TzfX4uprJpZ32e/LmbDu6e4nJK/ceVD/3dOp2YB3yvte9ZWk5Qo8lMMs2zb45Wjm6VlBkEsr2+PqNo9Kr9QA6Q== 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=Vx4bAUMqMhm4bliYp31uJmKtyXO39VX61QaRfl/Xk3k=; b=XCKle5DglQX/ltGGvpxncDIO+t1b60v+73Gk1E7vcDa7eUBT6RYNK3v38IHqFnqVXCuYg+Bb3pxkh2ZNFpoFPeyUA04ZVtV3P55/HAmTNWzK1nUnILzNAisWk+njxOnd2KBYKJ/YWmHXsYg7IX1/GYnP++Bogo/cDfUQwE8e61SS9ACxAIk5L1mBZbcuowui3YIWLaLwBwjcx8rNI12p65FiZvY5jGT49gYBEWoNaM92vovKTQMaP1hlvT+9M3Vk+Z2ZqJ8yR3Xv5GDZEJqNRKtJwkvknkzbEngcQLpQqI/tMWZKm0y7HKmIBLmrMhiz5UA0kKRQs0goHRTRKgdgsQ== 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 PAXPR04MB8992.eurprd04.prod.outlook.com (2603:10a6:102:20f::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6792.20; Thu, 14 Sep 2023 10:03:47 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::2867:7a72:20ac:5f71]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::2867:7a72:20ac:5f71%3]) with mapi id 15.20.6768.029; Thu, 14 Sep 2023 10:03:47 +0000 From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next v8 6/8] selftests: mptcp: userspace pm create id 0 subflow Date: Thu, 14 Sep 2023 18:03:23 +0800 Message-Id: <058d5ccd4e9563f54e9bada2d25a7dda9d55fcd9.1694685050.git.geliang.tang@suse.com> X-Mailer: git-send-email 2.35.3 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SG2PR06CA0214.apcprd06.prod.outlook.com (2603:1096:4:68::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_|PAXPR04MB8992:EE_ X-MS-Office365-Filtering-Correlation-Id: 146b451e-5f6b-4d0a-b4ec-08dbb509e2df X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: QPmwszP/oM8r+hQq9PzNhHn8RbyOXxRLZKY8+2Mzb6Y7txQ79QphKJcLRC9gGq+KeD+1/z4BEksUjVRRGK7vYZj9BXBrmWGFWAQirdfQjx+C4lOGLSWVbtXWuChe1FEVKpsXfPTZ+5upW/RSXbc2FjFMAZM3CgHIdDYTdc4VWLw/wkK95Vxj0Dn1xmz2JHiLX3ylZWbcJsGhMS/2CzW8gnI+rV98u+Ssd4LGEIgoe48IZ5fKTkheNGbzeDQZrEvY9AQmvrcfbzpGOWsk6Y5wK+wWHxAKN7Ls/i2icnHsy9xq5PO0oe6iQz/kGmU2l0Dxr2aGag4ONQrfZdbP3cfupVbJyWtViW4BhT9WQw9zy+v87KO9s1VGgzEYOjzTq06+x6oLKAioRWkuPDNubDMzDJTkFKaGuPAX4t0NS2DDtOzx+Y71grk6uRFbv1ZG9bXiPWW+Lwe0OnyWWaaeH1cy52nWI3OjGHVUjNMgavZsebq4+LeM8ZgsfYCBucRtZF9wr3ZeblKA6xMxq5hQSP0UCMTZej8GpgP2Mb0moXZ3b0HW69ACFGC+2nnGVjbjnKur 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:(13230031)(136003)(366004)(39860400002)(396003)(376002)(346002)(186009)(1800799009)(451199024)(2906002)(86362001)(6512007)(26005)(36756003)(2616005)(107886003)(478600001)(6486002)(6666004)(6506007)(83380400001)(38100700002)(41300700001)(8676002)(4326008)(8936002)(5660300002)(6916009)(316002)(66946007)(66556008)(66476007)(44832011);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?QCfjdYtrwcxGShVJ7nyU1RwQidzCSS7NPNCji4cBcx6wZDtricXeSn0AaRjW?= =?us-ascii?Q?+CwMEgQbPtYo3lL9Yxc21hP/VLDlBXZUUrBjcGG99+2Sg2O/8uHT+eCRYL0Y?= =?us-ascii?Q?wDYRM8wnGIRjq4wH4a8msFOWptz2WhlFB6h8wR2Q5eZuqzZvHv7ghQG9b/aZ?= =?us-ascii?Q?pFXNfnUDDoa9HZ4m9Z1h+EuUW5yxwql7zdhLP+0dOzIJMO2dYmQi7Ve6kAal?= =?us-ascii?Q?njwn9iQv+anRF6esM/EUqZL0LQkGQHsHZyvIP8/1u1lrxcMPqqA1Olie4W6c?= =?us-ascii?Q?fdQlvXJX/KMIIYJhQfTUFVvU7AZlayGdFu1Av1NJIjoRN4zsLnd5dS09EgSl?= =?us-ascii?Q?mhHb3nOP640SLy4fAXyMqrKS86K3QmkEqAspe0flCA04ZJeFfl7R7Iqtycw0?= =?us-ascii?Q?AVaTTWeZyTOgQaOiSt8NP68f63QZlB7S07qOWEOX/9e4uGC3k8QHx/+IRYq0?= =?us-ascii?Q?EpvqUm7Be4Xh8rK31t/c9IJkZA7MpxEK+5zd+KzZZjUgvfm4tFzEo/dNVyx4?= =?us-ascii?Q?atJU0zEpfpKExjOyykGIJ/JaqDoiznowqOYIn5x+5NgjdjljbwfH3tQ4cXqI?= =?us-ascii?Q?IpxneSeAcSWDEDS91lPJlsL2z+smNuvY5qmoMjSTTmIRCMHTZRVhXv3N8M8G?= =?us-ascii?Q?k1Q9oII8WH/9Ls2MVuokay64bLYqUB5FB5/HillN4WDMwJ5ylc1a1AXs5gdD?= =?us-ascii?Q?Bfeo9nlIK4LiVOMDW89orZ9kzK5myS4hPBD/dcIm44UM32eAuGe8IhVFlaae?= =?us-ascii?Q?fudDoLvjpFQhiXzOH58evkOJaLJMuu2w8NgU6HO8c7BWT3NBGKBl2D0dR10Y?= =?us-ascii?Q?AN5TyPhsORQ8Jn2Nm2Mav1kgn0GT0w991pv80nvQCeu6oCjLeDCxpM1T7UW8?= =?us-ascii?Q?kCm1/OBqBcO4QA+reNLhRtX/OiT6vXyGbTgsHxdMPSOV26PvhrNJAp2NSsQM?= =?us-ascii?Q?ru9RfM1GGpPGx9Yt9KBx5ierQ+r6h2XHO+iToqpvCKR/C+eIOlhREru3e0+e?= =?us-ascii?Q?S95UW2yKvZZnEffyzXsGdRkS9eqqhuIcYUdB8r68wgf9X0+vaZakPPWidei1?= =?us-ascii?Q?QD/jYELybYuh+/CebXMTYatPnV0O6oCoX5N3eJXLBJHjykERryqo2aSG18b3?= =?us-ascii?Q?2ncWDalC10wY2PDyenkPhtrgea8RuffeROtDmfTotcLTYoeZ7JtrmEhWvw/a?= =?us-ascii?Q?5Zl6793cvVxwLjNKAucQl3Wi5A7ryrY1kxhNLuDWanEE139fyTB3Ed7rsxIO?= =?us-ascii?Q?MQ1BC71c29QoxyHPqx1CW+WGe5vwfn2qOXKzYsI+WBmGNvsveWMKre8UFSLf?= =?us-ascii?Q?TVPr8U6tqYjA0nWZ0nnsbLb0jQT5zsOcr206QIQJOAq6pmg/IroDcaLT7pfP?= =?us-ascii?Q?E1kSmtYRpI4wvTZnhY1TKKo7L10K2Q4S7UHx7KS0dZ2lZdP5oaHLAPUk5aoZ?= =?us-ascii?Q?woIVc1TZknMTDqPv01ZqmIk/C9KNendO4yB8QURdXnXd55jWtxZxaE8nV4kw?= =?us-ascii?Q?XGBpetx3BjdHQWbrz0Fpq8Mh/lFA3rHXMF4YjnnGOV00FnigWChxppZQM1Td?= =?us-ascii?Q?5yIhWcVYk1Kv6WUaJxFtoDlPvq5tP6cm2ozQkJXT?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 146b451e-5f6b-4d0a-b4ec-08dbb509e2df X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Sep 2023 10:03:47.0197 (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: R+N87R2iCenOi0O0dVzqQbW5wRhlzilQU5Mca4/+Jr9EF8QTEtLk52+S2gQPQCIG8NoBu3QKlq464mVn/nlf9Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR04MB8992 Content-Type: text/plain; charset="utf-8" This patch adds a selftest to create id 0 subflow. Pass id 0 to the helper userspace_pm_add_sf() to create id 0 subflow. chk_mptcp_info shows one subflow but chk_all_subflows shows two subflows in each namespace. Signed-off-by: Geliang Tang --- .../testing/selftests/net/mptcp/mptcp_join.sh | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testin= g/selftests/net/mptcp/mptcp_join.sh index 9c3ce3a14804..d2c458676068 100755 --- a/tools/testing/selftests/net/mptcp/mptcp_join.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh @@ -3477,6 +3477,25 @@ userspace_tests() wait $tests_pid fi =20 + # userspace pm create id 0 subflow + if reset_with_events "userspace pm create id 0 subflow" && + continue_if mptcp_lib_has_file '/proc/sys/net/mptcp/pm_type'; then + set_userspace_pm $ns2 + pm_nl_set_limits $ns1 0 1 + speed=3D10 \ + run_tests $ns1 $ns2 10.0.1.1 & + local tests_pid=3D$! + wait_mpj $ns2 + chk_mptcp_info subflows 0 subflows 0 + chk_all_subflows 1 1 + userspace_pm_add_sf $ns2 10.0.3.2 0 + chk_join_nr 1 1 1 + chk_mptcp_info subflows 1 subflows 1 + chk_all_subflows 2 2 + kill_events_pids + wait $tests_pid + fi + # userspace pm remove id 0 subflow if reset_with_events "userspace pm remove id 0 subflow" && continue_if mptcp_lib_has_file '/proc/sys/net/mptcp/pm_type'; then --=20 2.35.3 From nobody Sat Sep 7 23:44:58 2024 Received: from EUR02-VI1-obe.outbound.protection.outlook.com (mail-vi1eur02on2052.outbound.protection.outlook.com [40.107.241.52]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D3AB01CFAE for ; Thu, 14 Sep 2023 10:03:58 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=JneaTs2IgIx10DpHv8LvmWsJm+OIz8qzbKqM2UfH2PJHhCPgUVSfuOUVVeUqOveAplopGK3HqveFmqi5J4ndMUHJMuhdsedQkO0viG4GmEnkx+SgUjtMjsGNQd8oD7ScjdxVnCQLcTo8JrQUJCbWcYKFQU71YozNckbXHQ8qdbyBlTT20NXTYkZtXCR3j4kRUKihtkRuPX3YmoftYs1ypKqWkSlRk1r22DqH9OiZ7E88p4SOKc2dVqmlmNESiBg6Gz3ANAcFXJXIEUPtqCn0oQXOWGMHtvtpp9C1b9chE8SJGRuWNZv+Tg4fk1O5damR4vwNnc+CIeHkJK47B2W/eQ== 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=/PLbF2Ucj+6/LAmmvtwIOWgLC0KEJSeeLTAz3zv7U98=; b=Pklsf8dLQLr9oX7poBCwrQoG/kJlO+qksa0s9vNjOHykZXTjd4t8Rriirur0FuSB+6C1qPCogF27xWuU6qyFxyuVpBe9FQjw28dLgVaHhih9MLJ6C1Ks7yNc0Ho0Kxravw8Dwbp8PQJbsrhCb3qP+Nqy7fcZKkcfX6D32yVqqQgVEWwfS59SSDkFZ1BHgNJrr6gfLdrpaQ7E0i9JKC2E/UsM8FNQtzM0Nsa4klilrTsF+DCHpNK2xuGOhiiLfOnKOcMQRUrbfig3+w0r8AJE7wGSZ69HKycJVqfjBZh2nSVWZgErliEdq0YswaEeheZBwo+7F/10I9CTzB6ZW5B+nw== 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=/PLbF2Ucj+6/LAmmvtwIOWgLC0KEJSeeLTAz3zv7U98=; b=c+4b3lJJHi4bAZrbqy7kpR1qUEZe10qcmUi+LCN4G7kBoI8IS/9b1NtsQx6j9szTVvkFH2sWtfbD0Xc9ApkEyy8Xj7IJfGbIRXOp/p4XQihM/cHnE/9u/CJTT+7+VxaAwwfVOUXMB1KMkXa8lczmpkL9Prhz9sz6ngU3N3xJaNqcD6tjrVZncSEud4/rO1z3SMr9r/FZVTKv4oYyDydiKDkgDhTeLbxeC8ndAeGN7FUExRI0a3WntNrLqd/E3xz8J5/5vxDANzIfmjuooeXhBvkjX6pM1ek8dFQLeQ3cWfQQvV1QRi+ZbvWwvIF72cP0+GKF82OlUc5bIBSyIQUHWw== 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 PAXPR04MB8992.eurprd04.prod.outlook.com (2603:10a6:102:20f::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6792.20; Thu, 14 Sep 2023 10:03:56 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::2867:7a72:20ac:5f71]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::2867:7a72:20ac:5f71%3]) with mapi id 15.20.6768.029; Thu, 14 Sep 2023 10:03:56 +0000 From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next v8 7/8] mptcp: userspace pm remove id 0 address Date: Thu, 14 Sep 2023 18:03:24 +0800 Message-Id: <7fa0ed9d9651452f86f50514316feb44b9535014.1694685050.git.geliang.tang@suse.com> X-Mailer: git-send-email 2.35.3 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SI2PR02CA0012.apcprd02.prod.outlook.com (2603:1096:4:194::7) To HE1PR0402MB3497.eurprd04.prod.outlook.com (2603:10a6:7:83::14) Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: HE1PR0402MB3497:EE_|PAXPR04MB8992:EE_ X-MS-Office365-Filtering-Correlation-Id: efcea1af-17a2-45fb-fa5c-08dbb509e811 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: ck7M3GGDmZmyRyTP3J783YHiJvEMqJQQ0ufhVcgbQ37Sew0lva2uv7zJbaPzhmNSkObqKKbvABBRPJ87Mbg1KdHRuxzYld0h/xx0+fU75TO6kAltGt5DQHvPmEUZW3OkDCI31VhN1NPmzJlU4hvjOGK0LCSQ+NRYQu4iyfGpk6N35P5A9LZ1tYXgOV/8nYilMrGHc9UKyThD+iuGNv2vQ9coqV9EcCqVC2BTVIr/z6Jfcznm84Mxnl6+ujnVDz2ZkDZaPOxhVqeKyOvDtswRf/IYjxh/Mxur7lRMjNbtUR9ZYvZf12iqMSe4X7r3slmHRz4E7B8u19jL775O2LKliF6q8KPyuq+d9N7CBUmgm76C/GUYUhUupJlr2J9EE4pMYUwjnDC2Biju/oDLPnXN/7Oe984df2kOJ0VfMmOikj/1hzpOfT5YXXeDE8tPcYzKlwqZ8+QYhsZPRwUANmpeOu4XPDKffEy6TYR/sW3cHF+r6nTs275mq6C9ZIAP8+b/Axrywy96a9cLJtw5hmUkvW+jWae0aLLDiW07mkF4yhU= 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:(13230031)(136003)(366004)(39860400002)(396003)(376002)(346002)(186009)(1800799009)(451199024)(2906002)(86362001)(6512007)(26005)(36756003)(2616005)(107886003)(966005)(478600001)(6486002)(6666004)(6506007)(83380400001)(38100700002)(41300700001)(8676002)(4326008)(8936002)(5660300002)(6916009)(316002)(66946007)(66556008)(66476007)(44832011);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?MeY7VcJw4VrmkN3IVyAiKxnyLYDKdffCtTQPgO3UTOru+s1+lvT0iBMkDAC7?= =?us-ascii?Q?e9rDwC3fC+ApY/i4USz6AGidygXmtPWFyeIvVzrari4pwSWWS4XYdW08FHLk?= =?us-ascii?Q?Za07MbtTsb1JooOOfUOQhzOnkYW/sc8C9bY6/Epg/JSDtopmcdwx+YJM0h5Q?= =?us-ascii?Q?CnG+xz3sJ9DAxpDqpmuTVcUA5YT+ex/hFoxSQ5JAdsrFzbRY8PcLm9WjG1/e?= =?us-ascii?Q?z8OB50r6OEzkCqrfigqRtjn+OpehZL4cXKBF7WmCrYBSDY1Ta2UTz+WjEwgC?= =?us-ascii?Q?Vwicp8qNGqHDSjRQ61bODkRuoUEtrfNYCUWQuw8jrti/6vN7OeH3mkN6xJ9x?= =?us-ascii?Q?+xoDdOrM5ZRGmwzK47AmKvWGFc2e4Zpz3jAtaHN0fwJMmBMh/wGW9He/uB+i?= =?us-ascii?Q?2mNWPVxMtkjekHamNlICPL+mj+eBX3HI90nYAnjXJ6Mz4PM0MHZ2J+ad0ug7?= =?us-ascii?Q?3F5gZGRfYbV9CHvVlVEIikfX/7ANey5Qe1pdZy5M48qxsyxmW6S5STpwT3/A?= =?us-ascii?Q?hzAsdExjHFkKR66nuDc5mYOChvDPUnnan10mngm2kq24ElcZg5Oyxi6m1wlQ?= =?us-ascii?Q?hviv/HG7XPp/qLntm+qP9ZaxzkjXQvu4+FQud9oqq+xrk+BNDGO8FTDkDqtm?= =?us-ascii?Q?QsD4qCDg/GzH6/kxf90GIvcYD3QhC4kMYlhe3iEvNbu6MbWXRu8AE2uUDaHu?= =?us-ascii?Q?Gyiru4tKjKKLEPHiHXeGPVAD8DAm9xX8PgnguUZMEX+DKpQw0A40KUdG7DDk?= =?us-ascii?Q?ygxBataY0UNNfImp1uN3rD3qC9seu+0ChX+A4xHrNzvdTAnMSARiVuHmRgsK?= =?us-ascii?Q?SOBSRVDlk3YeCI2/8cMHgFO4Jo84+goHj6pFoP07jquGENjAJeLoeTJHJydP?= =?us-ascii?Q?teDRYWrUglpJRZtnMg0aQAtebV+sgNfO8APtG74QTljxCCIS/JRlTul+qZGu?= =?us-ascii?Q?DIOZ1dZCh1D41CK94HniZEb3AzASDOPvzHDIHsp+abtsc46EYLXXGv5IuArz?= =?us-ascii?Q?L4azbor4gOYYeFpVJJ02wPOXU+XetH+tjka6l/tj3IBdqJbm2AAgf0OOzoFU?= =?us-ascii?Q?GO6R8pDCtvkxWt4Oob5UhkEX0Zdjj7Rsz4sgEhHyc0X22LzcQE6MZSSBg/Ve?= =?us-ascii?Q?mKJTHFTFkDKsuY/u4LRObGkTHkOMh9FC+ME1cSrL3d4QEqBi4XfJQFA7s+Qr?= =?us-ascii?Q?VPmaL/dd9Yjzsrqhs78ReuypVECBaHzaargPL5mPOrQTlIRy3YnsEaSo4P+i?= =?us-ascii?Q?zzt2FmpM1f8pW2aMGF1bddeEdwiFEe/4WoEorgfWLgeoOOL/F/JDSMKPgSwE?= =?us-ascii?Q?lYQRGGK49KhBnrbJj/3mOGDaPpvGAW3Lg9wtao2x/cGi+x5MmaL4SpUr7apf?= =?us-ascii?Q?7hpOgKVjNtWX3HtrJfzYwJqymTCt5pRaMiVVZtZYBOJ+AwxniBtwZyFhFh5F?= =?us-ascii?Q?akIa/7ZihmKgGBxqGaGcRKN1dX9+NiPiXr9ANscnRKrXmo0FDF5bajpTkQTo?= =?us-ascii?Q?/VlBPkuUeyW+OVBOJ+x+GFWhJtIMiE3Wz9hPzxCGdG7UD+IBvTxkIYfgd1h6?= =?us-ascii?Q?YSE7DiC8+7PVKEmSXKnmS9pADuV4ceB8lz8HfJ4g?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: efcea1af-17a2-45fb-fa5c-08dbb509e811 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Sep 2023 10:03:55.9977 (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: J7McMjWa7E1xRM7S7GxBvUe4aVMyAXGQLUyzIex1UwT/eyrESno0g0DDW/B2JJYNTT8oHHuhffKTSyJ4Y61J8Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR04MB8992 Content-Type: text/plain; charset="utf-8" This patch adds the ability to send RM_ADDR for local ID 0. Check whether id 0 address is removed, if not, put id 0 into a removing list, pass it to mptcp_pm_remove_addr() to remove id 0 address. There is no reason not to allow the userspace to remove the initial address (ID 0). This special case was not taken into account not letting the userspace to delete all addresses as announced. Closes: https://github.com/multipath-tcp/mptcp_net-next/issues/379 Fixes: d9a4594edabf ("mptcp: netlink: Add MPTCP_PM_CMD_REMOVE") Signed-off-by: Geliang Tang --- net/mptcp/pm_userspace.c | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/net/mptcp/pm_userspace.c b/net/mptcp/pm_userspace.c index d042d32beb4d..499c334c0e83 100644 --- a/net/mptcp/pm_userspace.c +++ b/net/mptcp/pm_userspace.c @@ -208,6 +208,30 @@ int mptcp_nl_cmd_announce(struct sk_buff *skb, struct = genl_info *info) return err; } =20 +static int mptcp_userspace_remove_id_zero_address(struct mptcp_sock *msk, + struct genl_info *info) +{ + struct mptcp_rm_list list =3D { .nr =3D 0 }; + struct sock *sk =3D (struct sock *)msk; + int err =3D -EINVAL; + + lock_sock(sk); + spin_lock_bh(&msk->pm.lock); + if (__mptcp_check_no_initial_subflow(msk)) { + GENL_SET_ERR_MSG(info, "address with id 0 not found"); + goto out; + } + + list.ids[list.nr++] =3D 0; + mptcp_pm_remove_addr(msk, &list); + err =3D 0; +out: + spin_unlock_bh(&msk->pm.lock); + release_sock(sk); + sock_put(sk); + return err; +} + int mptcp_nl_cmd_remove(struct sk_buff *skb, struct genl_info *info) { struct nlattr *token =3D info->attrs[MPTCP_PM_ATTR_TOKEN]; @@ -239,6 +263,9 @@ int mptcp_nl_cmd_remove(struct sk_buff *skb, struct gen= l_info *info) goto remove_err; } =20 + if (id_val =3D=3D 0) + return mptcp_userspace_remove_id_zero_address(msk, info); + lock_sock((struct sock *)msk); =20 list_for_each_entry(entry, &msk->pm.userspace_pm_local_addr_list, list) { --=20 2.35.3 From nobody Sat Sep 7 23:44:58 2024 Received: from EUR02-VI1-obe.outbound.protection.outlook.com (mail-vi1eur02on2063.outbound.protection.outlook.com [40.107.241.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 CC4A31D521 for ; Thu, 14 Sep 2023 10:04:07 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=aWo9RgyuqbIGu0p+bSlE0ktJOFhhgqJ8L0ly6A5dSaHh1bmZm18XdX4rRPZqc9CujlhB84ApEhhfVfX2nGro9D1sd2Z/4+hExznu9P613jONvd7RtkaUt6yoKK0H89BGIjkU35hGliQUIb6R1mK/i/p0d/iGy/nCrziPA1iiu5dq+OLfPnHg82YFRHW65tLnTHx6djRNaBuGVVZK9vWbzqFx41zzCR+l0JKTAwjJjKUmLbFm/Vt0pvJKeq6Imn7jn2HlpF5iZ/xsf0/cOu4BIFMV9CSJSeh7jYjUFHTXv9KMqhfofCOqWjG6YbGyiI4Wf9fl7pg9DvlC4AQEyR915A== 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=3NqyoYGwim7ejBKptH8blWJJsNLB73puzIrFxTOLHjg=; b=EUcWIidTtxfOdp7DhoGkP/4CUh8PzzGXkZn8si9Itms7o2iZ1v5+KRLrAV3ZhMDyp5gJ6vzEPks8/rFnpHxRjGdubDqmkbOvyWoNWt1cJSOoBCU4s6DcxomccLcNu7vjWW6KTAYsFmtLVT5QEzcZ7zgDXOarKuY1E3jlMMdr5V9bQav4o6kGsyVoRY9ePk0gMp0yxWAoPFkYisk4/Py4wTb0Ob0jADjym99XoZsAGLwfLmt/hUoKDD/zWXgr9w/EvxVbrq2+0S0pRSGFu5/RL1yWPc8eEOZo1T3f1rVgJNmniy+XJ/C4LtuYcpUiXuHH13SOIq/oyK+yAaxIUYbsng== 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=3NqyoYGwim7ejBKptH8blWJJsNLB73puzIrFxTOLHjg=; b=zDhA1nNI9WfXysRnt5ZLMQ0Iag5CyIzIgNL9e8jUXuHy1+uYj2mNEXNKWthOw3+6Oa4+ztR8kAnlJIQzP6iL1K5Yv1+2X8RnON105WKUAYofSamB7GVgvwbRPY2t0/mn4VqrSXBl7hiwgLlBFUBR0TfdAIk8zYBH6v91pQZW/oeWKNSmTb2JDWQlcZHZbxqgcFvxRESaAGkkZBBnXIpIp2tsUmvtAIRCGk2bbpcrHovDspj3+RMRNcRRVbbtZ2J+owteDlVHJXPo2TlsIz0IglXXOlX4qrS3yxWcVV77+g7p5etlWg7hDC8blL18trVPn2NR+5RFOfxeRWexhIVMCA== 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 PAXPR04MB8992.eurprd04.prod.outlook.com (2603:10a6:102:20f::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6792.20; Thu, 14 Sep 2023 10:04:05 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::2867:7a72:20ac:5f71]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::2867:7a72:20ac:5f71%3]) with mapi id 15.20.6768.029; Thu, 14 Sep 2023 10:04:05 +0000 From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next v8 8/8] selftests: mptcp: userspace pm remove id 0 address Date: Thu, 14 Sep 2023 18:03:25 +0800 Message-Id: <63e60d8054440395ab0a82d7b0e24db83e154c4c.1694685050.git.geliang.tang@suse.com> X-Mailer: git-send-email 2.35.3 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SI2PR02CA0009.apcprd02.prod.outlook.com (2603:1096:4:194::11) 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_|PAXPR04MB8992:EE_ X-MS-Office365-Filtering-Correlation-Id: 16181f47-9beb-47e6-39b0-08dbb509eda1 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: Gr38z7RNkSSr4HaEeJ/aM+9wXl8eTy93MgUFSMhFCENSMTT97rLTJTmSEATj0OyYQ+epxuo4Pi4SKfSSpqf5btVO2G5jsBYwyyhOShtChEBnBRSIDNFhw+Av5tHXDJjQmlSLHpJ/+8MfkUUPssQx1hkk37dx0WuKMfw+8dDo0oRAoqr25nSNp0q61rBZ6JNxu8c5w4Lef/mnriUJNGy81rZHmlO+hWKMB8S/MChEdL9WozcHobH/d+FUu6DtRHjp259AnbfsqZd9E4g0g3t/GJAULFkmf3HZvKd5uppXOdZZkELKQn+/gVJh3M+xPbZXW8pF+JmU+Q/BGysHoGIMKBi7+w9CTL4WgEnT5u3K614gayGFC4zA8vlgCEXnTWlWcU8gOdWgrbBiOlS7bR3sc+d7k77CxzB9+UWv1JteeLCk/WBfxh2yRD2sM4cCK9LG9zhxakzOuHcoTbOZ8fGNRwFN3J5ShtQcI/vZouY7dEJShv9V0HnU7v+Ai6XTksKBoiG1eypcIifUs/DCps1zFk2FBnMfPPdsA9aIgzQfVpiNhCJEQXOp86O6ssvWCDR+ 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:(13230031)(136003)(366004)(39860400002)(396003)(376002)(346002)(186009)(1800799009)(451199024)(2906002)(86362001)(6512007)(26005)(36756003)(2616005)(107886003)(478600001)(6486002)(6666004)(6506007)(83380400001)(38100700002)(41300700001)(8676002)(4326008)(8936002)(5660300002)(6916009)(316002)(66946007)(66556008)(66476007)(44832011);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?pVlitlxZqmRKGc7K6aZA9xEP5mekKQ0ClA1DfH4J53YWzUwsmzVcuhA9djW/?= =?us-ascii?Q?mpm+iX03vMqWcWGPIZ8g6BT7fQxapDmbwn0C4pkeXcDleyG04eg637bfXQIx?= =?us-ascii?Q?8KKoC0hIv9jLRuC5KnCWVBQYPa55pS7iyxENYa+eGqvNzpNd49xJy84wt+PP?= =?us-ascii?Q?RckfajitjlfmoPfK5jbH4iJPp6htymF0tBNWKM5ysW9MnGYm8HmqNTXHxc7t?= =?us-ascii?Q?i5+NgdICQD2RwHsYZOYVPO3ZheynBWHrde/Mt6cPdU5Mnelr2CzAW+C0HA3I?= =?us-ascii?Q?FVclxaXM2ayKSg6Y2zk+q3nO9c9VfP+5FrvsNYDYpFfJgT/rhRx+RlbKnmmp?= =?us-ascii?Q?1P6zk2ID2rIUiC4GPnoMDtOYrjSP8oWZYkvDTl63LMgE/dACXU09Hn1SztzG?= =?us-ascii?Q?qvucyOe0sfycLO5QQofhKzf8O33BJEHnwzCs5J+5+W3uhhiVo7PoXOAiWTN1?= =?us-ascii?Q?UhF0WybY2iLqMGvVC9xissoI70vkqTYbJ+ACtzu1E2PQkmyaDE75Gv8y0LDY?= =?us-ascii?Q?EOSZ3G1bQEIXtV9QbOSzZi8CuSYEJodzDT2iK+byMbBvczotEZnThmkfhmZz?= =?us-ascii?Q?X1t9aFReLjEvRovxFIsJW8HMMvb5gJfWkk33HJ11RcpuJTnzc9ZmKtJ/9U4x?= =?us-ascii?Q?FKjO23OM/TQVv59TSHyIPb1FkHiEyJfKFioOGAr1PRKaQcwWJbvG3wyiK0fM?= =?us-ascii?Q?dajypPujGBUMUzDOsFGndoAaBGcwSOSgZeojIl97ruH5+OrzmXm8YDbpp7Vb?= =?us-ascii?Q?WDZMVCeHEkcWhQaaJnEXF1+9+Co5qNuO0EPRB0RNn/OcI/GxgaJclT/4T1wL?= =?us-ascii?Q?zBqipr95Ch5DFnKJK9FSHOQwwHFD9Zh+VpGSlYmu0ezIx42JIONtZyQfZypN?= =?us-ascii?Q?jJrHSI8jbncgbZ7znxgSKaPObRIHoQEuUw3o1WCjk5KNCZAl1UqzSU/wGU/s?= =?us-ascii?Q?iY5ihtyiF5Y4QiMQZmN/hqiJO91n/O0k1d3mu384FAFSS/xcyWpDK6JSMQO1?= =?us-ascii?Q?09IQi2p1THqgqGbrfhGzSyZ6gihibO17tlBqdJnf5ydwm9n5AQlbLL86/A9p?= =?us-ascii?Q?zaNnn90v+ptHCRyZFHT9VQWo9AaEWtDH6xuzGbaHL0kic0bwvszO9H4rg0gu?= =?us-ascii?Q?/nue034ZmvRhAVSpyTOXf5coaS6XZm4dcGBLUpmHPmiINJQdNxhKRNVm49tH?= =?us-ascii?Q?3Qxixi9UMs9lSIE1jTzzL2gvJFqRp2KhysH+ab/khiuVY7+Vlz1S9g0noHu7?= =?us-ascii?Q?nARiLwqYSLd8UXFpCCstjvvasuk+C2v+jjmk37njORHIx9syZAJuV29Oax4s?= =?us-ascii?Q?Zi4iNDoLRh+ICl2GQ28FGPMjL97ZUdnUTc4R9XE9hyuuA6f9hD2Yt8tpIACG?= =?us-ascii?Q?FEd4bj8TCuO6XnEi2k8/YhVsb9fG0yNoEmOBPrSEp/6WRdNjyhSm9AbdX8y4?= =?us-ascii?Q?M4afojzlAzaHVsKsqJXWYJg1UJdKoVZwykVIYcvdiwsRK+5HkN285hCKKCfG?= =?us-ascii?Q?RFyA31scTYDO+wo/em/teldSMJpFeqXCThQMyi/lwkeriL2LqtIGZGU/yQAj?= =?us-ascii?Q?+oeiG9c5jB65/w+rXBZqIaXfvISRGlZ8RGe2NE64?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 16181f47-9beb-47e6-39b0-08dbb509eda1 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Sep 2023 10:04:05.0906 (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: MUe6FLnGOy/eKQVEOwcFlaB+aHphth2ncJ+tUfD0AsX4MyRhjQbK9eh1f0l65K/+fjMx9IfcgaKDTtP52exilw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR04MB8992 Content-Type: text/plain; charset="utf-8" This patch adds a selftest for userpsace PM to remove id 0 address. Use userspace_pm_add_addr() helper to add a id 10 address, then use userspace_pm_rm_addr() helper to remove id 0 address. Signed-off-by: Geliang Tang --- .../testing/selftests/net/mptcp/mptcp_join.sh | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testin= g/selftests/net/mptcp/mptcp_join.sh index d2c458676068..8a24a4025ba2 100755 --- a/tools/testing/selftests/net/mptcp/mptcp_join.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh @@ -3517,6 +3517,30 @@ userspace_tests() kill_events_pids wait $tests_pid fi + + # userspace pm remove id 0 address + if reset_with_events "userspace pm remove id 0 address" && + continue_if mptcp_lib_has_file '/proc/sys/net/mptcp/pm_type'; then + set_userspace_pm $ns1 + pm_nl_set_limits $ns2 1 1 + speed=3D10 \ + run_tests $ns1 $ns2 10.0.1.1 & + local tests_pid=3D$! + wait_mpj $ns1 + userspace_pm_add_addr $ns1 10.0.2.1 10 + chk_join_nr 1 1 1 + chk_add_nr 1 1 + chk_mptcp_info subflows 1 subflows 1 + chk_all_subflows 2 2 + chk_mptcp_info add_addr_signal 1 add_addr_accepted 1 + userspace_pm_rm_addr $ns1 0 + chk_rm_nr 1 0 invert + chk_rst_nr 1 1 invert + chk_mptcp_info subflows 1 subflows 1 + chk_all_subflows 1 1 + kill_events_pids + wait $tests_pid + fi } =20 endpoint_tests() --=20 2.35.3 From nobody Sat Sep 7 23:44:58 2024 Received: from EUR03-AM7-obe.outbound.protection.outlook.com (mail-am7eur03on2079.outbound.protection.outlook.com [40.107.105.79]) (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 AC1561D523 for ; Thu, 14 Sep 2023 10:04:16 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=fB240ysPmtuNL03YttkEMXqCt+4JvEQn+Ae1F4yHo7VkEVHi8FYwagVphnb9dFIcaVjK0TiPyU+1zwD55xTRs1uQZeWLq1JRv87cHAMdQ04BegItysNh2h8MP36822yk2YkfolhYau6BwuSHtFGhPhD3+R4BzA3wlEaLEE6efrHVppqrNEr6UCnOzTgwcPuDyztq6VY62TwIpdBVTwsCpreRcXE9BrfZPdPI/fDhJPtcbeVl2X2KbwKaXw4T2+/WDkx91AVFXfG7t7AE90densd3mt9G9OCtWqY7DsnTjGr4XgHhcJDCIhZZqh/nm0pSTG5FEVkyIvg8ItY3NZS+GQ== 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=kdzTA+Wi1TMa8eRaCBMlqRu9j65TKVoz/MNlLSxQvso=; b=E1XSFSDQsfYmDfcBrDhi1qeEBbxmLwgl8J7qV1z5Ut+8cmblBedKidPxVKhL16ZRSpcYW0bG7F7PGzGgCofese4BqbX43Y18JZF8qOwPUj+E3yNNaK/Y1fkTHUNG1/utRlUZHODDHYHvcTwWLGrg05OWjuoMDqXa+XZyipHE412SgdA9Iv2NcQLrN1ohFNp3kPzGA2GFJbRjFIHdRXrM/n5jLqtc23+Ldoa9BfqWAX1uVVfNfHmoSnC+JXAAWlqjKbHRVc3/LdlPaaJaY0DsPJ+o+bc0LsUqeYzdWTkSOtPJnGljU3WcieyPoDvt7Azrbj2EADlC8/MDB7J/bJrzsA== 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=kdzTA+Wi1TMa8eRaCBMlqRu9j65TKVoz/MNlLSxQvso=; b=SMhEZeshtmo4Q76YtKcBQRghVJkXm9MvUcDa5Rkjz8upgTUScCzuZDzFopw2zgZOp2mlRfqT0bWxinXz0kC5dEFsqXFtry7hPbidkZ23Hnxg+HrmkMB2hHgV3cFtRbV0KyELW1uXtNS8xG0vBa0iUtb05MbcQWv6qwNqOC/wITQWIkgP1fzjPKPR3Jo4ptOqPA+WX/gTUfIAzc8Fwe6xHfKK6V3/YV/nVmNbtnmK/OYDgubN4935PWbiO6+sOqvvHuvyszGvPI3s/Cc5LaZpZxUs6YmgUx/t2SvUnkeUHtT5Vca4yRkr52vNQ/ieUZ4sSrZRTgz8pl1t7da6u4h45g== 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 PAXPR04MB8992.eurprd04.prod.outlook.com (2603:10a6:102:20f::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6792.20; Thu, 14 Sep 2023 10:04:14 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::2867:7a72:20ac:5f71]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::2867:7a72:20ac:5f71%3]) with mapi id 15.20.6768.029; Thu, 14 Sep 2023 10:04:13 +0000 From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next] ss: mptcp: print no_initial_subflow flag Date: Thu, 14 Sep 2023 18:03:26 +0800 Message-Id: <20230914100503.8886-1-geliang.tang@suse.com> X-Mailer: git-send-email 2.35.3 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SI2PR01CA0038.apcprd01.prod.exchangelabs.com (2603:1096:4:193::20) 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_|PAXPR04MB8992:EE_ X-MS-Office365-Filtering-Correlation-Id: deab2e5b-35cb-4e1f-d321-08dbb509f284 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: qqZ3azc4Ol+swtsF5pws7D0CXdiRw0DeN/veVGJGrxSlFXbUufBMA0zQ7yGqJPSTpS9wWXO7b0MbOSYIfy4u4iLkS/ODyx/zGe2278GkTHzrKQ5holhNO0fsiObpBnqDCCNolXu7wL+jutMJMYcy7dWoPyfzAFF8b/iJifjJhBiQK+hVA7uLkmk3tZNcsFYGQS8dHuap7rmfmQ99N0dfE+pyYWFyNEVisRcWarrgp8lROwpJm90d9YjHf2w2Vssx/39fV0auXHNFUlV/NPWeg4WOwZhWs78QQfbqegHoXkd4hPI11tmBY0r1vodh898JLSlr1mZSAtEOJl7jMcyk2FXt47XVjXQcWeH3n/TJvWiK6grtZ56mTJf0rBEZQ3zHO3MKIb1xgssMNUSbGCiCml3iEwpqIlzBEFtpp5blp5Ii2O35PyqkxwuF3nSiFO07VzwLWqPZmFoRL+4Mm+3XWutl8hpbIdpf2kKEVmvsKS1tU8QAwcQlRWNFyjzzABzkE+ej7asmBw4ta8KxuJLI4aS7aLtMOLr+3vRgc8mSjOVi/m9Cnn+ZMCTRXgLYKJGz 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:(13230031)(136003)(366004)(39860400002)(396003)(376002)(346002)(186009)(1800799009)(451199024)(2906002)(86362001)(6512007)(26005)(36756003)(2616005)(107886003)(1076003)(478600001)(6486002)(6666004)(6506007)(38100700002)(41300700001)(8676002)(4326008)(8936002)(5660300002)(6916009)(316002)(66946007)(66556008)(66476007)(44832011);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?kPfhmmZNeL84wbQTrqzfzXomnTmv2L12mmLOz+Yt2BVsJWhrC4Cl4Wr4hBKR?= =?us-ascii?Q?FbcyzuYzZF6Yt6vXARRtI3pfguNpSgs1HAFE332dEz/q88LxbH+Q+WMnD5yv?= =?us-ascii?Q?3hjgDkoDnVNAt69BnUE4+iUBNVsgxoJ42xuqbPaa7OpIukAeBAvyJ1aDeYlw?= =?us-ascii?Q?FwmKJT/+0XBsXaYxEeQCWCr7CRcYCF83UwFhPo099x/ZekdLFBzDx3/FIVkH?= =?us-ascii?Q?4BloEz+ElXcR8SyAfO1c47MXvnhJlUJuoTUaC0sK3EY48vE4/2Udc3jf0MIM?= =?us-ascii?Q?VdsND4tNWkTKIzBZhBnx4psjWj1z6DyAja/fhIGUwdHBGlY5/efHayHI+jyR?= =?us-ascii?Q?bG3CJBUwGQ/VunIFA18v/qCgKv/qca0cq3i2W/xesD2aOKiM5ymx0/JP9APH?= =?us-ascii?Q?MLkck+mlz5PWkBGhYdJkrcFt4GfnWTJdsK+vZnL8rBSqqK24ggDtclLuihAo?= =?us-ascii?Q?S1qw4NPSESMkYH6V4zFXA1t5EovYtZ2qPcFil/L2wO8hnDaramrGpoYJZNBW?= =?us-ascii?Q?CjmFNHIQY1x6lgoOa7RK8N/83l7QMuHQ/fslRhgS5uozg2aOxd2KXQVoLNTw?= =?us-ascii?Q?3CEaq2Bl6Y6cF2aqIP8AwQbpEqPKauceIf72yIUoidhVmXwqhmxsrGFR0rL9?= =?us-ascii?Q?Q9jMuPJANUViEYiSvFkF8z8lt1giMPjQ3+4UakCMI0Gm01O1iLa4bl6F3pSD?= =?us-ascii?Q?nv+zryHEx78pBMmO27kC6PumqckW53WPsL0BneX4KD5wdPFdJvoPaKZTdddH?= =?us-ascii?Q?DSANflIqQQExYaJBvddPlb3LyFsm36cctsBTYiFT0JCM6u5fuymtEBjCgYye?= =?us-ascii?Q?A/vusSwrkdRlSC+PJaWjXHACWiiA7Fuy1axjGdE99ToYnVojJoNMvkxCljYj?= =?us-ascii?Q?Ccz0/PJcHkL7vpiXHbNQPcxwU5OpJ1hD2YsGyM42luVmPfGNWJMiJyEGMFCX?= =?us-ascii?Q?4OWhVCmXPEMG2LEea6SNYlW92yH7sxVIVa2uoQEB4JwIlrxszvEJ9utlFv65?= =?us-ascii?Q?ew7x/wRVSDAK8KLrryEii1C8GoSG4F2dkXyT4RogX3QH0OO93nV5SmgNVsZJ?= =?us-ascii?Q?Ff/BI98XHvMHH3O5Kp77WKCI8hipURL4q/0+OT/iTkNgQCF7SpQpg+L5W3jV?= =?us-ascii?Q?JWV0eRdDUxhSSKA2V2tfiy6mc32ojTwpDjwpuC6cQFwI2vtdJxeBroIcm7ym?= =?us-ascii?Q?s2RcwVSVeq2B5ba1ZzOWJHeV3atFe/Rzfvh++8owW0Lme4AvNSowLYyMLsVq?= =?us-ascii?Q?HVfoj9wIdmtCJmdhz0Qhuq96b66aYfTCDSohy/RiwaH+y8mE5htlxu4bHyh6?= =?us-ascii?Q?RiDp46MXsaudKlNK1KWm9AQ1xCL/Ev7jgdmZJ9qzIHpZzJp/nHFv6/UoLmET?= =?us-ascii?Q?kXY4ZiPwGaW3t3x+6jp9LFmGN3SzxnjGD6DcR67FdP3f6+Wa4QdztK6FjdKz?= =?us-ascii?Q?DQJgCCzv5fiDCBXK5MeRR7R8RnhCnLWyfp2qFUNw0QwVVjfT5VTbVPcg1NFg?= =?us-ascii?Q?rcAqlmt5W9Vq9ikDop/ibDsNIF3P0Vhx7Bu/FnMdwQKwjGdXO/tyjRrTs0ny?= =?us-ascii?Q?STuZ1hWwtx/UNJr7V9tIx8+Jr0gWtmaRhLbd6Y8f?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: deab2e5b-35cb-4e1f-d321-08dbb509f284 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Sep 2023 10:04:13.8958 (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: UV2cOPei0aPFOvLk/Zq7cr6jOpzc+st94LeeUXXxzPsDY221/i5U5hfMcdPmm+F6/RqhSjgM4cmiLFKyLuw9Ng== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR04MB8992 Content-Type: text/plain; charset="utf-8" A new flag MPTCP_INFO_FLAG_NO_INITIAL_SUBFLOW has been added in mptcpi_flags to know if the initial subflow has been removed. With this bit, we can then compute the total amount of subflows from mptcp_info including the initial one. This patch prints a "no_initial_subflow" info into mptcp_stats output to show the MPTCP_INFO_FLAG_NO_INITIAL_SUBFLOW has been set. Signed-off-by: Geliang Tang --- include/uapi/linux/mptcp.h | 1 + misc/ss.c | 2 ++ 2 files changed, 3 insertions(+) diff --git a/include/uapi/linux/mptcp.h b/include/uapi/linux/mptcp.h index 159d32f0..bae24690 100644 --- a/include/uapi/linux/mptcp.h +++ b/include/uapi/linux/mptcp.h @@ -105,6 +105,7 @@ enum { =20 #define MPTCP_INFO_FLAG_FALLBACK _BITUL(0) #define MPTCP_INFO_FLAG_REMOTE_KEY_RECEIVED _BITUL(1) +#define MPTCP_INFO_FLAG_NO_INITIAL_SUBFLOW _BITUL(2) =20 struct mptcp_info { __u8 mptcpi_subflows; diff --git a/misc/ss.c b/misc/ss.c index 2a584015..e58f6087 100644 --- a/misc/ss.c +++ b/misc/ss.c @@ -3247,6 +3247,8 @@ static void mptcp_stats_print(struct mptcp_info *s) out(" fallback"); if (s->mptcpi_flags & MPTCP_INFO_FLAG_REMOTE_KEY_RECEIVED) out(" remote_key"); + if (s->mptcpi_flags & MPTCP_INFO_FLAG_NO_INITIAL_SUBFLOW) + out(" no_initial_subflow"); if (s->mptcpi_token) out(" token:%x", s->mptcpi_token); if (s->mptcpi_write_seq) --=20 2.35.3