From: Peng Zhang <peng1x.zh...@intel.com>

The origin design is whether testpmd is primary or not, if state of
receive queue is stop, then packets will not be dumped for show.
While to secondary process, receive queue will not be set up, and state
will still be stop even if testpmd is started. So packets of stated
secondary process cannot be dumped for show.

The current design is to secondary process state of queue will be set
to start after testpmd is started. Then packets of started secondary
process can be dumped for show.

Fixes: a550baf24af9 ("app/testpmd: support multi-process")
Cc: sta...@dpdk.org

Signed-off-by: Peng Zhang <peng1x.zh...@intel.com>
---
 app/test-pmd/testpmd.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c
index 205d98ee3d..93ba7e7c9b 100644
--- a/app/test-pmd/testpmd.c
+++ b/app/test-pmd/testpmd.c
@@ -3007,6 +3007,18 @@ start_port(portid_t pid)
                        if (setup_hairpin_queues(pi, p_pi, cnt_pi) != 0)
                                return -1;
                }
+
+               if (port->need_reconfig_queues > 0 && !is_proc_primary()) {
+                       struct rte_eth_rxconf *rx_conf;
+                       for (qi = 0; qi < nb_rxq; qi++) {
+                               rx_conf = &(port->rxq[qi].conf);
+                               ports[pi].rxq[qi].state =
+                                       rx_conf->rx_deferred_start ?
+                                       RTE_ETH_QUEUE_STATE_STOPPED :
+                                       RTE_ETH_QUEUE_STATE_STARTED;
+                       }
+               }
+
                configure_rxtx_dump_callbacks(verbose_level);
                if (clear_ptypes) {
                        diag = rte_eth_dev_set_ptypes(pi, RTE_PTYPE_UNKNOWN,
-- 
2.25.1

Reply via email to