Message ID | 20210114070743.2377-1-shirik@nvidia.com (mailing list archive) |
---|---|
Headers |
Return-Path: <dev-bounces@dpdk.org> X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 2D7E9A0A02; Thu, 14 Jan 2021 08:08:24 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id B2C87140EA4; Thu, 14 Jan 2021 08:08:23 +0100 (CET) Received: from mellanox.co.il (mail-il-dmz.mellanox.com [193.47.165.129]) by mails.dpdk.org (Postfix) with ESMTP id 217B8140E73 for <dev@dpdk.org>; Thu, 14 Jan 2021 08:08:22 +0100 (CET) Received: from Internal Mail-Server by MTLPINE1 (envelope-from shirik@nvidia.com) with SMTP; 14 Jan 2021 09:08:16 +0200 Received: from nvidia.com (c-141-140-1-007.mtl.labs.mlnx [10.141.140.7]) by labmailer.mlnx (8.13.8/8.13.8) with ESMTP id 10E78GjD013095; Thu, 14 Jan 2021 09:08:16 +0200 From: Shiri Kuzin <shirik@nvidia.com> To: dev@dpdk.org Cc: viacheslavo@nvidia.com, adrien.mazarguil@6wind.com, orika@nvidia.com, ferruh.yigit@intel.com, thomas@monjalon.net, rasland@nvidia.com, andrew.rybchenko@oktetlabs.ru Date: Thu, 14 Jan 2021 09:07:34 +0200 Message-Id: <20210114070743.2377-1-shirik@nvidia.com> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20210112140241.15914-1-shirik@nvidia.com> References: <20210112140241.15914-1-shirik@nvidia.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: [dpdk-dev] [PATCH v6 0/9] ethdev: introduce GENEVE header TLV option item X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions <dev.dpdk.org> List-Unsubscribe: <https://mails.dpdk.org/options/dev>, <mailto:dev-request@dpdk.org?subject=unsubscribe> List-Archive: <http://mails.dpdk.org/archives/dev/> List-Post: <mailto:dev@dpdk.org> List-Help: <mailto:dev-request@dpdk.org?subject=help> List-Subscribe: <https://mails.dpdk.org/listinfo/dev>, <mailto:dev-request@dpdk.org?subject=subscribe> Errors-To: dev-bounces@dpdk.org Sender: "dev" <dev-bounces@dpdk.org> |
Series |
ethdev: introduce GENEVE header TLV option item
|
|
Message
Shiri Kuzin
Jan. 14, 2021, 7:07 a.m. UTC
The Geneve tunneling protocol is designed to allow the user to specify some data context on the packet. The GENEVE TLV (Type-Length-Variable) Option is the mean intended to present the user data. In order to support GENEVE TLV Option the new rte_flow item "rte_flow_item_geneve_opt" is introduced. The new item contains the values and masks for the following fields: -option class -option type -length -data The usage example: "flow create 0 ingress pattern eth / ipv4 / udp / geneve vni is 100 / geneve-opt class is 5 length is 1 type is 0 data is 0x66998800 / end actions count / drop / end" New item will be added to testpmd to support raw encap/decap action. v6: - added testpmd support for GENEVE option length. - updated setting GENEVE option length value. v5: - added Devx function to def file. v4: - fixed setting option length. - fixed testpmd calculation of GENEVE option size. - updated documentation. v3: - updated documentation. v2: - removed pedantic. Shiri Kuzin (7): lib/librte_ethdev: introduce GENEVE header TLV option item common/mlx5: check GENEVE TLV support in HCA attributes common/mlx5: create GENEVE TLV option object with DevX net/mlx5: create GENEVE TLV option management net/mlx5: add GENEVE TLV option flow validation net/mlx5: add GENEVE TLV option flow translation doc: update GENEVE TLV option support Viacheslav Ovsiienko (2): app/testpmd: add GENEVE option item support app/testpmd: add GENEVE header option length support app/test-pmd/cmdline_flow.c | 111 +++++++++- doc/guides/nics/mlx5.rst | 23 +- doc/guides/rel_notes/release_21_02.rst | 8 + doc/guides/testpmd_app_ug/testpmd_funcs.rst | 8 + drivers/common/mlx5/mlx5_devx_cmds.c | 62 ++++++ drivers/common/mlx5/mlx5_devx_cmds.h | 9 + drivers/common/mlx5/mlx5_prm.h | 28 ++- .../common/mlx5/rte_common_mlx5_exports.def | 1 + drivers/common/mlx5/version.map | 1 + drivers/net/mlx5/mlx5.c | 2 + drivers/net/mlx5/mlx5.h | 13 ++ drivers/net/mlx5/mlx5_flow.c | 143 ++++++++++++ drivers/net/mlx5/mlx5_flow.h | 15 +- drivers/net/mlx5/mlx5_flow_dv.c | 205 ++++++++++++++++++ lib/librte_ethdev/rte_flow.c | 1 + lib/librte_ethdev/rte_flow.h | 27 +++ 16 files changed, 646 insertions(+), 11 deletions(-)
Comments
On 1/14/2021 7:07 AM, Shiri Kuzin wrote: > The Geneve tunneling protocol is designed to allow the user to specify > some data context on the packet. > The GENEVE TLV (Type-Length-Variable) Option is the mean intended to > present the user data. > > In order to support GENEVE TLV Option the new rte_flow item > "rte_flow_item_geneve_opt" is introduced. > The new item contains the values and masks for the following fields: > -option class > -option type > -length > -data > > The usage example: > "flow create 0 ingress pattern eth / ipv4 / udp / geneve vni is 100 / > geneve-opt class is 5 length is 1 type is 0 data is 0x66998800 / > end actions count / drop / end" > > > New item will be added to testpmd to support raw encap/decap action. > > v6: > - added testpmd support for GENEVE option length. > - updated setting GENEVE option length value. > > v5: > - added Devx function to def file. > > v4: > - fixed setting option length. > - fixed testpmd calculation of GENEVE option size. > - updated documentation. > > v3: > - updated documentation. > > v2: > - removed pedantic. > > Shiri Kuzin (7): > lib/librte_ethdev: introduce GENEVE header TLV option item > common/mlx5: check GENEVE TLV support in HCA attributes > common/mlx5: create GENEVE TLV option object with DevX > net/mlx5: create GENEVE TLV option management > net/mlx5: add GENEVE TLV option flow validation > net/mlx5: add GENEVE TLV option flow translation > doc: update GENEVE TLV option support > > Viacheslav Ovsiienko (2): > app/testpmd: add GENEVE option item support > app/testpmd: add GENEVE header option length support > Hi Shiri, Can you please rebase on top of latest next-net, this set conflicts with GTP patchset. Thanks, ferruh
> -----Original Message----- > From: Ferruh Yigit <ferruh.yigit@intel.com> > Sent: Friday, January 15, 2021 3:34 AM > To: Shiri Kuzin <shirik@nvidia.com>; dev@dpdk.org > Cc: Slava Ovsiienko <viacheslavo@nvidia.com>; NBU-Contact-Adrien > Mazarguil <adrien.mazarguil@6wind.com>; Ori Kam <orika@nvidia.com>; > NBU-Contact-Thomas Monjalon <thomas@monjalon.net>; Raslan > Darawsheh <rasland@nvidia.com>; andrew.rybchenko@oktetlabs.ru > Subject: Re: [PATCH v6 0/9] ethdev: introduce GENEVE header TLV option > item > > On 1/14/2021 7:07 AM, Shiri Kuzin wrote: > > The Geneve tunneling protocol is designed to allow the user to specify > > some data context on the packet. > > The GENEVE TLV (Type-Length-Variable) Option is the mean intended to > > present the user data. > > > > In order to support GENEVE TLV Option the new rte_flow item > > "rte_flow_item_geneve_opt" is introduced. > > The new item contains the values and masks for the following fields: > > -option class > > -option type > > -length > > -data > > > > The usage example: > > "flow create 0 ingress pattern eth / ipv4 / udp / geneve vni is 100 / > > geneve-opt class is 5 length is 1 type is 0 data is 0x66998800 / end > > actions count / drop / end" > > > > > > New item will be added to testpmd to support raw encap/decap action. > > > > v6: > > - added testpmd support for GENEVE option length. > > - updated setting GENEVE option length value. > > > > v5: > > - added Devx function to def file. > > > > v4: > > - fixed setting option length. > > - fixed testpmd calculation of GENEVE option size. > > - updated documentation. > > > > v3: > > - updated documentation. > > > > v2: > > - removed pedantic. > > > > Shiri Kuzin (7): > > lib/librte_ethdev: introduce GENEVE header TLV option item > > common/mlx5: check GENEVE TLV support in HCA attributes > > common/mlx5: create GENEVE TLV option object with DevX > > net/mlx5: create GENEVE TLV option management > > net/mlx5: add GENEVE TLV option flow validation > > net/mlx5: add GENEVE TLV option flow translation > > doc: update GENEVE TLV option support > > > > Viacheslav Ovsiienko (2): > > app/testpmd: add GENEVE option item support > > app/testpmd: add GENEVE header option length support > > > > Hi Shiri, > > Can you please rebase on top of latest next-net, this set conflicts with GTP > patchset. > > Thanks, > Ferruh Hi Ferruh, Sure I will send updated version. Thanks, Shiri.