Page MenuHomeFreeBSD

Allow vtnet operation without merged rx buffers.
ClosedPublic

Authored by grehan on Sep 9 2014, 5:52 AM.
Tags
None
Referenced Files
Unknown Object (File)
Jan 1 2024, 11:46 PM
Unknown Object (File)
Nov 15 2023, 10:01 AM
Unknown Object (File)
Nov 10 2023, 12:35 AM
Unknown Object (File)
Oct 14 2023, 9:02 AM
Unknown Object (File)
Oct 8 2023, 11:24 PM
Unknown Object (File)
Sep 28 2023, 6:53 AM
Unknown Object (File)
Aug 27 2023, 6:56 PM
Unknown Object (File)
Jul 10 2023, 1:03 PM
Subscribers

Details

Reviewers
tychon
neel
rgrimes
Group Reviewers
bhyve
Summary

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.

Test Plan

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

Repository
rS FreeBSD src repository - subversion
Lint
No Lint Coverage
Unit
No Test Coverage

Event Timeline

grehan retitled this revision from to Allow vtnet operation without merged rx buffers..
grehan updated this object.
grehan edited the test plan for this revision. (Show Details)
grehan added reviewers: neel, tychon.
tychon edited edge metadata.

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.

This revision is now accepted and ready to land.Sep 9 2014, 6:58 PM
neel edited edge metadata.

Looks good.

Agreed on the merge-rx stuff. Not sure the API can handle it the way it is written, but that can be changed.

markj added a subscriber: markj.

Committed in r271338.