[dpdk-dev] [PATCH v3] net/i40e: fix queue region issue in RSS flow

Wang, ShougangX shougangx.wang at intel.com
Thu May 14 09:04:28 CEST 2020


Hi, Bernad

> -----Original Message-----
> From: Iremonger, Bernard <bernard.iremonger at intel.com>
> Sent: Wednesday, May 13, 2020 6:12 PM
> To: Wang, ShougangX <shougangx.wang at intel.com>; dev at dpdk.org
> Cc: Xing, Beilei <beilei.xing at intel.com>; Guo, Jia <jia.guo at intel.com>; Wang,
> ShougangX <shougangx.wang at intel.com>; stable at dpdk.org
> Subject: RE: [dpdk-dev] [PATCH v3] net/i40e: fix queue region issue in RSS
> flow
> 
> Hi Shougang,
> 
> > -----Original Message-----
> > From: dev <dev-bounces at dpdk.org> On Behalf Of Shougang Wang
> > Sent: Wednesday, May 13, 2020 4:33 AM
> > To: dev at dpdk.org
> > Cc: Xing, Beilei <beilei.xing at intel.com>; Guo, Jia
> > <jia.guo at intel.com>; Wang, ShougangX <shougangx.wang at intel.com>;
> > stable at dpdk.org
> > Subject: [dpdk-dev] [PATCH v3] net/i40e: fix queue region issue in RSS
> > flow
> >
> > This patch fixes the issue that the queue region does not take effect
> > due to incorrectly setting the flow type.
> >
> > Fixes: ecad87d22383 ("net/i40e: move RSS to flow API")
> > Cc: stable at dpdk.org
> >
> > Signed-off-by: Shougang Wang <shougangx.wang at intel.com>
> > Reviewed-by: Jeff Guo <jia.guo at intel.com>
> > ---
> >  drivers/net/i40e/i40e_flow.c | 35
> ++++++++++++++++++++++++++++++++-
> > --
> >  1 file changed, 32 insertions(+), 3 deletions(-)
> >
> > diff --git a/drivers/net/i40e/i40e_flow.c
> > b/drivers/net/i40e/i40e_flow.c index 7e64ae53a..2f937567b 100644
> > --- a/drivers/net/i40e/i40e_flow.c
> > +++ b/drivers/net/i40e/i40e_flow.c
> > @@ -4625,6 +4625,34 @@ i40e_flow_parse_rss_action(struct rte_eth_dev
> > *dev,  uint32_t index = 0;  uint64_t hf_bit = 1;
> >
> > +static const struct {
> > +uint64_t rss_type;
> > +enum i40e_filter_pctype pctype;
> > +} pctype_match_table[] = {
> > +{ETH_RSS_FRAG_IPV4,
> > +I40E_FILTER_PCTYPE_FRAG_IPV4},
> > +{ETH_RSS_NONFRAG_IPV4_TCP,
> > +I40E_FILTER_PCTYPE_NONF_IPV4_TCP},
> > +{ETH_RSS_NONFRAG_IPV4_UDP,
> > +I40E_FILTER_PCTYPE_NONF_IPV4_UDP},
> > +{ETH_RSS_NONFRAG_IPV4_SCTP,
> > +I40E_FILTER_PCTYPE_NONF_IPV4_SCTP},
> > +{ETH_RSS_NONFRAG_IPV4_OTHER,
> > +I40E_FILTER_PCTYPE_NONF_IPV4_OTHER},
> > +{ETH_RSS_FRAG_IPV6,
> > +I40E_FILTER_PCTYPE_FRAG_IPV6},
> > +{ETH_RSS_NONFRAG_IPV6_TCP,
> > +I40E_FILTER_PCTYPE_NONF_IPV6_TCP},
> > +{ETH_RSS_NONFRAG_IPV6_UDP,
> > +I40E_FILTER_PCTYPE_NONF_IPV6_UDP},
> > +{ETH_RSS_NONFRAG_IPV6_SCTP,
> > +I40E_FILTER_PCTYPE_NONF_IPV6_SCTP},
> > +{ETH_RSS_NONFRAG_IPV6_OTHER,
> > +I40E_FILTER_PCTYPE_NONF_IPV6_OTHER},
> > +{ETH_RSS_L2_PAYLOAD,
> > +I40E_FILTER_PCTYPE_L2_PAYLOAD},
> > +};
> 
> I don't think this is a complete list of RSS offload types.
> See file librte_ethdev/rte_ethdev,h  lines 496 to 523.
> See also app/test-pmd/config.c lines 77 to 121.
> 
Thanks for your review.
We can not contain all the RSS offload types. We need i40e_filter_pctype to configure the queue region. It only defines some basic pctypes and there is no regular between i40e_filter_pctype and RSS offload types. So for "flow create", it can only configure queue region for these basic pctypes. What we can do is associate them with RSS offload types.

Thanks.
Shougang


More information about the dev mailing list