]> git.droids-corp.org - dpdk.git/commitdiff
net/ngbe: support Rx and Tx queue info
authorJiawen Wu <jiawenwu@trustnetic.com>
Thu, 21 Oct 2021 09:50:21 +0000 (17:50 +0800)
committerFerruh Yigit <ferruh.yigit@intel.com>
Fri, 29 Oct 2021 22:53:19 +0000 (00:53 +0200)
Add Rx and Tx queue information get operation.

Signed-off-by: Jiawen Wu <jiawenwu@trustnetic.com>
drivers/net/ngbe/ngbe_ethdev.c
drivers/net/ngbe/ngbe_ethdev.h
drivers/net/ngbe/ngbe_rxtx.c

index 915a2eb5bb38cbc6957b18c1abc80b4f0ac292b9..18a19e6b3720d4803d8e2d4b832ad74ad7be95c5 100644 (file)
@@ -3082,13 +3082,15 @@ static const struct eth_dev_ops ngbe_eth_dev_ops = {
        .rss_hash_update            = ngbe_dev_rss_hash_update,
        .rss_hash_conf_get          = ngbe_dev_rss_hash_conf_get,
        .set_mc_addr_list           = ngbe_dev_set_mc_addr_list,
+       .rxq_info_get               = ngbe_rxq_info_get,
+       .txq_info_get               = ngbe_txq_info_get,
+       .rx_burst_mode_get          = ngbe_rx_burst_mode_get,
+       .tx_burst_mode_get          = ngbe_tx_burst_mode_get,
        .timesync_enable            = ngbe_timesync_enable,
        .timesync_disable           = ngbe_timesync_disable,
        .timesync_read_rx_timestamp = ngbe_timesync_read_rx_timestamp,
        .timesync_read_tx_timestamp = ngbe_timesync_read_tx_timestamp,
        .get_reg                    = ngbe_get_regs,
-       .rx_burst_mode_get          = ngbe_rx_burst_mode_get,
-       .tx_burst_mode_get          = ngbe_tx_burst_mode_get,
        .get_eeprom_length          = ngbe_get_eeprom_length,
        .get_eeprom                 = ngbe_get_eeprom,
        .set_eeprom                 = ngbe_set_eeprom,
index 60fc2cb58699d56a95ef14eb8187c5b5e9250d8d..30084ddc1176889b87ad1a6b3c3ab11bf4840056 100644 (file)
@@ -221,6 +221,12 @@ int ngbe_dev_tx_queue_start(struct rte_eth_dev *dev, uint16_t tx_queue_id);
 
 int ngbe_dev_tx_queue_stop(struct rte_eth_dev *dev, uint16_t tx_queue_id);
 
+void ngbe_rxq_info_get(struct rte_eth_dev *dev, uint16_t queue_id,
+       struct rte_eth_rxq_info *qinfo);
+
+void ngbe_txq_info_get(struct rte_eth_dev *dev, uint16_t queue_id,
+       struct rte_eth_txq_info *qinfo);
+
 int
 ngbe_rx_burst_mode_get(struct rte_eth_dev *dev, __rte_unused uint16_t queue_id,
                      struct rte_eth_burst_mode *mode);
index 9f9f52cd6fd7d5125292766a02adedd5861b1d8e..f2b6f610ee798f18f5e087a2fb6464cf05954da7 100644 (file)
@@ -3139,3 +3139,40 @@ ngbe_dev_tx_queue_stop(struct rte_eth_dev *dev, uint16_t tx_queue_id)
 
        return 0;
 }
+
+void
+ngbe_rxq_info_get(struct rte_eth_dev *dev, uint16_t queue_id,
+       struct rte_eth_rxq_info *qinfo)
+{
+       struct ngbe_rx_queue *rxq;
+
+       rxq = dev->data->rx_queues[queue_id];
+
+       qinfo->mp = rxq->mb_pool;
+       qinfo->scattered_rx = dev->data->scattered_rx;
+       qinfo->nb_desc = rxq->nb_rx_desc;
+
+       qinfo->conf.rx_free_thresh = rxq->rx_free_thresh;
+       qinfo->conf.rx_drop_en = rxq->drop_en;
+       qinfo->conf.rx_deferred_start = rxq->rx_deferred_start;
+       qinfo->conf.offloads = rxq->offloads;
+}
+
+void
+ngbe_txq_info_get(struct rte_eth_dev *dev, uint16_t queue_id,
+       struct rte_eth_txq_info *qinfo)
+{
+       struct ngbe_tx_queue *txq;
+
+       txq = dev->data->tx_queues[queue_id];
+
+       qinfo->nb_desc = txq->nb_tx_desc;
+
+       qinfo->conf.tx_thresh.pthresh = txq->pthresh;
+       qinfo->conf.tx_thresh.hthresh = txq->hthresh;
+       qinfo->conf.tx_thresh.wthresh = txq->wthresh;
+
+       qinfo->conf.tx_free_thresh = txq->tx_free_thresh;
+       qinfo->conf.offloads = txq->offloads;
+       qinfo->conf.tx_deferred_start = txq->tx_deferred_start;
+}