Virtio specification supports host checksum offloading for L4, which is enabled with VIRTIO_NET_F_CSUM feature negotiation. However, the Vhost PMD does not advertise Rx checksum offload capabilities, so we can end-up with the VIRTIO_NET_F_CSUM feature being negotiated, implying the Vhost library returns packets with checksum being offloaded while the application did not request for it. Advertising these offload capabilities at the ethdev level is not enough, because we could still end-up with the application not enabling these offloads while the guest still negotiate them. This patch advertises the Rx checksum offload capabilities, and introduces a compatibility layer to cover the case VIRTIO_NET_F_CSUM has been negotiated but the application does not configure the Rx checksum offloads. This function performis the L4 Rx checksum in SW for UDP and TCP. Note that it is not needed to calculate the pseudo-header checksum, because the Virtio specification requires that the driver do it. This patch does not advertise SCTP checksum offloading capability for now, but it could be handled later if the need arises. Reported-by: Jason Wang <jasowang@redhat.com> Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com> Reviewed-by: Chenbo Xia <chenbo.xia@intel.com> Reviewed-by: Cheng Jiang <cheng1.jiang@intel.com>
…
DPDK is a set of libraries and drivers for fast packet processing. It supports many processor architectures and both FreeBSD and Linux. The DPDK uses the Open Source BSD-3-Clause license for the core libraries and drivers. The kernel components are GPL-2.0 licensed. Please check the doc directory for release notes, API documentation, and sample application information. For questions and usage discussions, subscribe to: users@dpdk.org Report bugs and issues to the development mailing list: dev@dpdk.org
Description
Languages
C
99.1%
Meson
0.5%
Python
0.2%
Shell
0.1%