Currently the driver assumes that the size of the RETA table is four times the number of Rx queues at multiple places. However, it sets it to four times the maximum number of queues (4 * 32 = 128) when it first initializes the device. Change the other uses to use the stored value, not the assumed default.
Tested, using testpmd, for different hardware versions on ESXi 7.0 Update 2. Signed-off-by: Pankaj Gupta <pagu...@vmware.com> Reviewed-by: Jochen Behrens <jbehr...@vmware.com> --- drivers/net/vmxnet3/vmxnet3_ethdev.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/drivers/net/vmxnet3/vmxnet3_ethdev.c b/drivers/net/vmxnet3/vmxnet3_ethdev.c index 52309811e5..c9e352b73a 100644 --- a/drivers/net/vmxnet3/vmxnet3_ethdev.c +++ b/drivers/net/vmxnet3/vmxnet3_ethdev.c @@ -1479,7 +1479,12 @@ vmxnet3_dev_info_get(struct rte_eth_dev *dev, dev_info->rx_queue_offload_capa = 0; dev_info->tx_offload_capa = VMXNET3_TX_OFFLOAD_CAP; dev_info->tx_queue_offload_capa = 0; - + if (hw->rss_conf == NULL) { + /* RSS not configured */ + dev_info->reta_size = 0; + } else { + dev_info->reta_size = hw->rss_conf->indTableSize; + } return 0; } -- 2.17.1