From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id D3CBAA04FD; Wed, 8 Jun 2022 13:41:56 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 9F69840689; Wed, 8 Jun 2022 13:41:56 +0200 (CEST) Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by mails.dpdk.org (Postfix) with ESMTP id 5C1654021D for ; Wed, 8 Jun 2022 13:41:54 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1654688514; x=1686224514; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=FRzDRufIzeBbQm0ySiXLbEezKUwHkOCOPe3ggur3rt0=; b=QLqOeBgAA07Z7JLXh6E9UuHh5VaKGjsFGN5x245H52d51mnmbRpGbbIn hTQm9gkYdkecEHleYOc5n3f+ysTV30KTCzQuL6DjXgt/0deozX54SLD5e 9DVEOz66YEpCYkixUCrTobFZlAvtnTZ0gCMDTqjgVlUlHU32yrIYy/9bB Ah/w2O/YNmEYd3eBihwncIAnMEj9xoXZJhX2NVUXWrUt/tOKiev6Zct+E 6oR5zNGW/Oo7j2rTxxXdjp6/q3BU1x5AIUH/yXvo5Ui9935gP3uPHgjDv V9U/IG95homMsD87vLKZBZwqJjpsbMK/wphCEn02Kdqz6vlThU8pTHKlM Q==; X-IronPort-AV: E=McAfee;i="6400,9594,10371"; a="256694999" X-IronPort-AV: E=Sophos;i="5.91,286,1647327600"; d="scan'208";a="256694999" Received: from fmsmga007.fm.intel.com ([10.253.24.52]) by fmsmga106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 08 Jun 2022 04:41:53 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.91,286,1647327600"; d="scan'208";a="584838561" Received: from orsmsx602.amr.corp.intel.com ([10.22.229.15]) by fmsmga007.fm.intel.com with ESMTP; 08 Jun 2022 04:41:53 -0700 Received: from orsmsx611.amr.corp.intel.com (10.22.229.24) by ORSMSX602.amr.corp.intel.com (10.22.229.15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.27; Wed, 8 Jun 2022 04:41:52 -0700 Received: from orsedg603.ED.cps.intel.com (10.7.248.4) by orsmsx611.amr.corp.intel.com (10.22.229.24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.27 via Frontend Transport; Wed, 8 Jun 2022 04:41:52 -0700 Received: from NAM10-BN7-obe.outbound.protection.outlook.com (104.47.70.109) by edgegateway.intel.com (134.134.137.100) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2308.27; Wed, 8 Jun 2022 04:41:52 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=PU3VwPorTqqZl+vBut5YIW9Ll45DR3wurhvpRd/PUBGxSczICNrdj5j2CQwYqxv7XMHfX2bArzzbjzeQfBVdoL5RMiOeb/MqoZwH/l0ZrQtSYbFoOns6eg6EcE1+DgIAB5SHYWOcCJXa92PXaeTJDoPl7G2yc1ahjVltU9zDzZAOpw6HJZWlbg3G8GjmMUE6+6yqE5MpoHM0XzljdrVQH/a0M3qAboFskac3r8EhrmeC9Cc04saLOzzuNu5C11cfXL+lEEStnjqxacPhLRDfJHz+94eSFJuz4a3jSbQfYuwFuEkrIeMepCTNQgGVYxG/i5YOu0AYZuP3Y69bWNtReg== 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=CsTU5wxTKhOP+pd2lfD1Pdgr8wqQyGzs+YlSW7X4Ntk=; b=N+aZxd3NW2jQqGwEUSBcm+GKxTBgq3HCMcKhhtP7rK1jGBXErcDVp1ehqi1Wmi4McFjkrS544UF0Ga+cjchb6ci9Wb14g4R6qBqLU3HDUqPVXDoYkwV7YaPKObUpDXs7+rLnCBWdAolR7fwDVBaewZpCHDFoqcISMuVjqVDS5SsD5y16ko6P8vcnDGsXV8PJkOohqtfhXUVfs/VSWeX/9CPtyjpkXbYTYqC22U24dZaKFFSBjHHMxfDFrNcH2MvnhQE4yPxOF7Ta3HbsxKzyDx98ymRKALmFQtQS4Bx26YqCExmyKD7rlXQNtRQsbAvHZ77hoXqS5bcTvhiJbnbk9w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Received: from DM8PR11MB5670.namprd11.prod.outlook.com (2603:10b6:8:37::12) by SN6PR11MB2863.namprd11.prod.outlook.com (2603:10b6:805:5c::25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5332.12; Wed, 8 Jun 2022 11:41:50 +0000 Received: from DM8PR11MB5670.namprd11.prod.outlook.com ([fe80::89de:bffb:b66b:516b]) by DM8PR11MB5670.namprd11.prod.outlook.com ([fe80::89de:bffb:b66b:516b%8]) with mapi id 15.20.5314.019; Wed, 8 Jun 2022 11:41:50 +0000 From: "Dumitrescu, Cristian" To: Alexander Kozyrev , "dev@dpdk.org" CC: "jerinjacobk@gmail.com" , "orika@nvidia.com" , "thomas@monjalon.net" , "ivan.malov@oktetlabs.ru" , "andrew.rybchenko@oktetlabs.ru" , "ferruh.yigit@xilinx.com" , "Awal, Mohammad Abdul" , "Zhang, Qi Z" , "jerinj@marvell.com" , "ajit.khaparde@broadcom.com" , "Richardson, Bruce" Subject: RE: [PATCH v3 0/7] ethdev: separate metering and marking from policing Thread-Topic: [PATCH v3 0/7] ethdev: separate metering and marking from policing Thread-Index: AQHYdWnr2qFoycwGH0eFKjz6LmH2oq1FbeUA Date: Wed, 8 Jun 2022 11:41:49 +0000 Message-ID: References: <20220522105102.1692526-1-akozyrev@nvidia.com> <20220601034408.2579943-1-akozyrev@nvidia.com> In-Reply-To: <20220601034408.2579943-1-akozyrev@nvidia.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-version: 11.6.500.17 dlp-reaction: no-action dlp-product: dlpe-windows authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 9a33f101-b9a9-401d-0d66-08da4943e017 x-ms-traffictypediagnostic: SN6PR11MB2863:EE_ x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: Gea1pUwK/6nXD8eVNGyEWrpVb15KMpyVDEVjNYihOJOZow3+3pJu0q8YOYpHAIoZbBgN09gLN8rmTYUtHr1h7qkX0kBgSKu6yF7CJ0kQrteRqGalVVKCohoXHJ2gH5qvp3BCwZreKE6pAsTT026P0+bqUBDKuImriCbdEXlWOHPuy+hnPt/P3G9W3MzGX4wBzCVxdWTC4olH6Zb6DtwApdSS+2BYiHmth7Fwo0UyLHMFCVKOB8MLfkvPfs2gYESPz5S4oRiFaEN8olv6OvVtHfZt0Bm/4rtM/2BWdLJQCaX/67bdwJGS1+BrBthzLGiJl0y7yoyQ1ExGIM0ctnJ3HK76ajZmdiQ2hEtyguxjkbU098Fcm84pqbmbOe9jGedlZheoF6iMbDEMHD654XvlYt8GzWVR0at5yF415G1Gam8q/vxBFeHMkWJVXTFWlFcbObM0UiXUnSVQjicujxi7UahVTywzTkKjEKMSO4jVC3PkYcq6z71Zdm2HzxpH6oynymGaknyCKkie4OaPRkWK2cfyb2RUj3TWQtaFC35SimFeZm/tTYj+NtxdmAE9BhK4oLVvGiHT8oCHcjxab6tYSUTLPikarAwL5bIuJv7ut860FP5UnF2Bso5KJ23u91g/awRKPOfGeseKLlAbqkcseqoqAjfkKtSxbBYm5zokqGFUKpP3QMniTDB+Tsy7cq2ZrkNxzUUJoCJ709zbXga1sItGbu4Hd1ydJwIL9R2c5mLW2MBfvNXb1WuEtE8PcNZZ1l1qBVFu7PiA0AI/4lBZfjK8mgZYP4l5lj9/4+rvfmE= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM8PR11MB5670.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230001)(366004)(9686003)(71200400001)(107886003)(26005)(7696005)(6506007)(33656002)(2906002)(52536014)(508600001)(966005)(86362001)(186003)(53546011)(7416002)(8936002)(83380400001)(5660300002)(38100700002)(122000001)(82960400001)(38070700005)(316002)(110136005)(54906003)(55016003)(66556008)(76116006)(66946007)(66476007)(4326008)(66446008)(8676002)(64756008); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?ekRGn1FiHxqTZn9O41K9eblf5mRT2h+juR4QsRQNbxL1+dcP4qwl7Mo65D9X?= =?us-ascii?Q?fYd8Vnn/olet3DzPk4FNYp86/cWvYGz0+UEKE7Im1AhBZxCWswRSLtjeyOm9?= =?us-ascii?Q?66OF4SMYK4jyNWuKCT9FyJj42LdZw0XvqJIzEqb4JFPVzQA9kDW3E1+mPcsy?= =?us-ascii?Q?v8T3YkKG5+ikkQx34XhETSwOvtkCHivo26Ju7yLO/ZX/QwcafUpAXXAEVAQc?= =?us-ascii?Q?/ZEIvfr3bZ1C/uDAaFzeL3OJ4HzVCvgTJwwB9bvBvJd/fCx27jn4paWOj1qR?= =?us-ascii?Q?dVmUNtCLL4HVlxoTahEk4MEpfH63atlHHWjVL7gmPzlM1ZScHibGJ7xRepl+?= =?us-ascii?Q?WMCl5Qn9kvGyts1cZBps9ta0T680V41J0txEubvz2p5MH0i6kbHJ9tpZk+to?= =?us-ascii?Q?f6BIsEWAf41J6QlFyHoOoah9pe/RvYoBRtzJ5bjeSTjDGEiFTxwTddGjCc4S?= =?us-ascii?Q?zUC8yJ3r19zFjwsoLKbUO3y0AqStDpTH2iXy++NjHN5AZFnNCD1SP0sUxFci?= =?us-ascii?Q?zqMKDn/+xDyF7l73fKmJLH614Rt/Vi3MC0yJBw2U9QykEfwcI+UUtQkS+tpn?= =?us-ascii?Q?+i150mtMMbgiGu1imtqiMboekcxrqGL+xIo3ReK8We6ug9EHVy8JHw6SEqmf?= =?us-ascii?Q?SrZhlC66nMVEhsx7RnkR+4gL45bkykbIIgH+fdd2d+iU5D5oxJa5rh2T8h96?= =?us-ascii?Q?ICZOLVOzWPru03HiSL3vKlhhxuSce46pGjp85l5G6iQFUjP2PTV/HvBg1zGE?= =?us-ascii?Q?Em+7GQ3h01yKZP+nT/7wahKnTsZKW7clw4SXXzCBHgRGRZfxH3aYxS2WaI7x?= =?us-ascii?Q?FmczVbSoSZstZz2+rHBKZbsNmK8H0MOEdHMl4+0mLqRaulT5jgCC2HelaAME?= =?us-ascii?Q?GPbI6DOhHU9gMZ+T1V3L7u042UfPfALFzOs3sriHReYd68mPH7EIixdTsF9Q?= =?us-ascii?Q?rfnphbg88rcfqOZwcI5xpD12Ix/Clj0Hg599ENiGjhpV6YR5OoYnJ5L69bSI?= =?us-ascii?Q?+SCBn6Ip528d8V857qK0HQsoyZrsZ+6QJsVCXkbMfEj5iUL+hDaMnFgdZTPl?= =?us-ascii?Q?/2urgd+OxrvlgbJorEOGOD+sSU6Z4ikJU3TKSJxiM7g5RRgqwHjZBlXAf5vL?= =?us-ascii?Q?oiMAeyvDjPXdfk/sBO7WvR3XpLpek/ZbMF9tVnCp5Py7ZOB+PWsvl4soF4sI?= =?us-ascii?Q?f6gN+wo/Ok2L6QyV72EQba58b2HLXwhXa0wDcpGfNgpu+3PB2EnBjpWh5//Z?= =?us-ascii?Q?uhFy3WUG1SkO5wFZW903D9KZK1zs7rN2X5Uhi15gcIl6RBV6h3WyaB6njiEL?= =?us-ascii?Q?LF+/gdDhPbcGl1FwNdjVSa+nxioDJMdQcC/Da+eThtH6T5zPu2DNLIAQ8djY?= =?us-ascii?Q?dbTh2+30bLcfZ+gzHZKsC0q25Hagtgk88EFbZ+hrwkDLcbqcUPgYcOXKX20b?= =?us-ascii?Q?46qojUKBlJ2uRYox9R2w1RcBxzyCyknt+kb6tseX3Vaq6ZBUEWnRZoitRWtO?= =?us-ascii?Q?P88ptnHZxVpfWldAXcjEy1NMM9BIVxqw0SIRhkwBcsoCMY1FdzTeOGYShXd3?= =?us-ascii?Q?CQ1FDfSSRCXANXILl7W4LkDnlpvs9C6pXLc1fKk6WDMLIxkvwjeJLmr6WkLH?= =?us-ascii?Q?ugN6pUXkDuj28+n/MqQeIRKoUcCRduE/yssah2fnXlUAfqF8r2IbhtET3lVH?= =?us-ascii?Q?Ui4ilGcZg5fUM4WOMr6C6FHshgJWpYLOwDHuilr7UcXf4XitA2liWqT7H8TL?= =?us-ascii?Q?7XXFpfYOdfmlf7SKoSIOddJv5TW1SOg=3D?= Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM8PR11MB5670.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9a33f101-b9a9-401d-0d66-08da4943e017 X-MS-Exchange-CrossTenant-originalarrivaltime: 08 Jun 2022 11:41:49.7277 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: yEUGHO313fTf2RTtk14nufC8h2EET8TK88M4ViEn8cYIyMJVOd+3y5rap+M/PGbR1i80eZ2LWs5Pk6lPmDFRTo5cykhS08AOcst7rxRzZq0= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR11MB2863 X-OriginatorOrg: intel.com X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org > -----Original Message----- > From: Alexander Kozyrev > Sent: Wednesday, June 1, 2022 4:44 AM > To: dev@dpdk.org > Cc: Dumitrescu, Cristian ; > jerinjacobk@gmail.com; orika@nvidia.com; thomas@monjalon.net; > ivan.malov@oktetlabs.ru; andrew.rybchenko@oktetlabs.ru; > ferruh.yigit@xilinx.com; Awal, Mohammad Abdul > ; Zhang, Qi Z ; > jerinj@marvell.com; ajit.khaparde@broadcom.com; Richardson, Bruce > > Subject: [PATCH v3 0/7] ethdev: separate metering and marking from > policing >=20 > Extend Metering and Marking support in the Flow API: > 1. Add METER_COLOR item to match Color Marker set by a Meter. > 2. Add the ability to set Color Marker via modify_field Flow API. > 3. Add Meter API to get profile/policy objects. > 4. Add METER_MARK action to perform Meter color metering and marking. > Provide greater flexibility in how Metering can be used. >=20 > RFC: > https://patchwork.dpdk.org/project/dpdk/cover/20220502200439.4100965- > 1-akozyrev@nvidia.com/ >=20 > Traditional Meter Usage: >=20 > profile_id =3D rte_mtr_meter_profile_add(RFC_params); > policy_id =3D rte_mtr_meter_policy_add(actions[RED/YELLOW/GREEN]); > meter_id =3D rte_mtr_create(profile_id, policy_id); > rte_flow_create(pattern=3D5-tuple,actions=3DMETER(meter_id)); >=20 > The METER action effectively translates to the following: > 1. Metering a packet stream. > 2. Marking packets with an appropriate color. > 3. Jump to a policy group. > 4. Match on a color. > 5. Execute assigned policy actions for the color. >=20 > New Meter Usage Model: > profile_id =3D rte_mtr_meter_profile_add(RFC_params); > *profile_obj_ptr =3D rte_mtr_meter_profile_get(profile_id); > rte_flow_create(pattern=3D5-tuple, > actions=3DMETER(profile_obj_ptr),JUMP); > rte_flow_create(pattern=3DCOLOR, actions=3D...); >=20 > The METER_MARK action effectively translates to the following: > 1. Metering a packet stream. > 2. Marking packets with an appropriate color. >=20 > A user is able to match the color later with the COLOR item. > In order to do this we add the JUMP action after the METER action. >=20 > 3. Jump to a policy group. > 4. Match on a color. > 5. Execute actions for the color. >=20 > Here we decoupled the meter profile usage from the meter policy usage > for greater flexibility and got rid of any locks related to meter_id look= up. >=20 > Another example of the meter creation to mimic the old model entirely: > profile_id =3D rte_mtr_meter_profile_add(RFC_params); > *profile_obj_ptr =3D rte_mtr_meter_profile_get(profile_id); > policy_id =3D rte_mtr_meter_policy_add(actions[RED/YELLOW/GREEN]); > *policy_obj_ptr =3D rte_mtr_meter_policy_get(policy_id); > rte_flow_create(pattern=3D5-tuple, > actions=3DMETER(profile_obj_ptr, > policy_obj_ptr)); >=20 > In this case, we define the policy actions right away. > The main advantage is not having to lookup for profile_id/policy_id. >=20 > To free the meter obects we need to do the following: > rte_flow_destroy(flow_handle); > rte_mtr_meter_policy_delete(policy_id); > rte_mtr_meter_profile_delete(profile_id);. > profile_obj_ptr and policy_obj_ptr are no longer valid after that. >=20 > The meter profile configuration cannot be updated dynamically > with the current set of patches, but can be supported later on. > Now you have to destroy flows and profiles and recreate them. > But rte_mtr_meter_profile_update()/rte_mtr_meter_policy_update() > can have the corresponding siblings without mtr_id parameters. > In this case, we can update the config and all the flows using them. >=20 > The meter sharing is done via the indirect action Flow API: > profile_id =3D rte_mtr_meter_profile_add(RFC_params); > *profile_obj_ptr =3D rte_mtr_meter_prof8ile_get(profile_id); > handle =3D rte_flow_action_handle_create(action=3DMETER(profile_obj_ptr, > NULL)); > flow1 =3D rte_flow_create(pattern=3D5-tuple-1, actions=3DINDIRECT(handle)= ); > flow2 =3D rte_flow_create(pattern=3D5-tuple-2, actions=3DINDIRECT(handle)= ); >=20 > Once we are done with the flow rules we can free everything. > rte_flow_destroy(flow1); > rte_flow_destroy(flow2); > rte_flow_action_handle_destroy(handle); > rte_mtr_meter_profile_delete(profile_id); >=20 > Signed-off-by: Alexander Kozyrev >=20 > Alexander Kozyrev (7): > ethdev: add meter color flow matching item > ethdev: allow meter color marker modification > ethdev: get meter profile/policy objects > ethdev: add meter color mark flow action > app/testpmd: add meter color flow matching item > app/testpmd: allow meter color marker modification > app/testpmd: add meter color mark flow action >=20 > app/test-pmd/cmdline_flow.c | 213 +++++++++++++++++- > app/test-pmd/config.c | 26 +++ > app/test-pmd/testpmd.h | 4 + > doc/guides/prog_guide/rte_flow.rst | 32 +++ > .../traffic_metering_and_policing.rst | 7 + > doc/guides/rel_notes/release_22_07.rst | 7 + > doc/guides/testpmd_app_ug/testpmd_funcs.rst | 9 + > lib/ethdev/rte_flow.c | 2 + > lib/ethdev/rte_flow.h | 60 +++++ > lib/ethdev/rte_mtr.c | 41 ++++ > lib/ethdev/rte_mtr.h | 40 ++++ > lib/ethdev/rte_mtr_driver.h | 19 ++ > lib/ethdev/version.map | 2 + > 13 files changed, 461 insertions(+), 1 deletion(-) >=20 > -- > 2.18.2 Hi Alexander, Thanks very much for your pseudo-code detailing the updated meter & flow op= eration! Should we setup another call sometime next week to go through it? I still s= ee a few fuzzy things where we need to level set. Regards, Cristian