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 3231DA0524; Fri, 8 Jan 2021 13:11:03 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id E7673140E9A; Fri, 8 Jan 2021 13:11:02 +0100 (CET) Received: from hqnvemgate24.nvidia.com (hqnvemgate24.nvidia.com [216.228.121.143]) by mails.dpdk.org (Postfix) with ESMTP id 0D402140E64 for ; Fri, 8 Jan 2021 13:11:01 +0100 (CET) Received: from hqmail.nvidia.com (Not Verified[216.228.121.13]) by hqnvemgate24.nvidia.com (using TLS: TLSv1.2, AES256-SHA) id ; Fri, 08 Jan 2021 04:11:01 -0800 Received: from HQMAIL111.nvidia.com (172.20.187.18) by HQMAIL109.nvidia.com (172.20.187.15) with Microsoft SMTP Server (TLS) id 15.0.1473.3; Fri, 8 Jan 2021 12:11:00 +0000 Received: from NAM12-MW2-obe.outbound.protection.outlook.com (104.47.66.48) 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:11:00 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=BUsZabhMMnpUV1+qJV+3rTjLBHvsHYRhjuCHq410rccuqIzxvaStUa27J9DdgEeuZMNhO4pof6PFB14Lz4iRRs2PizT8JHlXOQuUpZ2Ngtml90TKoEuZVs8oDZq95Yp5mfFJNXpj1uL7//6taONoPz8ioRjcIqokDX10UKJ9ES7+6vp8nso/eH0LBNVrG0Zi479sQqovoRZpcwdH/Igu8vZwY5LO/ZqzhUxhv0rbam7KBlLJDSjcD8sxz981ZuZhUsrgBkVuMN/7dCi+BEfQhJQgjcQal4NUwh3rxDfqy5X+xFdC69L/k0q84RYhWqnAFY89q5caerHL4pB/8Eb1OA== 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=NnTR79A2zVheGVCE69045BUD0YIQxG44mHbdwkTZX14=; b=gs0acpkOk+qv7XSrWywhEgc4TGxqW+rugjUvFv7uYvGKOU5NaiCpbPsJq9UzDIGuI9cJ10cbQB0658UTVVACuQ0SFgkzwUrEui/oPqQO+xhYN4PKgHdEXTZ31ypEuDtWIq2H7Q3+mRimj8j0goP/7Hcjry4C6S0LRbu8sa1lZ/h5i+LSlU8oUhlVemUMtPEbKfRQRu07S7ogNPa4meAGEdBU9ustpdmiXuBAFAhS/WFn57Nxg1+xJbgjhrwj/NHfs/KXO3qIBzTX8hIL2ENnWs1A4t9yhp7sdv6UP/R+kPC92/oD7YlgQRqs77fwXsBD/WIx6Se7ygwKCx+gZHZNQQ== 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 MWHPR1201MB0189.namprd12.prod.outlook.com (2603:10b6:301:59::19) by MW2PR12MB2425.namprd12.prod.outlook.com (2603:10b6:907:f::26) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3721.21; Fri, 8 Jan 2021 12:10:58 +0000 Received: from MWHPR1201MB0189.namprd12.prod.outlook.com ([fe80::89e1:4f02:6952:f760]) by MWHPR1201MB0189.namprd12.prod.outlook.com ([fe80::89e1:4f02:6952:f760%5]) with mapi id 15.20.3742.009; Fri, 8 Jan 2021 12:10:58 +0000 From: Suanming Mou To: Shiri Kuzin , "dev@dpdk.org" CC: Slava Ovsiienko , 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: AQHW5NCUiYntjnN9hk+Ua8qAPXrsdKodorxA Date: Fri, 8 Jan 2021 12:10:58 +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: <20210107083838.7355-3-shirik@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-originating-ip: [115.192.163.47] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 0f602e1c-ce47-4667-ada3-08d8b3ce755c x-ms-traffictypediagnostic: MW2PR12MB2425: 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: 2MfSk9R3vk+09JnEwh6uzWQ9DlFPpdnL6P2huFJQBgRpR/HS9+TQsx7J3407QuIPq02MSZ7pCYjQWSeOiUG8YvwjDXkmbpQYK2CLgu4egQI4DtIZ/giU4IHHQ6+ncYW7ZMVDNxMtz9A4tXoRDjMOnuCZYFlQU3F8jhrxwAy5WiIprPtuoNp2M5thQUUO+P9HAQc3jT5ahFvby3XheAJ+OV4dNE/kG/iT5DJKl3NGeeO4frwpikgjN/aw0G8UAUswInfxILHsp94zmKo2djnkH75nradn6fyxEbLO9MbJ0uY1NLsr7Sk7SpDKI7SyZGoa1r7LBzkB6aniHdWVRm6HIubS77sgLLoP4Q2guHddS+/kkEOPqZxuQP+/eoqgGKOUbt1jHfudZyCsD6s42k0C7w== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:MWHPR1201MB0189.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(39860400002)(396003)(136003)(366004)(346002)(376002)(5660300002)(6506007)(4326008)(7696005)(83380400001)(66476007)(86362001)(66946007)(2906002)(66556008)(107886003)(316002)(76116006)(71200400001)(478600001)(66446008)(8936002)(33656002)(55016002)(54906003)(52536014)(186003)(8676002)(9686003)(26005)(64756008)(53546011)(110136005); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata: =?us-ascii?Q?bX5rQSienFuWoj4nxZM8f5EbstOPU+SPoCSOYxGmCFNh6uC2A1aYvdR0dwjs?= =?us-ascii?Q?+b3A7bgLKmDcs/Qn2bVkdNC8AOkQXGJwocmKmWABLUs9VmJ3Q6QvXuNqDn6x?= =?us-ascii?Q?gLTBeDrQrT0v+VAq94wDfgTe3ZcCTqeZWzJDjkfiFW7nwlEYL+8HZvvftoge?= =?us-ascii?Q?/K59KS5DPaO7YA3pO4V51uyqfbjqb5uIlLbtPMErZFgMnyGbvWSVmVoC1hiV?= =?us-ascii?Q?cXkCv2kl6Jrbb/EYr7yZw/u/NWdY+x2tljvG3aMo5bwfe+I1Oa95bfyy7Iun?= =?us-ascii?Q?OIHsl42HiWK/3HluZpdGnsoLhELcwycA4TdcDBEDppOj0eNrZHoqeGDkTXDd?= =?us-ascii?Q?LoM6pLbIwFa/FGJgMqs/iyyS5EQN3PuifLOz9+5WAE+96lOAEDcPsR+nTylZ?= =?us-ascii?Q?CwwtO6z1BAVPfDrKQlSxcjGh8Gd3uE+37IyNuQNtvR/XSPQLRPGQIkS4QHsU?= =?us-ascii?Q?gGyjWrHtgF2gaCPdBissWVNj1cM7LzmSf3V0RrWjUhBb/BhYDGa3Ep5Po/H1?= =?us-ascii?Q?s9UMyijYFwxB6F3u0mWAWsQ8uBG2i6uZE6sZqOcF/s31xw+CVTlrkKmLVFmq?= =?us-ascii?Q?KNZCnLzUHMTA815g42i1y9PMNmgnq2J0oqaWfTI5vIz10JAzFgfy9bfBhRg9?= =?us-ascii?Q?+/QYyUXhskO2s4omAVzV43f87kIp8HeKYtkfmtJaULBVK0GAgTHUWvphHzB/?= =?us-ascii?Q?VWhb5GV65ia4zvsQXBwg2JA86q0GmNyYgrvHFTc/GMj/Jt1FXy+YExaXTKR4?= =?us-ascii?Q?651XZ8w6tnPAUiNhcayejSOkDTWx8yMc9VqD/gWwKuy9JTxETGq9f5g/oCaE?= =?us-ascii?Q?RHk3/yduB+TnjzOSn/gL4rqBqr0g0GG610UNGscciQD6bGsP2+v11HBvm483?= =?us-ascii?Q?7kl+b/OmJ7bptP2T7PuzafOLpnJAb7qE0WiCor0T+Sr8PzzSatxKfLH5xiGF?= =?us-ascii?Q?A+flXz8o9qJxgIm8ikzfJauWEzj2q5s2jIJsn17HcrA=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: MWHPR1201MB0189.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 0f602e1c-ce47-4667-ada3-08d8b3ce755c X-MS-Exchange-CrossTenant-originalarrivaltime: 08 Jan 2021 12:10:58.5448 (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: oVesMLw+djmyV6XfGQladanx+KLMsdgLAyYtf0XpiMcnmJEGCQrsx9KRHp2/nov5Yl6p34s7EIV0HBLHK8CXHg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW2PR12MB2425 X-OriginatorOrg: Nvidia.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nvidia.com; s=n1; t=1610107861; bh=NnTR79A2zVheGVCE69045BUD0YIQxG44mHbdwkTZX14=; 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=VZPg4QvyDavnFl0dhfQcX4Bn6WAjCH9IZ+JMm2RUBQXkXY+Eik33EmXu60R6dDg59 x8jwt2d6vo3Lff6blTQNeo6bK8ShIESsA0odr+4SiC+lk1WlSK2CB8NvXfG9TpZOcD u4zQe9bHcC65KqhPywyIt8lI8PEIypYWJBitG4/XcGExFVlAa35u8N46GdB2KZg5ml 3e0hF+rEOxv6DbMvz56xC1uUBg6Jr5D1hvwPHb3dewSHKsMwYIX3akzP8r/3gUromW v+r+k/Aep78M6g00T3EmSCIQ/W3Ns27HTubc7s6WvNH+CC1T2xST6NfLvf7d2r/vlP URq8U9jCVfyhw== 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: dev On Behalf Of Shiri Kuzin > Sent: Thursday, January 7, 2021 4:39 PM > To: dev@dpdk.org > Cc: Slava Ovsiienko ; NBU-Contact-Adrien Mazargui= l > ; 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 >=20 > From: Viacheslav Ovsiienko >=20 > The patch adds the GENEVE option rte flow item support to command line > interpreter. The flow command with GENEVE option items looks like: >=20 > 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 >=20 > The option length should be specified in 32-bit words, this value specifi= es the > length of the data pattern/mask arrays (should be multiplied by sizeof(ui= nt32_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. >=20 > 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(-) > snip > /* 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); If I understand correctly, the potential here is to calculate the geneve op= tion size, right? Have we confirmed the struct is well aligned for all arch, and will not be = aligned to other size? Or is it better to use "offsetof" here? > + 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 the= ir > attributes, if any. > - ``vni {unsigned}``: virtual network identifier. > - ``protocol {unsigned}``: protocol type. >=20 > +- ``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. >=20 > - ``vni {unsigned}``: VXLAN-GPE identifier. > -- > 2.21.0