According to section 5.1.6.2.1 of version 1.3 of the virtio specification, the driver MUST NOT set VIRTIO_NET_HDR_F_DATA_VALID in the flags. So don't do that.
Details
Details
- Reviewers
timo.voelker_fh-muenster.de - Commits
- rGb91bf9f0e2c4: vtnet: don't provide VIRTIO_NET_HDR_F_DATA_VALID
rG0ef06b5bccf4: vtnet: don't provide VIRTIO_NET_HDR_F_DATA_VALID
rGca38822e05d7: vtnet: don't provide VIRTIO_NET_HDR_F_DATA_VALID
rG836b3cd9d791: vtnet: don't provide VIRTIO_NET_HDR_F_DATA_VALID
Diff Detail
Diff Detail
- Repository
- rG FreeBSD src repository
- Lint
Lint Not Applicable - Unit
Tests Not Applicable
Event Timeline
Comment Actions
It's strange that the spec does not allow the driver to set the VIRTIO_NET_HDR_F_DATA_VALID flag. If the host receives a packet over a physical interface that validates the checksum, forwards that packet to a VM, and the VM sends it out again (e. g., because of routing), we now lose the information that the checksum has already been validated. However, the spec appears to be clear on that, and I guess FreeBSD should follow it.