Update the mlx5_flow_validate_item_mpls() function to allow
MPLS over UDP as well as MPLS over IP.

Fixes: 84c406e74524 ("net/mlx5: add flow translate function")
Cc: or...@mellanox.com

Signed-off-by: Dekel Peled <dek...@mellanox.com>
---
 drivers/net/mlx5/mlx5_flow.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/net/mlx5/mlx5_flow.c b/drivers/net/mlx5/mlx5_flow.c
index 21d65f4..0db862b 100644
--- a/drivers/net/mlx5/mlx5_flow.c
+++ b/drivers/net/mlx5/mlx5_flow.c
@@ -1626,7 +1626,9 @@ uint32_t mlx5_flow_adjust_priority(struct rte_eth_dev 
*dev, int32_t priority,
        const struct rte_flow_item_mpls *mask = item->mask;
        int ret;
 
-       if (target_protocol != 0xff && target_protocol != IPPROTO_MPLS)
+       /* MPLS over IP and MPLS over UDP is allowed */
+       if (target_protocol != 0xff && target_protocol != IPPROTO_MPLS &&
+           target_protocol != IPPROTO_UDP)
                return rte_flow_error_set(error, EINVAL,
                                          RTE_FLOW_ERROR_TYPE_ITEM, item,
                                          "protocol filtering not compatible"
-- 
1.8.3.1

Reply via email to