From nobody Wed May 14 02:27:44 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 152691725891166.05025492197763; Mon, 21 May 2018 08:40:58 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 3FFC4FA2BD; Mon, 21 May 2018 15:40:57 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 02F4A60F9A; Mon, 21 May 2018 15:40:57 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id AD57E4CA95; Mon, 21 May 2018 15:40:56 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.rdu2.redhat.com [10.11.54.3]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id w4LFbaZL024106 for ; Mon, 21 May 2018 11:37:36 -0400 Received: by smtp.corp.redhat.com (Postfix) id 724A110EE6D6; Mon, 21 May 2018 15:37:36 +0000 (UTC) Received: from icr.brq.redhat.com (unknown [10.43.2.100]) by smtp.corp.redhat.com (Postfix) with ESMTP id D017510EE6D5; Mon, 21 May 2018 15:37:35 +0000 (UTC) From: =?UTF-8?q?J=C3=A1n=20Tomko?= To: libvir-list@redhat.com Date: Mon, 21 May 2018 17:37:16 +0200 Message-Id: <44f1caa8818a7025a1492d02bf9084f00f207d0b.1526916651.git.jtomko@redhat.com> In-Reply-To: References: In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.78 on 10.11.54.3 X-loop: libvir-list@redhat.com Cc: stefanha@redhat.com Subject: [libvirt] [PATCH 6/9] conf: add interface type vsock X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.12 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.28]); Mon, 21 May 2018 15:40:58 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Add a new 'vsock' interface type with a subelement.
No model is required. https://bugzilla.redhat.com/show_bug.cgi?id=3D1291851 Signed-off-by: J=C3=A1n Tomko --- docs/formatdomain.html.in | 15 ++++++++++++ docs/schemas/domaincommon.rng | 14 +++++++++++ src/conf/domain_conf.c | 40 ++++++++++++++++++++++++++++= ---- src/conf/domain_conf.h | 4 ++++ src/conf/netdev_bandwidth_conf.h | 1 + src/libxl/libxl_conf.c | 1 + src/lxc/lxc_controller.c | 1 + src/lxc/lxc_driver.c | 3 +++ src/lxc/lxc_process.c | 1 + src/qemu/qemu_command.c | 4 ++++ src/qemu/qemu_domain.c | 3 +++ src/qemu/qemu_hotplug.c | 3 +++ src/qemu/qemu_interface.c | 2 ++ src/qemu/qemu_process.c | 1 + src/uml/uml_conf.c | 5 ++++ src/vmx/vmx.c | 1 + src/xenconfig/xen_common.c | 1 + src/xenconfig/xen_sxpr.c | 1 + tests/qemuxml2argvdata/vhost-vsock.xml | 36 ++++++++++++++++++++++++++++ tests/qemuxml2xmloutdata/vhost-vsock.xml | 1 + tests/qemuxml2xmltest.c | 2 ++ tools/virsh-domain.c | 1 + 22 files changed, 137 insertions(+), 4 deletions(-) create mode 100644 tests/qemuxml2argvdata/vhost-vsock.xml create mode 120000 tests/qemuxml2xmloutdata/vhost-vsock.xml diff --git a/docs/formatdomain.html.in b/docs/formatdomain.html.in index 0d0fd3b9f3..05d991a370 100644 --- a/docs/formatdomain.html.in +++ b/docs/formatdomain.html.in @@ -5386,6 +5386,21 @@ </source> </interface> </devices> +... + +
Vsock
+ +

A vsock host/guest interface. Attribute cid of the tra= get element + specifies the CID assigned to the guest. + Since 4.4.0

+ +
+...
+<devices>
+  <interface type=3D'vsock'>
+    <target cid=3D'3'/>
+  </interface>
+</devices>
 ...
