When we set Rx offloads RSS hash off in cmdline, then we start port, if dev->data->dev_conf.rxmode.mq_mode RSS enable(multiple queues mode), it will load RSS hash in driver and sync to port.
After setting Rx offloads RSS hash off, this patch removes RTE_ETH_MQ_RX_RSS in port->dev_conf.rxmode.mq_mode to fix this issue. And after setting Rx offloads RSS hash on, this patch also adds RTE_ETH_MQ_RX_RSS in port->dev_conf.rxmode.mq_mode. Fixes: c73a9071877a ("app/testpmd: add commands to test new offload API") Signed-off-by: Jie Wang <jie1x.w...@intel.com> --- app/test-pmd/cmdline.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c index d08a1c9777..f8277e4443 100644 --- a/app/test-pmd/cmdline.c +++ b/app/test-pmd/cmdline.c @@ -16176,10 +16176,16 @@ cmd_config_per_port_rx_offload_parsed(void *parsed_result, port->dev_conf.rxmode.offloads |= single_offload; for (q = 0; q < nb_rx_queues; q++) port->rx_conf[q].offloads |= single_offload; + + if (single_offload & 0x80000) + port->dev_conf.rxmode.mq_mode |= RTE_ETH_MQ_RX_RSS; } else { port->dev_conf.rxmode.offloads &= ~single_offload; for (q = 0; q < nb_rx_queues; q++) port->rx_conf[q].offloads &= ~single_offload; + + if (single_offload & 0x80000) + port->dev_conf.rxmode.mq_mode &= ~RTE_ETH_MQ_RX_RSS; } cmd_reconfig_device_queue(port_id, 1, 1); -- 2.25.1