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

Xueming(Steven) Li xuemingl at mellanox.com
Mon Dec 4 15:24:53 CET 2017



> -----Original Message-----
> From: Nelio Laranjeiro [mailto:nelio.laranjeiro at 6wind.com]
> Sent: Monday, December 4, 2017 6:33 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 v1 1/5] ethdev: support rss level on tunnel
> 
> Xueming,
> 
> On Mon, Dec 04, 2017 at 09:05:22AM +0000, Xueming(Steven) Li wrote:
> >
> > > -----Original Message-----
> > > From: Nelio Laranjeiro [mailto:nelio.laranjeiro at 6wind.com]
> > > Sent: Monday, December 4, 2017 4:11 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 v1 1/5] ethdev: support rss level on tunnel
> > >
> > > Hi Xueming,
> > >
> > > On Sun, Dec 03, 2017 at 02:08:08PM +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)
> > > >
> > > > Signed-off-by: Xueming Li <xuemingl at mellanox.com>
> > > > ---
> > > >  lib/librte_ether/rte_flow.h | 8 ++++++++
> > > >  1 file changed, 8 insertions(+)
> > > >
> > > > diff --git a/lib/librte_ether/rte_flow.h
> > > > b/lib/librte_ether/rte_flow.h index 47c88ea52..41ab91912 100644
> > > > --- a/lib/librte_ether/rte_flow.h
> > > > +++ b/lib/librte_ether/rte_flow.h
> > > > @@ -1078,6 +1078,14 @@ struct rte_flow_action_dup {
> > > >   */
> > > >  struct rte_flow_action_rss {
> > > >  	const struct rte_eth_rss_conf *rss_conf; /**< RSS parameters.
> */
> > > > +	/**
> > > > +	 * RSS on tunnel level:
> > > > +	 *  0: outer RSS
> > > > +	 *  1: inner RSS
> > > > +	 *  2-254: deep inner tunnel level RSS
> > > > +	 *  -1: inner most level according to flow pattern
> > > > +	 */
> > >
> > > Not clear enough, some PMD like MLX5 accept rules starting from the
> > > VXLAN level, the comment "Inner most level according to flow pattern"
> > > does not inform inside which tunnel the RSS will be done as this
> > > pattern does not provide any information related to the position of
> > > the tunnel in the packet.
> > > What are the expectation for such situation?
> > Regarding to supported tunnel types, VXLAN, L3VXLAN, GRE or GENEVE as
> > long as the PMD supports. RTE_PTYPE_TUNNEL_MASK is a good mask of
> > supported tunnel types.
> 
> Seems you did not understood my question, if I set a flow rule as
> 
>  flow create 0 ingress vxlan / end action rss level -1 queues 0 1 end /
> end
> 
> According to your definition: "inner most level according to flow pattern"
> in my example, the pattern does not provide any "level", this rule can
> match the first level as the 254th as well, this leads to an undefined
> situation when using level = -1.
> 
> What is your expectation in such situation?
> 
This rule looks a little confused to users, it covers fowling cases?
	Vxlan
	Gre/vxlan
	Vxlan/vxlan/vxlan
Auto rss level detection will get 1,2,3 for each of above examples from
Pattern in a left to right order, based on what defined in pattern. 
Users has to define tunnel pattern one by one exactly.

Actually we seldom see real requirement beyond inner tunnel, the auto-
detection could be abandoned if it conflict with existing definition.

> Thanks,
> 
> --
> Nélio Laranjeiro
> 6WIND


More information about the dev mailing list