[PATCH v4 5/8] net/vmxnet3: version 6
Andrew Rybchenko
andrew.rybchenko at oktetlabs.ru
Thu May 12 12:57:41 CEST 2022
On 5/6/22 01:00, Pankaj Gupta wrote:
> vmxnet3 version 6 supports some new features, including but
> not limited to:
> - Increased max MTU up to 9190
> - Increased max number of queues, both for Rx and Tx
> - Removes power-of-two limitations
> - Extended interrupt structures, required implementation for
> additional number of queues
>
> Tested, using testpmd, for different hardware version on
> ESXi 7.0 Update 2.
>
> Signed-off-by: Pankaj Gupta <pagupta at vmware.com>
> Reviewed-by: Jochen Behrens <jbehrens at vmware.com>
[snip]
> @@ -1377,9 +1428,30 @@ vmxnet3_dev_info_get(struct rte_eth_dev *dev,
> struct rte_eth_dev_info *dev_info)
> {
> struct vmxnet3_hw *hw = dev->data->dev_private;
> + int queues = 0;
> +
> + if (VMXNET3_VERSION_GE_6(hw)) {
> + VMXNET3_WRITE_BAR1_REG(hw, VMXNET3_REG_CMD,
> + VMXNET3_CMD_GET_MAX_QUEUES_CONF);
> + queues = VMXNET3_READ_BAR1_REG(hw, VMXNET3_REG_CMD);
> +
> + if (queues > 0) {
> +#ifndef MIN
> +#define MIN(x, y) (((x) < (y)) ? (x) : (y))
> +#endif
checkpatches.sh produces a warning here. Can we use RTE_MIN()
instead below?
> + dev_info->max_rx_queues =
> + MIN(VMXNET3_EXT_MAX_RX_QUEUES, ((queues >> 8) & 0xff));
> + dev_info->max_tx_queues =
> + MIN(VMXNET3_EXT_MAX_TX_QUEUES, (queues & 0xff));
> + } else {
> + dev_info->max_rx_queues = VMXNET3_MAX_RX_QUEUES;
> + dev_info->max_tx_queues = VMXNET3_MAX_TX_QUEUES;
> + }
> + } else {
> + dev_info->max_rx_queues = VMXNET3_MAX_RX_QUEUES;
> + dev_info->max_tx_queues = VMXNET3_MAX_TX_QUEUES;
> + }
>
> - dev_info->max_rx_queues = VMXNET3_MAX_RX_QUEUES;
> - dev_info->max_tx_queues = VMXNET3_MAX_TX_QUEUES;
> dev_info->min_rx_bufsize = 1518 + RTE_PKTMBUF_HEADROOM;
> dev_info->max_rx_pktlen = 16384; /* includes CRC, cf MAXFRS register */
> dev_info->min_mtu = VMXNET3_MIN_MTU;
[snip]
More information about the dev
mailing list