DPDK patches and discussions
 help / color / mirror / Atom feed
From: Andrew Rybchenko <arybchenko@solarflare.com>
To: <kirankumark@marvell.com>, Thomas Monjalon <thomas@monjalon.net>,
	"Ferruh Yigit" <ferruh.yigit@intel.com>
Cc: <dev@dpdk.org>, <jerinj@marvell.com>, <orika@mellanox.com>,
	<xuanziyang2@huawei.com>, <cloud.wangxiaoyun@huawei.com>,
	<zhouguoyang@huawei.com>, <rosen.xu@intel.com>,
	<beilei.xing@intel.com>, <jia.guo@intel.com>, <rmody@marvell.com>,
	<shshaikh@marvell.com>, <ndabilpuram@marvell.com>,
	<qiming.yang@intel.com>, <qi.z.zhang@intel.com>,
	<keith.wiles@intel.com>, <hemant.agrawal@nxp.com>,
	<sachin.saxena@nxp.com>, <wei.zhao1@intel.com>,
	<johndale@cisco.com>, <hyonkim@cisco.com>, <chas3@att.com>,
	<matan@mellanox.com>, <shahafs@mellanox.com>,
	<viacheslavo@mellanox.com>, <rahul.lakkireddy@chelsio.com>,
	<grive@u256.net>,  <lironh@marvell.com>, <jingjing.wu@intel.com>,
	<xavier.huwei@huawei.com>, <humin29@huawei.com>,
	<yisen.zhuang@huawei.com>, <ajit.khaparde@broadcom.com>,
	<somnath.kotur@broadcom.com>, <jasvinder.singh@intel.com>,
	<cristian.dumitrescu@intel.com>
Subject: Re: [dpdk-dev] [PATCH v6 1/3] ethdev: add level support for RSS offload types
Date: Sat, 29 Aug 2020 17:52:25 +0300
Message-ID: <28785b8b-8b38-6387-56f1-45fa19da892c@solarflare.com> (raw)
In-Reply-To: <20200821110330.214931-1-kirankumark@marvell.com>

