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. 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 | 166 ++++++++++++++++++++++++++++- lib/vhost/virtio_net.c | 10 ++ 5 files changed, 179 insertions(+), 8 deletions(-) -- 2.35.1