net/mlx5: fix vport id value in port id action
diff mbox series

Message ID 1573721796-22614-1-git-send-email-viacheslavo@mellanox.com
State Accepted, archived
Delegated to: Raslan Darawsheh
Headers show
Series
  • net/mlx5: fix vport id value in port id action
Related show

Checks

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

Commit Message

Viacheslav Ovsiienko Nov. 14, 2019, 8:56 a.m. UTC
The kernel driver (starting from OFED 4.7.3.1.3) uses the upper half
of metadata register C0 to provide VHCA and vport id's. The mlx5 PMD
should check the actual mask of register C0 and shift the vport id
value for port actions appropriately.

Fixes: f07341e7aed3 ("net/mlx5: update source and destination vport translations")

Signed-off-by: Viacheslav Ovsiienko <viacheslavo@mellanox.com>
---
 drivers/net/mlx5/mlx5_flow_dv.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

Comments

Matan Azrad Nov. 14, 2019, 12:05 p.m. UTC | #1
From: Viacheslav Ovsiienko 
> The kernel driver (starting from OFED 4.7.3.1.3) uses the upper half of
> metadata register C0 to provide VHCA and vport id's. The mlx5 PMD should
> check the actual mask of register C0 and shift the vport id value for port
> actions appropriately.
> 
> Fixes: f07341e7aed3 ("net/mlx5: update source and destination vport
> translations")
> 
> Signed-off-by: Viacheslav Ovsiienko <viacheslavo@mellanox.com>

Acked-by: Matan Azrad <matan@mellanox.com>
Raslan Darawsheh Nov. 14, 2019, 12:25 p.m. UTC | #2
Hi,

> -----Original Message-----
> From: Viacheslav Ovsiienko <viacheslavo@mellanox.com>
> Sent: Thursday, November 14, 2019 10:57 AM
> To: dev@dpdk.org
> Cc: Matan Azrad <matan@mellanox.com>; Raslan Darawsheh
> <rasland@mellanox.com>; Ori Kam <orika@mellanox.com>
> Subject: [PATCH] net/mlx5: fix vport id value in port id action
> 
> The kernel driver (starting from OFED 4.7.3.1.3) uses the upper half
> of metadata register C0 to provide VHCA and vport id's. The mlx5 PMD
> should check the actual mask of register C0 and shift the vport id
> value for port actions appropriately.
> 
> Fixes: f07341e7aed3 ("net/mlx5: update source and destination vport
> translations")
> 
> Signed-off-by: Viacheslav Ovsiienko <viacheslavo@mellanox.com>
> ---
>  drivers/net/mlx5/mlx5_flow_dv.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/net/mlx5/mlx5_flow_dv.c
> b/drivers/net/mlx5/mlx5_flow_dv.c
> index 2094e18..5a0cd09 100644
> --- a/drivers/net/mlx5/mlx5_flow_dv.c
> +++ b/drivers/net/mlx5/mlx5_flow_dv.c
> @@ -6532,7 +6532,8 @@ struct field_modify_info modify_tcp[] = {
>  					  NULL,
>  					  "No eswitch info was found for
> port");
>  	if (priv->vport_meta_mask)
> -		*dst_port_id = priv->vport_meta_tag;
> +		*dst_port_id = priv->vport_meta_tag >>
> +			rte_bsf32(priv->vport_meta_mask);
>  	else
>  		*dst_port_id = priv->vport_id;
>  	return 0;
> --
> 1.8.3.1


Patch applied to next-net-mlx,

Kindest regards,
Raslan Darawsheh

Patch
diff mbox series

diff --git a/drivers/net/mlx5/mlx5_flow_dv.c b/drivers/net/mlx5/mlx5_flow_dv.c
index 2094e18..5a0cd09 100644
--- a/drivers/net/mlx5/mlx5_flow_dv.c
+++ b/drivers/net/mlx5/mlx5_flow_dv.c
@@ -6532,7 +6532,8 @@  struct field_modify_info modify_tcp[] = {
 					  NULL,
 					  "No eswitch info was found for port");
 	if (priv->vport_meta_mask)
-		*dst_port_id = priv->vport_meta_tag;
+		*dst_port_id = priv->vport_meta_tag >>
+			rte_bsf32(priv->vport_meta_mask);
 	else
 		*dst_port_id = priv->vport_id;
 	return 0;