@@ -150,6 +150,8 @@ mlx5_flow_is_rss_expandable_item(const struct rte_flow_item *item)
case RTE_FLOW_ITEM_TYPE_UDP:
case RTE_FLOW_ITEM_TYPE_TCP:
case RTE_FLOW_ITEM_TYPE_ESP:
+ case RTE_FLOW_ITEM_TYPE_ICMP:
+ case RTE_FLOW_ITEM_TYPE_ICMP6:
case RTE_FLOW_ITEM_TYPE_VXLAN:
case RTE_FLOW_ITEM_TYPE_NVGRE:
case RTE_FLOW_ITEM_TYPE_GRE:
@@ -563,10 +565,12 @@ enum mlx5_expansion {
MLX5_EXPANSION_OUTER_IPV4_UDP,
MLX5_EXPANSION_OUTER_IPV4_TCP,
MLX5_EXPANSION_OUTER_IPV4_ESP,
+ MLX5_EXPANSION_OUTER_IPV4_ICMP,
MLX5_EXPANSION_OUTER_IPV6,
MLX5_EXPANSION_OUTER_IPV6_UDP,
MLX5_EXPANSION_OUTER_IPV6_TCP,
MLX5_EXPANSION_OUTER_IPV6_ESP,
+ MLX5_EXPANSION_OUTER_IPV6_ICMP6,
MLX5_EXPANSION_VXLAN,
MLX5_EXPANSION_STD_VXLAN,
MLX5_EXPANSION_L3_VXLAN,
@@ -581,10 +585,12 @@ enum mlx5_expansion {
MLX5_EXPANSION_IPV4_UDP,
MLX5_EXPANSION_IPV4_TCP,
MLX5_EXPANSION_IPV4_ESP,
+ MLX5_EXPANSION_IPV4_ICMP,
MLX5_EXPANSION_IPV6,
MLX5_EXPANSION_IPV6_UDP,
MLX5_EXPANSION_IPV6_TCP,
MLX5_EXPANSION_IPV6_ESP,
+ MLX5_EXPANSION_IPV6_ICMP6,
MLX5_EXPANSION_IPV6_FRAG_EXT,
MLX5_EXPANSION_GTP,
MLX5_EXPANSION_GENEVE,
@@ -620,6 +626,7 @@ static const struct mlx5_flow_expand_node mlx5_support_expansion[] = {
(MLX5_EXPANSION_OUTER_IPV4_UDP,
MLX5_EXPANSION_OUTER_IPV4_TCP,
MLX5_EXPANSION_OUTER_IPV4_ESP,
+ MLX5_EXPANSION_OUTER_IPV4_ICMP,
MLX5_EXPANSION_GRE,
MLX5_EXPANSION_NVGRE,
MLX5_EXPANSION_IPV4,
@@ -645,11 +652,15 @@ static const struct mlx5_flow_expand_node mlx5_support_expansion[] = {
.type = RTE_FLOW_ITEM_TYPE_ESP,
.rss_types = RTE_ETH_RSS_ESP,
},
+ [MLX5_EXPANSION_OUTER_IPV4_ICMP] = {
+ .type = RTE_FLOW_ITEM_TYPE_ICMP,
+ },
[MLX5_EXPANSION_OUTER_IPV6] = {
.next = MLX5_FLOW_EXPAND_RSS_NEXT
(MLX5_EXPANSION_OUTER_IPV6_UDP,
MLX5_EXPANSION_OUTER_IPV6_TCP,
MLX5_EXPANSION_OUTER_IPV6_ESP,
+ MLX5_EXPANSION_OUTER_IPV6_ICMP6,
MLX5_EXPANSION_IPV4,
MLX5_EXPANSION_IPV6,
MLX5_EXPANSION_GRE,
@@ -675,6 +686,9 @@ static const struct mlx5_flow_expand_node mlx5_support_expansion[] = {
.type = RTE_FLOW_ITEM_TYPE_ESP,
.rss_types = RTE_ETH_RSS_ESP,
},
+ [MLX5_EXPANSION_OUTER_IPV6_ICMP6] = {
+ .type = RTE_FLOW_ITEM_TYPE_ICMP6,
+ },
[MLX5_EXPANSION_VXLAN] = {
.next = MLX5_FLOW_EXPAND_RSS_NEXT(MLX5_EXPANSION_ETH,
MLX5_EXPANSION_IPV4,
@@ -735,7 +749,8 @@ static const struct mlx5_flow_expand_node mlx5_support_expansion[] = {
[MLX5_EXPANSION_IPV4] = {
.next = MLX5_FLOW_EXPAND_RSS_NEXT(MLX5_EXPANSION_IPV4_UDP,
MLX5_EXPANSION_IPV4_TCP,
- MLX5_EXPANSION_IPV4_ESP),
+ MLX5_EXPANSION_IPV4_ESP,
+ MLX5_EXPANSION_IPV4_ICMP),
.type = RTE_FLOW_ITEM_TYPE_IPV4,
.rss_types = RTE_ETH_RSS_IPV4 | RTE_ETH_RSS_FRAG_IPV4 |
RTE_ETH_RSS_NONFRAG_IPV4_OTHER,
@@ -752,10 +767,14 @@ static const struct mlx5_flow_expand_node mlx5_support_expansion[] = {
.type = RTE_FLOW_ITEM_TYPE_ESP,
.rss_types = RTE_ETH_RSS_ESP,
},
+ [MLX5_EXPANSION_IPV4_ICMP] = {
+ .type = RTE_FLOW_ITEM_TYPE_ICMP,
+ },
[MLX5_EXPANSION_IPV6] = {
.next = MLX5_FLOW_EXPAND_RSS_NEXT(MLX5_EXPANSION_IPV6_UDP,
MLX5_EXPANSION_IPV6_TCP,
MLX5_EXPANSION_IPV6_ESP,
+ MLX5_EXPANSION_IPV6_ICMP6,
MLX5_EXPANSION_IPV6_FRAG_EXT),
.type = RTE_FLOW_ITEM_TYPE_IPV6,
.rss_types = RTE_ETH_RSS_IPV6 | RTE_ETH_RSS_FRAG_IPV6 |
@@ -776,6 +795,9 @@ static const struct mlx5_flow_expand_node mlx5_support_expansion[] = {
[MLX5_EXPANSION_IPV6_FRAG_EXT] = {
.type = RTE_FLOW_ITEM_TYPE_IPV6_FRAG_EXT,
},
+ [MLX5_EXPANSION_IPV6_ICMP6] = {
+ .type = RTE_FLOW_ITEM_TYPE_ICMP6,
+ },
[MLX5_EXPANSION_GTP] = {
.next = MLX5_FLOW_EXPAND_RSS_NEXT(MLX5_EXPANSION_IPV4,
MLX5_EXPANSION_IPV6),