net/mlx5: remove Verbs dependency in Rx/Tx objects
Replace pointers to ibv structs with pointers to void (file mlx5_rxtx.h). Specifically the following pointers were replaced: 'struct ibv_cq *', 'struct ibv_wq *', 'struct ibv_comp_channel *', 'struct ibv_rwq_ind_table *a', 'struct ibv_qp *'. Signed-off-by: Ophir Munk <ophirmu@mellanox.com> Acked-by: Matan Azrad <matan@mellanox.com>
This commit is contained in:
parent
1f66ac5bbe
commit
fe7a54fd26
@ -1790,7 +1790,8 @@ mlx5_rxq_obj_new(struct rte_eth_dev *dev, uint16_t idx,
|
||||
rte_errno = ENOMEM;
|
||||
goto error;
|
||||
}
|
||||
tmpl->fd = tmpl->ibv_channel->fd;
|
||||
tmpl->fd = ((struct ibv_comp_channel *)
|
||||
(tmpl->ibv_channel))->fd;
|
||||
} else if (tmpl->type == MLX5_RXQ_OBJ_TYPE_DEVX_RQ) {
|
||||
int devx_ev_flag =
|
||||
MLX5DV_DEVX_CREATE_EVENT_CHANNEL_FLAGS_OMIT_EV_DATA;
|
||||
@ -3299,7 +3300,7 @@ mlx5_ind_table_obj_drop_new(struct rte_eth_dev *dev)
|
||||
(priv->sh->ctx,
|
||||
&(struct ibv_rwq_ind_table_init_attr){
|
||||
.log_ind_tbl_size = 0,
|
||||
.ind_tbl = &rxq->wq,
|
||||
.ind_tbl = (struct ibv_wq **)&rxq->wq,
|
||||
.comp_mask = 0,
|
||||
});
|
||||
if (!tmpl.ind_table) {
|
||||
|
@ -178,9 +178,9 @@ struct mlx5_rxq_obj {
|
||||
RTE_STD_C11
|
||||
union {
|
||||
struct {
|
||||
struct ibv_wq *wq; /* Work Queue. */
|
||||
struct ibv_cq *ibv_cq; /* Completion Queue. */
|
||||
struct ibv_comp_channel *ibv_channel;
|
||||
void *wq; /* Work Queue. */
|
||||
void *ibv_cq; /* Completion Queue. */
|
||||
void *ibv_channel;
|
||||
};
|
||||
struct {
|
||||
struct mlx5_devx_obj *rq; /* DevX Rx Queue object. */
|
||||
@ -229,7 +229,7 @@ struct mlx5_ind_table_obj {
|
||||
enum mlx5_ind_tbl_type type;
|
||||
RTE_STD_C11
|
||||
union {
|
||||
struct ibv_rwq_ind_table *ind_table; /**< Indirection table. */
|
||||
void *ind_table; /**< Indirection table. */
|
||||
struct mlx5_devx_obj *rqt; /* DevX RQT object. */
|
||||
};
|
||||
uint32_t queues_n; /**< Number of queues in the list. */
|
||||
@ -243,7 +243,7 @@ struct mlx5_hrxq {
|
||||
struct mlx5_ind_table_obj *ind_table; /* Indirection table. */
|
||||
RTE_STD_C11
|
||||
union {
|
||||
struct ibv_qp *qp; /* Verbs queue pair. */
|
||||
void *qp; /* Verbs queue pair. */
|
||||
struct mlx5_devx_obj *tir; /* DevX TIR object. */
|
||||
};
|
||||
#ifdef HAVE_IBV_FLOW_DV_SUPPORT
|
||||
@ -350,8 +350,8 @@ struct mlx5_txq_obj {
|
||||
RTE_STD_C11
|
||||
union {
|
||||
struct {
|
||||
struct ibv_cq *cq; /* Completion Queue. */
|
||||
struct ibv_qp *qp; /* Queue Pair. */
|
||||
void *cq; /* Completion Queue. */
|
||||
void *qp; /* Queue Pair. */
|
||||
};
|
||||
struct {
|
||||
struct mlx5_devx_obj *sq;
|
||||
|
@ -153,7 +153,8 @@ mlx5_rxq_start(struct rte_eth_dev *dev)
|
||||
if (!rxq_ctrl->obj)
|
||||
goto error;
|
||||
if (obj_type == MLX5_RXQ_OBJ_TYPE_IBV)
|
||||
rxq_ctrl->wqn = rxq_ctrl->obj->wq->wq_num;
|
||||
rxq_ctrl->wqn =
|
||||
((struct ibv_wq *)(rxq_ctrl->obj->wq))->wq_num;
|
||||
else if (obj_type == MLX5_RXQ_OBJ_TYPE_DEVX_RQ)
|
||||
rxq_ctrl->wqn = rxq_ctrl->obj->rq->id;
|
||||
}
|
||||
|
@ -1317,7 +1317,7 @@ mlx5_txq_obj_new(struct rte_eth_dev *dev, uint16_t idx,
|
||||
txq_data->cqe_n = log2above(cq_info.cqe_cnt);
|
||||
txq_data->cqe_s = 1 << txq_data->cqe_n;
|
||||
txq_data->cqe_m = txq_data->cqe_s - 1;
|
||||
txq_data->qp_num_8s = tmpl.qp->qp_num << 8;
|
||||
txq_data->qp_num_8s = ((struct ibv_qp *)tmpl.qp)->qp_num << 8;
|
||||
txq_data->wqes = qp.sq.buf;
|
||||
txq_data->wqe_n = log2above(qp.sq.wqe_cnt);
|
||||
txq_data->wqe_s = 1 << txq_data->wqe_n;
|
||||
|
Loading…
x
Reference in New Issue
Block a user