DPDK patches and discussions
 help / color / mirror / Atom feed
From: "Min Hu (Connor)" <humin29@huawei.com>
To: Slava Ovsiienko <viacheslavo@nvidia.com>,
	Ferruh Yigit <ferruh.yigit@intel.com>,
	"dev@dpdk.org" <dev@dpdk.org>,
	NBU-Contact-Thomas Monjalon <thomas@monjalon.net>,
	Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
Cc: Beilei Xing <beilei.xing@intel.com>,
	Matan Azrad <matan@nvidia.com>,
	Shahaf Shuler <shahafs@nvidia.com>
Subject: Re: [dpdk-dev] Question about 'rxm->hash.rss' and 'mb->hash.fdir'
Date: Thu, 1 Jul 2021 08:23:57 +0800	[thread overview]
Message-ID: <2b603c31-49d7-12aa-5546-53e9a798df61@huawei.com> (raw)
In-Reply-To: <DM6PR12MB3753BFD9AAB1FE79BC3023F7DF019@DM6PR12MB3753.namprd12.prod.outlook.com>

Hi, Slava

在 2021/6/30 19:44, Slava Ovsiienko 写道:
> Hi,
> 
>> -----Original Message-----
>> From: Min Hu (Connor) <humin29@huawei.com>
>> Sent: Wednesday, June 30, 2021 14:22
>> To: Ferruh Yigit <ferruh.yigit@intel.com>; dev@dpdk.org; NBU-Contact-Thomas
>> Monjalon <thomas@monjalon.net>; Andrew Rybchenko
>> <andrew.rybchenko@oktetlabs.ru>
>> Cc: Beilei Xing <beilei.xing@intel.com>; Matan Azrad <matan@nvidia.com>;
>> Shahaf Shuler <shahafs@nvidia.com>; Slava Ovsiienko
>> <viacheslavo@nvidia.com>
>> Subject: Re: Question about 'rxm->hash.rss' and 'mb->hash.fdir'
>>
>> Hi, Beilei, Matan, Shahaf, Viacheslav,
>>
>> 	how about your opinion?
>>
>> 在 2021/6/30 17:34, Ferruh Yigit 写道:
>>> On 6/30/2021 3:45 AM, Min Hu (Connor) wrote:
>>>> Hi, all
>>>>       one question about 'rxm->hash.rss' and 'mb->hash.fdir'.
>>>>
>>>>       In Rx recv packets function,
>>>>       'rxm->hash.rss' will report rss hash result from Rx desc.
>>>>       'rxm->hash.fdir' will report filter identifier from Rx desc.
>>>>
>>>>       But function implementation differs from some PMDs. for example:
>>>>       i40e, MLX5 report the two at the same time if pkt_flags is set,like:
>>>> ******************************************
>>>>           if (pkt_flags & PKT_RX_RSS_HASH) {
>>>>               rxm->hash.rss =
>>>> rte_le_to_cpu_32(rxd.wb.qword0.hi_dword.rss);
>>>>           }
>>>>           if (pkt_flags & PKT_RX_FDIR) {
>>>>               mb->hash.fdir.hi =
>>>>           rte_le_to_cpu_32(rxdp->wb.qword3.hi_dword.fd_id);
>>>>           }
>>>> ********************************************
>>>>
>>>>       While, ixgbe only report one of the two. like:
>>>> ******************************************
>>>>           if (likely(pkt_flags & PKT_RX_RSS_HASH))
>>>>               mb->hash.rss = rte_le_to_cpu_32(
>>>>                   rxdp[j].wb.lower.hi_dword.rss);
>>>>           else if (pkt_flags & PKT_RX_FDIR) {
>>>>               mb->hash.fdir.hash = rte_le_to_cpu_16(
>>>>                   rxdp[j].wb.lower.hi_dword.csum_ip.csum) &
>>>>                   IXGBE_ATR_HASH_MASK;
>>>>               mb->hash.fdir.id = rte_le_to_cpu_16(
>>>>                   rxdp[j].wb.lower.hi_dword.csum_ip.ip_id);
>>>>           }
>>>> ********************************************
>>>>       So, what is application scenario for 'rxm->hash.rss' and
>>>> 'mb->hash.fdir', that is, why the two should be reported? How about
>>>> reporting the two at the same time?
>>>>       Thanks for  your reply.
>>>
>>>
>>> Hi Connor,
>>>
>>> mbuf->hash is union, so it is not possible to set both 'hash.rss' & 'hash.fdir'.
> 
> hash.rss is uint32_t and shares the memory with hash.dir.lo.
> hash.dir.hi is untouched by access to hash.rss.
> Hence, IIUC, we can provide both valid hash.rss and hash.fdir.hi at the same time.
> 
if reported at the same time, what do users(or APP)use them for ?
> At least mlx5 provides both (at least if CQE compression option allows it).
> RSS hash is provided in the hash.rss, and MARK RTE Flow action result is
> reported in hash.fdir.hi in independent way.
> 
>>>
>>> I assume for i40e & mlx5 case 'pkt_flags' indicate which one is valid
>>> and only one is set in practice. Cc'ed driver mainteriners for more comment.
>>
>> Thanks Ferruh,
>> 	another question, why does user need this information:  rxm->hash.rss
>> or mb->hash.fdir.hi ? what is the function?
> 
> IIRC, hash.rss is the lower bits if calculated hash function result over the packet.
> hash.fdir.hi is the result of MARK RTE Flow action (at least for mlx5).
> 
Thanks for your reply.
> With best regards,
> Slava
> 

  reply	other threads:[~2021-07-01  0:24 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-06-30  2:45 Min Hu (Connor)
2021-06-30  9:34 ` Ferruh Yigit
2021-06-30 11:21   ` Min Hu (Connor)
2021-06-30 11:44     ` Slava Ovsiienko
2021-07-01  0:23       ` Min Hu (Connor) [this message]
2021-07-01  1:31     ` Xing, Beilei

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=2b603c31-49d7-12aa-5546-53e9a798df61@huawei.com \
    --to=humin29@huawei.com \
    --cc=andrew.rybchenko@oktetlabs.ru \
    --cc=beilei.xing@intel.com \
    --cc=dev@dpdk.org \
    --cc=ferruh.yigit@intel.com \
    --cc=matan@nvidia.com \
    --cc=shahafs@nvidia.com \
    --cc=thomas@monjalon.net \
    --cc=viacheslavo@nvidia.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
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).