[dpdk-dev] i40e mbuf->rss indication

Bruce Richardson bruce.richardson at intel.com
Thu Mar 22 15:21:33 CET 2018


On Thu, Mar 22, 2018 at 12:52:30PM +0000, Hanoch Haim (hhaim) wrote:
> Hi, 
> I think this is not the vector driver because I'm user scatter/gather 
> 

Vector driver has supported multi-buffer packets for a while now, so it
should be used for packet RX in i40e in just about all cases.

If possible, could you check if adjusting the setting for 16B/32B
descriptors in the build-time config makes a difference. For 16B
descriptors the flow director ID and RSS hash share a field in the
descriptor, while they don't with 32B versions (though the vector driver
only ever reads the first 16B of each descriptor in any case).

/Bruce

> Thanks,
> Hanoh
> 
> 
> -----Original Message-----
> From: Ferruh Yigit [mailto:ferruh.yigit at intel.com] 
> Sent: Thursday, March 22, 2018 2:18 PM
> To: Hanoch Haim (hhaim); Bruce Richardson
> Cc: dev at dpdk.org
> Subject: Re: [dpdk-dev] i40e mbuf->rss indication
> 
> On 3/22/2018 11:46 AM, Hanoch Haim (hhaim) wrote:
> > Driver: i40e
> > 
> > DPDK : 17.11
> > 
> > Configuration : 
> > 
> > 1)     RSS configuration 
> >        rxmode.mq_mode = ETH_MQ_RX_RSS;
> >        rss->rss_hf = ETH_RSS_UDP | ETH_RSS_TCP;
> >        rss->rss_key = Microsoft key 
> >        rss->rss_key_len = 52
> > 
> >        *configure RETA to some rx-queues
> > 
> > 2)        Change hash to TOEPLITZ (only for i40e)
> > 
> >           struct rte_eth_hash_filter_info info = {};
> >           info.info_type = RTE_ETH_HASH_FILTER_GLOBAL_CONFIG;
> >           info.info.global_conf.hash_func = RTE_ETH_HASH_FUNCTION_TOEPLITZ;
> >           rte_eth_dev_filter_ctrl(m_repid, 
> >                                   RTE_ETH_FILTER_HASH,
> >                                   RTE_ETH_FILTER_SET, &info);
> > 
> > 3) Configure some flow-director rules 
> > 
> > 4) TCP/UDP packets are received to the *right* core (based on a SW Toeplitz calculation +reta table) however
> >    The reported rss value is *wrong* in the mbuf 
> >   (m->hash.rss == *wrong value*)
> 
> Are you getting same result with both scalar and vector driver?
> 
> >   ((m->ol_flags&PKT_RX_RSS_HASH) == PKT_RX_RSS_HASH
> > 
> > 5) The above works fine for mlx5 and ixgbe
> > 
> > 6) I suspect the hash is something else, maybe flow-director id or xor hash ..
> > 
> > Wanted to know if this is a known issue. I can provide a simple way to reproduce it using TRex 
> > 
> > Thanks,
> > Hanoh
> > 
> > 
> > -----Original Message-----
> > From: Bruce Richardson [mailto:bruce.richardson at intel.com] 
> > Sent: Thursday, March 22, 2018 1:35 PM
> > To: Hanoch Haim (hhaim)
> > Cc: dev at dpdk.org
> > Subject: Re: [dpdk-dev] i40e mbuf->rss indication
> > 
> > On Wed, Mar 21, 2018 at 06:47:22PM +0000, Hanoch Haim (hhaim) wrote:
> >> Hi All,
> >> DPDK:17.11
> >> When i40e is configured with RSS enabled and hash.type=toeplitz
> >>
> >> m->hash.rss = some weird number
> >> ((m->ol_flags&PKT_RX_RSS_HASH) == PKT_RX_RSS_HASH
> >>
> >> The hash value is correct and match the MS Toeplitz standard.
> >>
> >> Is this expected?
> > 
> > I'm sorry, but I don't quite follow the question, or the problem. Are you meaning to say that the hash value is incorrect, or that the flag is not being set or something else?
> > 
> > /Bruce
> > 
> >>
> >> The above works fine with ixgbe/mlx5
> >>
> >> Thanks,
> >> Hanoh
> >>
> 


More information about the dev mailing list