From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (xvm-189-124.dc0.ghst.net [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 9FB75A0524; Fri, 8 Jan 2021 13:21:08 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 5F657140EE7; Fri, 8 Jan 2021 13:21:08 +0100 (CET) Received: from hqnvemgate25.nvidia.com (hqnvemgate25.nvidia.com [216.228.121.64]) by mails.dpdk.org (Postfix) with ESMTP id A19A4140E64 for ; Fri, 8 Jan 2021 13:21:06 +0100 (CET) Received: from hqmail.nvidia.com (Not Verified[216.228.121.13]) by hqnvemgate25.nvidia.com (using TLS: TLSv1.2, AES256-SHA) id ; Fri, 08 Jan 2021 04:21:05 -0800 Received: from HQMAIL111.nvidia.com (172.20.187.18) by HQMAIL101.nvidia.com (172.20.187.10) with Microsoft SMTP Server (TLS) id 15.0.1473.3; Fri, 8 Jan 2021 12:21:03 +0000 Received: from NAM02-SN1-obe.outbound.protection.outlook.com (104.47.36.56) by HQMAIL111.nvidia.com (172.20.187.18) with Microsoft SMTP Server (TLS) id 15.0.1473.3 via Frontend Transport; Fri, 8 Jan 2021 12:21:03 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=mI8rEzcYFJ6IhFLBTqQSJzSqpsfogAVGpSM1F56ujIIDrfloZ3I8QbRloQIlctJ51CkR7fAFGWj7UBHZGpq0Bq3UvYWX00DLXKOR0NzkvtoTCGa638nUfUl0cVlA3cjrCNYCKlgLMkJhT+7b6TK/QdNJ5YY71anaOMw0vZZvP4AFJvGs7JlaZsCwTWcXpW5hprdmdFsI+1lX4CvnTUFCQiAmDoiNx4HG22skQfNOlhmeFV6ipzLKrcX50ntzV0aTYFubPo1EWiuN+w+ZBDpiZRKhr550gehxTDhRYbe823FsVJEFQA6qY9Oz9fdkQwjK2ZVjy1RcbJsy4F/ahExwZg== 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-SenderADCheck; bh=7nKmFrjsSQZ5y6Rme1EizZIWXj36VUqdm1rJXIPAMZU=; b=PNGCTsGopljtRJDyxG/JriA6ugzpsZ2BRefPFgic4vWEwneJMFQdx63aVuL37KWOBtlVtoiUHfOE+AXLJauETBITiA7GjZfIfzWuZj/sBnBbHNVffK8TTWXmVOGqAylSkn3R+PV6nFIiOfA4blTN1ZiUt0Aqoy/Mvu0TKhn8yaQgnpiyv5WFszY40VJO6o0SJFmhyG/VJkLnA9je7XPFpk7c+O9fcDPNsKywK7c7B+ysIvk0eJQxM/r+r9ORzqfVnIKICVzWdelx5Skua+0iSp+5Yw9Q01bpVbSAj4+wDSpkWThJesQfPQqh3hMETTT4OgzjFIp5fE6KzDIJY0WW3g== 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 Received: from DM6PR12MB3753.namprd12.prod.outlook.com (2603:10b6:5:1c7::18) by DM5PR1201MB0075.namprd12.prod.outlook.com (2603:10b6:4:54::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3742.6; Fri, 8 Jan 2021 12:21:01 +0000 Received: from DM6PR12MB3753.namprd12.prod.outlook.com ([fe80::e4a9:f9a1:d873:d07a]) by DM6PR12MB3753.namprd12.prod.outlook.com ([fe80::e4a9:f9a1:d873:d07a%6]) with mapi id 15.20.3742.009; Fri, 8 Jan 2021 12:21:00 +0000 From: Slava Ovsiienko To: Suanming Mou , Shiri Kuzin , "dev@dpdk.org" CC: NBU-Contact-Adrien Mazarguil , Ori Kam , "ferruh.yigit@intel.com" , NBU-Contact-Thomas Monjalon , Raslan Darawsheh Thread-Topic: [dpdk-dev] [PATCH v3 2/8] app/testpmd: add GENEVE option item support Thread-Index: AQHW5NCOGtpHNOCeL06OPQ92WTZFLaodpQMAgAACfKA= Date: Fri, 8 Jan 2021 12:21:00 +0000 Message-ID: References: <20210105175358-16712-1-shirik@nvidia.com> <20210107083838.7355-1-shirik@nvidia.com> <20210107083838.7355-3-shirik@nvidia.com> In-Reply-To: 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-originating-ip: [95.164.10.10] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 891e10f0-e0b4-4ffc-c98a-08d8b3cfdc51 x-ms-traffictypediagnostic: DM5PR1201MB0075: 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:8882; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: XNWHlrEWettdL6L4cU97sFTCaiaWs6dja21A+FXhbDonri5JJ5rMgsreehFz+Zkt9jbmgM2qpNgP6d0uvF7tb64Ig1WaJdacD8EhhAgao4sYwOTqwfJi5U4ShlKOQSZlx93OaeGfUl9Q0mKeHV4s/eRNyc27ft6j0MJdVuLsTXgPgJAbmZcuEA7JMGqkqRuUz0/a0F1ojrHkq6IiJ4Uccr1KmFDJSOG9PfyOAsMjlrG+PVaYSuHV193/mmJb7Rc2x+CbK8JkDKwEVbV6lt2yTun0ExnsnTSdJXAzxrlstScBJ1BySTDHp3sHpj0EW5yBL/jGV8RjPHCSd50d+VKWzv4qN8ocqOknuJloNmJ2cRyWK3pdItPPHQgnAG/6n2cRQ9jY8Z6acSMPJIyWumyfhA== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM6PR12MB3753.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(346002)(136003)(376002)(39860400002)(366004)(396003)(26005)(53546011)(6506007)(107886003)(186003)(86362001)(7696005)(52536014)(33656002)(478600001)(5660300002)(110136005)(2906002)(83380400001)(4326008)(54906003)(8936002)(316002)(66946007)(9686003)(76116006)(66476007)(66556008)(64756008)(8676002)(66446008)(71200400001)(55016002); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata: =?us-ascii?Q?N+8aBI1haTBLJO179VF4Ey57WkSOeFy8vw9j+WeiuKl9Vlt/luLJpvcKgtgO?= =?us-ascii?Q?BPUROMdNAa3UzaxQbENbjYYhGAR1vh4qwQ/zMrLyXuPrURy9abHIwFvr5wsX?= =?us-ascii?Q?OdrUkdB2r/ppp6eIHP54TSRIPxHpA/47+mVTjHTsdG3lk/EK3YFnWxGphujN?= =?us-ascii?Q?lKIR882jRD82usntBjEoIM3+tzYD98bVBmqa1Jz+zB0bD8dRE02xwdLXcfkW?= =?us-ascii?Q?5MOq8UXViwNa8MQvswETJ81aFFvdNf0cGIk4/Q7kwx1ZAL347fVDPgdziaap?= =?us-ascii?Q?xN4wOaS4wSncZsbPpTWM+/dZrttxTz4a7ZFrTSzaNHds6Yn+5TCSPNXb/AI4?= =?us-ascii?Q?PGThGsoezRKSTTrBzI0wLpY40jTXolKggy+WojF/Z4IAu4Ebp15L6s8mlK45?= =?us-ascii?Q?BX5vmkwWhR1PlRV74Awqnd6r7c6pkS8zzQl050r1HOtKp425FKUANHttwt6H?= =?us-ascii?Q?u111WBuZ2W5Wmn7yicPDDWHKHwRc5VdNjvXNVy2KoHlJ03tFaLEJ3inIVReG?= =?us-ascii?Q?rDnXeocaunfeoznCLRNuI/97Lqn2DHI+AJv2FIEteJH8wA4zrhC7+xhcXZPs?= =?us-ascii?Q?dIeost14nGZ0w3YWMf0QK9ofTSUVCsMjfAY4H8WpFcARkgtKEWYxPG/13EcC?= =?us-ascii?Q?JaWwDB6eCjU6PUyYT84lawNM09AfJSmTWcpvC6xKz+I1k5P6hXYfR/y2/nPH?= =?us-ascii?Q?yOWEL45ed5mczd1FkDGG8IsTA4NaRgZwWOf0MSm2DLvpAr1fTZNnmBlZyFim?= =?us-ascii?Q?QzKNLIbrB4a5ZMlztTpcaD4aAKyo9g83u8dWKcC+8daaTZcJMuvuvKNOVLeZ?= =?us-ascii?Q?piNChCaIApZ4Zyfr0nTEEue6hYhFQweAjfuVUymiXaT0gItv1e0jvS/8iaZd?= =?us-ascii?Q?DGztX7PDuPkuAL46gdZFfoQnhzWVMNUbl8V1WJB+3iG+46J9EBDzCmPGVeyi?= =?us-ascii?Q?U1O7f0oc19SXc0G1Q0UkS8d7rghpoaBIlwBkqRlrqac=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: DM6PR12MB3753.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 891e10f0-e0b4-4ffc-c98a-08d8b3cfdc51 X-MS-Exchange-CrossTenant-originalarrivaltime: 08 Jan 2021 12:21:00.7645 (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: Zi0OjtYjX02W961TXLL2dVtm+gyE0b5Wa3R+i74EhXSsfhjDqdP9JN5IapEiXSF73e2XcSceoxMqxVTJd8GU/Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR1201MB0075 X-OriginatorOrg: Nvidia.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nvidia.com; s=n1; t=1610108465; bh=7nKmFrjsSQZ5y6Rme1EizZIWXj36VUqdm1rJXIPAMZU=; h=ARC-Seal:ARC-Message-Signature:ARC-Authentication-Results:From:To: CC:Subject:Thread-Topic:Thread-Index:Date:Message-ID:References: In-Reply-To:Accept-Language:Content-Language:X-MS-Has-Attach: X-MS-TNEF-Correlator:authentication-results:x-originating-ip: x-ms-publictraffictype:x-ms-office365-filtering-correlation-id: x-ms-traffictypediagnostic:x-ld-processed: x-ms-exchange-transport-forked:x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers:x-ms-exchange-senderadcheck: x-microsoft-antispam:x-microsoft-antispam-message-info: x-forefront-antispam-report:x-ms-exchange-antispam-messagedata: Content-Type:Content-Transfer-Encoding:MIME-Version: X-MS-Exchange-CrossTenant-AuthAs: X-MS-Exchange-CrossTenant-AuthSource: X-MS-Exchange-CrossTenant-Network-Message-Id: X-MS-Exchange-CrossTenant-originalarrivaltime: X-MS-Exchange-CrossTenant-fromentityheader: X-MS-Exchange-CrossTenant-id:X-MS-Exchange-CrossTenant-mailboxtype: X-MS-Exchange-CrossTenant-userprincipalname: X-MS-Exchange-Transport-CrossTenantHeadersStamped:X-OriginatorOrg; b=V290irxq8tKe4MvMyuWfEQtiorD2sCNDdoTmLPDQnpgR5s8DlUT4KdmiPFhxU2yN+ jdjDrcrl/ZgchMfdOFXx+DbCmZJWA6klSjdzNpbUNyO2H66pHiVZdcY+wwCkUak3YP nMPw18HJD0M09UVlWbUvx1A4Pw16GsAErR5SxzDoJ7VWIjlGH9/sPFHitV68D3PNCp ERxhx6fBwtJb2L/3lvQ5x9pFFoYE2PPLVK1zVMV2Yqct2LMOndZ/BktKHVDXncW5xE IOeeYhLtTaZY+kTRJvhEcPmcEU2hbRMR/ry/TWm7NyyrXC9RsFOGQ16LsSJQMWhMJl k5M83W+WrUHdg== Subject: Re: [dpdk-dev] [PATCH v3 2/8] app/testpmd: add GENEVE option item support 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, > -----Original Message----- > From: Suanming Mou > Sent: Friday, January 8, 2021 14:11 > To: Shiri Kuzin ; dev@dpdk.org > Cc: Slava Ovsiienko ; NBU-Contact-Adrien Mazargui= l > ; Ori Kam ; > ferruh.yigit@intel.com; NBU-Contact-Thomas Monjalon > ; Raslan Darawsheh > Subject: RE: [dpdk-dev] [PATCH v3 2/8] app/testpmd: add GENEVE option ite= m > support >=20 > Hi, >=20 > > -----Original Message----- > > From: dev On Behalf Of Shiri Kuzin > > Sent: Thursday, January 7, 2021 4:39 PM > > To: dev@dpdk.org > > Cc: Slava Ovsiienko ; NBU-Contact-Adrien > > Mazarguil ; Ori Kam ; > > ferruh.yigit@intel.com; NBU-Contact-Thomas Monjalon > > ; Raslan Darawsheh > > Subject: [dpdk-dev] [PATCH v3 2/8] app/testpmd: add GENEVE option item > > support > > > > From: Viacheslav Ovsiienko > > > > The patch adds the GENEVE option rte flow item support to command line > > interpreter. The flow command with GENEVE option items looks like: > > > > flow create 0 ingress pattern eth / ipv4 / udp / geneve vni is 100 / > > geneve-opt class is 99 length is 1 type is 0 data is 0x669988 / > > end actions drop / end > > > > The option length should be specified in 32-bit words, this value > > specifies the length of the data pattern/mask arrays (should be > > multiplied by sizeof(uint32_t) to be expressed in bytes. If match on > > the length itself is not needed the mask should be set to zero, in > > this case length is used to specify the pattern/mask array lengths only= . > > > > Signed-off-by: Viacheslav Ovsiienko > > --- > > app/test-pmd/cmdline_flow.c | 102 ++++++++++++++++++-- > > doc/guides/testpmd_app_ug/testpmd_funcs.rst | 8 ++ > > 2 files changed, 104 insertions(+), 6 deletions(-) > > >=20 > snip >=20 > > /* Output buffer is not necessarily NUL-terminated. */ @@ -7486,6 > > +7558,9 @@ flow_item_default_mask(const struct rte_flow_item *item) > > case RTE_FLOW_ITEM_TYPE_GENEVE: > > mask =3D &rte_flow_item_geneve_mask; > > break; > > + case RTE_FLOW_ITEM_TYPE_GENEVE_OPT: > > + mask =3D &rte_flow_item_geneve_opt_mask; > > + break; > > case RTE_FLOW_ITEM_TYPE_PPPOE_PROTO_ID: > > mask =3D &rte_flow_item_pppoe_proto_id_mask; > > break; > > @@ -7598,6 +7673,8 @@ cmd_set_raw_parsed(const struct buffer *in) > > /* process hdr from upper layer to low layer (L3/L4 -> L2). */ > > data_tail =3D data + ACTION_RAW_ENCAP_MAX_DATA; > > for (i =3D n - 1 ; i >=3D 0; --i) { > > + const struct rte_flow_item_geneve_opt *opt; > > + > > item =3D in->args.vc.pattern + i; > > if (item->spec =3D=3D NULL) > > item->spec =3D flow_item_default_mask(item); @@ - > > 7650,6 +7727,19 @@ cmd_set_raw_parsed(const struct buffer *in) > > case RTE_FLOW_ITEM_TYPE_GENEVE: > > size =3D sizeof(struct rte_geneve_hdr); > > break; > > + case RTE_FLOW_ITEM_TYPE_GENEVE_OPT: > > + opt =3D (const struct rte_flow_item_geneve_opt *) > > + item->spec; > > + size =3D sizeof(struct rte_flow_item_geneve_opt) - > > + sizeof(opt->data); >=20 > If I understand correctly, the potential here is to calculate the geneve = option > size, right? > Have we confirmed the struct is well aligned for all arch, and will not b= e aligned > to other size? > Or is it better to use "offsetof" here? Yes, you are right, "offsetof" would be more relevant, thank you the catchi= ng, With best regards, Slava >=20 > > + if (opt->option_len && opt->data) { > > + *total_size +=3D opt->option_len * > > + sizeof(uint32_t); > > + rte_memcpy(data_tail - (*total_size), > > + opt->data, > > + opt->option_len * sizeof(uint32_t)); > > + } > > + break; > > case RTE_FLOW_ITEM_TYPE_L2TPV3OIP: > > size =3D sizeof(rte_be32_t); > > proto =3D 0x73; > > diff --git a/doc/guides/testpmd_app_ug/testpmd_funcs.rst > > b/doc/guides/testpmd_app_ug/testpmd_funcs.rst > > index 9be450066e..37278d31d6 100644 > > --- a/doc/guides/testpmd_app_ug/testpmd_funcs.rst > > +++ b/doc/guides/testpmd_app_ug/testpmd_funcs.rst > > @@ -3680,6 +3680,14 @@ This section lists supported pattern items and > > their attributes, if any. > > - ``vni {unsigned}``: virtual network identifier. > > - ``protocol {unsigned}``: protocol type. > > > > +- ``geneve-opt``: match GENEVE header option. > > + > > + - ``class {unsigned}``: GENEVE option class. > > + - ``type {unsigned}``: GENEVE option type. > > + - ``length {unsigned}``: GENEVE option length in 32-bit words. > > + - ``data {hex string}``: GENEVE option data, the legnt is defined by > > + ``length`` field > > + > > - ``vxlan-gpe``: match VXLAN-GPE header. > > > > - ``vni {unsigned}``: VXLAN-GPE identifier. > > -- > > 2.21.0