Call the rte_eth_rxq_info_get() and rte_eth_txq_info_get() functions
to update the number of rx and tx descriptors in the rte_port
variable.

Fixes: ce8d561418d4 ("app/testpmd: add port configuration settings")
Signed-off-by: Bernard Iremonger <bernard.iremon...@intel.com>
---
 app/test-pmd/testpmd.c | 16 +++++++++++++++-
 1 file changed, 15 insertions(+), 1 deletion(-)

diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c
index 1d308f0..293b2a5 100644
--- a/app/test-pmd/testpmd.c
+++ b/app/test-pmd/testpmd.c
@@ -1592,6 +1592,9 @@ static void eth_dev_event_callback(char *device_name,
        struct rte_port *port;
        struct ether_addr mac_addr;
        enum rte_eth_event_type event_type;
+       struct rte_eth_rxq_info rx_qinfo;
+       struct rte_eth_txq_info tx_qinfo;
+       int32_t rc;
 
        if (port_id_is_invalid(pid, ENABLED_WARN))
                return 0;
@@ -1706,8 +1709,19 @@ static void eth_dev_event_callback(char *device_name,
                                             &(port->rx_conf[qi]),
                                             mp);
                                }
-                               if (diag == 0)
+                               if (diag == 0) {
+                                       rc = rte_eth_rx_queue_info_get(pi, qi,
+                                               &rx_qinfo);
+                                       if (!rc)
+                                               port->nb_rx_desc[qi] =
+                                                       rx_qinfo.nb_desc;
+                                       rc = rte_eth_tx_queue_info_get(pi, qi,
+                                               &tx_qinfo);
+                                       if (!rc)
+                                               port->nb_tx_desc[qi] =
+                                                       tx_qinfo.nb_desc;
                                        continue;
+                               }
 
                                /* Fail to setup rx queue, return */
                                if (rte_atomic16_cmpset(&(port->port_status),
-- 
1.9.1

Reply via email to