DPDK patches and discussions
 help / color / mirror / Atom feed
From: Slava Ovsiienko <viacheslavo@nvidia.com>
To: "Min Hu (Connor)" <humin29@huawei.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: Wed, 30 Jun 2021 11:44:35 +0000	[thread overview]
Message-ID: <DM6PR12MB3753BFD9AAB1FE79BC3023F7DF019@DM6PR12MB3753.namprd12.prod.outlook.com> (raw)
In-Reply-To: <5b0f7327-a089-edd1-163b-7b57cd90b575@huawei.com>

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.

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).

With best regards,
Slava


  reply	other threads:[~2021-06-30 11:44 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 [this message]
2021-07-01  0:23       ` Min Hu (Connor)
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=DM6PR12MB3753BFD9AAB1FE79BC3023F7DF019@DM6PR12MB3753.namprd12.prod.outlook.com \
    --to=viacheslavo@nvidia.com \
    --cc=andrew.rybchenko@oktetlabs.ru \
    --cc=beilei.xing@intel.com \
    --cc=dev@dpdk.org \
    --cc=ferruh.yigit@intel.com \
    --cc=humin29@huawei.com \
    --cc=matan@nvidia.com \
    --cc=shahafs@nvidia.com \
    --cc=thomas@monjalon.net \
    /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).