On 8/21/20 2:03 PM, kirankumark@marvell.com wrote:
> From: Kiran Kumar K <kirankumark@marvell.com>
> 
> This patch reserves 2 bits as input selection to select Inner and
> outer layers for RSS computation. It is combined with existing
> ETH_RSS_* to choose Inner or outer layers for L2, L3 and L4.
> This functionality already exists in rte_flow through level parameter in
> RSS action configuration rte_flow_action_rss.
> 
> Signed-off-by: Kiran Kumar K <kirankumark@marvell.com>
> ---
> V7 Changes:
> * Split ethdev and testpmd changes into seperate patches.
> 
>  lib/librte_ethdev/rte_ethdev.h | 27 +++++++++++++++++++++++++++
>  1 file changed, 27 insertions(+)
> 
> diff --git a/lib/librte_ethdev/rte_ethdev.h b/lib/librte_ethdev/rte_ethdev.h
> index 70295d7ab..2a3a76d37 100644
> --- a/lib/librte_ethdev/rte_ethdev.h
> +++ b/lib/librte_ethdev/rte_ethdev.h
> @@ -552,6 +552,33 @@ struct rte_eth_rss_conf {
>  #define RTE_ETH_RSS_L3_PRE64	   (1ULL << 53)
>  #define RTE_ETH_RSS_L3_PRE96	   (1ULL << 52)
> 
> +/*
> + * We use the following macros to combine with the above layers to choose
> + * inner and outer layers or both for RSS computation.
> + * Note: Default is 0: inner layers, 1: outer layers, 2: both
> + * bit 50 and 51 are reserved for this.
> + */
> +
> +/**
> + * Level 0, It basically stands for the innermost encapsulation level RSS
> + * can be performed on according to PMD and device capabilities.
> + */
> +#define ETH_RSS_LEVEL_INNER        (0ULL << 50)

You're trying to refer to struct rte_flow_action_rss level definition
when values are chosen, but I think it is
inaccurate. Primary definition of the level==0 is PMD default,
not inner. Definition says that typically it is the innermost
encapsulation level RSS can be performed on according to PMD
and device capabilities. But it is secondary, primary
definition is "PMD default". Basically unspecified by the
caller (structure memset to 0) results in default behaviour.

> +/**
> + * Level 1, It basically stands for the outermost encapsulation level RSS
> + * can be performed on according to PMD and device capabilities.
> + */
> +#define ETH_RSS_LEVEL_OUTER        (1ULL << 50)
> +/**
> + * Level 2, It basically stands for the both inner and outermost
> + * encapsulation level RSS can be performed on according to PMD and
> + * device capabilities.
> + */
> +#define ETH_RSS_LEVEL_INNER_OUTER  (2ULL << 50)

Level equal to 2 is the first after the outermost inner level.
Level equal to 3 is the second after the outermost inner level
and so on.

If we really try to follow level definition from
rte_flow_action_rss, the problem is that these defines
are used to define RSS hashing capabilities in
dev_info.flow_type_rss_offloads. Support for level
up to 3 levels, does not mean that we can hash on any,
it could be either outermost or innermost level, but
not the middle level, if 3 levels are present.
Or just innermost recognized: either the first one
if no tunnels recognized, the second if two levels
are recognized, or the third one if three levels are
recognized.

Sorry, that I'm not proposing any solution right now.
Just need more time to thing about it.
You're welcome to try to cover these requirements.

> +#define ETH_RSS_LEVEL_MASK	   (3ULL << 50)
> +
> +#define ETH_RSS_LEVEL(rss_hf) ((rss_hf & ETH_RSS_LEVEL_MASK) >> 50)
> +
>  /**
>   * For input set change of hash filter, if SRC_ONLY and DST_ONLY of
>   * the same level are used simultaneously, it is the same case as
> --
> 2.25.1
> 


  parent reply	other threads:[~2020-08-29 14:52 UTC|newest]

Thread overview: 45+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-08-07 12:04 [dpdk-dev] [PATCH 1/2] " kirankumark
2020-08-07 12:04 ` [dpdk-dev] [PATCH 2/2] net/octeontx2: add rss hash level support kirankumark
2020-08-08 14:36 ` [dpdk-dev] [PATCH v2 1/2] ethdev: add level support for RSS offload types kirankumark
2020-08-08 14:36   ` [dpdk-dev] [PATCH v2 2/2] net/octeontx2: add rss hash level support kirankumark
2020-08-08 14:40   ` [dpdk-dev] [PATCH v2 1/2] ethdev: add level support for RSS offload types Ajit Khaparde
2020-08-14  3:55     ` [dpdk-dev] [EXT] " Kiran Kumar Kokkilagadda
2020-08-18  7:21   ` [dpdk-dev] [PATCH v3 " kirankumark
2020-08-18  7:21     ` [dpdk-dev] [PATCH v3 2/2] net/octeontx2: add rss hash level support kirankumark
2020-08-18 10:03       ` Jerin Jacob
2020-08-18 10:10         ` [dpdk-dev] [EXT] " Kiran Kumar Kokkilagadda
2020-08-18 10:31     ` [dpdk-dev] [PATCH v4 1/2] ethdev: add level support for RSS offload types kirankumark
2020-08-18 10:31       ` [dpdk-dev] [PATCH v4 2/2] net/octeontx2: add rss hash level support kirankumark
2020-08-18 10:52       ` [dpdk-dev] [PATCH v4 1/2] ethdev: add level support for RSS offload types Jeff Guo
2020-08-18 11:43         ` [dpdk-dev] [EXT] " Kiran Kumar Kokkilagadda
2020-08-19  6:04       ` [dpdk-dev] [PATCH v5 " kirankumark
2020-08-19  6:04         ` [dpdk-dev] [PATCH v5 2/2] net/octeontx2: add rss hash level support kirankumark
2020-08-20  3:19         ` [dpdk-dev] [PATCH v5 1/2] ethdev: add level support for RSS offload types Ajit Khaparde
2020-08-21 10:57           ` [dpdk-dev] [EXT] " Kiran Kumar Kokkilagadda
2020-08-21 11:03         ` [dpdk-dev] [PATCH v6 1/3] " kirankumark
2020-08-21 11:03           ` [dpdk-dev] [PATCH v6 2/3] app/testpmd: support ethdev rss level config kirankumark
2020-08-29  0:48             ` Ajit Khaparde
2020-08-21 11:03           ` [dpdk-dev] [PATCH v6 3/3] net/octeontx2: add rss hash level support kirankumark
2020-08-29 14:52           ` Andrew Rybchenko [this message]
2020-09-01 13:23             ` [dpdk-dev] [PATCH v6 1/3] ethdev: add level support for RSS offload types Ferruh Yigit
2020-09-01  3:27           ` [dpdk-dev] [PATCH v7 " kirankumark
2020-09-01  3:27             ` [dpdk-dev] [PATCH v7 2/3] app/testpmd: support ethdev rss level config kirankumark
2020-09-01  3:27             ` [dpdk-dev] [PATCH v7 3/3] net/octeontx2: add rss hash level support kirankumark
2020-09-01 13:37             ` [dpdk-dev] [PATCH v7 1/3] ethdev: add level support for RSS offload types Ferruh Yigit
2020-09-01 14:27               ` [dpdk-dev] [EXT] " Kiran Kumar Kokkilagadda
2020-09-01 14:44                 ` Ferruh Yigit
2020-09-01 14:54                 ` Ferruh Yigit
2020-09-01 17:11                 ` Ajit Khaparde
2020-09-03 10:11                   ` Kiran Kumar Kokkilagadda
2020-09-03 13:14                     ` Ferruh Yigit
2020-09-07  8:12                       ` Andrew Rybchenko
2020-09-08 19:40                         ` Ajit Khaparde
2020-09-17  2:07             ` [dpdk-dev] [PATCH v8 " kirankumark
2020-09-17  2:07               ` [dpdk-dev] [PATCH v8 2/3] app/testpmd: support ethdev rss level config kirankumark
2020-09-17 18:58                 ` Ajit Khaparde
2020-09-17  2:07               ` [dpdk-dev] [PATCH v8 3/3] net/octeontx2: add rss hash level support kirankumark
2020-09-17  9:36               ` [dpdk-dev] [PATCH v8 1/3] ethdev: add level support for RSS offload types Andrew Rybchenko
2020-09-17 18:56                 ` Ajit Khaparde
2020-09-18 11:40                   ` Ferruh Yigit
2020-08-18 17:39     ` [dpdk-dev] [PATCH v3 1/2] " Ajit Khaparde
2020-08-19  3:58       ` [dpdk-dev] [EXT] " Kiran Kumar Kokkilagadda

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=28785b8b-8b38-6387-56f1-45fa19da892c@solarflare.com \
    --to=arybchenko@solarflare.com \
    --cc=ajit.khaparde@broadcom.com \
    --cc=beilei.xing@intel.com \
    --cc=chas3@att.com \
    --cc=cloud.wangxiaoyun@huawei.com \
    --cc=cristian.dumitrescu@intel.com \
    --cc=dev@dpdk.org \
    --cc=ferruh.yigit@intel.com \
    --cc=grive@u256.net \
    --cc=hemant.agrawal@nxp.com \
    --cc=humin29@huawei.com \
    --cc=hyonkim@cisco.com \
    --cc=jasvinder.singh@intel.com \
    --cc=jerinj@marvell.com \
    --cc=jia.guo@intel.com \
    --cc=jingjing.wu@intel.com \
    --cc=johndale@cisco.com \
    --cc=keith.wiles@intel.com \
    --cc=kirankumark@marvell.com \
    --cc=lironh@marvell.com \
    --cc=matan@mellanox.com \
    --cc=ndabilpuram@marvell.com \
    --cc=orika@mellanox.com \
    --cc=qi.z.zhang@intel.com \
    --cc=qiming.yang@intel.com \
    --cc=rahul.lakkireddy@chelsio.com \
    --cc=rmody@marvell.com \
    --cc=rosen.xu@intel.com \
    --cc=sachin.saxena@nxp.com \
    --cc=shahafs@mellanox.com \
    --cc=shshaikh@marvell.com \
    --cc=somnath.kotur@broadcom.com \
    --cc=thomas@monjalon.net \
    --cc=viacheslavo@mellanox.com \
    --cc=wei.zhao1@intel.com \
    --cc=xavier.huwei@huawei.com \
    --cc=xuanziyang2@huawei.com \
    --cc=yisen.zhuang@huawei.com \
    --cc=zhouguoyang@huawei.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

DPDK patches and discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror https://inbox.dpdk.org/dev/0 dev/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 dev dev/ https://inbox.dpdk.org/dev \
		dev@dpdk.org
	public-inbox-index dev

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://inbox.dpdk.org/inbox.dpdk.dev


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git