[dpdk-dev,3/5] net/mlx5: fix RSS tunneled flow without outer

Message ID 6b8a03256dc0addccf34175908b447c02f68016d.1509464921.git.nelio.laranjeiro@6wind.com (mailing list archive)
State Accepted, archived
Delegated to: Ferruh Yigit
Headers

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/Intel-compilation success Compilation OK

Commit Message

Nélio Laranjeiro Oct. 31, 2017, 3:51 p.m. UTC
  Allow to use the RSS when the outer part of the packet is not defined.  The
RSS is still performed on the outer.
This modification only serves the internal engine to create the necessary
Verbs flows according to the user request.

Fixes: 39797c6db80b ("net/mlx5: fix RSS action for tunneled packets")
Cc: shahafs@mellanox.com

Signed-off-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com>
---
 drivers/net/mlx5/mlx5_flow.c | 9 +++------
 1 file changed, 3 insertions(+), 6 deletions(-)
  

Comments

Yongseok Koh Nov. 1, 2017, 6:56 p.m. UTC | #1
> On Oct 31, 2017, at 8:51 AM, Nelio Laranjeiro <nelio.laranjeiro@6wind.com> wrote:
> 
> Allow to use the RSS when the outer part of the packet is not defined.  The
> RSS is still performed on the outer.
> This modification only serves the internal engine to create the necessary
> Verbs flows according to the user request.
> 
> Fixes: 39797c6db80b ("net/mlx5: fix RSS action for tunneled packets")
> Cc: shahafs@mellanox.com
> 
> Signed-off-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com>
> ---
Acked-by: Yongseok Koh <yskoh@mellanox.com>
 
Thanks
  

Patch

diff --git a/drivers/net/mlx5/mlx5_flow.c b/drivers/net/mlx5/mlx5_flow.c
index a7864871c..fcc9a260e 100644
--- a/drivers/net/mlx5/mlx5_flow.c
+++ b/drivers/net/mlx5/mlx5_flow.c
@@ -1010,15 +1010,13 @@  priv_flow_convert_finalise(struct priv *priv, struct mlx5_flow_parse *parser)
 			if (hash_rxq_init[i].ip_version == MLX5_IPV4) {
 				size = sizeof(struct ibv_flow_spec_ipv4_ext);
 				specs.ipv4 = (struct ibv_flow_spec_ipv4_ext){
-					.type = IBV_FLOW_SPEC_IPV4_EXT |
-						parser->inner,
+					.type = IBV_FLOW_SPEC_IPV4_EXT,
 					.size = size,
 				};
 			} else {
 				size = sizeof(struct ibv_flow_spec_ipv6);
 				specs.ipv6 = (struct ibv_flow_spec_ipv6){
-					.type = IBV_FLOW_SPEC_IPV6 |
-						parser->inner,
+					.type = IBV_FLOW_SPEC_IPV6,
 					.size = size,
 				};
 			}
@@ -1038,8 +1036,7 @@  priv_flow_convert_finalise(struct priv *priv, struct mlx5_flow_parse *parser)
 				.type = ((i == HASH_RXQ_UDPV4 ||
 					  i == HASH_RXQ_UDPV6) ?
 					 IBV_FLOW_SPEC_UDP :
-					 IBV_FLOW_SPEC_TCP) |
-					parser->inner,
+					 IBV_FLOW_SPEC_TCP),
 				.size = size,
 			};
 			if (parser->queue[i].ibv_attr) {