[libvirt] [PATCH RFC] Add support for QEMU vhost-user feature

Daniel P. Berrange berrange at redhat.com
Wed Jun 4 15:46:43 UTC 2014


On Wed, May 28, 2014 at 10:46:27AM +0200, Luke Gorrie wrote:
> vhost-user is a networking backend based on unix domain sockets
> instead of tap devices and ioctl(). This makes it possible for
> userspace networking stacks (vswitches) to provide vhost-networking to
> guests.
> 
> Signed-off-by: Luke Gorrie <luke at snabb.co>

> diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h
> index 8f17c74..b5ea2f6 100644
> --- a/src/conf/domain_conf.h
> +++ b/src/conf/domain_conf.h
> @@ -791,6 +791,7 @@ struct _virDomainFSDef {
>  enum virDomainNetType {
>      VIR_DOMAIN_NET_TYPE_USER,
>      VIR_DOMAIN_NET_TYPE_ETHERNET,
> +    VIR_DOMAIN_NET_TYPE_VHOSTUSER,
>      VIR_DOMAIN_NET_TYPE_SERVER,
>      VIR_DOMAIN_NET_TYPE_CLIENT,
>      VIR_DOMAIN_NET_TYPE_MCAST,
> @@ -877,6 +878,10 @@ struct _virDomainNetDef {
>              char *ipaddr;
>          } ethernet;
>          struct {
> +            char *socket;
> +            char *mode;
> +        } vhostuser;
> +        struct {

So your QEMU command line generation code shows that QEMU
is actually allowing any chardev here, not restricted to
a UNIX socket. So you should be using a

  virDomainChrSourceDefPtr chardev;

instead of just hardcoding a UNIX socket path + mode.

> +
> +    virCommandAddArgList(cmd, "-chardev", virBufferContentAndReset(&buf1),
> +                         NULL);
> +    virCommandAddArgList(cmd, "-netdev", virBufferContentAndReset(&buf2),
> +                         NULL);

Regards,
Daniel
-- 
|: http://berrange.com      -o-    http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org              -o-             http://virt-manager.org :|
|: http://autobuild.org       -o-         http://search.cpan.org/~danberr/ :|
|: http://entangle-photo.org       -o-       http://live.gnome.org/gtk-vnc :|




More information about the libvir-list mailing list