On Tue, 18 Jun 2024 11:01:27 +0800, Jason Wang <jasowang@xxxxxxxxxx> wrote: > On Mon, Jun 17, 2024 at 9:15 PM Heng Qi <hengqi@xxxxxxxxxxxxxxxxx> wrote: > > > > In virtio spec 0.95, VIRTIO_NET_F_GUEST_CSUM was designed to handle > > partially checksummed packets, and the validation of fully checksummed > > packets by the device is independent of VIRTIO_NET_F_GUEST_CSUM > > negotiation. However, the specification erroneously stated: > > > > "If VIRTIO_NET_F_GUEST_CSUM is not negotiated, the device MUST set flags > > to zero and SHOULD supply a fully checksummed packet to the driver." > > > > This statement is inaccurate because even without VIRTIO_NET_F_GUEST_CSUM > > negotiation, the device can still set the VIRTIO_NET_HDR_F_DATA_VALID flag. > > Essentially, the device can facilitate the validation of these packets' > > checksums - a process known as RX checksum offloading - removing the need > > for the driver to do so. > > > > This scenario is currently not implemented in the driver and requires > > correction. The necessary specification correction[1] has been made and > > approved in the virtio TC vote. > > [1] https://lists.oasis-open.org/archives/virtio-comment/202401/msg00011.html > > > > Fixes: 4f49129be6fa ("virtio-net: Set RXCSUM feature if GUEST_CSUM is available") > > Signed-off-by: Heng Qi <hengqi@xxxxxxxxxxxxxxxxx> > > --- > > Acked-by: Jason Wang <jasowang@xxxxxxxxxx> > > (Should we manually do checksum if RXCUSM is disabled?) > Currently we do not allow RXCUSM to be disabled. Thanks. > Thanks >