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 453A5A0548; Wed, 1 Jun 2022 10:55:21 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id E57E340694; Wed, 1 Jun 2022 10:55:20 +0200 (CEST) Received: from NAM04-DM6-obe.outbound.protection.outlook.com (mail-dm6nam08on2056.outbound.protection.outlook.com [40.107.102.56]) by mails.dpdk.org (Postfix) with ESMTP id C069F40689 for ; Wed, 1 Jun 2022 10:55:19 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=CTALDXxf0diWc+7oNPlO3CXA4Ct5DBS4DErQElwIxX1WyandhXfNmikGdA2F3qmNGXpKt0ce+jrJQId0HeyEU9ks5cGTLKD/uUbF+p1ViPZdvRRh+dqaNfs/wsxHx6ujrYJnaVkmXVfcxQRMBwYe71y5q/N4swlMJpJw+JAt9gwJMnvqZrS0desY39Ypns4qwO2ZZsA9Ctoe0wGojJn9sVX9NhJdRJjFsEXQg0yQZTsC/12q2zfp13SGqMsYlC6sl4Nht4VDNVCrDVQeZedJ9mQK++rahCTdiMJsJNXyg+8TxGkKG+xy7fmtIa94zv3b8N3wBKY68HOepw7WGB2hKA== 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=cHme/duvANdPlPvvgSHEiRGOZVCXUVqO/MABgsvEoxo=; b=BZnUvW31J2lRo/roanWt1JxABwvZxf3wifxzG2Oc7XEOCcIenzO4DuBxVMEmp+JITySzhCcUUFDqH9syLE+IYpE3CoZQScbJR68dpM8db17jl2vq1jabsICKL2+5TPRCPtLNeCy0v9Oy0fzUWU7/4rO0/eEyr2o3qO4ofXQS3rSgqyS4bnid6IptGVm8S7r9wM5pGyptY3SkuQAxxD/je9iPsh9w4jFUUUmb7zVdcuzhGDSKUV52/U/Ze2q5hWpys+ZlXG0lmvuAxC55FyAuiHrYYaS6rN3KeW5TAAZFXkokBKxXYcwy1YpAbg7r7pwPZzicLVSVvHdCoFnKF+ER0Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=cHme/duvANdPlPvvgSHEiRGOZVCXUVqO/MABgsvEoxo=; b=B/9gc9b6iTysr3WmXwV5nwK2XSXZg3GKtVgvSgpRrIq3L2lnD+VPyrjTHBZMJMyrRWEJbsw6H1nHgB0SYAwi4f41eyNdSTlka02raps1sOIOqzBFpGK8u3D+eYzdfcAf/Q26WeU0TzV3NLKjXwC8nG6vO2kzri3oLRFoA1+CFAKgLAkVcGcMXrcNemloWur8gabG+tWoY6/52biI8ouxYr7SCIk/DxwZkLGArB9GpvDqSBM0Sx82FXkY1OwyO8caHWqSdYeDvBpXRwpupkKoYquLpjgqbx/oKx8FHQLumsu1Ud7gF+utH2ZxT4Z8HfdQ2rK6RUJuFX8VabJuffndMQ== Received: from MW2PR12MB4666.namprd12.prod.outlook.com (2603:10b6:302:13::22) by BL1PR12MB5377.namprd12.prod.outlook.com (2603:10b6:208:31f::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5314.12; Wed, 1 Jun 2022 08:55:17 +0000 Received: from MW2PR12MB4666.namprd12.prod.outlook.com ([fe80::edeb:4144:1ee4:83a1]) by MW2PR12MB4666.namprd12.prod.outlook.com ([fe80::edeb:4144:1ee4:83a1%6]) with mapi id 15.20.5293.019; Wed, 1 Jun 2022 08:55:17 +0000 From: Ori Kam To: Alexander Kozyrev , "dev@dpdk.org" CC: "cristian.dumitrescu@intel.com" , "jerinjacobk@gmail.com" , "NBU-Contact-Thomas Monjalon (EXTERNAL)" , "ivan.malov@oktetlabs.ru" , "andrew.rybchenko@oktetlabs.ru" , "ferruh.yigit@xilinx.com" , "mohammad.abdul.awal@intel.com" , "qi.z.zhang@intel.com" , "jerinj@marvell.com" , "ajit.khaparde@broadcom.com" , "bruce.richardson@intel.com" Subject: RE: [PATCH v3 4/7] ethdev: add meter color mark flow action Thread-Topic: [PATCH v3 4/7] ethdev: add meter color mark flow action Thread-Index: AQHYdWnvhBZWRDGcUkeN/OtZ2W7x2a06P2Lw Date: Wed, 1 Jun 2022 08:55:17 +0000 Message-ID: References: <20220522105102.1692526-1-akozyrev@nvidia.com> <20220601034408.2579943-1-akozyrev@nvidia.com> <20220601034408.2579943-5-akozyrev@nvidia.com> In-Reply-To: <20220601034408.2579943-5-akozyrev@nvidia.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 0e4ed988-0bfc-41f2-111e-08da43ac7385 x-ms-traffictypediagnostic: BL1PR12MB5377:EE_ x-ld-processed: 43083d15-7273-40c1-b7db-39efd9ccc17a,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: AevH09r+yaQ25ctt0yczgPU6jI9imRfCR8dNs1ozQN55nsEXgttnobAL6tlq3JkPvt9DbZGkmy0vcoAppgKbyz9n/7s/nojcN3WncaFH0CSGW3xQG2nUu04GaVdbzV9oqO89gwJSu/JKo0PKKiNlhhSIBEcwJYRKCK4MjgRW8cV0F1t8zx7rarFcSf2lpQ7FwIocwWGfVbd931WK6GE/F2xDacK+2x+kiFu3tIHrPdypIDsl+Updbv5VcE5VJVr8DQ7cK8V1CU4V8TSthEcpIWJPI9pGVlmSZ/tfRiJk00YhcCFTfZ/stIOeq7xjgXLHyRc9tWAatz9hRqNSJ4ri/PdpqwFm75n4sRH9b5qQUf0AQKGLgbXl08gb6BjHowUPa3g863xrL8AEu5d2/xX8JGdHUB6aMK/NKLuggtSPUSFXKuop9ZgdCNS9V9Ngkwh1ChrBxbBqgY2G6TdySdZVM28Cg6v/SgxEpmYzkAZ49YS6T+1MzwkQCvyS+mV5SEjQEouOcPoEMNWFaGamd+w+91m4xk8TsNTCER3Csm+ejRVBGnwZ27YHwwWGQKnClIj0YUQijyEMWt/E+TdXRi4hg7hw0/f3UJvQe3CFsAGFKc4ynzlu9zeXyAnF5EwvyAcLx5sos5lNl0hqUeBUnwqWdaMji15Cir01FgSrYaxVNKnx309J3su9mAfGfZi14W5BDwp5IkEx/0R80ev19JWj1A== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:MW2PR12MB4666.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230001)(4636009)(366004)(186003)(26005)(9686003)(53546011)(7696005)(8936002)(52536014)(6506007)(66476007)(66556008)(38070700005)(110136005)(316002)(122000001)(76116006)(4326008)(64756008)(66946007)(66446008)(8676002)(71200400001)(5660300002)(508600001)(38100700002)(7416002)(2906002)(33656002)(54906003)(86362001)(55016003)(83380400001); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?JDd/Lx6h7oNLMXVS6np+uuCrRaZsnqfx6vzOA6Uo+WvMQsYuwj81ixGLrSor?= =?us-ascii?Q?VCbWAY8es3umbgYH59urlzsBEoreTL4klah/GPw1Oc+8cBPtB7zvXe5rVgPx?= =?us-ascii?Q?7NdxVZUGuzmR2pHIavzHf/qP9z001WaNahV6cGi1jnTs/jWfAkZ0LZJSbwuO?= =?us-ascii?Q?1CxsERL4iJBhn0bPMRgl6BkkOfITPDkG7DmvTf+FMJOAuKLtrgY/V38YUMf0?= =?us-ascii?Q?NJIbRCZntJDvTClnvqTpc9+sbcyPyeXXomytjqOC68CCm4CXYI7kcaZx2S1i?= =?us-ascii?Q?o/kiDv0vlFINRcFGNBk3N1PQId6OdLS9Pj+wFyAGjKB9gOx3MTYuh9yYoKkg?= =?us-ascii?Q?JAE4REqvzc9vSVrmn+eHvbSMFiCTxb8ooeRTk36/u/d6sbWSJMpjKTjHOo9n?= =?us-ascii?Q?PGApk6jtKF8yi3fb3p8pRgnJHD4vH6Ib5mJxxMMeEL97hBh5I7rqBkmk00k/?= =?us-ascii?Q?xES9kjYjDTtJ+fAUKd62zr67cSuwD4jvVWDVAdcdawzG7mwU4pPmYhEshmiX?= =?us-ascii?Q?5DwzhSFdJ+imZ9QrAyuqJp+lyGRczZm7uAb1qF7i6lDPnxbF+dYhMge9ZuLT?= =?us-ascii?Q?erwcq3RJs3ExL9MFVVar6ULz+N1z01HU3L3VJf58hLAiCD6g+rtTGlrzadpY?= =?us-ascii?Q?3Q8ALlqBCIOzDAAjx052uW11z10KDvWFMjbpKvQ0jh2UjoGTCbAxTjsHdXB+?= =?us-ascii?Q?4hECct2OBjqkJSTHoB0sNVNVI6TQ0Rxhv/BzHpjqNBjQg4SjVjvyh3rfFVW/?= =?us-ascii?Q?eMy0oB6ok+gj72vcn9CA/dPTZtRwxFJRev4Wd2B0yYtxn+Guf6OC8093IEpH?= =?us-ascii?Q?6cglZW3Wk9kfndSAcoSGjTeGG4zFFEXikUUGQ91zKxiqLI2vzfEZfcDmcCGt?= =?us-ascii?Q?qxbNFQBzqPmKdTvdGBYuwWugKWnshQSgjNNLKTCytWOy3kuIrvcBwk3O438r?= =?us-ascii?Q?beuSVJQCcVwC8FQcoKx+7BlsheEU1V0iMorFTDzAMzvcXdNby9K7MiYQrAOE?= =?us-ascii?Q?2qSsRqsAvSNUAEnbJPA5uCQ7NAvmBZlJZeVpkzhIpuHCvK5ClgTMCilH7Wll?= =?us-ascii?Q?XWucWPF/jWcObQl1g0vLuINknX3WebVd0OT/5JV0UE/ZNDztIOO6sHmD8Jut?= =?us-ascii?Q?yNeU7J+WQ7Yv7LdRneqX+BAGlQwzkRHcrOZoac8cHuvqIAIUcvXV2Z137qXl?= =?us-ascii?Q?B/OCFgwvMyIFtWHYaU4o0EIXwX4azxKfqfvB2wwbb4N5XmsIbfiA9fOyZ2UQ?= =?us-ascii?Q?FgpG1QaXYgveUyZmIf4Xt0bIRBXw06k4JCw2sXyJ2YxmRf1qJdF8O871/zxV?= =?us-ascii?Q?oAogmYswl8D6prD3hssvSAbPeUFPExFFRgQjspLcYqA2Du6Uiw8Ibi2Qg5BR?= =?us-ascii?Q?W2uL5bHacXayGWM80eONqm7KLFnK+3rEphNl+Be5pdZzcTMBRUWC1Q6JWZXj?= =?us-ascii?Q?bcO5QZ69mDaVTJHBwn+PDQvEj/X3Jo7WeyoYZccyaMNFixHytJn7s7UiOotm?= =?us-ascii?Q?Ma5/aBpI6Y+4vVV3Tt8eFW+6MJ/WMyMXGky551MCQRbeJjVdrUGGgnrm4mKE?= =?us-ascii?Q?2dWxJ56NuWu9/oXF7C0m8MedR7ZPV8T3sm11CAcDJwJn9KRJgFYr6f6tgFmK?= =?us-ascii?Q?KCvtyv9X643tgxUbUu0CRckAaEWav+vhz53ZYowi+FJ//NYx7US2CTja00WX?= =?us-ascii?Q?b0vNIponfeMh1neIies3wD3ruOaD4cgBtq8T+9xX2iWzSeS2?= Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MW2PR12MB4666.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 0e4ed988-0bfc-41f2-111e-08da43ac7385 X-MS-Exchange-CrossTenant-originalarrivaltime: 01 Jun 2022 08:55:17.7570 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: zi7skmzMijX/p+a1F9wN8jibzLDSSsByRFxTWgRoVw1OTWyWiQ7aVSZV/qJoDXiIvu/Vl0ugy1nUKqcrjLHVlg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL1PR12MB5377 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 Hi Alexander, Small comment, maybe worth saying that the marking is done on a metadata an= d not on a packet field. > -----Original Message----- > From: Alexander Kozyrev > Sent: Wednesday, June 1, 2022 6:44 AM > To: dev@dpdk.org > Cc: cristian.dumitrescu@intel.com; jerinjacobk@gmail.com; Ori Kam ; NBU- > Contact-Thomas Monjalon (EXTERNAL) ; ivan.malov@okte= tlabs.ru; > andrew.rybchenko@oktetlabs.ru; ferruh.yigit@xilinx.com; mohammad.abdul.aw= al@intel.com; > qi.z.zhang@intel.com; jerinj@marvell.com; ajit.khaparde@broadcom.com; > bruce.richardson@intel.com > Subject: [PATCH v3 4/7] ethdev: add meter color mark flow action >=20 > Create a new Flow API action: METER_MARK. > It Meters an IP packet stream and marks its packets with colors. > Unlike the METER action, it performs no policing at all. > A user has the flexibility to create any policies with the help of > the METER_COLOR item later, only meter profile is mandatory here. >=20 > Signed-off-by: Alexander Kozyrev > --- > doc/guides/prog_guide/rte_flow.rst | 25 +++++++++++++++++++++++ > doc/guides/rel_notes/release_22_07.rst | 1 + > lib/ethdev/rte_flow.c | 1 + > lib/ethdev/rte_flow.h | 28 ++++++++++++++++++++++++++ > 4 files changed, 55 insertions(+) >=20 > diff --git a/doc/guides/prog_guide/rte_flow.rst b/doc/guides/prog_guide/r= te_flow.rst > index 018def1033..90f0ebc9bc 100644 > --- a/doc/guides/prog_guide/rte_flow.rst > +++ b/doc/guides/prog_guide/rte_flow.rst > @@ -3411,6 +3411,31 @@ This action is meant to use the same structure as = `Action: > PORT_REPRESENTOR`_. >=20 > See also `Item: REPRESENTED_PORT`_. >=20 > +Action: ``METER_MARK`` > +^^^^^^^^^^^^^^^^^^^^^^ > + > +Meters an IP packet stream and marks its packets with colors. > + > +Unlike the ``METER`` action, policing is optional and may be > +performed later with the help of the ``METER_COLOR`` item. > +The profile and/or policy objects have to be created > +using the rte_mtr_profile_add()/rte_mtr_policy_add() API. > +Pointers to these objects are used as action parameters > +and need to be retrieved using the rte_mtr_profile_get() API > +and rte_mtr_policy_get() API respectively. > + > +.. _table_rte_flow_action_meter_mark: > + > +.. table:: METER_MARK > + > + +------------------+----------------------+ > + | Field | Value | > + +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D+=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D+ > + | ``profile`` | Meter profile object | > + +------------------+----------------------+ > + | ``policy`` | Meter policy object | > + +------------------+----------------------+ > + > Negative types > ~~~~~~~~~~~~~~ >=20 > diff --git a/doc/guides/rel_notes/release_22_07.rst b/doc/guides/rel_note= s/release_22_07.rst > index 6d030bead5..fca7d07e4b 100644 > --- a/doc/guides/rel_notes/release_22_07.rst > +++ b/doc/guides/rel_notes/release_22_07.rst > @@ -74,6 +74,7 @@ New Features > * Added METER_COLOR item to match Color Marker set by a Meter. > * Added ability to set Color Marker via modify_field Flow API. > * Added Meter API to get a pointer to profile/policy by their ID. > + * Added METER_MARK action for Metering with lockless profile/policy ac= cess. >=20 > * **Updated Intel iavf driver.** >=20 > diff --git a/lib/ethdev/rte_flow.c b/lib/ethdev/rte_flow.c > index 07d7e998c0..9049d3bad3 100644 > --- a/lib/ethdev/rte_flow.c > +++ b/lib/ethdev/rte_flow.c > @@ -262,6 +262,7 @@ static const struct rte_flow_desc_data rte_flow_desc_= action[] =3D { > MK_FLOW_ACTION(CONNTRACK, sizeof(struct rte_flow_action_conntrack)), > MK_FLOW_ACTION(PORT_REPRESENTOR, sizeof(struct rte_flow_action_ethdev))= , > MK_FLOW_ACTION(REPRESENTED_PORT, sizeof(struct rte_flow_action_ethdev))= , > + MK_FLOW_ACTION(METER_MARK, sizeof(struct rte_flow_action_meter_mark)), > }; >=20 > int > diff --git a/lib/ethdev/rte_flow.h b/lib/ethdev/rte_flow.h > index 9754f6630a..2dc80ad9ef 100644 > --- a/lib/ethdev/rte_flow.h > +++ b/lib/ethdev/rte_flow.h > @@ -2906,6 +2906,15 @@ enum rte_flow_action_type { > * @see struct rte_flow_action_ethdev > */ > RTE_FLOW_ACTION_TYPE_REPRESENTED_PORT, > + > + /** > + * Traffic metering and marking (MTR). > + * the entity represented by the given ethdev. > + * > + * @see struct rte_flow_action_meter_mark > + * See file rte_mtr.h for MTR profile object configuration. > + */ > + RTE_FLOW_ACTION_TYPE_METER_MARK, > }; >=20 > /** > @@ -3775,6 +3784,25 @@ struct rte_flow_action_modify_field { > uint32_t width; /**< Number of bits to use from a source field. */ > }; >=20 > +/** > + * RTE_FLOW_ACTION_TYPE_METER_MARK > + * > + * Traffic metering and marking (MTR). > + * > + * Meters an IP packet stream and marks its packets either > + * green, yellow, or red according to the specified profile. > + * The policy is optional and may be specified for defining > + * subsequent actions based on a color assigned by MTR. > + * Alternatively, the METER_COLOR item may be used for this. > + */ > +struct rte_flow_action_meter_mark { > + > + /**< Profile config retrieved with rte_mtr_profile_get(). */ > + struct rte_flow_meter_profile *profile; > + /**< Policy config retrieved with rte_mtr_policy_get(). */ > + struct rte_flow_meter_policy *policy; > +}; > + > /* Mbuf dynamic field offset for metadata. */ > extern int32_t rte_flow_dynf_metadata_offs; >=20 > -- > 2.18.2 Acked-by: Ori Kam Best, Ori