]> git.droids-corp.org - dpdk.git/commitdiff
net/vmxnet3: support version 5
authorPankaj Gupta <pagupta@vmware.com>
Wed, 25 May 2022 00:40:20 +0000 (17:40 -0700)
committerAndrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
Tue, 31 May 2022 13:31:03 +0000 (15:31 +0200)
Add VMXNET3 v5 support.

Tested, using testpmd, for different hardware versions on ESXi 7.0
Update 2.

Signed-off-by: Pankaj Gupta <pagupta@vmware.com>
Reviewed-by: Jochen Behrens <jbehrens@vmware.com>
doc/guides/rel_notes/release_22_07.rst
drivers/net/vmxnet3/vmxnet3_ethdev.c
drivers/net/vmxnet3/vmxnet3_ethdev.h

index 207d0b84363463b7dfcb40557d21ee2d10150d25..ef88d2b5916ecaa7d054eb2d081adb3ded1754b9 100644 (file)
@@ -90,6 +90,10 @@ New Features
   * Added support for MTU on Windows.
   * Added matching and RSS on IPsec ESP.
 
+* **Updated VMware vmxnet3 networking driver.**
+
+  * Added version 5 support.
+
 * **Updated Wangxun ngbe driver.**
 
   * Added support for yt8531s PHY.
index d1ef1cad08b3abfb10d06670439aa6ed43edcd1e..a7e1e5fef5bf1cf050fc4e89a70cfafb04af5fbb 100644 (file)
@@ -316,9 +316,12 @@ 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);
-       PMD_INIT_LOG(DEBUG, "Hardware version : %d", ver);
 
-       if (ver & (1 << VMXNET3_REV_4)) {
+       if (ver & (1 << VMXNET3_REV_5)) {
+               VMXNET3_WRITE_BAR1_REG(hw, VMXNET3_REG_VRRS,
+                                      1 << VMXNET3_REV_5);
+               hw->version = VMXNET3_REV_5 + 1;
+       } else if (ver & (1 << VMXNET3_REV_4)) {
                VMXNET3_WRITE_BAR1_REG(hw, VMXNET3_REG_VRRS,
                                       1 << VMXNET3_REV_4);
                hw->version = VMXNET3_REV_4 + 1;
index ef858ac9512f24e397413e42191d9fdee84c2b38..7ec3b2e1f02cecf1bcc6290bc83bf959f9cc75fb 100644 (file)
@@ -124,11 +124,13 @@ struct vmxnet3_hw {
        UPT1_RxStats          snapshot_rx_stats[VMXNET3_MAX_RX_QUEUES];
 };
 
+#define VMXNET3_REV_5          4               /* Vmxnet3 Rev. 5 */
 #define VMXNET3_REV_4          3               /* Vmxnet3 Rev. 4 */
 #define VMXNET3_REV_3          2               /* Vmxnet3 Rev. 3 */
 #define VMXNET3_REV_2          1               /* Vmxnet3 Rev. 2 */
 #define VMXNET3_REV_1          0               /* Vmxnet3 Rev. 1 */
 
+#define VMXNET3_VERSION_GE_5(hw) ((hw)->version >= VMXNET3_REV_5 + 1)
 #define VMXNET3_VERSION_GE_4(hw) ((hw)->version >= VMXNET3_REV_4 + 1)
 #define VMXNET3_VERSION_GE_3(hw) ((hw)->version >= VMXNET3_REV_3 + 1)
 #define VMXNET3_VERSION_GE_2(hw) ((hw)->version >= VMXNET3_REV_2 + 1)