[v3,next,7/7] net/vmxnet3: update to version 7
Checks
Commit Message
With all vmxnet3 version 7 changes incorporated in the vmxnet3 driver,
the driver can configure emulation to run at vmxnet3 version 7, provided
the emulation advertises support for version 7.
Signed-off-by: Ronak Doshi <doshir@vmware.com>
Acked-by: Jochen Behrens <jbehrens@vmware.com>
---
doc/guides/nics/vmxnet3.rst | 30 ++++++++++++++++++++++++++----
doc/guides/rel_notes/release_23_07.rst | 6 ++++++
drivers/net/vmxnet3/vmxnet3_ethdev.c | 6 +++++-
drivers/net/vmxnet3/vmxnet3_ring.h | 2 +-
4 files changed, 38 insertions(+), 6 deletions(-)
Comments
On 4/28/2023 8:10 AM, Ronak Doshi wrote:
> diff --git a/doc/guides/rel_notes/release_23_07.rst b/doc/guides/rel_notes/release_23_07.rst
> index a9b1293689..907a06cd62 100644
> --- a/doc/guides/rel_notes/release_23_07.rst
> +++ b/doc/guides/rel_notes/release_23_07.rst
> @@ -55,6 +55,12 @@ New Features
> Also, make sure to start the actual text at the margin.
> =======================================================
>
> + * **Added vmxnet3 version 7 support.**
> +
> + Added support for vmxnet3 version 7 which includes support
> + for uniform passthrough(UPT). The patches also add support
> + for new capability registers, large passthru BAR and some
> + performance enhancements for UPT.
Update added as continuation of section comment, I will fix while merging.
@@ -21,10 +21,6 @@ VMXNET3 Implementation in the DPDK
For details on the VMXNET3 device, refer to the VMXNET3 driver's vmxnet3 directory and support manual from VMware*.
-For performance details, refer to the following link from VMware:
-
-`http://www.vmware.com/pdf/vsp_4_vmxnet3_perf.pdf <http://www.vmware.com/pdf/vsp_4_vmxnet3_perf.pdf>`_
-
As a PMD, the VMXNET3 driver provides the packet reception and transmission callbacks, vmxnet3_recv_pkts and vmxnet3_xmit_pkts.
The VMXNET3 PMD handles all the packet buffer memory allocation and resides in guest address space
@@ -67,6 +63,32 @@ There are several options available for filtering packets at VMXNET3 device leve
* VLAN tag based filtering without load balancing - SUPPORTED
+#. Vmxnet3 versions and associated features.
+
+ Vmxnet3 version is tied to corresponding ESXi hardware version and each
+ version defines a set of compatible features.
+
+ * Vmxnet3 version 7, hw ver 19
+ This version adds support for Uniform Passthrough(UPT).
+
+ * Vmxnet3 version 6, hw ver 17
+ This version enhanced vmxnet3 to support queues up to 32 and also
+ removed power-of-two limitations on the queues.
+
+ * Vmxnet3 version 5, hw ver 15
+ Features not related to dpdk vmxnet3 PMD.
+
+ * Vmxnet3 version 4, hw ver 14
+ This version adds supoprt for UDP and ESP RSS
+
+ * Vmxnet3 version 3, hw ver 13
+ This version added performance enhancement features such as
+ configurable Tx data ring, Receive Data Ring, and the ability
+ to register memory regions.
+
+ * Vmxnet3 version 2, hw ver 11
+ This version adds support for Large Receive offload (LRO).
+
.. note::
@@ -55,6 +55,12 @@ New Features
Also, make sure to start the actual text at the margin.
=======================================================
+ * **Added vmxnet3 version 7 support.**
+
+ Added support for vmxnet3 version 7 which includes support
+ for uniform passthrough(UPT). The patches also add support
+ for new capability registers, large passthru BAR and some
+ performance enhancements for UPT.
Removed Items
-------------
@@ -410,7 +410,11 @@ eth_vmxnet3_dev_init(struct rte_eth_dev *eth_dev)
/* Check h/w version compatibility with driver. */
ver = VMXNET3_READ_BAR1_REG(hw, VMXNET3_REG_VRRS);
- if (ver & (1 << VMXNET3_REV_6)) {
+ if (ver & (1 << VMXNET3_REV_7)) {
+ VMXNET3_WRITE_BAR1_REG(hw, VMXNET3_REG_VRRS,
+ 1 << VMXNET3_REV_7);
+ hw->version = VMXNET3_REV_7 + 1;
+ } else if (ver & (1 << VMXNET3_REV_6)) {
VMXNET3_WRITE_BAR1_REG(hw, VMXNET3_REG_VRRS,
1 << VMXNET3_REV_6);
hw->version = VMXNET3_REV_6 + 1;
@@ -7,7 +7,7 @@
#define VMXNET3_RX_CMDRING_SIZE 2
-#define VMXNET3_DRIVER_VERSION_NUM 0x01012000
+#define VMXNET3_DRIVER_VERSION_NUM 0x01013000
/* Default ring size */
#define VMXNET3_DEF_TX_RING_SIZE 512