add support get queue configure info for user debug Signed-off-by: Wenbo Cao <caowe...@mucse.com> --- doc/guides/nics/rnp.rst | 2 ++ drivers/net/rnp/rnp_ethdev.c | 2 ++ drivers/net/rnp/rnp_rxtx.c | 42 ++++++++++++++++++++++++++++++++++++ drivers/net/rnp/rnp_rxtx.h | 4 ++++ 4 files changed, 50 insertions(+)
diff --git a/doc/guides/nics/rnp.rst b/doc/guides/nics/rnp.rst index 2713d03765..671bb28112 100644 --- a/doc/guides/nics/rnp.rst +++ b/doc/guides/nics/rnp.rst @@ -106,7 +106,9 @@ Listed below are the rte_eth functions supported: * ``rte_eth_promiscuous_get`` * ``rte_eth_allmulticast_get`` * ``rte_eth_rx_queue_setup`` +* ``rte_eth_rx_queue_info_get`` * ``rte_eth_tx_queue_setup`` +* ``rte_eth_tx_queue_info_get`` * ``rte_eth_link_get`` * ``rte_eth_link_get_nowait`` * ``rte_eth_stats_get`` diff --git a/drivers/net/rnp/rnp_ethdev.c b/drivers/net/rnp/rnp_ethdev.c index 9ce0779592..84352509a1 100644 --- a/drivers/net/rnp/rnp_ethdev.c +++ b/drivers/net/rnp/rnp_ethdev.c @@ -1480,10 +1480,12 @@ static const struct eth_dev_ops rnp_eth_dev_ops = { .rx_queue_release = rnp_dev_rx_queue_release, .rx_queue_stop = rnp_rx_queue_stop, .rx_queue_start = rnp_rx_queue_start, + .rxq_info_get = rnp_rx_queue_info_get, .tx_queue_setup = rnp_tx_queue_setup, .tx_queue_release = rnp_dev_tx_queue_release, .tx_queue_stop = rnp_tx_queue_stop, .tx_queue_start = rnp_tx_queue_start, + .txq_info_get = rnp_tx_queue_info_get, /* rss impl */ .reta_update = rnp_dev_rss_reta_update, .reta_query = rnp_dev_rss_reta_query, diff --git a/drivers/net/rnp/rnp_rxtx.c b/drivers/net/rnp/rnp_rxtx.c index 6504d62f62..d58b0412ce 100644 --- a/drivers/net/rnp/rnp_rxtx.c +++ b/drivers/net/rnp/rnp_rxtx.c @@ -1720,3 +1720,45 @@ int rnp_tx_func_select(struct rte_eth_dev *dev) return 0; } + +void +rnp_rx_queue_info_get(struct rte_eth_dev *dev, uint16_t queue_id, + struct rte_eth_rxq_info *qinfo) +{ + struct rnp_rx_queue *rxq; + + rxq = dev->data->rx_queues[queue_id]; + if (!rxq) + return; + qinfo->mp = rxq->mb_pool; + qinfo->scattered_rx = dev->data->scattered_rx; + qinfo->queue_state = rxq->rxq_started; + qinfo->nb_desc = rxq->attr.nb_desc; + qinfo->rx_buf_size = rxq->rx_buf_len; + + qinfo->conf.rx_deferred_start = rxq->rx_deferred_start; + qinfo->conf.rx_free_thresh = rxq->rx_free_thresh; + qinfo->conf.rx_thresh.pthresh = rxq->pthresh; + qinfo->conf.rx_thresh.hthresh = rxq->pburst; + qinfo->conf.offloads = rxq->rx_offloads; +} + +void +rnp_tx_queue_info_get(struct rte_eth_dev *dev, uint16_t queue_id, + struct rte_eth_txq_info *qinfo) +{ + struct rnp_tx_queue *txq; + + txq = dev->data->tx_queues[queue_id]; + if (!txq) + return; + qinfo->queue_state = txq->txq_started; + qinfo->nb_desc = txq->attr.nb_desc; + + qinfo->conf.tx_deferred_start = txq->tx_deferred_start; + qinfo->conf.tx_free_thresh = txq->tx_free_thresh; + qinfo->conf.tx_rs_thresh = txq->tx_rs_thresh; + qinfo->conf.tx_thresh.pthresh = txq->pthresh; + qinfo->conf.tx_thresh.hthresh = txq->pburst; + qinfo->conf.offloads = txq->tx_offloads; +} diff --git a/drivers/net/rnp/rnp_rxtx.h b/drivers/net/rnp/rnp_rxtx.h index 51e5d4b600..dc4a8ea9dd 100644 --- a/drivers/net/rnp/rnp_rxtx.h +++ b/drivers/net/rnp/rnp_rxtx.h @@ -148,5 +148,9 @@ int rnp_rx_queue_stop(struct rte_eth_dev *eth_dev, uint16_t qidx); int rnp_rx_queue_start(struct rte_eth_dev *eth_dev, uint16_t qidx); int rnp_rx_func_select(struct rte_eth_dev *dev); int rnp_tx_func_select(struct rte_eth_dev *dev); +void rnp_rx_queue_info_get(struct rte_eth_dev *dev, uint16_t queue_id, + struct rte_eth_rxq_info *qinfo); +void rnp_tx_queue_info_get(struct rte_eth_dev *dev, uint16_t queue_id, + struct rte_eth_txq_info *qinfo); #endif /* _RNP_RXTX_H_ */ -- 2.25.1