The PMD did not recognize IPv6-in-IPv6 tunnel if IPv6 routing
extension was placed between IPv6 outer and inner headers.

The patch fixes IPv6-in-IPv6 tunnel recognition.

Fixes: 80c676259a04 ("net/mlx5: validate HWS template items")

Signed-off-by: Gregory Etelson <getel...@nvidia.com>
Acked-by: Dariusz Sosnowski <dsosnow...@nvidia.com>
---
 drivers/net/mlx5/mlx5_flow_hw.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/net/mlx5/mlx5_flow_hw.c b/drivers/net/mlx5/mlx5_flow_hw.c
index ad8d73a089..7c9ba4e819 100644
--- a/drivers/net/mlx5/mlx5_flow_hw.c
+++ b/drivers/net/mlx5/mlx5_flow_hw.c
@@ -8228,7 +8228,8 @@ mlx5_hw_flow_tunnel_ip_check(uint64_t last_item, uint64_t 
*item_flags)
        if (last_item == MLX5_FLOW_LAYER_OUTER_L3_IPV4) {
                tunnel = true;
                *item_flags |= MLX5_FLOW_LAYER_IPIP;
-       } else if (last_item == MLX5_FLOW_LAYER_OUTER_L3_IPV6) {
+       } else if (last_item == MLX5_FLOW_LAYER_OUTER_L3_IPV6 ||
+                  last_item == MLX5_FLOW_ITEM_OUTER_IPV6_ROUTING_EXT) {
                tunnel = true;
                *item_flags |= MLX5_FLOW_LAYER_IPV6_ENCAP;
        } else {
-- 
2.43.0

Reply via email to