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