When set port DCB in VT mode enabled, it should remove RSS HASH
offload before reconfiguring the device and queues.

Because port multi-queue mode is changed from RSS to DCB in VT.

Fixes: 2a977b891f99 ("app/testpmd: fix DCB configuration")

Signed-off-by: Jie Wang <jie1x.w...@intel.com>
---
v3:
 * update commit log.
 * remove RSS HASh offload from DCB in VT.
v2:
 * update commit log.
 * remove RSS HASH offload from port->rx_conf[i].offloads.
---
 app/test-pmd/testpmd.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c
index a66dfb297c..c18942279a 100644
--- a/app/test-pmd/testpmd.c
+++ b/app/test-pmd/testpmd.c
@@ -3948,6 +3948,13 @@ init_port_dcb_config(portid_t pid,
        if (retval < 0)
                return retval;
        port_conf.rxmode.offloads |= RTE_ETH_RX_OFFLOAD_VLAN_FILTER;
+       /* remove RSS HASH offload for DCB in vt mode */
+       if (port_conf.rxmode.mq_mode == RTE_ETH_MQ_RX_VMDQ_DCB) {
+               port_conf.rxmode.offloads &= ~RTE_ETH_RX_OFFLOAD_RSS_HASH;
+               for (i = 0; i < nb_rxq; i++)
+                       rte_port->rx_conf[i].offloads &=
+                               ~RTE_ETH_RX_OFFLOAD_RSS_HASH;
+       }
 
        /* re-configure the device . */
        retval = rte_eth_dev_configure(pid, nb_rxq, nb_rxq, &port_conf);
-- 
2.25.1

Reply via email to