net/mlx5: provide IB port for the object being created
authorViacheslav Ovsiienko <viacheslavo@mellanox.com>
Wed, 27 Mar 2019 13:15:44 +0000 (13:15 +0000)
committerFerruh Yigit <ferruh.yigit@intel.com>
Fri, 29 Mar 2019 16:25:32 +0000 (17:25 +0100)
The code is updated to provide IB port index for the Verbs
objects being created - QPs and Verbs Flows.

Signed-off-by: Viacheslav Ovsiienko <viacheslavo@mellanox.com>
Acked-by: Shahaf Shuler <shahafs@mellanox.com>
drivers/net/mlx5/mlx5_flow.c
drivers/net/mlx5/mlx5_flow_verbs.c
drivers/net/mlx5/mlx5_txq.c

index dea38e2..d09fdff 100644 (file)
@@ -315,6 +315,7 @@ static struct mlx5_flow_tunnel_info tunnels_info[] = {
 int
 mlx5_flow_discover_priorities(struct rte_eth_dev *dev)
 {
+       struct mlx5_priv *priv = dev->data->dev_private;
        struct {
                struct ibv_flow_attr attr;
                struct ibv_flow_spec_eth eth;
@@ -322,6 +323,7 @@ mlx5_flow_discover_priorities(struct rte_eth_dev *dev)
        } flow_attr = {
                .attr = {
                        .num_of_specs = 2,
+                       .port = (uint8_t)priv->ibv_port,
                },
                .eth = {
                        .type = IBV_FLOW_SPEC_ETH,
index 093509e..ef44752 100644 (file)
@@ -1550,6 +1550,7 @@ flow_verbs_translate(struct rte_eth_dev *dev,
        dev_flow->layers = item_flags;
        dev_flow->verbs.attr->priority =
                mlx5_flow_adjust_priority(dev, priority, subpriority);
+       dev_flow->verbs.attr->port = (uint8_t)priv->ibv_port;
        return 0;
 }
 
index 25305b6..5062f5c 100644 (file)
@@ -445,8 +445,8 @@ mlx5_txq_ibv_new(struct rte_eth_dev *dev, uint16_t idx)
        attr.mod = (struct ibv_qp_attr){
                /* Move the QP to this state. */
                .qp_state = IBV_QPS_INIT,
-               /* Primary port number. */
-               .port_num = 1,
+               /* IB device port number. */
+               .port_num = (uint8_t)priv->ibv_port,
        };
        ret = mlx5_glue->modify_qp(tmpl.qp, &attr.mod,
                                   (IBV_QP_STATE | IBV_QP_PORT));