Hello, We noticed that the Tx path for bhyve virtio-net devices (pci_virtio_net.c:pci_vtnet_proctx) assumes that all Tx'es will have a first descriptor with the header alone (https://svnweb.freebsd.org/base/head/usr.sbin/bhyve/pci_virtio_net.c?view=markup#l609): sc->pci_vtnet_tx(sc, &iov[1], n - 1, plen); // Skips the header descriptor The issue is that the virtio 1.0 specification allows for having the net header and the data in a single descriptor. See section 5.1.6.2 of the virtio spec (http://docs.oasis-open.org/virtio/virtio/v1.0/cs04/virtio-v1.0-cs04.html#x1-1680006). Thanks, Ricardo
Since bhyve doesn't advertize v1.0 support, is this still an issue ?
The oldest virtio spec I could find online is 0.9.4 (http://ozlabs.org/~rusty/virtio-spec/old/virtio-0.9.4.pdf). The section about how to add descriptors to the ring is the same as in 1.0 (section 2.4.1).
Same thing for 0.8.7. ozlabs.org/~rusty/virtio-spec/old/virtio-spec-0.8.7.pdf