=20
Setting the NIC model
diff --git a/docs/schemas/domaincommon.rng b/docs/schemas/domaincommon.rng index 71ac3d079c..c56b615e6e 100644 --- a/docs/schemas/domaincommon.rng +++ b/docs/schemas/domaincommon.rng @@ -2675,6 +2675,20 @@ + + + vsock + + + + + + + + + + + diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index ee5fba40c9..77a233012e 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -426,7 +426,8 @@ VIR_ENUM_IMPL(virDomainNet, VIR_DOMAIN_NET_TYPE_LAST, "internal", "direct", "hostdev", - "udp") + "udp", + "vsock") =20 VIR_ENUM_IMPL(virDomainNetBackend, VIR_DOMAIN_NET_BACKEND_TYPE_LAST, "default", @@ -2094,6 +2095,10 @@ virDomainNetDefClear(virDomainNetDefPtr def) virDomainHostdevDefClear(&def->data.hostdev.def); break; =20 + case VIR_DOMAIN_NET_TYPE_VSOCK: + def->data.vsock.guest_cid =3D 0; + break; + case VIR_DOMAIN_NET_TYPE_ETHERNET: case VIR_DOMAIN_NET_TYPE_USER: case VIR_DOMAIN_NET_TYPE_LAST: @@ -10959,6 +10964,7 @@ virDomainNetDefParseXML(virDomainXMLOptionPtr xmlop= t, char *vhostuser_type =3D NULL; char *trustGuestRxFilters =3D NULL; char *vhost_path =3D NULL; + char *cid =3D NULL; virHashTablePtr filterparams =3D NULL; virDomainActualNetDefPtr actual =3D NULL; xmlNodePtr oldnode =3D ctxt->node; @@ -11104,6 +11110,8 @@ virDomainNetDefParseXML(virDomainXMLOptionPtr xmlop= t, VIR_FREE(ifname); } } + if (!cid && def->type =3D=3D VIR_DOMAIN_NET_TYPE_VSOCK) + cid =3D virXMLPropString(cur, "cid"); } else if ((!ifname_guest || !ifname_guest_actual) && virXMLNodeNameEqual(cur, "guest")) { ifname_guest =3D virXMLPropString(cur, "dev"); @@ -11190,7 +11198,7 @@ virDomainNetDefParseXML(virDomainXMLOptionPtr xmlop= t, (const char *)macaddr); goto error; } - } else { + } else if (def->type !=3D VIR_DOMAIN_NET_TYPE_VSOCK) { virDomainNetGenerateMAC(xmlopt, &def->mac); def->mac_generated =3D true; } @@ -11425,6 +11433,21 @@ virDomainNetDefParseXML(virDomainXMLOptionPtr xmlo= pt, } break; =20 + case VIR_DOMAIN_NET_TYPE_VSOCK: + if (cid =3D=3D NULL) { + virReportError(VIR_ERR_XML_ERROR, "%s", + _("No 'cid' attribute " + "specified with ")= ); + goto error; + } + if (virStrToLong_uip(cid, NULL, 10, &def->data.vsock.guest_cid) < = 0) { + virReportError(VIR_ERR_XML_DETAIL, + _("'cid' attribute must be positive number: %s"= ), + queues); + goto error; + } + break; + case VIR_DOMAIN_NET_TYPE_ETHERNET: case VIR_DOMAIN_NET_TYPE_USER: case VIR_DOMAIN_NET_TYPE_LAST: @@ -11703,6 +11726,7 @@ virDomainNetDefParseXML(virDomainXMLOptionPtr xmlop= t, case VIR_DOMAIN_NET_TYPE_DIRECT: case VIR_DOMAIN_NET_TYPE_HOSTDEV: case VIR_DOMAIN_NET_TYPE_UDP: + case VIR_DOMAIN_NET_TYPE_VSOCK: break; case VIR_DOMAIN_NET_TYPE_LAST: default: @@ -11771,6 +11795,7 @@ virDomainNetDefParseXML(virDomainXMLOptionPtr xmlop= t, VIR_FREE(vhost_path); VIR_FREE(localaddr); VIR_FREE(localport); + VIR_FREE(cid); virHashFree(filterparams); =20 return def; @@ -24290,8 +24315,10 @@ virDomainNetDefFormat(virBufferPtr buf, virBufferAddLit(buf, ">\n"); =20 virBufferAdjustIndent(buf, 2); - virBufferAsprintf(buf, "\n", - virMacAddrFormat(&def->mac, macstr)); + if (def->type !=3D VIR_DOMAIN_NET_TYPE_VSOCK) { + virBufferAsprintf(buf, "\n", + virMacAddrFormat(&def->mac, macstr)); + } =20 if (publicActual) { /* when there is a virDomainActualNetDef, and we haven't been @@ -24403,6 +24430,7 @@ virDomainNetDefFormat(virBufferPtr buf, break; =20 case VIR_DOMAIN_NET_TYPE_USER: + case VIR_DOMAIN_NET_TYPE_VSOCK: case VIR_DOMAIN_NET_TYPE_LAST: break; } @@ -24461,6 +24489,8 @@ virDomainNetDefFormat(virBufferPtr buf, /* Skip auto-generated target names for inactive config. */ virBufferEscapeString(buf, "\n", def->ifname); } + if (def->type =3D=3D VIR_DOMAIN_NET_TYPE_VSOCK) + virBufferAsprintf(buf, "\n", def->data.vsock.g= uest_cid); =20 if (def->ifname_guest || def->ifname_guest_actual) { virBufferAddLit(buf, "def->nets[i]->ty= pe)); diff --git a/src/lxc/lxc_driver.c b/src/lxc/lxc_driver.c index a2e29a2121..fe50750806 100644 --- a/src/lxc/lxc_driver.c +++ b/src/lxc/lxc_driver.c @@ -3949,6 +3949,7 @@ lxcDomainAttachDeviceNetLive(virConnectPtr conn, case VIR_DOMAIN_NET_TYPE_INTERNAL: case VIR_DOMAIN_NET_TYPE_HOSTDEV: case VIR_DOMAIN_NET_TYPE_UDP: + case VIR_DOMAIN_NET_TYPE_VSOCK: virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", _("Network device type is not supported")); goto cleanup; @@ -4003,6 +4004,7 @@ lxcDomainAttachDeviceNetLive(virConnectPtr conn, case VIR_DOMAIN_NET_TYPE_INTERNAL: case VIR_DOMAIN_NET_TYPE_HOSTDEV: case VIR_DOMAIN_NET_TYPE_UDP: + case VIR_DOMAIN_NET_TYPE_VSOCK: case VIR_DOMAIN_NET_TYPE_LAST: default: /* no-op */ @@ -4449,6 +4451,7 @@ lxcDomainDetachDeviceNetLive(virDomainObjPtr vm, case VIR_DOMAIN_NET_TYPE_INTERNAL: case VIR_DOMAIN_NET_TYPE_HOSTDEV: case VIR_DOMAIN_NET_TYPE_UDP: + case VIR_DOMAIN_NET_TYPE_VSOCK: virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", _("Only bridged veth devices can be detached")); goto cleanup; diff --git a/src/lxc/lxc_process.c b/src/lxc/lxc_process.c index cc6ed12526..1916ee7e9b 100644 --- a/src/lxc/lxc_process.c +++ b/src/lxc/lxc_process.c @@ -582,6 +582,7 @@ static int virLXCProcessSetupInterfaces(virConnectPtr c= onn, case VIR_DOMAIN_NET_TYPE_MCAST: case VIR_DOMAIN_NET_TYPE_UDP: case VIR_DOMAIN_NET_TYPE_INTERNAL: + case VIR_DOMAIN_NET_TYPE_VSOCK: case VIR_DOMAIN_NET_TYPE_LAST: case VIR_DOMAIN_NET_TYPE_HOSTDEV: virReportError(VIR_ERR_INTERNAL_ERROR, diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index 1f03cc70fe..a9c67bbb3b 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -3657,6 +3657,8 @@ qemuBuildHostNetStr(virDomainNetDefPtr net, =20 case VIR_DOMAIN_NET_TYPE_HOSTDEV: /* Should have been handled earlier via PCI/USB hotplug code. */ + case VIR_DOMAIN_NET_TYPE_VSOCK: + /* We only need to build the frontend */ case VIR_DOMAIN_NET_TYPE_LAST: break; } @@ -8265,6 +8267,7 @@ qemuBuildInterfaceCommandLine(virQEMUDriverPtr driver, case VIR_DOMAIN_NET_TYPE_MCAST: case VIR_DOMAIN_NET_TYPE_INTERNAL: case VIR_DOMAIN_NET_TYPE_UDP: + case VIR_DOMAIN_NET_TYPE_VSOCK: case VIR_DOMAIN_NET_TYPE_LAST: /* nada */ break; @@ -8301,6 +8304,7 @@ qemuBuildInterfaceCommandLine(virQEMUDriverPtr driver, case VIR_DOMAIN_NET_TYPE_UDP: case VIR_DOMAIN_NET_TYPE_INTERNAL: case VIR_DOMAIN_NET_TYPE_HOSTDEV: + case VIR_DOMAIN_NET_TYPE_VSOCK: case VIR_DOMAIN_NET_TYPE_LAST: /* These types don't use a network device on the host, but * instead use some other type of connection to the emulated diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index 650909b739..eb88de83db 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -3676,6 +3676,7 @@ qemuDomainNetSupportsCoalesce(virDomainNetType type) case VIR_DOMAIN_NET_TYPE_MCAST: case VIR_DOMAIN_NET_TYPE_INTERNAL: case VIR_DOMAIN_NET_TYPE_UDP: + case VIR_DOMAIN_NET_TYPE_VSOCK: case VIR_DOMAIN_NET_TYPE_LAST: break; } @@ -5570,6 +5571,7 @@ qemuDomainDeviceDefPostParse(virDomainDeviceDefPtr de= v, =20 if (dev->type =3D=3D VIR_DOMAIN_DEVICE_NET && dev->data.net->type !=3D VIR_DOMAIN_NET_TYPE_HOSTDEV && + dev->data.net->type !=3D VIR_DOMAIN_NET_TYPE_VSOCK && !dev->data.net->model) { if (VIR_STRDUP(dev->data.net->model, qemuDomainDefaultNetModel(def, qemuCaps)) < 0) @@ -9311,6 +9313,7 @@ qemuDomainNetSupportsMTU(virDomainNetType type) case VIR_DOMAIN_NET_TYPE_DIRECT: case VIR_DOMAIN_NET_TYPE_HOSTDEV: case VIR_DOMAIN_NET_TYPE_UDP: + case VIR_DOMAIN_NET_TYPE_VSOCK: case VIR_DOMAIN_NET_TYPE_LAST: break; } diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c index b35594be5f..3a07d5eae9 100644 --- a/src/qemu/qemu_hotplug.c +++ b/src/qemu/qemu_hotplug.c @@ -1052,6 +1052,7 @@ qemuDomainAttachNetDevice(virQEMUDriverPtr driver, case VIR_DOMAIN_NET_TYPE_MCAST: case VIR_DOMAIN_NET_TYPE_INTERNAL: case VIR_DOMAIN_NET_TYPE_UDP: + case VIR_DOMAIN_NET_TYPE_VSOCK: case VIR_DOMAIN_NET_TYPE_LAST: virReportError(VIR_ERR_OPERATION_UNSUPPORTED, _("hotplug of interface type of %s is not implement= ed yet"), @@ -3089,6 +3090,7 @@ qemuDomainChangeNetFilter(virDomainObjPtr vm, case VIR_DOMAIN_NET_TYPE_DIRECT: case VIR_DOMAIN_NET_TYPE_HOSTDEV: case VIR_DOMAIN_NET_TYPE_UDP: + case VIR_DOMAIN_NET_TYPE_VSOCK: virReportError(VIR_ERR_CONFIG_UNSUPPORTED, _("filters not supported on interfaces of type %s"), virDomainNetTypeToString(virDomainNetGetActualType(= newdev))); @@ -3389,6 +3391,7 @@ qemuDomainChangeNet(virQEMUDriverPtr driver, /* all handled in common code directly below this switch */ break; =20 + case VIR_DOMAIN_NET_TYPE_VSOCK: case VIR_DOMAIN_NET_TYPE_VHOSTUSER: case VIR_DOMAIN_NET_TYPE_HOSTDEV: virReportError(VIR_ERR_OPERATION_UNSUPPORTED, diff --git a/src/qemu/qemu_interface.c b/src/qemu/qemu_interface.c index 5d54a85c53..60bb6b22ef 100644 --- a/src/qemu/qemu_interface.c +++ b/src/qemu/qemu_interface.c @@ -122,6 +122,7 @@ qemuInterfaceStartDevice(virDomainNetDefPtr net) case VIR_DOMAIN_NET_TYPE_UDP: case VIR_DOMAIN_NET_TYPE_INTERNAL: case VIR_DOMAIN_NET_TYPE_HOSTDEV: + case VIR_DOMAIN_NET_TYPE_VSOCK: case VIR_DOMAIN_NET_TYPE_LAST: /* these types all require no action */ break; @@ -210,6 +211,7 @@ qemuInterfaceStopDevice(virDomainNetDefPtr net) case VIR_DOMAIN_NET_TYPE_UDP: case VIR_DOMAIN_NET_TYPE_INTERNAL: case VIR_DOMAIN_NET_TYPE_HOSTDEV: + case VIR_DOMAIN_NET_TYPE_VSOCK: case VIR_DOMAIN_NET_TYPE_LAST: /* these types all require no action */ break; diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c index 174d932ae7..d73f3764f5 100644 --- a/src/qemu/qemu_process.c +++ b/src/qemu/qemu_process.c @@ -6895,6 +6895,7 @@ void qemuProcessStop(virQEMUDriverPtr driver, case VIR_DOMAIN_NET_TYPE_INTERNAL: case VIR_DOMAIN_NET_TYPE_HOSTDEV: case VIR_DOMAIN_NET_TYPE_UDP: + case VIR_DOMAIN_NET_TYPE_VSOCK: case VIR_DOMAIN_NET_TYPE_LAST: /* No special cleanup procedure for these types. */ break; diff --git a/src/uml/uml_conf.c b/src/uml/uml_conf.c index 9c548f0e80..3cb360d415 100644 --- a/src/uml/uml_conf.c +++ b/src/uml/uml_conf.c @@ -258,6 +258,11 @@ umlBuildCommandLineNet(virConnectPtr conn, _("hostdev networking type not supported")); goto error; =20 + case VIR_DOMAIN_NET_TYPE_VSOCK: + virReportError(VIR_ERR_INTERNAL_ERROR, "%s", + _("vsock networking type not supported")); + goto error; + case VIR_DOMAIN_NET_TYPE_LAST: break; } diff --git a/src/vmx/vmx.c b/src/vmx/vmx.c index e6026edc56..3f44eedb29 100644 --- a/src/vmx/vmx.c +++ b/src/vmx/vmx.c @@ -3849,6 +3849,7 @@ virVMXFormatEthernet(virDomainNetDefPtr def, int cont= roller, case VIR_DOMAIN_NET_TYPE_DIRECT: case VIR_DOMAIN_NET_TYPE_HOSTDEV: case VIR_DOMAIN_NET_TYPE_UDP: + case VIR_DOMAIN_NET_TYPE_VSOCK: virReportError(VIR_ERR_CONFIG_UNSUPPORTED, _("Unsupported net type= '%s'"), virDomainNetTypeToString(def->type)); return -1; diff --git a/src/xenconfig/xen_common.c b/src/xenconfig/xen_common.c index 80bc267bbe..cddc5f17c7 100644 --- a/src/xenconfig/xen_common.c +++ b/src/xenconfig/xen_common.c @@ -1267,6 +1267,7 @@ xenFormatNet(virConnectPtr conn, case VIR_DOMAIN_NET_TYPE_HOSTDEV: case VIR_DOMAIN_NET_TYPE_UDP: case VIR_DOMAIN_NET_TYPE_USER: + case VIR_DOMAIN_NET_TYPE_VSOCK: virReportError(VIR_ERR_CONFIG_UNSUPPORTED, _("Unsupported net type= '%s'"), virDomainNetTypeToString(net->type)); goto cleanup; diff --git a/src/xenconfig/xen_sxpr.c b/src/xenconfig/xen_sxpr.c index 54dd7fc3ed..6992b59654 100644 --- a/src/xenconfig/xen_sxpr.c +++ b/src/xenconfig/xen_sxpr.c @@ -1931,6 +1931,7 @@ xenFormatSxprNet(virConnectPtr conn, case VIR_DOMAIN_NET_TYPE_INTERNAL: case VIR_DOMAIN_NET_TYPE_DIRECT: case VIR_DOMAIN_NET_TYPE_HOSTDEV: + case VIR_DOMAIN_NET_TYPE_VSOCK: case VIR_DOMAIN_NET_TYPE_LAST: break; } diff --git a/tests/qemuxml2argvdata/vhost-vsock.xml b/tests/qemuxml2argvdat= a/vhost-vsock.xml new file mode 100644 index 0000000000..a9253227c0 --- /dev/null +++ b/tests/qemuxml2argvdata/vhost-vsock.xml @@ -0,0 +1,36 @@ + + test + bba65c0e-c049-934f-b6aa-4e2c0582acdf + 1048576 + 1048576 + 1 + + hvm + + + + + destroy + restart + restart + + /usr/bin/qemu-system-x86_64 + +
+ + +
+ + +
+ + + + +
+ + + + + + diff --git a/tests/qemuxml2xmloutdata/vhost-vsock.xml b/tests/qemuxml2xmlou= tdata/vhost-vsock.xml new file mode 120000 index 0000000000..bb24241fb2 --- /dev/null +++ b/tests/qemuxml2xmloutdata/vhost-vsock.xml @@ -0,0 +1 @@ +../qemuxml2argvdata/vhost-vsock.xml \ No newline at end of file diff --git a/tests/qemuxml2xmltest.c b/tests/qemuxml2xmltest.c index 7cedc2b999..a2f0cf01bc 100644 --- a/tests/qemuxml2xmltest.c +++ b/tests/qemuxml2xmltest.c @@ -1209,6 +1209,8 @@ mymain(void) DO_TEST_STATUS("migration-in-params"); DO_TEST_STATUS("migration-out-params"); =20 + DO_TEST("vhost-vsock", NONE); + if (getenv("LIBVIRT_SKIP_CLEANUP") =3D=3D NULL) virFileDeleteTree(fakerootdir); =20 diff --git a/tools/virsh-domain.c b/tools/virsh-domain.c index cfbbf5a7bc..365618546e 100644 --- a/tools/virsh-domain.c +++ b/tools/virsh-domain.c @@ -935,6 +935,7 @@ cmdAttachInterface(vshControl *ctl, const vshCmd *cmd) case VIR_DOMAIN_NET_TYPE_MCAST: case VIR_DOMAIN_NET_TYPE_UDP: case VIR_DOMAIN_NET_TYPE_INTERNAL: + case VIR_DOMAIN_NET_TYPE_VSOCK: case VIR_DOMAIN_NET_TYPE_LAST: vshError(ctl, _("No support for %s in command 'attach-interface'"), type); --=20 2.16.1 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list