Features/VirtioVsock: Difference between revisions

From QEMU
No edit summary
Line 8: Line 8:


==Code==
==Code==
* Virtio specification: [http://comments.gmane.org/gmane.comp.emulators.virtio.devel/855 RFC]
* Virtio specification: [https://stefanha.github.com/stefanha/virtio]
* Linux kernel: [https://github.com/stefanha/linux/tree/vsock stefanha's linux.git]
* Linux kernel: [https://github.com/stefanha/linux/tree/vsock stefanha's linux.git]
* QEMU: [https://github.com/stefanha/qemu/tree/vsock stefanha's qemu.git]
* QEMU: [https://github.com/stefanha/qemu/tree/vsock stefanha's qemu.git]

Revision as of 14:37, 29 April 2016

virtio-vsock is a host/guest communications device. It allows applications in the guest and host to communicate. This can be used to implement hypervisor services and guest agents (like qemu-guest-agent or SPICE vdagent).

Unlike virtio-serial, virtio-vsock supports the POSIX Sockets API so existing networking applications require minimal modification. The Sockets API allows N:1 connections so multiple clients can connect to a server simultaneously.

The device has an address assigned automatically so no configuration is required inside the guest.

Sockets are created with the AF_VSOCK address family. The SOCK_STREAM socket type is currently implemented.

Code

Quickstart

QEMU:

 $ git clone -b vsock https://github.com/stefanha/qemu
 $ cd qemu
 $ ./configure --target-list=x86_64-softmmu
 $ make

Linux:

 $ git clone -b vsock https://github.com/stefanha/linux
 $ cd linux
 $ cp /boot/config-$(uname -r) .config
 $ make menuconfig # select CONFIG_VHOST_VSOCK=m and CONFIG_VIRTIO_VSOCKETS=m
 $ make install modules_install

To use vhost_vsock.ko you must boot into the new host kernel and modprobe vhost_vsock.

The guest should also use the kernel so that modprobe virtio_transport can load the vsock guest driver.

For details on host and guest boot, see go.sh. Use nc-vsock 2 1234 inside the guest to connect to vsock port 1234 on the host. Use nc-vsock -l 1234 on the host to listen on that port.

Links