]> git.droids-corp.org - dpdk.git/commitdiff
net/mlx5: fix vport id in port id action
authorViacheslav Ovsiienko <viacheslavo@mellanox.com>
Thu, 14 Nov 2019 08:56:36 +0000 (08:56 +0000)
committerFerruh Yigit <ferruh.yigit@intel.com>
Wed, 20 Nov 2019 16:36:05 +0000 (17:36 +0100)
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>
drivers/net/mlx5/mlx5_flow_dv.c

index 2094e183b482d7ddb6e8a577e058a15476d9e24c..5a0cd09e2ce424d11e1a9271c04260c77cf0aa17 100644 (file)
@@ -6532,7 +6532,8 @@ flow_dv_translate_action_port_id(struct rte_eth_dev *dev,
                                          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;