NetBSD's virtio-net implementation doesn't negotiate
the merged rx-buffers feature. To support this, check
to see if the feature was negotiated, and then adjust
the operation of the receive path accordingly by using
a larger iovec, and a smaller rx header.
Details
Details
Tested by verifying that NetBSD 5.2.2, 6.1.4 and 7-beta
no longer generate an assert() in bhyve, and can access
the network via a virtio interface.
Verify that existing FreeBSD/Linux guests continue to work.
Diff Detail
Diff Detail
- Repository
- rS FreeBSD src repository - subversion
- Lint
No Lint Coverage - Unit
No Test Coverage
Event Timeline
Comment Actions
This looks good!
At some point to be actually be compliant with the merge-rx feature, a series of vq_getchain()/vq_relchain() operations culminating with a vrh_bufs > 1 header will need to happen.
Comment Actions
Agreed on the merge-rx stuff. Not sure the API can handle it the way it is written, but that can be changed.