[PATCH] net/mlx5: fix IPv6-in-IPv6 tunnel recognition

Gregory Etelson getelson at nvidia.com
Sun Jul 7 12:13:41 CEST 2024


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 <getelson at nvidia.com>
Acked-by: Dariusz Sosnowski <dsosnowski at 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



More information about the dev mailing list