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 AED83A0C47; Tue, 12 Oct 2021 16:39:31 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 889FC410FC; Tue, 12 Oct 2021 16:39:31 +0200 (CEST) Received: from NAM02-BN1-obe.outbound.protection.outlook.com (mail-bn1nam07on2059.outbound.protection.outlook.com [40.107.212.59]) by mails.dpdk.org (Postfix) with ESMTP id BF94740151 for ; Tue, 12 Oct 2021 16:39:29 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=I1r3CMq37RR17PhqWaUe5qDRQ9wGokYreNNgrpLeLU4McXwHOt/2tyU1cY5fR21n7z4YB5qZFmkx2xgsEvYXkN9/UUOCNM1efsPaCEs6XQzootWF16EKMWSKzXDT5xbcYkyYRslPPAanqWR6stLpKp4Mjm3U/mj+//oYxG83bZUR8UsJRSJR+9k7GBUMa0kHlS0RO6diWpKFLPKipCCcAwKZhdoFxbR11AIgn2fPvmUab0NQx9EYnzgb7YzZDgr/Sj7Fhr14ztWVyH8cOuVz6lt4fv4hAxxJbSSCQmZED4gMMqoBF+xXpJbbLRfC0rTpyn8+tM7FIQlcAIoIjm9ZXg== 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=x3IaYieuOUS4NPIcAEjQU8Xo3CP6dKK+RRhjvZ8FK9Q=; b=YoKLOUreCpRp/snvVjdSoogThrdJFC6z2JNnBz2Rr4djMZzO8vZ2+tARlRVTByO0X3q9ZqQvfHdSRm1LkdXP+uKhTu4Vipuej5pvJJT/vvXet2/Lo/QUlxGRg8AYNv4X3bJeIh8mG7m/C3Q3meRkM0Wg3V3pyZPWA2irL4nj2Q9OtdIVaYfofFkBugyoTVDNt8MriACjmyu3TBGpBh2P6Gd790X4eotSodg1L71nWGs29EsmhfWnq+aoReItVJBfTq52Dyrhqz0W84EYgw1ihVaR++aj7xRqOklnA2f5R9gSa2oX1VF23sweCRfg7isiMNok87x8XTm0FHVMvPlKmA== 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=x3IaYieuOUS4NPIcAEjQU8Xo3CP6dKK+RRhjvZ8FK9Q=; b=obGRkJhxkmbYmCPreFglx3c/KCR6Lvzk5bZ+i21X5lDZWh/fqBfTWDV+Slhqr9Bu6kkLROuelxve7LIYfg5vT81ib24t4Vi8m8kEKFCl5B/DV2Qs6LtkNGZUtMj9pcdpZsDHdIU337zel+zEihlMnVeZLX/SApm5mZvq4ZnppJUyLfiBDSYDAzoTDpicA4IuaW1rGqRiHX82an653qaaB4QnsYz4rKzFKpPb/4mjkC8X3U/XV5r5p9DyyK2OYGo14fum6jVZm/8nlQaE0S0YjLWQ//dMeCEp5gvyhF4X793jTAn8fPLlfZ0xA+g9AhzqMsxxHYPa5/6XHPg/ZehN8Q== Received: from DM8PR12MB5400.namprd12.prod.outlook.com (2603:10b6:8:3b::12) by DM4PR12MB5214.namprd12.prod.outlook.com (2603:10b6:5:395::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4587.18; Tue, 12 Oct 2021 14:39:28 +0000 Received: from DM8PR12MB5400.namprd12.prod.outlook.com ([fe80::d03d:1f75:ca20:6a32]) by DM8PR12MB5400.namprd12.prod.outlook.com ([fe80::d03d:1f75:ca20:6a32%6]) with mapi id 15.20.4587.026; Tue, 12 Oct 2021 14:39:28 +0000 From: Ori Kam To: Slava Ovsiienko , "dev@dpdk.org" CC: Raslan Darawsheh , Matan Azrad , Shahaf Shuler , Gregory Etelson , NBU-Contact-Thomas Monjalon Thread-Topic: [PATCH v5 3/5] ethdev: implement RTE flex item API Thread-Index: AQHXv2hkbbTg8ubJiEmR6MC9/9oUgavPbrEQ Date: Tue, 12 Oct 2021 14:39:27 +0000 Message-ID: References: <20210922180418.20663-1-viacheslavo@nvidia.com> <20211012125433.31647-1-viacheslavo@nvidia.com> <20211012125433.31647-4-viacheslavo@nvidia.com> In-Reply-To: <20211012125433.31647-4-viacheslavo@nvidia.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: nvidia.com; dkim=none (message not signed) header.d=none;nvidia.com; dmarc=none action=none header.from=nvidia.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: dc80e341-f0be-4048-0a15-08d98d8e1847 x-ms-traffictypediagnostic: DM4PR12MB5214: x-ld-processed: 43083d15-7273-40c1-b7db-39efd9ccc17a,ExtAddr x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:5236; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: IYXwzd+OUfajb7coQbkPNsxnlW9zlkV1ejIaCr1AM6MOTbyzOS6uXMQSThGukmlkX/bCLIjFRcyL9Vqi9bL7DKrQTg2XgvS03wuo4avF89N8blj7jkRhNbHgL7HRidu8qZnONe59GULmhu+A/+SOroVtC1eqmOueeKvLG6UxLUWcvOmlzmPojgi52eFpyKyYoX9ScN1d0d2hAyVhjon+f2wUonIdFvlqAXb7YdmXCdj//JH2Y7agGt+8E8gfnu3xudCYeKsfuJ6bcE4tyZVTQeCK0Qsp+NsQxWzmBNIJDQ8aoN26+9B185uct8SAGIDhQccdGuVv2FA6KE8NkkGEwDJEztHRFIHciZw2she+NYkWHvLb7TPPydUoXM1vUcYzxgd5572XZ3b1YnwomZTD8pp1gM4kWA01/eCR9s/7ivrojPnbhnO+bFFwE4TrCsVd0ZQkc0UakOLeqrl9BHCY8yRy2Cu6BTzulDYJoK6aEbxgRSAX4A8Vfbdat/edaM4swxsjMyMtR2qNj1Jj92wieYKu6XXeiSg/FitbCxsTY4wAFvCjzrBMtWxoiN5sGr2sp9hZyAq66vT2tA9nPQR16xOLKhOuIL7RSB1Br+CsLTEENpbZ8ePsSH2OeyxHQ5N/LsmXc/zI3VVrB2NwFB0j6tGuZHFlffaROGb8AeNPlVq7w0QMC+7yu0r0UEjnVBDwX3Y2jznEPq/8xhD2ClIgYg== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM8PR12MB5400.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(366004)(54906003)(83380400001)(6506007)(8936002)(53546011)(76116006)(66946007)(7696005)(186003)(26005)(122000001)(5660300002)(52536014)(38100700002)(38070700005)(8676002)(86362001)(9686003)(66556008)(64756008)(55016002)(66446008)(33656002)(66476007)(110136005)(71200400001)(316002)(508600001)(4326008)(2906002); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?ixSWnJ1qI1Lt/SxzaOWFUvHEIxJUiSyvCLCRoy5Y+AvSCqIKJ4Bls5hPZ8L8?= =?us-ascii?Q?Mt9T5Aq3mDTQpTJz7ZNJAi5YWMvqdFfDloZHKRKMwAKPVFut2J9Z6iU9t9St?= =?us-ascii?Q?1BYJAS5qYf30ChLPW8ZXJ9Nj6wnltJ9Bt2BAAJKsq6Jq8VU+a0UCwm5uJNe+?= =?us-ascii?Q?1xbhZ5vAnUR1oYPvRYkHAZTNjhKOqUEoJ7frJAaX8TuJh6oyQux3YcBVucb3?= =?us-ascii?Q?xJ28e1CzBws4lOe4umN/R6CrjSQNSiwGO78DEGKOeR/Z/Br1Pt9idg+Rx/jm?= =?us-ascii?Q?RId45qlENu6sm1nRDvPABXvxhaWTAoR//vGrrJpZcXoerGy4JHZpgKNnArtw?= =?us-ascii?Q?49s2IdSan/nXrctZ4AZY+2WHQRFdPuk1vUaFiuK5JdZeEBDi6+TLEwkre0uG?= =?us-ascii?Q?nvjq4NK7sDmrQ2amlB6QlhP4gfAfTvUorEUFD2bsPATZM2HPURCiHcFcwZF/?= =?us-ascii?Q?YsT/Rf1hF++IztBCJ8K99+fTUUuEF8DsLiOtDIbjBKCCmCDKAoJMugt0i3CT?= =?us-ascii?Q?t37qjV+y+/xK8fsO5PklcOhfFP3gjCNsL5rCG03rXLOP9a+P8qkj3eyjijYc?= =?us-ascii?Q?lipJfpTd9Z++TlK2RWU0viSlLpkr6GJEcmDLOsu3H5CF2MG6yb/aY2QJST1l?= =?us-ascii?Q?9oGZwtx9JMgmkYnRsDNRHOqTUkRr5vve25OdDwlJcOmT1e1I1SURmIz68nMr?= =?us-ascii?Q?zQ62cpebfxDDFx44y31NIBmJ+k1WDa/K0wP2AAStZ9Dkd5tKrm1UADwsc7r7?= =?us-ascii?Q?1uuJQGwHfagaK7bzN6OEga6Bc5tTIJPJooYwIYjMpGSV9tNwp+lkZV2dEfkW?= =?us-ascii?Q?D74x/XeD0FN9SQPnLfodbgaJ/RCoCHH9fBBc4ZyIrjIdFQOYIKdfK/tUXK4Q?= =?us-ascii?Q?8D0hsdQQPHustkVwgayP8GEYMesLJ9YyMqQKfQM5DrWbHYL5/HluOa3gXWCk?= =?us-ascii?Q?XDCvijtPM2nQLCoTucFIztGEXT8k5hZqJzh8ytmp9HDb0kHfbIsTS8T2haGm?= =?us-ascii?Q?/e7daagzCS7zht+jP7BPRZJScC2AsLqjTKVIneSIj4ZUMkkLCxLw6s2QU1g2?= =?us-ascii?Q?1xt/qKmhUoI7Sfl6wmjwx45WJRnODeIHPe1psfXk2rE/0sNqWM1KMtbpTuvA?= =?us-ascii?Q?HnR9QONsGDYa5AE/YYZ5TpXuIzpIwhyZRHBNDERhMRhgguj4TlB9TcfUdP21?= =?us-ascii?Q?s7eugDDGpYhl9E2UruVo72rNVd+xwFO2fU0fLgpTh0gaVKIrHsOT0jXXtUW3?= =?us-ascii?Q?O+z3w7vaecNV3fY543el+oYDWBZxsgH+RpOaBu5jcW+nLJDriJwmTGa9G0Yo?= =?us-ascii?Q?9CYDdYaAOujRDaNL1OiHOTMg?= 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: DM8PR12MB5400.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: dc80e341-f0be-4048-0a15-08d98d8e1847 X-MS-Exchange-CrossTenant-originalarrivaltime: 12 Oct 2021 14:39:28.0363 (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: WQCCtJ7dGy6B2CsnlT7z5voxAN0aYuZHTcZYKlEMx5GmM2Kzx+2+hMUpbUcylpWgQg6xgM7f5Q5RZNFF13vLgQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB5214 Subject: Re: [dpdk-dev] [PATCH v5 3/5] ethdev: implement RTE flex item API 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 Sender: "dev" Hi Slava, > -----Original Message----- > From: Slava Ovsiienko > Sent: Tuesday, October 12, 2021 3:55 PM > Subject: [PATCH v5 3/5] ethdev: implement RTE flex item API >=20 > From: Gregory Etelson >=20 > RTE flex item API was introduced in > "ethdev: introduce configurable flexible item" patch. >=20 > The API allows DPDK application to define parser for custom network heade= r in port hardware and offload > flows that will match the custom header elements. >=20 > Signed-off-by: Gregory Etelson > Reviewed-by: Viacheslav Ovsiienko > --- > lib/ethdev/rte_flow.c | 40 ++++++++++++++++++++++++++++++++++++ > lib/ethdev/rte_flow_driver.h | 8 ++++++++ > lib/ethdev/version.map | 4 ++++ > 3 files changed, 52 insertions(+) >=20 > diff --git a/lib/ethdev/rte_flow.c b/lib/ethdev/rte_flow.c index 051781b4= 40..8257ed8c97 100644 > --- a/lib/ethdev/rte_flow.c > +++ b/lib/ethdev/rte_flow.c > @@ -1321,3 +1321,43 @@ rte_flow_tunnel_item_release(uint16_t port_id, > RTE_FLOW_ERROR_TYPE_UNSPECIFIED, > NULL, rte_strerror(ENOTSUP)); > } > + > +struct rte_flow_item_flex_handle * > +rte_flow_flex_item_create(uint16_t port_id, > + const struct rte_flow_item_flex_conf *conf, > + struct rte_flow_error *error) > +{ > + struct rte_eth_dev *dev =3D &rte_eth_devices[port_id]; > + const struct rte_flow_ops *ops =3D rte_flow_ops_get(port_id, error); > + struct rte_flow_item_flex_handle *handle; > + > + if (unlikely(!ops)) > + return NULL; > + if (unlikely(!ops->flex_item_create)) { > + rte_flow_error_set(error, ENOTSUP, > + RTE_FLOW_ERROR_TYPE_UNSPECIFIED, > + NULL, rte_strerror(ENOTSUP)); > + return NULL; > + } > + handle =3D ops->flex_item_create(dev, conf, error); > + if (handle =3D=3D NULL) > + flow_err(port_id, -rte_errno, error); > + return handle; > +} > + > +int > +rte_flow_flex_item_release(uint16_t port_id, > + const struct rte_flow_item_flex_handle *handle, > + struct rte_flow_error *error) > +{ > + int ret; > + struct rte_eth_dev *dev =3D &rte_eth_devices[port_id]; > + const struct rte_flow_ops *ops =3D rte_flow_ops_get(port_id, error); > + > + if (unlikely(!ops || !ops->flex_item_release)) > + return rte_flow_error_set(error, ENOTSUP, > + RTE_FLOW_ERROR_TYPE_UNSPECIFIED, > + NULL, rte_strerror(ENOTSUP)); > + ret =3D ops->flex_item_release(dev, handle, error); > + return flow_err(port_id, ret, error); > +} > diff --git a/lib/ethdev/rte_flow_driver.h b/lib/ethdev/rte_flow_driver.h = index 46f62c2ec2..34a5a5bcd0 > 100644 > --- a/lib/ethdev/rte_flow_driver.h > +++ b/lib/ethdev/rte_flow_driver.h > @@ -139,6 +139,14 @@ struct rte_flow_ops { > struct rte_flow_item *pmd_items, > uint32_t num_of_items, > struct rte_flow_error *err); > + struct rte_flow_item_flex_handle *(*flex_item_create) > + (struct rte_eth_dev *dev, > + const struct rte_flow_item_flex_conf *conf, > + struct rte_flow_error *error); > + int (*flex_item_release) > + (struct rte_eth_dev *dev, > + const struct rte_flow_item_flex_handle *handle, > + struct rte_flow_error *error); > }; >=20 > /** > diff --git a/lib/ethdev/version.map b/lib/ethdev/version.map index 904bce= 6ea1..ec3b66d7a1 100644 > --- a/lib/ethdev/version.map > +++ b/lib/ethdev/version.map > @@ -247,6 +247,10 @@ EXPERIMENTAL { > rte_mtr_meter_policy_delete; > rte_mtr_meter_policy_update; > rte_mtr_meter_policy_validate; > + > + # added in 21.11 > + rte_flow_flex_item_create; > + rte_flow_flex_item_release; > }; >=20 > INTERNAL { > -- > 2.18.1 Acked-by: Ori Kam Best, Ori