provided rxq/txq info get implementations.
Signed-off-by: Junlong Wang <wang.junlong1@zte.com.cn>
---
drivers/net/zxdh/zxdh_ethdev.c | 40 ++++++++++++++++++++++++++++++++--
1 file changed, 38 insertions(+), 2 deletions(-)
diff --git a/drivers/net/zxdh/zxdh_ethdev.c b/drivers/net/zxdh/zxdh_ethdev.c
index d475f54e60..e5703897ba 100644
--- a/drivers/net/zxdh/zxdh_ethdev.c
+++ b/drivers/net/zxdh/zxdh_ethdev.c
@@ -51,8 +51,8 @@ zxdh_dev_infos_get(struct rte_eth_dev *dev,
struct zxdh_hw *hw = dev->data->dev_private;
dev_info->speed_capa = rte_eth_speed_bitflag(hw->speed, RTE_ETH_LINK_FULL_DUPLEX);
- dev_info->max_rx_queues = RTE_MIN(hw->max_queue_pairs, ZXDH_RX_QUEUES_MAX);
- dev_info->max_tx_queues = RTE_MIN(hw->max_queue_pairs, ZXDH_TX_QUEUES_MAX);
+ dev_info->max_rx_queues = hw->max_queue_pairs;
+ dev_info->max_tx_queues = hw->max_queue_pairs;
dev_info->min_rx_bufsize = ZXDH_MIN_RX_BUFSIZE;
dev_info->max_rx_pktlen = ZXDH_MAX_RX_PKTLEN;
dev_info->max_mac_addrs = ZXDH_MAX_MAC_ADDRS;
@@ -1309,6 +1309,40 @@ zxdh_dev_start(struct rte_eth_dev *dev)
return 0;
}
+static void
+zxdh_rxq_info_get(struct rte_eth_dev *dev, uint16_t rx_queue_id, struct rte_eth_rxq_info *qinfo)
+{
+ struct zxdh_virtnet_rx *rxq = NULL;
+
+ if (rx_queue_id < dev->data->nb_rx_queues)
+ rxq = dev->data->rx_queues[rx_queue_id];
+ if (!rxq) {
+ PMD_RX_LOG(ERR, "rxq is null");
+ return;
+ }
+ qinfo->nb_desc = rxq->vq->vq_nentries;
+ qinfo->conf.rx_free_thresh = rxq->vq->vq_free_thresh;
+ qinfo->conf.offloads = dev->data->dev_conf.rxmode.offloads;
+ qinfo->queue_state = dev->data->rx_queue_state[rx_queue_id];
+}
+
+static void
+zxdh_txq_info_get(struct rte_eth_dev *dev, uint16_t tx_queue_id, struct rte_eth_txq_info *qinfo)
+{
+ struct zxdh_virtnet_tx *txq = NULL;
+
+ if (tx_queue_id < dev->data->nb_tx_queues)
+ txq = dev->data->tx_queues[tx_queue_id];
+ if (!txq) {
+ PMD_TX_LOG(ERR, "txq is null");
+ return;
+ }
+ qinfo->nb_desc = txq->vq->vq_nentries;
+ qinfo->conf.tx_free_thresh = txq->vq->vq_free_thresh;
+ qinfo->conf.offloads = dev->data->dev_conf.txmode.offloads;
+ qinfo->queue_state = dev->data->tx_queue_state[tx_queue_id];
+}
+
/* dev_ops for zxdh, bare necessities for basic operation */
static const struct eth_dev_ops zxdh_eth_dev_ops = {
.dev_configure = zxdh_dev_configure,
@@ -1320,6 +1354,8 @@ static const struct eth_dev_ops zxdh_eth_dev_ops = {
.tx_queue_setup = zxdh_dev_tx_queue_setup,
.rx_queue_intr_enable = zxdh_dev_rx_queue_intr_enable,
.rx_queue_intr_disable = zxdh_dev_rx_queue_intr_disable,
+ .rxq_info_get = zxdh_rxq_info_get,
+ .txq_info_get = zxdh_txq_info_get,
.link_update = zxdh_dev_link_update,
.dev_set_link_up = zxdh_dev_set_link_up,
.dev_set_link_down = zxdh_dev_set_link_down,
--
2.27.0