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
>
next prev parent 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).