[PATCH v2 1/2] net/nfp: standardize the use of RSS-related codes

Ferruh Yigit ferruh.yigit at amd.com
Thu Feb 23 16:13:02 CET 2023


On 2/21/2023 3:55 AM, Chaoyong He wrote:
> From: Long Wu <long.wu at corigine.com>
> 
> The usage of RTE_ETH_MQ_RX_RSS and RTE_ETH_MQ_RX_RSS_FLAG are mixed in
> nfp_net_configure(), use RTE_ETH_MQ_RX_RSS_FLAG uniformly.
> 
> Signed-off-by: Long Wu <long.wu at corigine.com>
> Reviewed-by: Chaoyong He <chaoyong.he at corigine.com>
> Reviewed-by: Niklas Söderlund <niklas.soderlund at corigine.com>
> ---
>  drivers/net/nfp/nfp_common.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/net/nfp/nfp_common.c b/drivers/net/nfp/nfp_common.c
> index 907777a9e4..a545a10013 100644
> --- a/drivers/net/nfp/nfp_common.c
> +++ b/drivers/net/nfp/nfp_common.c
> @@ -171,7 +171,7 @@ nfp_net_configure(struct rte_eth_dev *dev)
>  	}
>  
>  	/* Checking RX mode */
> -	if (rxmode->mq_mode & RTE_ETH_MQ_RX_RSS &&
> +	if (rxmode->mq_mode & RTE_ETH_MQ_RX_RSS_FLAG &&
>  	    !(hw->cap & NFP_NET_CFG_CTRL_RSS_ANY)) {
>  		PMD_INIT_LOG(INFO, "RSS not supported");
>  		return -EINVAL;

They are same values, but when used as a mask, flag one can be more proper.

BUT,
Not sure how correct to '&' an enum element, enums supposed to be
abstraction on underneath values, right?
For this case user should know/care enum values which is wrong, perhaps
to OR flags to make enum elements was a mistake on our end.

Anyway, with above usage all enum elements that has RSS_FLAG is taken
into account, like 'RTE_ETH_MQ_RX_VMDQ_RSS' (RSS mode with VMDq), are
you sure that is the intention, is there a chance you meant:

 if (rxmode->mq_mode == RTE_ETH_MQ_RX_RSS && ...)


btw, what if mq_mode is 'RTE_ETH_MQ_RX_VMDQ_DCB', is it supported?
	


I just recognized there are various similar usage in drivers, and most
of them comes from same commit [1], we can discuss and fix that separately.

[1]
73fb89dd6a00 ("drivers/net: fix RSS hash offload flag if no RSS")


More information about the dev mailing list