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. > > > > > 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.