The txp maybe invalid (e.g. start with only one port but set with 1),
this commit fix it by get txp from fwd_topology_tx_port_get() function.

An added benefit is that the DCB test also supports '--port-topology'
parameter.

Fixes: 1a572499beb6 ("app/testpmd: setup DCB forwarding based on traffic class")
Cc: [email protected]

Signed-off-by: Chengwen Feng <[email protected]>
---
 app/test-pmd/config.c | 7 ++-----
 1 file changed, 2 insertions(+), 5 deletions(-)

diff --git a/app/test-pmd/config.c b/app/test-pmd/config.c
index 3ce2a14a1b..0f687018c7 100644
--- a/app/test-pmd/config.c
+++ b/app/test-pmd/config.c
@@ -5187,7 +5187,7 @@ dcb_fwd_config_setup(void)
        /* reinitialize forwarding streams */
        init_fwd_streams();
        sm_id = 0;
-       txp = 1;
+       txp = fwd_topology_tx_port_get(rxp);
        /* get the dcb info on the first RX and TX ports */
        (void)rte_eth_dev_get_dcb_info(fwd_ports_ids[rxp], &rxp_dcb_info);
        (void)rte_eth_dev_get_dcb_info(fwd_ports_ids[txp], &txp_dcb_info);
@@ -5235,11 +5235,8 @@ dcb_fwd_config_setup(void)
                        rxp++;
                if (rxp >= nb_fwd_ports)
                        return;
+               txp = fwd_topology_tx_port_get(rxp);
                /* get the dcb information on next RX and TX ports */
-               if ((rxp & 0x1) == 0)
-                       txp = (portid_t) (rxp + 1);
-               else
-                       txp = (portid_t) (rxp - 1);
                rte_eth_dev_get_dcb_info(fwd_ports_ids[rxp], &rxp_dcb_info);
                rte_eth_dev_get_dcb_info(fwd_ports_ids[txp], &txp_dcb_info);
        }
-- 
2.17.1

Reply via email to