Re: bhyve VMs using netmap passthrough

From: Matthew Grooms <mgrooms_at_shrew.net>
Date: Mon, 08 May 2023 19:21:45 UTC
On 5/8/2023 12:59 PM, Mario Marietto wrote:
> Any predictions for qcow2 support on bhyve? I tried to use it, but I 
> realized that we don't have support yet..
>
You can have a look at the libvdsk section of the UPB wiki page. This 
library was originally conceived by Marcel Moolenaar as a way to 
abstract virtual disk operations using a set of well defined API calls ...

https://github.com/xcllnt/libvdsk

The initial implementation only supported raw disk files but was later 
extended by UPB to support both the QCOW2 & VMDK file formats along with 
disk snapshot operations ...

https://github.com/FreeBSD-UPB/freebsd-src/wiki#welcome-to-the-freebsd-upb-wiki-page
https://github.com/FreeBSD-UPB/libvdsk
https://github.com/FreeBSD-UPB/freebsd-src/tree/projects/bhyve_libvdsk_integration

Hopefully this code will make it's way into the tree some day but I 
don't think it's being actively worked on ATM. I've already let the UPB 
team know that I'd be willing to fund more scholarships for projects if 
we can get more traction with code reviews. Otherwise, there's really no 
point. Please see this presentation given last month at AsiaBSD in Tokyo 
for more details ...

https://wiki.freebsd.org/DevSummit/202303?action=AttachFile&do=view&target=Presentation+-+bhyvecon.pdf

-Matthew

> Il lun 8 mag 2023, 19:28 Jonas Lopes <jonasbsd@gmail.com> ha scritto:
>
>     Hello everybody,
>
>     Any predictions for ptnet support on bhyve? I tried to use it, but
>     I realized that we don't have support yet..
>
>     https://wiki.freebsd.org/SummerOfCode2016/PtnetDriverAndDeviceModel
>
>     I tested this command below:
>
>     # bhyve -c 2 -m 1G -A -H -P \
>              -s 31,lpc -l com1,stdio \
>              -s 0:0,hostbridge \
>              -s 1:0,virtio-net,tap1 \          # virtio-net NIC + TAP backend
>              -s 2:0,virtio-net,vale0:2 \       # virtio-net NIC + netmap userspace backend
>              -s 3:0,ahci-hd,freebsdimg.raw \
>              -s 4:0,ptnet,vale1:1 \            # ptnet NIC + ptnetmap kernelspace backend
>              -s 5:0,ptnetmap-memdev \          # ptnetmap memory device, needed by the ptnet NIC
>              vm1
>
>
>     But it returns this error:
>     *
>     *
>     *pci slot 0:4:1: unknown device "ptnet"*
>
>     *Motivation*: "A ptnet NIC which does the passthough of an host
>     VALE port inside the guest. The ptnetmap backend runs in a kernel
>     thread, and it is implemented as part of the netmap subsystem.
>
>     image.png
>
>
>     *References*:
>
>       * https://conferences.sigcomm.org/sigcomm/2017/files/tutorial-netmap/02-virtualization.pdf
>       * https://wiki.freebsd.org/SummerOfCode2016/PtnetDriverAndDeviceModel
>
>
>     Best,
>
>     -- 
>     Jonas Lopes
>