net/mlx5: fix setting of port ID for egress rules

Message ID 83dbb58c4cdd07e9797af3c29cb324578c5b40ea.1579696358.git.dekelp@mellanox.com (mailing list archive)
State Accepted, archived
Delegated to: Raslan Darawsheh
Headers
Series net/mlx5: fix setting of port ID for egress rules |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/iol-intel-Performance success Performance Testing PASS
ci/iol-testing success Testing PASS
ci/iol-nxp-Performance success Performance Testing PASS
ci/iol-mellanox-Performance success Performance Testing PASS
ci/travis-robot success Travis build: passed
ci/Intel-compilation success Compilation OK

Commit Message

Dekel Peled Jan. 22, 2020, 12:33 p.m. UTC
  Previous patch fixed the setting of port-id for eswitch rules, which
are ingress only.
This patch expands the fix, to support nic rules as well, which can
be ingress or egress.

Fixes: ce777b147bf8 ("net/mlx5: fix E-Switch flow without port item")
Cc: stable@dpdk.org

Signed-off-by: Dekel Peled <dekelp@mellanox.com>
Acked-by: Ori Kam <orika@mellanox.com>
---
 drivers/net/mlx5/mlx5_flow_dv.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)
  

Comments

Raslan Darawsheh Jan. 26, 2020, 4:36 p.m. UTC | #1
Hi,

> -----Original Message-----
> From: Dekel Peled <dekelp@mellanox.com>
> Sent: Wednesday, January 22, 2020 2:33 PM
> To: Matan Azrad <matan@mellanox.com>; Slava Ovsiienko
> <viacheslavo@mellanox.com>
> Cc: Raslan Darawsheh <rasland@mellanox.com>; Ori Kam
> <orika@mellanox.com>; dev@dpdk.org; stable@dpdk.org
> Subject: [PATCH] net/mlx5: fix setting of port ID for egress rules
> 
> Previous patch fixed the setting of port-id for eswitch rules, which
> are ingress only.
> This patch expands the fix, to support nic rules as well, which can
> be ingress or egress.
> 
> Fixes: ce777b147bf8 ("net/mlx5: fix E-Switch flow without port item")
> Cc: stable@dpdk.org
> 
> Signed-off-by: Dekel Peled <dekelp@mellanox.com>
> Acked-by: Ori Kam <orika@mellanox.com>
> ---
>  drivers/net/mlx5/mlx5_flow_dv.c | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/net/mlx5/mlx5_flow_dv.c
> b/drivers/net/mlx5/mlx5_flow_dv.c
> index 5a1b426..7a169c7 100644
> --- a/drivers/net/mlx5/mlx5_flow_dv.c
> +++ b/drivers/net/mlx5/mlx5_flow_dv.c
> @@ -7645,13 +7645,13 @@ struct field_modify_info modify_tcp[] = {
>  		item_flags |= last_item;
>  	}
>  	/*
> -	 * In case of ingress traffic when E-Switch mode is enabled,
> -	 * we have two cases where we need to set the source port
> manually.
> +	 * When E-Switch mode is enabled, we have two cases where we
> need to
> +	 * set the source port manually.
>  	 * The first one, is in case of Nic steering rule, and the second is
>  	 * E-Switch rule where no port_id item was found. In both cases
>  	 * the source port is set according the current port in use.
>  	 */
> -	if ((attr->ingress && !(item_flags & MLX5_FLOW_ITEM_PORT_ID))
> &&
> +	if (!(item_flags & MLX5_FLOW_ITEM_PORT_ID) &&
>  	    (priv->representor || priv->master)) {
>  		if (flow_dv_translate_item_port_id(dev, match_mask,
>  						   match_value, NULL))
> --
> 1.8.3.1


Patch applied to  next-net-mlx,

Kindest regards,
Raslan Darawsheh
  

Patch

diff --git a/drivers/net/mlx5/mlx5_flow_dv.c b/drivers/net/mlx5/mlx5_flow_dv.c
index 5a1b426..7a169c7 100644
--- a/drivers/net/mlx5/mlx5_flow_dv.c
+++ b/drivers/net/mlx5/mlx5_flow_dv.c
@@ -7645,13 +7645,13 @@  struct field_modify_info modify_tcp[] = {
 		item_flags |= last_item;
 	}
 	/*
-	 * In case of ingress traffic when E-Switch mode is enabled,
-	 * we have two cases where we need to set the source port manually.
+	 * When E-Switch mode is enabled, we have two cases where we need to
+	 * set the source port manually.
 	 * The first one, is in case of Nic steering rule, and the second is
 	 * E-Switch rule where no port_id item was found. In both cases
 	 * the source port is set according the current port in use.
 	 */
-	if ((attr->ingress && !(item_flags & MLX5_FLOW_ITEM_PORT_ID)) &&
+	if (!(item_flags & MLX5_FLOW_ITEM_PORT_ID) &&
 	    (priv->representor || priv->master)) {
 		if (flow_dv_translate_item_port_id(dev, match_mask,
 						   match_value, NULL))