[dpdk-dev] [RFC 1/4] ethdev: support rss level on tunnel

Xueming(Steven) Li xuemingl at mellanox.com
Thu Nov 30 09:46:51 CET 2017


Thanks for feedback, comments inline:

> -----Original Message-----
> From: Nelio Laranjeiro [mailto:nelio.laranjeiro at 6wind.com]
> Sent: Thursday, November 30, 2017 4:16 PM
> To: Xueming(Steven) Li <xuemingl at mellanox.com>
> Cc: Adrien Mazarguil <adrien.mazarguil at 6wind.com>; Thomas Monjalon
> <thomas at monjalon.net>; dev at dpdk.org
> Subject: Re: [RFC 1/4] ethdev: support rss level on tunnel
> 
> Hi Xueming, please see the comments below,
> 
> On Thu, Nov 30, 2017 at 01:31:03AM +0800, Xueming Li wrote:
> > There was no RSS hash fields level definition on tunnel,
> > implementations default RSS on tunnel to outer or inner. Adding rss
> > level enable users to specifiy the tunnel level of RSS hash fields.
> >
> > 0:  outer most,
> > 1:  inner,
> > -1: inner most(PMD auto detection if nested tunnel specified in
> > fields)
> 
> This *inner most* is confusing, what does it mean for the following
> pattern vxlan / end?
> This pattern is valid for any level of the VXLAN according to the NIC
> capability.  With an inner most, if the PMD support 4 levels of tunnels it
> will need to create the 4 rules to match the user request.
> Is this what you expect by this definition?
Yes, auto detection according to tunnel spec. Users could always specify a 
concrete value, 4 for this example.

> 
> There is also another question, according to the possible values (0, 1, -
> 1), it cannot handle more than 1 level explicitly, why such limitation?
They are just typical values, any value between 0-255 is acceptable.

> 
> > Signed-off-by: Xueming Li <xuemingl at mellanox.com>
> > ---
> >  lib/librte_ether/rte_flow.h | 1 +
> >  1 file changed, 1 insertion(+)
> >
> > diff --git a/lib/librte_ether/rte_flow.h b/lib/librte_ether/rte_flow.h
> > index 47c88ea..c35558c 100644
> > --- a/lib/librte_ether/rte_flow.h
> > +++ b/lib/librte_ether/rte_flow.h
> > @@ -1078,6 +1078,7 @@ struct rte_flow_action_dup {
> >   */
> >  struct rte_flow_action_rss {
> >  	const struct rte_eth_rss_conf *rss_conf; /**< RSS parameters. */
> > +	uint8_t level; /**< RSS on tunnel level, 0:outer most, -1:inner most
> > +*/
> >  	uint16_t num; /**< Number of entries in queue[]. */
> >  	uint16_t queue[]; /**< Queues indices to use. */  };
> > --
> > 1.8.3.1
> >
> 
> Thanks,
> 
> --
> Nélio Laranjeiro
> 6WIND


More information about the dev mailing list