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 85E18A0C46; Sun, 29 Aug 2021 14:07:14 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 04DE740142; Sun, 29 Aug 2021 14:07:14 +0200 (CEST) Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by mails.dpdk.org (Postfix) with ESMTP id D90D440042 for ; Sun, 29 Aug 2021 14:07:11 +0200 (CEST) X-IronPort-AV: E=McAfee;i="6200,9189,10090"; a="198392592" X-IronPort-AV: E=Sophos;i="5.84,361,1620716400"; d="scan'208";a="198392592" Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by fmsmga107.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 29 Aug 2021 05:07:10 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.84,361,1620716400"; d="scan'208";a="518362623" Received: from fmsmsx602.amr.corp.intel.com ([10.18.126.82]) by fmsmga004.fm.intel.com with ESMTP; 29 Aug 2021 05:07:10 -0700 Received: from shsmsx604.ccr.corp.intel.com (10.109.6.214) by fmsmsx602.amr.corp.intel.com (10.18.126.82) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.10; Sun, 29 Aug 2021 05:07:09 -0700 Received: from shsmsx601.ccr.corp.intel.com (10.109.6.141) by SHSMSX604.ccr.corp.intel.com (10.109.6.214) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.10; Sun, 29 Aug 2021 20:07:07 +0800 Received: from shsmsx601.ccr.corp.intel.com ([10.109.6.141]) by SHSMSX601.ccr.corp.intel.com ([10.109.6.141]) with mapi id 15.01.2242.010; Sun, 29 Aug 2021 20:07:07 +0800 From: "Zhang, Qi Z" To: "Zhang, AlvinX" , "Guo, Junfeng" CC: "dev@dpdk.org" , Ajit Khaparde , "Singh, Aman Deep" Thread-Topic: [PATCH v5] ethdev: add IPv4 and L4 checksum RSS offload types Thread-Index: AQHXk9lHLeBqg0fPAUuqERZSb4kWKauKcYFA Date: Sun, 29 Aug 2021 12:07:07 +0000 Message-ID: References: <20210713011342.19688-1-alvinx.zhang@intel.com> <20210818023216.12020-1-alvinx.zhang@intel.com> In-Reply-To: <20210818023216.12020-1-alvinx.zhang@intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-reaction: no-action dlp-version: 11.5.1.3 dlp-product: dlpe-windows x-originating-ip: [10.239.127.36] Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Subject: Re: [dpdk-dev] [PATCH v5] ethdev: add IPv4 and L4 checksum RSS offload types 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" > -----Original Message----- > From: Zhang, AlvinX > Sent: Wednesday, August 18, 2021 10:32 AM > To: Zhang, Qi Z ; Guo, Junfeng > > Cc: dev@dpdk.org; Zhang, AlvinX ; Ajit Khaparde > ; Singh, Aman Deep > > Subject: [PATCH v5] ethdev: add IPv4 and L4 checksum RSS offload types >=20 > This patch defines new RSS offload types for IPv4 and > L4(TCP/UDP/SCTP) checksum, which are required when users want to > distribute packets based on the IPv4 or L4 checksum field. >=20 > For example "flow create 0 ingress pattern eth / ipv4 / end actions rss t= ypes > ipv4-chksum end queues end / end", this flow causes all matching packets = to be > distributed to queues on basis of IPv4 checksum. >=20 > Signed-off-by: Alvin Zhang > Acked-by: Ajit Khaparde > Acked-by: Aman Deep Singh > --- >=20 > v5: Add release note and code commands. > --- > app/test-pmd/cmdline.c | 4 ++- > app/test-pmd/config.c | 2 ++ > doc/guides/rel_notes/release_21_11.rst | 61 > ++++++++++++++++++++++++++++++++++ > lib/ethdev/rte_ethdev.h | 23 +++++++++++++ > 4 files changed, 89 insertions(+), 1 deletion(-) create mode 100644 > doc/guides/rel_notes/release_21_11.rst >=20 > diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c index > 82253bc..656a311 100644 > --- a/app/test-pmd/cmdline.c > +++ b/app/test-pmd/cmdline.c > @@ -2252,6 +2252,8 @@ struct cmd_config_rss { > rss_conf.rss_hf =3D ETH_RSS_ECPRI; > else if (!strcmp(res->value, "mpls")) > rss_conf.rss_hf =3D ETH_RSS_MPLS; > + else if (!strcmp(res->value, "ipv4-chksum")) > + rss_conf.rss_hf =3D ETH_RSS_IPV4_CHKSUM; > else if (!strcmp(res->value, "none")) > rss_conf.rss_hf =3D 0; > else if (!strcmp(res->value, "level-default")) { @@ -2323,7 +2325,7 @@ > struct cmd_config_rss { > .help_str =3D "port config all rss " > "all|default|eth|vlan|ip|tcp|udp|sctp|ether|port|vxlan|geneve|" >=20 > "nvgre|vxlan-gpe|l2tpv3|esp|ah|pfcp|ecpri|mpls|none|level-default|" > - "level-outer|level-inner|", > + "level-outer|level-inner|ipv4-chksum|", > .tokens =3D { > (void *)&cmd_config_rss_port, > (void *)&cmd_config_rss_keyword, > diff --git a/app/test-pmd/config.c b/app/test-pmd/config.c index > 31d8ba1..ece78f2 100644 > --- a/app/test-pmd/config.c > +++ b/app/test-pmd/config.c > @@ -140,6 +140,8 @@ > { "gtpu", ETH_RSS_GTPU }, > { "ecpri", ETH_RSS_ECPRI }, > { "mpls", ETH_RSS_MPLS }, > + { "ipv4-chksum", ETH_RSS_IPV4_CHKSUM }, > + { "l4-chksum", ETH_RSS_L4_CHKSUM }, > { NULL, 0 }, > }; >=20 > diff --git a/doc/guides/rel_notes/release_21_11.rst > b/doc/guides/rel_notes/release_21_11.rst > new file mode 100644 > index 0000000..1017550 > --- /dev/null > +++ b/doc/guides/rel_notes/release_21_11.rst > @@ -0,0 +1,61 @@ > +.. SPDX-License-Identifier: BSD-3-Clause > + Copyright 2021 The DPDK contributors > + > +.. include:: > + > +DPDK Release 21.11 > +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > + > +.. **Read this first.** > + > + The text in the sections below explains how to update the release not= es. > + > + Use proper spelling, capitalization and punctuation in all sections. > + > + Variable and config names should be quoted as fixed width text: > + ``LIKE_THIS``. > + > + Build the docs and view the output file to ensure the changes are cor= rect:: > + > + make doc-guides-html > + xdg-open build/doc/html/guides/rel_notes/release_21_11.html > + > + > +New Features > +------------ > + > +.. This section should contain new features added in this release. > + Sample format: > + > + * **Add a title in the past tense with a full stop.** > + > + Add a short 1-2 sentence description in the past tense. > + The description should be enough to allow someone scanning > + the release notes to understand the new feature. > + > + If the feature adds a lot of sub-features you can use a bullet list > + like this: > + > + * Added feature foo to do something. > + * Enhanced feature bar to do something else. > + > + Refer to the previous release notes for examples. > + > + Suggested order in release notes items: > + * Core libs (EAL, mempool, ring, mbuf, buses) > + * Device abstraction libs and PMDs (ordered alphabetically by vendo= r > name) > + - ethdev (lib, PMDs) > + - cryptodev (lib, PMDs) > + - eventdev (lib, PMDs) > + - etc > + * Other libs > + * Apps, Examples, Tools (if significant) > + > + This section is a comment. Do not overwrite or remove it. > + Also, make sure to start the actual text at the margin. > + =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=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D > + > +* **Add new RSS offload types for IPv4/L4 checksum in RSS flow.** > + > + Add macros ETH_RSS_IPV4_CHKSUM and ETH_RSS_L4_CHKSUM, now > IPv4 and > + TCP/UDP/SCTP header checksum field can be used as input set for RSS= . > diff --git a/lib/ethdev/rte_ethdev.h b/lib/ethdev/rte_ethdev.h index > d2b27c3..9a59e7b 100644 > --- a/lib/ethdev/rte_ethdev.h > +++ b/lib/ethdev/rte_ethdev.h > @@ -537,6 +537,29 @@ struct rte_eth_rss_conf { > #define ETH_RSS_PPPOE (1ULL << 31) > #define ETH_RSS_ECPRI (1ULL << 32) > #define ETH_RSS_MPLS (1ULL << 33) > +#define ETH_RSS_IPV4_CHKSUM (1ULL << 34) > + > +/** > + * The ETH_RSS_L4_CHKSUM generally refers to a type of checksum field > +for > + * any L4 header, such as TCP, UDP and SCTP. It is similar to > +ETH_RSS_PORT, > + * it does not specify the type of L4 header. > + * We use this macro to replace below macro for constricting the use of > +RSS > + * offload bits: > + * ETH_RSS_IPV4_TCP_CHKSUM > + * ETH_RSS_IPV4_UDP_CHKSUM > + * ETH_RSS_IPV4_SCTP_CHKSUM > + * ETH_RSS_IPV6_TCP_CHKSUM > + * ETH_RSS_IPV6_UDP_CHKSUM > + * ETH_RSS_IPV6_SCTP_CHKSUM > + * > + * Then how to use this macro? We can use it in RSS flow where the > +pattern > + * type will specify the L4 header type, for example "flow create 0 > +ingress \ > + * pattern eth / ipv4 / tcp / end actions rss types l4-chksum end > +queues end \ > + * / end" > + * For UDP, the checksum is not required, if the checksum is 0, it will Do you mean For UDP , the checksum is optional, if the checksum is not used, it will...= ? > +be > + * treated as a regular checksum with value equal to 0. > + */ Or maybe just reword to below For the case that checksum is not used in a UDP header, it take the reserve= d value 0 as input for the hash function. > +#define ETH_RSS_L4_CHKSUM (1ULL << 35) >=20 > /* > * We use the following macros to combine with above ETH_RSS_* for > -- > 1.8.3.1