From cd04052475995caffc1d59a199260b86f32242cc Mon Sep 17 00:00:00 2001 From: Matan Azrad Date: Wed, 19 Feb 2020 08:29:36 +0000 Subject: [PATCH] net/mlx5: fix L3 VXLAN RSS expansion The RSS expansion feature was introduced to split RSS flows according to the adjustment between the RSS types and the flow items. The expansion function gets an item tree for the above adjustment from the caller which reflects the HW needs. The standard vxlan header next protocol is always Ethernet while there are some Mellanox customers who use their own method to allow L3 headers after the vxlan tunnel header. The expansion tree of mlx5 PMD didn't expect to get L3 headers after the vxlan header what caused a failure in flow creation when inner RSS is requested on L3 after vxlan flow. Add IPV4 and IPV6 as optional headers after vxlan in the RSS expansion tree to allow L3 tunnel support for vxlan. Fixes: f4f06e361516 ("net/mlx5: add flow VXLAN item") Cc: stable@dpdk.org Signed-off-by: Matan Azrad Acked-by: Viacheslav Ovsiienko --- 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 eb6bd274e5..ce5adede30 100644 --- a/drivers/net/mlx5/mlx5_flow.c +++ b/drivers/net/mlx5/mlx5_flow.c @@ -167,7 +167,9 @@ static const struct rte_flow_expand_node mlx5_support_expansion[] = { .rss_types = ETH_RSS_NONFRAG_IPV6_TCP, }, [MLX5_EXPANSION_VXLAN] = { - .next = RTE_FLOW_EXPAND_RSS_NEXT(MLX5_EXPANSION_ETH), + .next = RTE_FLOW_EXPAND_RSS_NEXT(MLX5_EXPANSION_ETH, + MLX5_EXPANSION_IPV4, + MLX5_EXPANSION_IPV6), .type = RTE_FLOW_ITEM_TYPE_VXLAN, }, [MLX5_EXPANSION_VXLAN_GPE] = { -- 2.20.1