Hi, all,

On Thu, Mar 3, 2022 at 12:59 AM Stephen Hemminger
<step...@networkplumber.org> wrote:
>
> On Wed, 02 Mar 2022 15:46:37 +0100
> Thomas Monjalon <tho...@monjalon.net> wrote:
>
> > 02/03/2022 15:07, Ori Kam:
> > > From: lihuisong (C) <lihuis...@huawei.com>
> > > > 在 2022/3/1 0:42, Ferruh Yigit 写道:
> > > > > On 2/28/2022 3:21 AM, Min Hu (Connor) wrote:
> > > > >> From: Huisong Li <lihuis...@huawei.com>
> > > > >>
> > > > >> RSS will not be enabled if the RTE_ETH_MQ_RX_RSS_FLAG isn't be set in
> > > > >> dev_configure phase. However, if this flag isn't set, RSS can be 
> > > > >> enabled
> > > > >> through the ethdev ops and rte_flow API. This behavior is contrary to
> > > > >> each
> > > > >> other.
> > > > >>
> > > > >> Fixes: c37ca66f2b27 ("net/hns3: support RSS")
> > > > >> Cc: sta...@dpdk.org
> > > > >>
> > > > >> Signed-off-by: Huisong Li <lihuis...@huawei.com>
> > > > >
> > > > >
> > > > > Hi Huisong, Connor,
> > > > >
> > > > > Let's get a little more feedback for this patch, cc'ed more people.
> > > > >
> > > > >
> > > > > To enable RSS, multi queue mode should be set to
> > > > > 'RTE_ETH_MQ_RX_RSS_FLAG'.
> > > > >
> > > > > But I wonder if it is required to configure RSS via flow API,
> > > >
> > > > I do not know the original purpose of adding the RSS configuration in
> > > > flow API.

In OVS-DPDK, there is a use case to add mark+rss action via flow API. See [1]:
[1]: 
https://github.com/openvswitch/ovs/blob/master/lib/netdev-offload-dpdk.c#L1677

> > > >
> > > The purpose is simple, this allow to create RSS per rule and not a global 
> > > one.
> > > For example create RSS that sends TCP to some queues while othe RSS will 
> > > send
> > > UDP traffic to different queues.
> > >
> > > > However, as far as I know, the hash algorithm can be configured via this
> > > > API,
> > > >
> > > > but not via ethdev ops API.
> > > >
> > > > > and if other PMDs check this configuration for flow API?
> > > >
> > > > Some PMDs already have similar check in RSS releated ops or rte_flow 
> > > > API.
> > > >
> > > > For example, hinic, axbge, bnxt, cnxk, otx2, and ena.
> >
> > I suggest removing these checks.
> >
> > > From my view point those are two different settings.
> > > The RTE_ETH_MQ_RX_RSS_FLAG is global per port while
> > > rte_flow is per rule.
> > >
> > > I think, that if a PMD needs this flag, in order to enable it also for 
> > > rte_flow then
> > > it should be documented in the release note of the PMD.
> > > It is a valid use case that the default traffic will not have RSS and 
> > > only rules created by
> > > rte_flow will have the RSS, for matching traffc.
> >
> > I think RTE_ETH_MQ_RX_RSS_FLAG should not be required by any PMD
> > for rte_flow RSS rules.
> >
> >
>
> Agreed.
>
> The ideal state around RSS would be:
>    - global settings affect the default started queues when device is started.
>      if RSS is enabled and 4 queues are started, then RSS would happen for 
> received
>      packets across those 4 queues.
>    - when adding new flow related rx:
>       - new queues could be started - BUT not part of original RSS
>       - new rte_flow rule can do RSS against the new flow:
>             example:
>               start queues 4,5,6,7
>               rte_flow match TCP port 80 and process on queues 4,5,6,7 with 
> RSS
>
> This is a mess today, most devices work differently and there is no reference 
> software
> implementation.  In an ideal state, there would be a reference software 
> implementation
> that implements all of rte_flow, and all new hardware support would have to 
> work the same
> as the reference implementation. And there would be a full CI test suite 
> around rte_flow.

When adding a new flow with RSS action, does the RSS hash type have to
be set or it could inherit the global setting? I see there are some
different behaviors when we use RSS actions without hash types. In my
test, the E810 and Broadcom NetXtreme-E work well but there are some
problems in MLX5. There is a patch in [2]. Anyone could give some
suggestions?

[2]: 
https://patchwork.ozlabs.org/project/openvswitch/patch/20220316080842.811478-1-baymaxhu...@gmail.com/

-- 
Thanks, Harold.

Reply via email to