mbox series

[v2,0/6] Vhost checksum offload improvements

Message ID 20220608124946.102623-1-maxime.coquelin@redhat.com (mailing list archive)
Headers
Series Vhost checksum offload improvements |

Message

Maxime Coquelin June 8, 2022, 12:49 p.m. UTC
  This series aims at improving Vhost checksum offloading
support.

The first patch reverts overwritting MAC address in
testpmd CSUM forward mode. This is required to be able to
test checksum offloading with real traffic. MAC forwarding
mode should be used if the MAC addresses need to be
changed.

Second patch is a Vhost library fix to be compliant with
the Virtio specification, which requires that the
pseudo-header checksum is being set by the device when
offloading the checksum to the guest.

Third patch enables the compliant offloading mode of Vhost
library in Vhost PMD by default, since the legacy mode
violates the mbuf API by setting Tx flags in the receive
path. A new devarg is introduced for application willing
to use the legacy mode.

Fourth patch is just a small cleanup to represent a boolean
value as a boolean.

The two last patches introduces compatibility layers
that performs checksum in SW when the ethdev and Virtio
features are not aligned.

Note that the two last patches are not tagged as fixes
because they rely on the new compliant offload mode of
Vhost library, and so would casue an ABI breakage if
backported.

With this series, it is now possible to perform IO
forwarding between a vhost-user port and a Vitio-user
with kernel backend port even if the guest has negotiated
VIRTIO_NET_F_CSUM.

With csum forward mode, it now works whathever the
offloading configuration set either on Virtio or Ethdev
sides.

Changes in v2:
==============
- Add the new devarg to validation array (Wenwu)
- Fix typos in commit messages (Chenbo, checkpatch, Yuying)

Maxime Coquelin (6):
  Revert "app/testpmd: modify mac in csum forwarding"
  vhost: fix missing enqueue pseudo-header calculation
  net/vhost: enable compliant offloading mode
  net/vhost: make VLAN stripping flag a boolean
  net/vhost: perform SW checksum in Rx path
  net/vhost: perform SW checksum in Tx path

 app/test-pmd/csumonly.c            |   4 -
 doc/guides/nics/features/vhost.ini |   1 +
 doc/guides/nics/vhost.rst          |   6 ++
 drivers/net/vhost/rte_eth_vhost.c  | 167 ++++++++++++++++++++++++++++-
 lib/vhost/virtio_net.c             |  10 ++
 5 files changed, 180 insertions(+), 8 deletions(-)
  

Comments

Maxime Coquelin June 17, 2022, 2:06 p.m. UTC | #1
On 6/8/22 14:49, Maxime Coquelin wrote:
> This series aims at improving Vhost checksum offloading
> support.
> 
> The first patch reverts overwritting MAC address in
> testpmd CSUM forward mode. This is required to be able to
> test checksum offloading with real traffic. MAC forwarding
> mode should be used if the MAC addresses need to be
> changed.
> 
> Second patch is a Vhost library fix to be compliant with
> the Virtio specification, which requires that the
> pseudo-header checksum is being set by the device when
> offloading the checksum to the guest.
> 
> Third patch enables the compliant offloading mode of Vhost
> library in Vhost PMD by default, since the legacy mode
> violates the mbuf API by setting Tx flags in the receive
> path. A new devarg is introduced for application willing
> to use the legacy mode.
> 
> Fourth patch is just a small cleanup to represent a boolean
> value as a boolean.
> 
> The two last patches introduces compatibility layers
> that performs checksum in SW when the ethdev and Virtio
> features are not aligned.
> 
> Note that the two last patches are not tagged as fixes
> because they rely on the new compliant offload mode of
> Vhost library, and so would casue an ABI breakage if
> backported.
> 
> With this series, it is now possible to perform IO
> forwarding between a vhost-user port and a Vitio-user
> with kernel backend port even if the guest has negotiated
> VIRTIO_NET_F_CSUM.
> 
> With csum forward mode, it now works whathever the
> offloading configuration set either on Virtio or Ethdev
> sides.
> 
> Changes in v2:
> ==============
> - Add the new devarg to validation array (Wenwu)
> - Fix typos in commit messages (Chenbo, checkpatch, Yuying)
> 
> Maxime Coquelin (6):
>    Revert "app/testpmd: modify mac in csum forwarding"
>    vhost: fix missing enqueue pseudo-header calculation
>    net/vhost: enable compliant offloading mode
>    net/vhost: make VLAN stripping flag a boolean
>    net/vhost: perform SW checksum in Rx path
>    net/vhost: perform SW checksum in Tx path
> 
>   app/test-pmd/csumonly.c            |   4 -
>   doc/guides/nics/features/vhost.ini |   1 +
>   doc/guides/nics/vhost.rst          |   6 ++
>   drivers/net/vhost/rte_eth_vhost.c  | 167 ++++++++++++++++++++++++++++-
>   lib/vhost/virtio_net.c             |  10 ++
>   5 files changed, 180 insertions(+), 8 deletions(-)
> 

Applied to dpdk-next-virtio/main.

Thanks,
Maxime