mbox series

[net-next,0/4] vmxnet3: upgrade to version 4

Message ID 20200528015426.8285-1-doshir@vmware.com
Headers show
Series vmxnet3: upgrade to version 4 | expand

Message

Ronak Doshi May 28, 2020, 1:54 a.m. UTC
vmxnet3 emulation has recently added several new features which includes
offload support for tunnel packets, support for new commands the driver
can issue to emulation, change in descriptor fields, etc. 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 4.
 - 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 4 comparison
  and updates Copyright information.

Patch 2:
  This patch implements get_rss_hash_opts and set_rss_hash_opts methods
  to allow querying and configuring different Rx flow hash configurations
  which can be used to support UDP/ESP RSS.

Patch 3:
  This patch introduces segmentation and checksum offload support for
  encapsulated packets. This avoids segmenting and calculating checksum
  for each segment and hence gives performance boost.

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

Ronak Doshi (4):
  vmxnet3: prepare for version 4 changes
  vmxnet3: add support to get/set rx flow hash
  vmxnet3: add geneve and vxlan tunnel offload support
  vmxnet3: update to version 4

 drivers/net/vmxnet3/Makefile          |   2 +-
 drivers/net/vmxnet3/upt1_defs.h       |   5 +-
 drivers/net/vmxnet3/vmxnet3_defs.h    |  31 +++-
 drivers/net/vmxnet3/vmxnet3_drv.c     | 164 ++++++++++++++++++---
 drivers/net/vmxnet3/vmxnet3_ethtool.c | 267 +++++++++++++++++++++++++++++++++-
 drivers/net/vmxnet3/vmxnet3_int.h     |  25 +++-
 6 files changed, 452 insertions(+), 42 deletions(-)

Comments

David Miller May 28, 2020, 6:07 p.m. UTC | #1
From: Ronak Doshi <doshir@vmware.com>
Date: Wed, 27 May 2020 18:54:22 -0700

> vmxnet3 emulation has recently added several new features which includes
> offload support for tunnel packets, support for new commands the driver
> can issue to emulation, change in descriptor fields, etc. 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 4.
>  - 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.
 ...

Series applied, thank you.
David Miller May 28, 2020, 6:11 p.m. UTC | #2
From: David Miller <davem@davemloft.net>
Date: Thu, 28 May 2020 11:07:46 -0700 (PDT)

> Series applied, thank you.

This doesn't even compile successfully, reverted... :(

drivers/net/vmxnet3/vmxnet3_drv.c: In function ‘vmxnet3_tq_xmit’:
drivers/net/vmxnet3/vmxnet3_drv.c:1145:5: error: expected ‘}’ before ‘else’
 1145 |   } else {
      |     ^~~~
drivers/net/vmxnet3/vmxnet3_ethtool.c: In function ‘vmxnet3_get_rss_hash_opts’:
drivers/net/vmxnet3/vmxnet3_ethtool.c:744:6: warning: this statement may fall through [-Wimplicit-fallthrough=]
  744 |   if (rss_fields & VMXNET3_RSS_FIELDS_ESPIP4)
      |      ^
drivers/net/vmxnet3/vmxnet3_ethtool.c:746:2: note: here
  746 |  case SCTP_V4_FLOW:
      |  ^~~~
make[3]: *** [scripts/Makefile.build:267: drivers/net/vmxnet3/vmxnet3_drv.o] Error 1
make[3]: *** Waiting for unfinished jobs....
make[2]: *** [scripts/Makefile.build:488: drivers/net/vmxnet3] Error 2
make[1]: *** [scripts/Makefile.build:488: drivers/net] Error 2
make[1]: *** Waiting for unfinished jobs....
make: *** [Makefile:1729: drivers] Error 2