Hi Andrew,

> -----Original Message-----
> From: Andrew Rybchenko <arybche...@solarflare.com>
> 
> On 8/3/20 6:47 PM, Ori Kam wrote:
> >
> >
> >> -----Original Message-----
> >> From: Andrew Rybchenko <arybche...@solarflare.com>
> >>
> >> On 8/3/20 6:22 PM, Ori Kam wrote:
> >>> Hi Andrew,
> >>>
> >>>> -----Original Message-----
> >>>> From: Andrew Rybchenko <arybche...@solarflare.com>
> >>>>
> >>>> On 8/3/20 5:28 PM, Ori Kam wrote:
> >>>>> Using the rte_flow action RSS types field,
> >>>>> may result in an undefined outcome.
> >>>>>
> >>>>> For example selecting both UDP and TCP,
> >>>>> selecting TCP RSS type but the pattern is targeting UDP traffic.
> >>>>> another option is that the PMD doesn't support all requested types.
> >>>>>
> >>>>> Until now, it wasn't clear what will happen in such cases.
> >>>>> This commit clarify this issue by stating that the PMD
> >>>>> will work in the best-effort mode.
> >>>>>
> >>>>> Signed-off-by: Ori Kam <or...@mellanox.com>
> >>>>> ---
> >>>>>  doc/guides/prog_guide/rte_flow.rst | 10 ++++++++++
> >>>>>  1 file changed, 10 insertions(+)
> >>>>>
> >>>>> diff --git a/doc/guides/prog_guide/rte_flow.rst
> >>>> b/doc/guides/prog_guide/rte_flow.rst
> >>>>> index 3e5cd1e..d000560 100644
> >>>>> --- a/doc/guides/prog_guide/rte_flow.rst
> >>>>> +++ b/doc/guides/prog_guide/rte_flow.rst
> >>>>> @@ -1735,6 +1735,16 @@ unspecified "best-effort" settings from the
> >>>> underlying PMD, which depending
> >>>>>  on the flow rule, may result in anything ranging from empty (single
> queue)
> >>>>>  to all-inclusive RSS.
> >>>>>
> >>>>> +Best effort will be used, in case there is a conflict inside the rule.
> >>>>> +The conflict can be the result of:
> >>>>> +
> >>>>> +- Conflicting RSS types, for example setting both UDP and TCP.
> >>>>> +
> >>>>> +- Conflicting between RSS types and the requested pattern to match,
> >>>>> +  for example matching on UDP and hashing RSS on TCP.
> >>>> IMHO it is not a problem at all, but good to clarify anyway.
> >>>>
> >>> Agree this patch is just for clarification.
> >>>
> >>>>> +
> >>>>> +- Hashing on types that are not supported by the PMD.
> >>>> Shouldn't it return error to the caller?
> >>>>
> >>> That’s depends, if for example the application requested eth and IPv4,
> >>> and the PMD can do only IPv4 so according to this, the PMD will just do
> IPv4.
> >>
> >> I think it is a bad behaviour. Application has required information to
> >> provide correct parameters and therefore incorrect should be rejected.
> >> Am I missing something?
> >>
> > In RTE flow you can't know what are the parameters that are supported.
> > One option is to fail the rule, but this means failing the rule even if 
> > some of
> them are supported.
> > Or we can choose to fail if all the types are unsupported, but this will 
> > result in
> miss match between
> > adding two types and adding just one type. For example the PMD doesn't
> support RSS on eth
> > and the application request RSS on ETH and IPv4 so the PMD will do IPv4 RSS,
> > while if the user selects only ETH the rule will fail.
> > Same this is exactly the same case as miss match the application requests
> something
> > that the PMD can't supply.
> > In any case I think this is the current behavior of the PMD so this just 
> > clarify it.
> 
> I'm sorry, but the PMD is hardly applicable here.
> Do you mean the "mlx5" PMD? Or have you reviewed all PMDs?
> 
I assume that each PMD as its own limitations, I'm sure that no
PMD can support all possible RSS. But maybe there is such perfect PMD.

> No I understand that the topic is more complicated, but
> covering complex cases should not spoil simple.
> I think that information provided in dev_info should
> specify all supported protocols/fields.
> Yes, it is acceptable to behave best effort if requested
> field is supported in general, but it not for the flow.
> Please, make it a bit clearer in the suggested description.
> 
So what about the following wording: (after the current part)
If requested RSS hash type is not supported, and no supported hash function
is requested then the PMD may reject the flow.

> >
> >>>>> +
> >>>>>  Note: RSS hash result is stored in the ``hash.rss`` mbuf field which
> >>>>>  overlaps ``hash.fdir.lo``. Since `Action: MARK`_ sets the 
> >>>>> ``hash.fdir.hi``
> >>>>>  field only, both can be requested simultaneously.
> >>>>>
> >

Reply via email to