X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=drivers%2Fnet%2Fmlx5%2Fmlx5_trigger.c;h=122f31c552922a374d31b0831091fec8c14c8de6;hb=7d7f9f80bbfb59368b81ba7e52286115754e23c0;hp=d5ce74d8c12e070cd19fc0c7fb5486ee6cc4aeea;hpb=35b2d13fd6fdcbd191f2a30d74648faeb1186c65;p=dpdk.git diff --git a/drivers/net/mlx5/mlx5_trigger.c b/drivers/net/mlx5/mlx5_trigger.c index d5ce74d8c1..122f31c552 100644 --- a/drivers/net/mlx5/mlx5_trigger.c +++ b/drivers/net/mlx5/mlx5_trigger.c @@ -99,7 +99,14 @@ mlx5_rxq_start(struct rte_eth_dev *dev) struct mlx5_priv *priv = dev->data->dev_private; unsigned int i; int ret = 0; + enum mlx5_rxq_obj_type obj_type = MLX5_RXQ_OBJ_TYPE_IBV; + for (i = 0; i < priv->rxqs_n; ++i) { + if ((*priv->rxqs)[i]->lro) { + obj_type = MLX5_RXQ_OBJ_TYPE_DEVX_RQ; + break; + } + } /* Allocate/reuse/resize mempool for Multi-Packet RQ. */ if (mlx5_mprq_alloc_mp(dev)) { /* Should not release Rx queues but return immediately. */ @@ -123,9 +130,13 @@ mlx5_rxq_start(struct rte_eth_dev *dev) ret = rxq_alloc_elts(rxq_ctrl); if (ret) goto error; - rxq_ctrl->ibv = mlx5_rxq_ibv_new(dev, i); - if (!rxq_ctrl->ibv) + rxq_ctrl->obj = mlx5_rxq_obj_new(dev, i, obj_type); + if (!rxq_ctrl->obj) goto error; + if (obj_type == MLX5_RXQ_OBJ_TYPE_IBV) + rxq_ctrl->wqn = rxq_ctrl->obj->wq->wq_num; + else if (obj_type == MLX5_RXQ_OBJ_TYPE_DEVX_RQ) + rxq_ctrl->wqn = rxq_ctrl->obj->rq->id; } return 0; error: @@ -275,6 +286,9 @@ mlx5_traffic_enable(struct rte_eth_dev *dev) unsigned int j; int ret; + if (priv->config.dv_esw_en && !priv->config.vf) + if (!mlx5_flow_create_esw_table_zero_flow(dev)) + goto error; if (priv->isolated) return 0; if (dev->data->promiscuous) {