mbox

[v2,next,0/7] net/vmxnet3: upgrade to version 7

Message ID 20230426190415.28239-1-doshir@vmware.com (mailing list archive)
Headers

Message

Ronak Doshi April 26, 2023, 7:04 p.m. UTC
  vmxnet3 emulation has recently added several new features including
support for uniform passthrough(UPT). To make UPT work vmxnet3 has
to be enhanced as per the new specification. This patch series
extends the vmxnet3 driver to leverage these new features.

Compatibility is maintained using existing vmxnet3 versioning mechanism as
follows:
- new features added to vmxnet3 emulation are associated with new vmxnet3
   version viz. vmxnet3 version 7.
- emulation advertises all the versions it supports to the driver.
- during initialization, vmxnet3 driver picks the highest version number
supported by both the emulation and the driver and configures emulation
to run at that version.

In particular, following changes are introduced:

Patch 1:
  This patch introduces utility macros for vmxnet3 version 7 comparison
  and updates Copyright information.

Patch 2:
  This patch adds new capability registers to fine control enablement of
  individual features based on emulation and passthrough.

Patch 3:
  This patch adds support for large passthrough BAR register.

Patch 4:
  This patch introduces new command to set ring buffer sizes to pass this
  information to the hardware.

Patch 5:
  For better performance, hardware has a requirement to limit number of TSO
  descriptors. This patch adds that support.

Patch 6:
  Avoid updating rxprod register when in UPT for performance reasons.

Patch 7:
  With all vmxnet3 version 7 changes incorporated in the vmxnet3 driver,
  with this patch, the driver can configure emulation to run at vmxnet3
  version 7.

Changes in v2:
- modified the title to include "net/"
- addressed checkpatch complaints and some typo in patch commits
- removed RTE_ETH_DEV_CAPA_PASS_THRU as it was specific to vmxnet3
- added new features information in release notes
- updated feature related information in vmxnet3 driver documentation

Ronak Doshi (7):
  net/vmxnet3: prepare for version 7 changes
  net/vmxnet3: add support for capability registers
  net/vmxnet3: add support for large passthrough BAR register
  net/vmxnet3: add command to set ring buffer sizes
  net/vmxnet3: limit number of TXDs used for TSO packet
  net/vmxnet3: avoid updating rxprod register frequently
  net/vmxnet3: update to version 7

 doc/guides/nics/vmxnet3.rst             | 26 +++++++++
 doc/guides/rel_notes/release_23_07.rst  |  6 +++
 drivers/net/vmxnet3/base/vmxnet3_defs.h | 74 ++++++++++++++++++++++---
 drivers/net/vmxnet3/vmxnet3_ethdev.c    | 95 ++++++++++++++++++++++++++++++++-
 drivers/net/vmxnet3/vmxnet3_ethdev.h    | 16 ++++++
 drivers/net/vmxnet3/vmxnet3_ring.h      |  2 +-
 drivers/net/vmxnet3/vmxnet3_rxtx.c      | 48 ++++++++++++-----
 7 files changed, 245 insertions(+), 22 deletions(-)