[dpdk-dev] [PATCH v2] net/mlx5: fix the RSS consistency check of meter policy
Ferruh Yigit
ferruh.yigit at intel.com
Wed Nov 10 17:16:54 CET 2021
On 10/18/2021 3:43 PM, Bing Zhao wrote:
> After yellow color actions in the metering policy were supported,
> the RSS could be used for both green and yellow colors and only the
> queues attribute could be different.
>
> When specifying the attributes of a RSS, some fields can be ignored
> and some default values will be used in PMD. For example, there is a
> default RSS key in the PMD and it will be used to create the TIR if
> nothing is provided by the application.
>
> The default value cases were missed in the current implementation
> and it would cause some false positives or crashes.
>
> The comparison function should be adjusted to take all cases into
> consideration when RSS is used for both green and yellow colors.
>
> Fixes: 4b7bf3ffb473 ("net/mlx5: support yellow in meter policy validation")
> Cc: stable at dpdk.org
>
> Signed-off-by: Bing Zhao <bingz at nvidia.com>
> ---
> v2: remove unnecessary parenthesis
> ---
> drivers/net/mlx5/mlx5_flow_dv.c | 18 ++++++++++++++----
> 1 file changed, 14 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/net/mlx5/mlx5_flow_dv.c b/drivers/net/mlx5/mlx5_flow_dv.c
> index 609ab43fb6..94b70bd10a 100644
> --- a/drivers/net/mlx5/mlx5_flow_dv.c
> +++ b/drivers/net/mlx5/mlx5_flow_dv.c
> @@ -17412,12 +17412,22 @@ static inline int
> flow_dv_mtr_policy_rss_compare(const struct rte_flow_action_rss *r1,
> const struct rte_flow_action_rss *r2)
> {
> - if (!r1 || !r2)
> + if (r1 == NULL || r2 == NULL)
> return 0;
> - if (r1->func != r2->func || r1->level != r2->level ||
> - r1->types != r2->types || r1->key_len != r2->key_len ||
> - memcmp(r1->key, r2->key, r1->key_len))
> + if (!(r1->level <= 1 && r2->level <= 1) &&
> + !(r1->level > 1 && r2->level > 1))
> return 1;
> + if (r1->types != r2->types &&
> + !((r1->types == 0 || r1->types == ETH_RSS_IP) &&
> + (r2->types == 0 || r2->types == ETH_RSS_IP)))
Need to use renamed macro: RTE_ETH_RSS_IP
Will update in the next-net.
More information about the dev
mailing list