From: Huisong Li <lihuis...@huawei.com> Currently, when starting testpmd application without '--disable-rss' and the number of Rx queue configured is greater than 1, ETH_MQ_RX_RSS flag is set in port->dev_conf.rxmode.mq_mode in testpmd application, and DEV_RX_OFFLOAD_RSS_HASH flag is set in rx_offloads (dev->data->dev_conf.rxmode.offloads) according to the ETH_MQ_RX_RSS flag of rxmode.mq_mode in PMD drivers.
However, DEV_RX_OFFLOAD_RSS_HASH is not set to rx_offloads maintained in testpmd application, this will cause the inconsistent problem that rx_offloads is different for testpmd and PMD drivers. Signed-off-by: Huisong Li <lihuis...@huawei.com> Signed-off-by: Wei Hu (Xavier) <xavier.hu...@huawei.com> --- v1 -> v2: add check if PMD support DEV_RX_OFFLOAD_RSS_HASH before setting it. --- app/test-pmd/testpmd.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c index fe6450c..a36db76 100644 --- a/app/test-pmd/testpmd.c +++ b/app/test-pmd/testpmd.c @@ -3353,11 +3353,15 @@ init_port_config(void) } if (port->dcb_flag == 0) { - if( port->dev_conf.rx_adv_conf.rss_conf.rss_hf != 0) + if (port->dev_conf.rx_adv_conf.rss_conf.rss_hf != 0) { port->dev_conf.rxmode.mq_mode = (enum rte_eth_rx_mq_mode) (rx_mq_mode & ETH_MQ_RX_RSS); - else + if (port->dev_info.rx_offload_capa & + DEV_RX_OFFLOAD_RSS_HASH) + port->dev_conf.rxmode.offloads |= + DEV_RX_OFFLOAD_RSS_HASH; + } else port->dev_conf.rxmode.mq_mode = ETH_MQ_RX_NONE; } -- 2.9.5