From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from de-smtp-delivery-102.mimecast.com (de-smtp-delivery-102.mimecast.com [194.104.111.102]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E5EFD173 for ; Sat, 22 Jan 2022 09:17:08 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1642843027; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=2FcW4OPTJez2pYmM+dYUN9EFyVF68N3tsVCok6JAwCQ=; b=fB3qRl8UntxS1f0Rj/j9YX8CX2QrxdUu+MS/FeSjp1lb3xLJVrzQnG34oAoluCuqQS+8bx F0IUJlhQVOOTtjU4k41OXN6ejrWB9ITE4+mlxkuyHIGiyR2l0XG/oDzveVcdknckKH3AEA pY1SDvYTs8PudhcN40RK9uHvOmJ2usw= Received: from EUR05-DB8-obe.outbound.protection.outlook.com (mail-db8eur05lp2106.outbound.protection.outlook.com [104.47.17.106]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-30-Y6khwxzeNWC7aR-wwzWnug-1; Sat, 22 Jan 2022 10:17:06 +0100 X-MC-Unique: Y6khwxzeNWC7aR-wwzWnug-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=YlPGx7vJBGmNO9r584Sm6b/e6hwlU9elWzeMszAiYvgI22KOu4zk5qThA6lPkgkN5WejZVz6AGpQ20GpWtIqnmg8Kj/CEpV8Csv+qe2UK9Pph8FHN9RuKhgU1DL32Eco6LpFLW0wmUPTXxk6sf9pg8nu7av8bXmYexTrtN2tAjMLpwdA3EOS0V4AJrOi6N+V/a2pBiXCAk0qURquccSHJWNehpTlJ5PIoyyFvMVXb+pcHBbkLBzu5F/wMGdRL5S+eZSNb+xS60EPQ7GtT64O5mAJTo5rW8s7JonA3048HqfdZTFxLUDorPukXLyyN0PC+z/zxGA2BpBL5WJgOZV7vg== 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=2FcW4OPTJez2pYmM+dYUN9EFyVF68N3tsVCok6JAwCQ=; b=BsGeyPGFarKwhKtF+k42nwjq7MnXJ5Bs3FY31i5vjXkBq3qutHx9IAHBuekQtXhrcB+sxOlZh6Y9GKSulHh92b8yoG0F+lrugxK0fLcJEQ8riUIb52zOa4ZXBhxz3lzSdyu82zRODJQWZla8cyMls+ndQ/T8hWMhiavap7j9dcYU0hDz9vhZdgnSGPBoE8w8ntKqQMpitqco8bG4i2wTC8ViObGlo2c24XQLc2thCt/HKsNK+Po+LUyiSN2R8SyjuaTh/VLUzKZ8jYAUlVNycWm475OWP0EdmU4d3uiYZpKIak6xLmEsh9i+q5x7gE2zmPh0GyrNJAwr6zkQ9j8/mQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com; Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com (2603:10a6:7:83::14) by AM0PR04MB6145.eurprd04.prod.outlook.com (2603:10a6:208:13a::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4909.13; Sat, 22 Jan 2022 09:17:04 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::fcd9:b39c:2b94:f13c]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::fcd9:b39c:2b94:f13c%6]) with mapi id 15.20.4909.013; Sat, 22 Jan 2022 09:17:04 +0000 Date: Sat, 22 Jan 2022 17:17:13 +0800 From: Geliang Tang To: Mat Martineau Cc: mptcp@lists.linux.dev Subject: Re: [PATCH iproute2-next v7] mptcp: add the fullmesh flag setting support Message-ID: <20220122091713.GA5301@bogon> References: <1a295b3d53f3da82e8c47173fded5e679a25345d.1642748699.git.geliang.tang@suse.com> <6b67e296-4ef4-d48e-d4a-e6dc97c9b330@linux.intel.com> Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <6b67e296-4ef4-d48e-d4a-e6dc97c9b330@linux.intel.com> User-Agent: Mutt/1.10.1 (2018-07-13) X-ClientProxiedBy: HK2PR03CA0051.apcprd03.prod.outlook.com (2603:1096:202:17::21) To HE1PR0402MB3497.eurprd04.prod.outlook.com (2603:10a6:7:83::14) Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: bc6d733b-5a1c-4c6e-091a-08d9dd87f406 X-MS-TrafficTypeDiagnostic: AM0PR04MB6145:EE_ X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:6430; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: qY8QnvfZnXMW5uf6x4DKnZODE4tTYWviETA1f7yTyyjUKLxOHCpN3HyFxX2scs75/AzH/fNCZsp0OWqusZXK5Mwpjiij7l1Ax30htXYQ4ivHrHrfpt/RcBHGXBWBDxQPsx5PQb4two3+j/yeJPWBBeT+TbQLvFIjZWbsFDcfnxfkT7cMP/AvrDhgj8Q7H2Fb7xk2OJRrY1QUPtB3k3mwiezrdVgIg7coySJWh7CFT39oF+2zhHkMnDBGUpXKhq05sVG7Usi3OgWcE/lh3XA0hZgxPsFF9FhwgGkFyvq0wPj2iTXnRBYIT8ii/hsBA1QfDTb+xL6d5Wjp9Sp80JylfXAsEipYPLliYdfMUwV3uOvoQ54RoInN0HSNNmonZHBdXFC7fcvJ4bYfRFvGkndc4cOoouF3T4dlTPpUCIXj/eYrkeM3dsmzKd4SJOYHwQAgcC74Zy/gNny4Uk50pWfTOSbhzRzItZak4ufLasbQEzrS7tLEsme1wWuvU5PG11faCzjmDRruQpbdWBywPvvxLqgwx5pnKpRwJovxhB0DglpQX9GGSEwv4mTuNeh16GoUx9/p/CNfjQrDVKsetewzsfOFVNNIDn7mDI1EyMr93zBvBcZPfjH+I0U2rNRKkqJpbRMBwscnNbJgfwVsSKFEThvlDUBhdHZK1z4YpwTMP0AGgBxqSpnekIEzkN6RqeTNLtsDUAHZnr7OzIYSe+L2uLYrpa9c0vBU24CZyRhaYl2+yx4kvL5LsiMbAAmLczAioG5N86t6vM26dSmEdQt4Mg== 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:(7916004)(366004)(186003)(83380400001)(8676002)(33656002)(6506007)(6486002)(26005)(316002)(8936002)(1076003)(6512007)(9686003)(38100700002)(33716001)(66556008)(508600001)(66476007)(5660300002)(86362001)(66946007)(2906002)(6666004)(44832011)(6916009)(4326008)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?Sly/Q361As5GmWSkcabxm5bQNlhVpq94oxzW4Yr/vhH2JPxuDDllDDikNRbv?= =?us-ascii?Q?MTUvbGNn61Xetq/m1jCOLwgEsoIBKVyZqcj+4Ebo6AT3b0OPOLYpr6EYBZ+U?= =?us-ascii?Q?t1LVwtRnvVy3/wkkSSJAMx2C/psE+x1/6+00uebBYjjEM+5E2z0/4SxGRjU3?= =?us-ascii?Q?1U8K3Zj/+ZCImxVWzY07P6EJG9MEzQmZk967sKK/O3+wUXV4xVwITJZ7WKoG?= =?us-ascii?Q?A3kevnVTKUhuiT5x1kK9WedSqzvioSUqwS0cYby174ZeBngVMDZS6kcw51EF?= =?us-ascii?Q?SgrBb7TWyc9hS6ZpI/mLafFmL5Pxn2k6Rwy1p0czwGl/sx9gZ960zj2DTeVR?= =?us-ascii?Q?/MQMJgxXgQnquw6YWlYS09kGmTpw83esev8x88KI0WCfyV2r591b0pEU0IkY?= =?us-ascii?Q?kMVzg1B3DdrtnnNP6xX6M34RiebbWcoRwRcjebm8IACNgjeuR0Gb9a/0bd9O?= =?us-ascii?Q?TJVX/NopkOmx/D1rJHoLS3avCPmoFat95NfrYj9DrYrL8gHxlvhynPzaG/SR?= =?us-ascii?Q?adWdMaiZqI0ye8DcfthtLWVgNt6sURm5rk7soR71mJi5VmHyXv2+QlBDQQst?= =?us-ascii?Q?vDVxKtr/RRkd9pxgYnO8VwsralkZZ+gsF5wrKhXV6m7XAHze39HGcLqz1sfN?= =?us-ascii?Q?1eU+xXOnS/TxRNjG+gRvlzr4nVwvkfNfxKqAXdX9dStjX31jYrQ8C49K1PC3?= =?us-ascii?Q?3cgp8BDrJBWBzka2Y0RU8A/c19d7D3rsseFH6Xq1OvoBKmQLgdrKf2KZiVo+?= =?us-ascii?Q?kz3rGwT81j0se3ULoHITDdwsxBT1P4R6ZT7c+TIg6cP/xksSQPgN3v/kRpm9?= =?us-ascii?Q?dXgE3431l3F4iT/sCrQt+qobN/ONgkZ0pbWW1q6B7dKjU0ZbK+5Mzddoq+3g?= =?us-ascii?Q?Xp5t/YBXskmstaDvykUa8jPxNS8fHB8MioOwiYDYWkLHEb5oNf6OdyrMf7PG?= =?us-ascii?Q?h3tkpyBJrV4gRZQRro8UOK8unJmFPyIpRnGBlqmxLyt0uA5KDiewfLkJ+u5O?= =?us-ascii?Q?l9QEgss3MDpm7UgG9lVEWoBuV7ZMceqKFO1BossnHIB+3+RCmznQP0z2v9nc?= =?us-ascii?Q?LjHtBpGVBv3JfQhh/02fa3K/I50ifXkTRaB4xjnar4QdgR2rVhEg7b0NqUvl?= =?us-ascii?Q?L7Vjq8FpI1CQGucU6MAf+O9Te/yjrFg70UiXVna2xt2w7oI0RzdRMpCEuFa1?= =?us-ascii?Q?rRT7npIwBAfoYOj4ZbxQVoJxi+9XXY3RWNSezeSh/JtFJjEEATj+zfdd5LUq?= =?us-ascii?Q?GPEdx2YoD92R1dyR5tdXiLy5Qh19NqPXkw2Peavi5oGwq1q7ynqNGCJdMBxK?= =?us-ascii?Q?jk2gkZVQxGhgDjU2Fl+Y4Z9d4axR2mdtOYkp5hwyLNfSHK5e8ogsLpYT0oXu?= =?us-ascii?Q?nkaQeBp0w0j+4yoyZyZrlOgi1fPDoWsOa0amssNdgHIzs9LaUOfdjvPpbhq1?= =?us-ascii?Q?+ea63BxMkLp8+hconDj5lklcOb0Prn0e/JhAlVHWMXpbd779on7pCK0cSGLs?= =?us-ascii?Q?ANlbF7oii0cyhfK2dfUWajmZggsNRtammbnhtd3XbysVB+1J2sXOaUoaOPRn?= =?us-ascii?Q?YBrzpdcBRNGzvYzFW1+uViOJas5G2N9cDp24oBwuJdWSgpCXFc6w8VAh9YPu?= =?us-ascii?Q?QvKOcmqVrsdIc1B8RjwBOvg=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: bc6d733b-5a1c-4c6e-091a-08d9dd87f406 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Jan 2022 09:17:03.7432 (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: s/bY999tp5cAZP3TlDL30Zm3LF8tNCqwiRQeH0seS8yGPN33lJCWZGg2cwa3kf61enHMYZsakXMn6r2f7qvhew== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR04MB6145 On Fri, Jan 21, 2022 at 05:03:12PM -0800, Mat Martineau wrote: > On Fri, 21 Jan 2022, Geliang Tang wrote: > > > This patch added the fullmesh flag setting support, use it like this: > > > > ip mptcp endpoint change id 1 fullmesh > > ip mptcp endpoint change id 1 nofullmesh > > ip mptcp endpoint change id 1 backup fullmesh > > ip mptcp endpoint change id 1 nobackup nofullmesh > > > > Add the fullmesh flag check for the adding address, the fullmesh flag > > can't be used with the signal flag in that case. > > > > Update the port keyword check for the setting flags, allow to use the > > port keyword with the non-signal flags. Don't allow to use the port > > keyword with the id number. > > > > Update the usage of 'ip mptcp endpoint change', it can be used in two > > forms, using the address directly or the id number of the address: > > > > ip mptcp endpoint change id 1 fullmesh > > ip mptcp endpoint change 10.0.2.1 fullmesh > > ip mptcp endpoint change 10.0.2.1 port 10100 fullmesh > > > > Acked-by: Paolo Abeni > > Signed-off-by: Geliang Tang > > --- > > v7: > > - allow to use the port keyword with the non-signal flags for the > > setting flags, then we can use the address argument for "ip mptcp > > endpoint change" too. > > - update the usage and man-page. > > The v6->v7 changes look good, but both versions of the patch only apply to > the iproute2 repo, not iproute2-next. Please rebase on iproute2-next before > sending to netdev. Hi Mat, Sorry for the trouble. This patch is based on iproute2-next (commit db5305290c2fc8f266fbba7806e2bd2efee574e1), depending on my another queued patch "mptcp: add id check for deleting address" (https://patchwork.kernel.org/project/mptcp/patch/59ec6f5ba44972ef5e7e400f5333852084ff0087.1642262155.git.geliang.tang@suse.com/). Thanks, -Geliang > > -Mat > > > > > v6: > > - update the flags check as Mat suggested. > > > > v5: > > - support to set backup and fullmesh flags together. > > --- > > ip/ipmptcp.c | 26 +++++++++++++++++++------- > > man/man8/ip-mptcp.8 | 17 ++++++++++++----- > > 2 files changed, 31 insertions(+), 12 deletions(-) > > > > diff --git a/ip/ipmptcp.c b/ip/ipmptcp.c > > index eef7c6f4..efda7ef2 100644 > > --- a/ip/ipmptcp.c > > +++ b/ip/ipmptcp.c > > @@ -25,14 +25,15 @@ static void usage(void) > > "Usage: ip mptcp endpoint add ADDRESS [ dev NAME ] [ id ID ]\n" > > " [ port NR ] [ FLAG-LIST ]\n" > > " ip mptcp endpoint delete id ID [ ADDRESS ]\n" > > - " ip mptcp endpoint change id ID [ backup | nobackup ]\n" > > + " ip mptcp endpoint change [ id ID ] [ ADDRESS ] CHANGE-OPT\n" > > " ip mptcp endpoint show [ id ID ]\n" > > " ip mptcp endpoint flush\n" > > " ip mptcp limits set [ subflows NR ] [ add_addr_accepted NR ]\n" > > " ip mptcp limits show\n" > > " ip mptcp monitor\n" > > "FLAG-LIST := [ FLAG-LIST ] FLAG\n" > > - "FLAG := [ signal | subflow | backup | fullmesh ]\n"); > > + "FLAG := [ signal | subflow | backup | fullmesh ]\n" > > + "CHANGE-OPT := [ backup | nobackup | fullmesh | nofullmesh ]\n"); > > > > exit(-1); > > } > > @@ -46,7 +47,7 @@ static int genl_family = -1; > > GENL_REQUEST(_req, MPTCP_BUFLEN, genl_family, 0, \ > > MPTCP_PM_VER, _cmd, _flags) > > > > -#define MPTCP_PM_ADDR_FLAG_NOBACKUP 0x0 > > +#define MPTCP_PM_ADDR_FLAG_NONE 0x0 > > > > /* Mapping from argument to address flag mask */ > > static const struct { > > @@ -57,7 +58,8 @@ static const struct { > > { "subflow", MPTCP_PM_ADDR_FLAG_SUBFLOW }, > > { "backup", MPTCP_PM_ADDR_FLAG_BACKUP }, > > { "fullmesh", MPTCP_PM_ADDR_FLAG_FULLMESH }, > > - { "nobackup", MPTCP_PM_ADDR_FLAG_NOBACKUP } > > + { "nobackup", MPTCP_PM_ADDR_FLAG_NONE }, > > + { "nofullmesh", MPTCP_PM_ADDR_FLAG_NONE } > > }; > > > > static void print_mptcp_addr_flags(unsigned int flags) > > @@ -102,6 +104,7 @@ static int get_flags(const char *arg, __u32 *flags) > > > > static int mptcp_parse_opt(int argc, char **argv, struct nlmsghdr *n, int cmd) > > { > > + bool setting = cmd == MPTCP_PM_CMD_SET_FLAGS; > > bool adding = cmd == MPTCP_PM_CMD_ADD_ADDR; > > bool deling = cmd == MPTCP_PM_CMD_DEL_ADDR; > > struct rtattr *attr_addr; > > @@ -116,9 +119,15 @@ static int mptcp_parse_opt(int argc, char **argv, struct nlmsghdr *n, int cmd) > > ll_init_map(&rth); > > while (argc > 0) { > > if (get_flags(*argv, &flags) == 0) { > > - /* allow changing the 'backup' flag only */ > > + if (adding && > > + (flags & MPTCP_PM_ADDR_FLAG_SIGNAL) && > > + (flags & MPTCP_PM_ADDR_FLAG_FULLMESH)) > > + invarg("invalid flags\n", *argv); > > + > > + /* allow changing the 'backup' and 'fullmesh' flags only */ > > if (cmd == MPTCP_PM_CMD_SET_FLAGS && > > - (flags & ~MPTCP_PM_ADDR_FLAG_BACKUP)) > > + (flags & ~(MPTCP_PM_ADDR_FLAG_BACKUP | > > + MPTCP_PM_ADDR_FLAG_FULLMESH))) > > invarg("invalid flags\n", *argv); > > > > } else if (matches(*argv, "id") == 0) { > > @@ -166,9 +175,12 @@ static int mptcp_parse_opt(int argc, char **argv, struct nlmsghdr *n, int cmd) > > invarg("address is needed for deleting id 0 address\n", "ID"); > > } > > > > - if (port && !(flags & MPTCP_PM_ADDR_FLAG_SIGNAL)) > > + if (adding && port && !(flags & MPTCP_PM_ADDR_FLAG_SIGNAL)) > > invarg("flags must have signal when using port", "port"); > > > > + if (id_set && setting && port) > > + invarg("port can't be used with id", "port"); > > + > > attr_addr = addattr_nest(n, MPTCP_BUFLEN, > > MPTCP_PM_ATTR_ADDR | NLA_F_NESTED); > > if (id_set) > > diff --git a/man/man8/ip-mptcp.8 b/man/man8/ip-mptcp.8 > > index 0e789225..72762f49 100644 > > --- a/man/man8/ip-mptcp.8 > > +++ b/man/man8/ip-mptcp.8 > > @@ -38,11 +38,14 @@ ip-mptcp \- MPTCP path manager configuration > > .RB "] " > > > > .ti -8 > > -.BR "ip mptcp endpoint change id " > > +.BR "ip mptcp endpoint change " > > +.RB "[ " id > > .I ID > > -.RB "[ " > > -.I BACKUP-OPT > > -.RB "] " > > +.RB "] [ " > > +.IR IFADDR > > +.RB "] [ " port > > +.IR PORT " ]" > > +.RB "CHANGE-OPT" > > > > .ti -8 > > .BR "ip mptcp endpoint show " > > @@ -68,10 +71,14 @@ ip-mptcp \- MPTCP path manager configuration > > .RB "]" > > > > .ti -8 > > -.IR BACKUP-OPT " := [" > > +.IR CHANGE-OPT " := [" > > .B backup > > .RB "|" > > .B nobackup > > +.RB "|" > > +.B fullmesh > > +.RB "|" > > +.B nofullmesh > > .RB "]" > > > > .ti -8 > > -- > > 2.31.1 > > > > > > > > -- > Mat Martineau > Intel >