net/mlx5: fix check for MPLS-in-GRE

Multiple tunnel isn't allowed but MPLS over GRE should be accepted.

Fixes: a4a5cd21d2 ("net/mlx5: add flow MPLS item")

Signed-off-by: Yongseok Koh <yskoh@mellanox.com>
This commit is contained in:
Yongseok Koh 2018-08-03 15:00:56 -07:00 committed by Shahaf Shuler
parent 2547ee7458
commit e845e9ceb4

View File

@ -1778,7 +1778,9 @@ mlx5_flow_item_mpls(const struct rte_flow_item *item __rte_unused,
item,
"protocol filtering not compatible"
" with MPLS layer");
if (flow->layers & MLX5_FLOW_LAYER_TUNNEL)
/* Multi-tunnel isn't allowed but MPLS over GRE is an exception. */
if (flow->layers & MLX5_FLOW_LAYER_TUNNEL &&
(flow->layers & MLX5_FLOW_LAYER_GRE) != MLX5_FLOW_LAYER_GRE)
return rte_flow_error_set(error, ENOTSUP,
RTE_FLOW_ERROR_TYPE_ITEM,
item,