On Mon, Apr 10, 2017 at 1:05 AM, Rick Payne (Offshore) <ri...@rossfell.co.uk > wrote:
> Hi, > > Is there a good example that uses the virtio network interfaces direct? > ie. an application that uses ‘assign-net’ and talks directly to the network > interface code in OSv? > > I’m looking for a sample I can learn from. > Unfortunately, we never documented the "assigned virtio" API. Basically, the "assigned virtio" idea was to allow OSv to set up the virtio-net device, and then give the application an API to control it directly. Before a virtio device can be assigned to the application, OSv needs to know not to use it itself. The boot-time option --assign-net tells OSv *not* to use a virtio-net device given to it by the host (if any), and instead assign it to the application. You can see see include/osv/virtio-assign.hh for the full API. For example, the application can then use osv::assigned_virtio::get() to get access to this device, and properly set it up and use it. Then the application can use this API to access the rings, to kick, and to get notifications. The only place we ever used this API (and even that we haven't tested in a long time, so I hope it didn't rot too much...) was in Seastar. Check out commit f497299f446846767eda74a7265411b573b5a280 for how we used it in Seastar It would be nice to turn this feature into something more lively and used, and better documented. Nadav. -- You received this message because you are subscribed to the Google Groups "OSv Development" group. To unsubscribe from this group and stop receiving emails from it, send an email to osv-dev+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.