[libvirt] [RFC v1 1/6] conf: add ephemeral element for hostdev supporting migration

Chen Fan chen.fan.fnst at cn.fujitsu.com
Wed May 13 03:36:27 UTC 2015


the ephemeral flag helps support migration with PCI-passthrough.
An ephemeral hostdev is automatically unplugged before migration
and replugged (if one is available on the destination) after
migration.

Signed-off-by: Chen Fan <chen.fan.fnst at cn.fujitsu.com>
---
 docs/schemas/domaincommon.rng                      | 10 ++++++++++
 docs/schemas/network.rng                           |  5 +++++
 src/conf/domain_conf.c                             | 14 +++++++++++++-
 src/conf/domain_conf.h                             |  1 +
 src/conf/network_conf.c                            | 13 +++++++++++++
 src/conf/network_conf.h                            |  1 +
 src/network/bridge_driver.c                        |  1 +
 src/qemu/qemu_command.c                            |  1 +
 tests/networkxml2xmlin/hostdev-pf.xml              |  2 +-
 tests/networkxml2xmlin/hostdev.xml                 |  2 +-
 tests/networkxml2xmlout/hostdev-pf.xml             |  2 +-
 tests/networkxml2xmlout/hostdev.xml                |  2 +-
 .../qemuxml2argv-controller-order.xml              |  2 +-
 .../qemuxml2argv-hostdev-pci-address-device.xml    |  2 +-
 .../qemuxml2argv-hostdev-pci-address.xml           |  2 +-
 .../qemuxml2argv-hostdev-scsi-autogen-address.xml  | 22 +++++++++++-----------
 .../qemuxml2argv-hostdev-scsi-lsi-iscsi-auth.xml   |  4 ++--
 .../qemuxml2argv-hostdev-scsi-lsi-iscsi.xml        |  4 ++--
 .../qemuxml2argv-hostdev-scsi-lsi.xml              |  2 +-
 .../qemuxml2argv-hostdev-scsi-rawio.xml            |  2 +-
 .../qemuxml2argv-hostdev-scsi-readonly.xml         |  2 +-
 .../qemuxml2argv-hostdev-scsi-sgio.xml             |  2 +-
 .../qemuxml2argv-hostdev-scsi-shareable.xml        |  2 +-
 ...qemuxml2argv-hostdev-scsi-virtio-iscsi-auth.xml |  4 ++--
 .../qemuxml2argv-hostdev-scsi-virtio-iscsi.xml     |  4 ++--
 .../qemuxml2argv-hostdev-scsi-virtio-scsi.xml      |  2 +-
 ...emuxml2argv-hostdev-usb-address-device-boot.xml |  2 +-
 .../qemuxml2argv-hostdev-usb-address-device.xml    |  2 +-
 .../qemuxml2argv-hostdev-usb-address.xml           |  2 +-
 .../qemuxml2argv-hostdev-vfio-multidomain.xml      |  2 +-
 .../qemuxml2argvdata/qemuxml2argv-hostdev-vfio.xml |  2 +-
 .../qemuxml2argv-net-hostdev-multidomain.xml       |  2 +-
 .../qemuxml2argv-net-hostdev-vfio-multidomain.xml  |  2 +-
 .../qemuxml2argv-net-hostdev-vfio.xml              |  2 +-
 .../qemuxml2argvdata/qemuxml2argv-net-hostdev.xml  |  2 +-
 tests/qemuxml2argvdata/qemuxml2argv-pci-rom.xml    |  4 ++--
 ...qemuxml2xmlout-hostdev-scsi-autogen-address.xml | 22 +++++++++++-----------
 37 files changed, 99 insertions(+), 55 deletions(-)

diff --git a/docs/schemas/domaincommon.rng b/docs/schemas/domaincommon.rng
index b1d883f..6f4551c 100644
--- a/docs/schemas/domaincommon.rng
+++ b/docs/schemas/domaincommon.rng
@@ -2261,6 +2261,11 @@
               <ref name="virYesNo"/>
             </attribute>
           </optional>
+          <optional>
+            <attribute name="ephemeral">
+              <ref name="virYesNo"/>
+            </attribute>
+          </optional>
           <interleave>
             <element name="source">
               <optional>
@@ -3717,6 +3722,11 @@
         <ref name="virYesNo"/>
       </attribute>
     </optional>
+    <optional>
+      <attribute name="ephemeral">
+        <ref name="virYesNo"/>
+      </attribute>
+    </optional>
     <choice>
       <ref name="hostdevsubsyspci"/>
       <ref name="hostdevsubsysusb"/>
diff --git a/docs/schemas/network.rng b/docs/schemas/network.rng
index 4edb6eb..d63b066 100644
--- a/docs/schemas/network.rng
+++ b/docs/schemas/network.rng
@@ -115,6 +115,11 @@
                 <ref name="virYesNo"/>
               </attribute>
             </optional>
+            <optional>
+              <attribute name="ephemeral">
+                <ref name="virYesNo"/>
+              </attribute>
+            </optional>
             <interleave>
               <choice>
                 <group>
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index 3d05844..a1a0602 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -4823,6 +4823,7 @@ virDomainHostdevDefParseXMLSubsys(xmlNodePtr node,
 {
     xmlNodePtr sourcenode;
     char *managed = NULL;
+    char *ephemeral = NULL;
     char *sgio = NULL;
     char *rawio = NULL;
     char *backendStr = NULL;
@@ -4841,6 +4842,11 @@ virDomainHostdevDefParseXMLSubsys(xmlNodePtr node,
             def->managed = true;
     }
 
+    if ((ephemeral = virXMLPropString(node, "ephemeral")) != NULL) {
+        if (STREQ(ephemeral, "yes"))
+            def->ephemeral = true;
+    }
+
     sgio = virXMLPropString(node, "sgio");
     rawio = virXMLPropString(node, "rawio");
 
@@ -18064,8 +18070,10 @@ virDomainActualNetDefFormat(virBufferPtr buf,
     virBufferAsprintf(buf, "<actual type='%s'", typeStr);
     if (type == VIR_DOMAIN_NET_TYPE_HOSTDEV) {
         virDomainHostdevDefPtr hostdef = virDomainNetGetActualHostdev(def);
-        if  (hostdef && hostdef->managed)
+        if (hostdef && hostdef->managed)
             virBufferAddLit(buf, " managed='yes'");
+        if (hostdef && hostdef->ephemeral)
+            virBufferAddLit(buf, " ephemeral='yes'");
     }
     if (def->trustGuestRxFilters)
         virBufferAsprintf(buf, " trustGuestRxFilters='%s'",
@@ -18236,6 +18244,8 @@ virDomainNetDefFormat(virBufferPtr buf,
     virBufferAsprintf(buf, "<interface type='%s'", typeStr);
     if (hostdef && hostdef->managed)
         virBufferAddLit(buf, " managed='yes'");
+    if (hostdef && hostdef->ephemeral)
+        virBufferAddLit(buf, " ephemeral='yes'");
     if (def->trustGuestRxFilters)
         virBufferAsprintf(buf, " trustGuestRxFilters='%s'",
                           virTristateBoolTypeToString(def->trustGuestRxFilters));
@@ -19562,6 +19572,8 @@ virDomainHostdevDefFormat(virBufferPtr buf,
     if (def->mode == VIR_DOMAIN_HOSTDEV_MODE_SUBSYS) {
         virBufferAsprintf(buf, " managed='%s'",
                           def->managed ? "yes" : "no");
+        virBufferAsprintf(buf, " ephemeral='%s'",
+                          def->ephemeral ? "yes" : "no");
 
         if (def->source.subsys.type == VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_SCSI &&
             scsisrc->sgio)
diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h
index f36315b..0d64add 100644
--- a/src/conf/domain_conf.h
+++ b/src/conf/domain_conf.h
@@ -519,6 +519,7 @@ struct _virDomainHostdevDef {
     bool missing;
     bool readonly;
     bool shareable;
+    bool ephemeral;
     union {
         virDomainHostdevSubsys subsys;
         virDomainHostdevCaps caps;
diff --git a/src/conf/network_conf.c b/src/conf/network_conf.c
index d7c5dec..7107bb5 100644
--- a/src/conf/network_conf.c
+++ b/src/conf/network_conf.c
@@ -1710,6 +1710,7 @@ virNetworkForwardDefParseXML(const char *networkName,
     int nForwardIfs, nForwardAddrs, nForwardPfs, nForwardNats;
     char *forwardDev = NULL;
     char *forwardManaged = NULL;
+    char *forwardEphemeral = NULL;
     char *forwardDriverName = NULL;
     char *type = NULL;
     xmlNodePtr save = ctxt->node;
@@ -1733,6 +1734,12 @@ virNetworkForwardDefParseXML(const char *networkName,
         def->managed = true;
     }
 
+    forwardEphemeral = virXPathString("string(./@ephemeral)", ctxt);
+    if (forwardEphemeral != NULL &&
+        STRCASEEQ(forwardEphemeral, "yes")) {
+        def->ephemeral = true;
+    }
+
     forwardDriverName = virXPathString("string(./driver/@name)", ctxt);
     if (forwardDriverName) {
         int driverName
@@ -2631,6 +2638,12 @@ virNetworkDefFormatBuf(virBufferPtr buf,
             else
                 virBufferAddLit(buf, " managed='no'");
         }
+        if (def->forward.type == VIR_NETWORK_FORWARD_HOSTDEV) {
+            if (def->forward.ephemeral)
+                virBufferAddLit(buf, " ephemeral='yes'");
+            else
+                virBufferAddLit(buf, " ephemeral='no'");
+        }
         shortforward = !(def->forward.nifs || def->forward.npfs
                          || VIR_SOCKET_ADDR_VALID(&def->forward.addr.start)
                          || VIR_SOCKET_ADDR_VALID(&def->forward.addr.end)
diff --git a/src/conf/network_conf.h b/src/conf/network_conf.h
index 3e926f7..29aa4f6 100644
--- a/src/conf/network_conf.h
+++ b/src/conf/network_conf.h
@@ -188,6 +188,7 @@ typedef virNetworkForwardDef *virNetworkForwardDefPtr;
 struct _virNetworkForwardDef {
     int type;     /* One of virNetworkForwardType constants */
     bool managed;  /* managed attribute for hostdev mode */
+    bool ephemeral; /* ephemeral attribute for hostdev mode */
     int driverName; /* enum virNetworkForwardDriverNameType */
 
     /* If there are multiple forward devices (i.e. a pool of
diff --git a/src/network/bridge_driver.c b/src/network/bridge_driver.c
index 13e1717..eb4838f 100644
--- a/src/network/bridge_driver.c
+++ b/src/network/bridge_driver.c
@@ -3903,6 +3903,7 @@ networkAllocateActualDevice(virDomainDefPtr dom,
         iface->data.network.actual->data.hostdev.def.info = &iface->info;
         iface->data.network.actual->data.hostdev.def.mode = VIR_DOMAIN_HOSTDEV_MODE_SUBSYS;
         iface->data.network.actual->data.hostdev.def.managed = netdef->forward.managed ? 1 : 0;
+        iface->data.network.actual->data.hostdev.def.ephemeral = netdef->forward.ephemeral ? 1 : 0;
         iface->data.network.actual->data.hostdev.def.source.subsys.type = dev->type;
         iface->data.network.actual->data.hostdev.def.source.subsys.u.pci.addr = dev->device.pci;
 
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index 5303de5..fc81214 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -11493,6 +11493,7 @@ qemuParseCommandLinePCI(const char *val)
 
     def->mode = VIR_DOMAIN_HOSTDEV_MODE_SUBSYS;
     def->managed = true;
+    def->ephemeral = true;
     def->source.subsys.type = VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_PCI;
     def->source.subsys.u.pci.addr.bus = bus;
     def->source.subsys.u.pci.addr.slot = slot;
diff --git a/tests/networkxml2xmlin/hostdev-pf.xml b/tests/networkxml2xmlin/hostdev-pf.xml
index 5b8f598..cfb0f7c 100644
--- a/tests/networkxml2xmlin/hostdev-pf.xml
+++ b/tests/networkxml2xmlin/hostdev-pf.xml
@@ -1,7 +1,7 @@
 <network>
   <name>hostdev</name>
   <uuid>81ff0d90-c91e-6742-64da-4a736edb9a9b</uuid>
-  <forward mode='hostdev' managed='yes'>
+  <forward mode='hostdev' managed='yes' ephemeral='yes'>
     <driver name='vfio'/>
     <pf dev='eth2'/>
   </forward>
diff --git a/tests/networkxml2xmlin/hostdev.xml b/tests/networkxml2xmlin/hostdev.xml
index 03f1411..406c2df 100644
--- a/tests/networkxml2xmlin/hostdev.xml
+++ b/tests/networkxml2xmlin/hostdev.xml
@@ -1,7 +1,7 @@
 <network>
   <name>hostdev</name>
   <uuid>81ff0d90-c91e-6742-64da-4a736edb9a9b</uuid>
-  <forward mode='hostdev' managed='yes'>
+  <forward mode='hostdev' managed='yes' ephemeral='yes'>
     <address type='pci' domain='0x0000' bus='0x03' slot='0x00' function='0x1'/>
     <address type='pci' domain='0x0000' bus='0x03' slot='0x00' function='0x2'/>
     <address type='pci' domain='0x0000' bus='0x03' slot='0x00' function='0x3'/>
diff --git a/tests/networkxml2xmlout/hostdev-pf.xml b/tests/networkxml2xmlout/hostdev-pf.xml
index 5b8f598..cfb0f7c 100644
--- a/tests/networkxml2xmlout/hostdev-pf.xml
+++ b/tests/networkxml2xmlout/hostdev-pf.xml
@@ -1,7 +1,7 @@
 <network>
   <name>hostdev</name>
   <uuid>81ff0d90-c91e-6742-64da-4a736edb9a9b</uuid>
-  <forward mode='hostdev' managed='yes'>
+  <forward mode='hostdev' managed='yes' ephemeral='yes'>
     <driver name='vfio'/>
     <pf dev='eth2'/>
   </forward>
diff --git a/tests/networkxml2xmlout/hostdev.xml b/tests/networkxml2xmlout/hostdev.xml
index 03f1411..406c2df 100644
--- a/tests/networkxml2xmlout/hostdev.xml
+++ b/tests/networkxml2xmlout/hostdev.xml
@@ -1,7 +1,7 @@
 <network>
   <name>hostdev</name>
   <uuid>81ff0d90-c91e-6742-64da-4a736edb9a9b</uuid>
-  <forward mode='hostdev' managed='yes'>
+  <forward mode='hostdev' managed='yes' ephemeral='yes'>
     <address type='pci' domain='0x0000' bus='0x03' slot='0x00' function='0x1'/>
     <address type='pci' domain='0x0000' bus='0x03' slot='0x00' function='0x2'/>
     <address type='pci' domain='0x0000' bus='0x03' slot='0x00' function='0x3'/>
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-controller-order.xml b/tests/qemuxml2argvdata/qemuxml2argv-controller-order.xml
index 07db77e..b492d9e 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-controller-order.xml
+++ b/tests/qemuxml2argvdata/qemuxml2argv-controller-order.xml
@@ -76,7 +76,7 @@
       <model type='cirrus' vram='16384' heads='1'/>
       <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
     </video>
-    <hostdev mode='subsystem' type='usb' managed='yes'>
+    <hostdev mode='subsystem' type='usb' managed='yes' ephemeral='no'>
       <source>
         <address bus='14' device='6'/>
       </source>
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-hostdev-pci-address-device.xml b/tests/qemuxml2argvdata/qemuxml2argv-hostdev-pci-address-device.xml
index b29ef58..98b2ced 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-hostdev-pci-address-device.xml
+++ b/tests/qemuxml2argvdata/qemuxml2argv-hostdev-pci-address-device.xml
@@ -18,7 +18,7 @@
       <source dev='/dev/HostVG/QEMUGuest2'/>
       <target dev='hda' bus='ide'/>
     </disk>
-    <hostdev mode='subsystem' type='pci' managed='yes'>
+    <hostdev mode='subsystem' type='pci' managed='yes' ephemeral='yes'>
       <source>
         <address domain='0x0000' bus='0x06' slot='0x12' function='0x5'/>
       </source>
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-hostdev-pci-address.xml b/tests/qemuxml2argvdata/qemuxml2argv-hostdev-pci-address.xml
index b9b5c14..2b9d722 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-hostdev-pci-address.xml
+++ b/tests/qemuxml2argvdata/qemuxml2argv-hostdev-pci-address.xml
@@ -23,7 +23,7 @@
     <controller type='usb' index='0'/>
     <controller type='ide' index='0'/>
     <controller type='pci' index='0' model='pci-root'/>
-    <hostdev mode='subsystem' type='pci' managed='yes'>
+    <hostdev mode='subsystem' type='pci' managed='yes' ephemeral='yes'>
       <source>
         <address domain='0x0000' bus='0x06' slot='0x12' function='0x5'/>
       </source>
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-hostdev-scsi-autogen-address.xml b/tests/qemuxml2argvdata/qemuxml2argv-hostdev-scsi-autogen-address.xml
index 21f112b..cd2c2ca 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-hostdev-scsi-autogen-address.xml
+++ b/tests/qemuxml2argvdata/qemuxml2argv-hostdev-scsi-autogen-address.xml
@@ -23,68 +23,68 @@
     <controller type='usb' index='0'/>
     <controller type='ide' index='0'/>
     <controller type='pci' index='0' model='pci-root'/>
-    <hostdev mode='subsystem' type='scsi' managed='yes'>
+    <hostdev mode='subsystem' type='scsi' managed='yes' ephemeral='no'>
       <source>
         <adapter name='scsi_host0'/>
         <address bus='0' target='0' unit='0'/>
       </source>
     </hostdev>
-    <hostdev mode='subsystem' type='scsi' managed='yes'>
+    <hostdev mode='subsystem' type='scsi' managed='yes' ephemeral='no'>
       <source>
         <adapter name='scsi_host1'/>
         <address bus='0' target='0' unit='1'/>
       </source>
     </hostdev>
-    <hostdev mode='subsystem' type='scsi' managed='yes'>
+    <hostdev mode='subsystem' type='scsi' managed='yes' ephemeral='no'>
       <source>
         <adapter name='scsi_host2'/>
         <address bus='0' target='0' unit='2'/>
       </source>
     </hostdev>
-    <hostdev mode='subsystem' type='scsi' managed='yes'>
+    <hostdev mode='subsystem' type='scsi' managed='yes' ephemeral='no'>
       <source>
         <adapter name='scsi_host3'/>
         <address bus='0' target='0' unit='3'/>
       </source>
     </hostdev>
-    <hostdev mode='subsystem' type='scsi' managed='yes'>
+    <hostdev mode='subsystem' type='scsi' managed='yes' ephemeral='no'>
       <source>
         <adapter name='scsi_host4'/>
         <address bus='0' target='0' unit='4'/>
       </source>
     </hostdev>
-    <hostdev mode='subsystem' type='scsi' managed='yes'>
+    <hostdev mode='subsystem' type='scsi' managed='yes' ephemeral='no'>
       <source>
         <adapter name='scsi_host5'/>
         <address bus='0' target='0' unit='5'/>
       </source>
     </hostdev>
-    <hostdev mode='subsystem' type='scsi' managed='yes'>
+    <hostdev mode='subsystem' type='scsi' managed='yes' ephemeral='no'>
       <source>
         <adapter name='scsi_host6'/>
         <address bus='0' target='0' unit='6'/>
       </source>
     </hostdev>
-    <hostdev mode='subsystem' type='scsi' managed='yes'>
+    <hostdev mode='subsystem' type='scsi' managed='yes' ephemeral='no'>
       <source>
         <adapter name='scsi_host7'/>
         <address bus='0' target='0' unit='7'/>
       </source>
     </hostdev>
-    <hostdev mode='subsystem' type='scsi' managed='yes'>
+    <hostdev mode='subsystem' type='scsi' managed='yes' ephemeral='no'>
       <source>
         <adapter name='scsi_host8'/>
         <address bus='0' target='0' unit='8'/>
       </source>
     </hostdev>
-    <hostdev mode='subsystem' type='scsi' managed='yes'>
+    <hostdev mode='subsystem' type='scsi' managed='yes' ephemeral='no'>
       <source>
         <adapter name='scsi_host9'/>
         <address bus='0' target='0' unit='9'/>
       </source>
       <address type='drive' controller='1' bus='0' target='0' unit='5'/>
     </hostdev>
-    <hostdev mode='subsystem' type='scsi' managed='yes'>
+    <hostdev mode='subsystem' type='scsi' managed='yes' ephemeral='no'>
       <source>
         <adapter name='scsi_host10'/>
         <address bus='0' target='0' unit='10'/>
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-hostdev-scsi-lsi-iscsi-auth.xml b/tests/qemuxml2argvdata/qemuxml2argv-hostdev-scsi-lsi-iscsi-auth.xml
index 3bfded4..0d9126e 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-hostdev-scsi-lsi-iscsi-auth.xml
+++ b/tests/qemuxml2argvdata/qemuxml2argv-hostdev-scsi-lsi-iscsi-auth.xml
@@ -23,7 +23,7 @@
     <controller type='usb' index='0'/>
     <controller type='ide' index='0'/>
     <controller type='pci' index='0' model='pci-root'/>
-    <hostdev mode='subsystem' type='scsi' managed='yes'>
+    <hostdev mode='subsystem' type='scsi' managed='yes' ephemeral='no'>
       <source protocol='iscsi' name='iqn.1992-01.com.example'>
         <host name='example.org' port='3260'/>
         <auth username='myname'>
@@ -32,7 +32,7 @@
       </source>
       <address type='drive' controller='0' bus='0' target='0' unit='4'/>
     </hostdev>
-    <hostdev mode='subsystem' type='scsi' managed='yes'>
+    <hostdev mode='subsystem' type='scsi' managed='yes' ephemeral='no'>
       <source protocol='iscsi' name='iqn.1992-01.com.example/1'>
         <host name='example.org' port='3260'/>
         <auth username='myname'>
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-hostdev-scsi-lsi-iscsi.xml b/tests/qemuxml2argvdata/qemuxml2argv-hostdev-scsi-lsi-iscsi.xml
index 8a05099..1de1796 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-hostdev-scsi-lsi-iscsi.xml
+++ b/tests/qemuxml2argvdata/qemuxml2argv-hostdev-scsi-lsi-iscsi.xml
@@ -23,13 +23,13 @@
     <controller type='usb' index='0'/>
     <controller type='ide' index='0'/>
     <controller type='pci' index='0' model='pci-root'/>
-    <hostdev mode='subsystem' type='scsi' managed='yes'>
+    <hostdev mode='subsystem' type='scsi' managed='yes' ephemeral='no'>
       <source protocol='iscsi' name='iqn.1992-01.com.example'>
         <host name='example.org' port='3260'/>
       </source>
       <address type='drive' controller='0' bus='0' target='0' unit='4'/>
     </hostdev>
-    <hostdev mode='subsystem' type='scsi' managed='yes'>
+    <hostdev mode='subsystem' type='scsi' managed='yes' ephemeral='no'>
       <source protocol='iscsi' name='iqn.1992-01.com.example/1'>
         <host name='example.org' port='3260'/>
       </source>
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-hostdev-scsi-lsi.xml b/tests/qemuxml2argvdata/qemuxml2argv-hostdev-scsi-lsi.xml
index 98c469c..d5b03f6 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-hostdev-scsi-lsi.xml
+++ b/tests/qemuxml2argvdata/qemuxml2argv-hostdev-scsi-lsi.xml
@@ -23,7 +23,7 @@
     <controller type='usb' index='0'/>
     <controller type='ide' index='0'/>
     <controller type='pci' index='0' model='pci-root'/>
-    <hostdev mode='subsystem' type='scsi' managed='yes'>
+    <hostdev mode='subsystem' type='scsi' managed='yes' ephemeral='no'>
       <source>
         <adapter name='scsi_host0'/>
         <address bus='0' target='0' unit='0'/>
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-hostdev-scsi-rawio.xml b/tests/qemuxml2argvdata/qemuxml2argv-hostdev-scsi-rawio.xml
index 69fdde3..40efa63 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-hostdev-scsi-rawio.xml
+++ b/tests/qemuxml2argvdata/qemuxml2argv-hostdev-scsi-rawio.xml
@@ -23,7 +23,7 @@
     <controller type='usb' index='0'/>
     <controller type='ide' index='0'/>
     <controller type='pci' index='0' model='pci-root'/>
-    <hostdev mode='subsystem' type='scsi' managed='yes' sgio='unfiltered' rawio='yes'>
+    <hostdev mode='subsystem' type='scsi' managed='yes' ephemeral='no' sgio='unfiltered' rawio='yes'>
       <source>
         <adapter name='scsi_host0'/>
         <address bus='0' target='0' unit='0'/>
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-hostdev-scsi-readonly.xml b/tests/qemuxml2argvdata/qemuxml2argv-hostdev-scsi-readonly.xml
index 359bb95..ab56fb9 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-hostdev-scsi-readonly.xml
+++ b/tests/qemuxml2argvdata/qemuxml2argv-hostdev-scsi-readonly.xml
@@ -23,7 +23,7 @@
     <controller type='usb' index='0'/>
     <controller type='ide' index='0'/>
     <controller type='pci' index='0' model='pci-root'/>
-    <hostdev mode='subsystem' type='scsi' managed='yes'>
+    <hostdev mode='subsystem' type='scsi' managed='yes' ephemeral='no'>
       <source>
         <adapter name='scsi_host0'/>
         <address bus='0' target='0' unit='0'/>
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-hostdev-scsi-sgio.xml b/tests/qemuxml2argvdata/qemuxml2argv-hostdev-scsi-sgio.xml
index 21404ee..cfacc6e 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-hostdev-scsi-sgio.xml
+++ b/tests/qemuxml2argvdata/qemuxml2argv-hostdev-scsi-sgio.xml
@@ -23,7 +23,7 @@
     <controller type='usb' index='0'/>
     <controller type='ide' index='0'/>
     <controller type='pci' index='0' model='pci-root'/>
-    <hostdev mode='subsystem' type='scsi' managed='yes' sgio='unfiltered'>
+    <hostdev mode='subsystem' type='scsi' managed='yes' ephemeral='no' sgio='unfiltered'>
       <source>
         <adapter name='scsi_host0'/>
         <address bus='0' target='0' unit='0'/>
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-hostdev-scsi-shareable.xml b/tests/qemuxml2argvdata/qemuxml2argv-hostdev-scsi-shareable.xml
index f9ce8af..bff49ba 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-hostdev-scsi-shareable.xml
+++ b/tests/qemuxml2argvdata/qemuxml2argv-hostdev-scsi-shareable.xml
@@ -23,7 +23,7 @@
     <controller type='usb' index='0'/>
     <controller type='ide' index='0'/>
     <controller type='pci' index='0' model='pci-root'/>
-    <hostdev mode='subsystem' type='scsi' managed='yes'>
+    <hostdev mode='subsystem' type='scsi' managed='yes' ephemeral='no'>
       <source>
         <adapter name='scsi_host0'/>
         <address bus='0' target='0' unit='0'/>
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-hostdev-scsi-virtio-iscsi-auth.xml b/tests/qemuxml2argvdata/qemuxml2argv-hostdev-scsi-virtio-iscsi-auth.xml
index d4dba4a..e5bc3d2 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-hostdev-scsi-virtio-iscsi-auth.xml
+++ b/tests/qemuxml2argvdata/qemuxml2argv-hostdev-scsi-virtio-iscsi-auth.xml
@@ -23,7 +23,7 @@
     <controller type='usb' index='0'/>
     <controller type='ide' index='0'/>
     <controller type='pci' index='0' model='pci-root'/>
-    <hostdev mode='subsystem' type='scsi' managed='yes'>
+    <hostdev mode='subsystem' type='scsi' managed='yes' ephemeral='no'>
       <source protocol='iscsi' name='iqn.1992-01.com.example'>
         <host name='example.org' port='3260'/>
         <auth username='myname'>
@@ -32,7 +32,7 @@
       </source>
       <address type='drive' controller='0' bus='0' target='2' unit='4'/>
     </hostdev>
-    <hostdev mode='subsystem' type='scsi' managed='yes'>
+    <hostdev mode='subsystem' type='scsi' managed='yes' ephemeral='no'>
       <source protocol='iscsi' name='iqn.1992-01.com.example/1'>
         <host name='example.org' port='3260'/>
         <auth username='myname'>
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-hostdev-scsi-virtio-iscsi.xml b/tests/qemuxml2argvdata/qemuxml2argv-hostdev-scsi-virtio-iscsi.xml
index 13c0930..c1c3581 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-hostdev-scsi-virtio-iscsi.xml
+++ b/tests/qemuxml2argvdata/qemuxml2argv-hostdev-scsi-virtio-iscsi.xml
@@ -23,13 +23,13 @@
     <controller type='usb' index='0'/>
     <controller type='ide' index='0'/>
     <controller type='pci' index='0' model='pci-root'/>
-    <hostdev mode='subsystem' type='scsi' managed='yes'>
+    <hostdev mode='subsystem' type='scsi' managed='yes' ephemeral='no'>
       <source protocol='iscsi' name='iqn.1992-01.com.example'>
         <host name='example.org' port='3260'/>
       </source>
       <address type='drive' controller='0' bus='0' target='2' unit='4'/>
     </hostdev>
-    <hostdev mode='subsystem' type='scsi' managed='yes'>
+    <hostdev mode='subsystem' type='scsi' managed='yes' ephemeral='no'>
       <source protocol='iscsi' name='iqn.1992-01.com.example/1'>
         <host name='example.org' port='3260'/>
       </source>
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-hostdev-scsi-virtio-scsi.xml b/tests/qemuxml2argvdata/qemuxml2argv-hostdev-scsi-virtio-scsi.xml
index 5a263e7..a8a1dbd 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-hostdev-scsi-virtio-scsi.xml
+++ b/tests/qemuxml2argvdata/qemuxml2argv-hostdev-scsi-virtio-scsi.xml
@@ -23,7 +23,7 @@
     <controller type='usb' index='0'/>
     <controller type='ide' index='0'/>
     <controller type='pci' index='0' model='pci-root'/>
-    <hostdev mode='subsystem' type='scsi' managed='yes'>
+    <hostdev mode='subsystem' type='scsi' managed='yes' ephemeral='no'>
       <source>
         <adapter name='scsi_host0'/>
         <address bus='0' target='0' unit='0'/>
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-hostdev-usb-address-device-boot.xml b/tests/qemuxml2argvdata/qemuxml2argv-hostdev-usb-address-device-boot.xml
index c11a963..ce393df 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-hostdev-usb-address-device-boot.xml
+++ b/tests/qemuxml2argvdata/qemuxml2argv-hostdev-usb-address-device-boot.xml
@@ -17,7 +17,7 @@
       <source dev='/dev/HostVG/QEMUGuest1'/>
       <target dev='hda' bus='ide'/>
     </disk>
-    <hostdev mode='subsystem' type='usb' managed='no'>
+    <hostdev mode='subsystem' type='usb' managed='no' ephemeral='no'>
       <source>
         <address bus='14' device='6'/>
       </source>
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-hostdev-usb-address-device.xml b/tests/qemuxml2argvdata/qemuxml2argv-hostdev-usb-address-device.xml
index c5992ef..f3319cc 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-hostdev-usb-address-device.xml
+++ b/tests/qemuxml2argvdata/qemuxml2argv-hostdev-usb-address-device.xml
@@ -18,7 +18,7 @@
       <source dev='/dev/HostVG/QEMUGuest1'/>
       <target dev='hda' bus='ide'/>
     </disk>
-    <hostdev mode='subsystem' type='usb' managed='no'>
+    <hostdev mode='subsystem' type='usb' managed='no' ephemeral='no'>
       <source>
         <address bus='14' device='6'/>
       </source>
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-hostdev-usb-address.xml b/tests/qemuxml2argvdata/qemuxml2argv-hostdev-usb-address.xml
index 5807eff..c48a977 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-hostdev-usb-address.xml
+++ b/tests/qemuxml2argvdata/qemuxml2argv-hostdev-usb-address.xml
@@ -23,7 +23,7 @@
     <controller type='usb' index='0'/>
     <controller type='ide' index='0'/>
     <controller type='pci' index='0' model='pci-root'/>
-    <hostdev mode='subsystem' type='usb' managed='no'>
+    <hostdev mode='subsystem' type='usb' managed='no' ephemeral='no'>
       <source>
         <address bus='14' device='6'/>
       </source>
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-hostdev-vfio-multidomain.xml b/tests/qemuxml2argvdata/qemuxml2argv-hostdev-vfio-multidomain.xml
index efbff38..1b29ded 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-hostdev-vfio-multidomain.xml
+++ b/tests/qemuxml2argvdata/qemuxml2argv-hostdev-vfio-multidomain.xml
@@ -22,7 +22,7 @@
     <controller type='usb' index='0'/>
     <controller type='ide' index='0'/>
     <controller type='pci' index='0' model='pci-root'/>
-    <hostdev mode='subsystem' type='pci' managed='yes'>
+    <hostdev mode='subsystem' type='pci' managed='yes' ephemeral='yes'>
       <driver name='vfio'/>
       <source>
         <address domain='0x55aa' bus='32' slot='15' function='3'/>
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-hostdev-vfio.xml b/tests/qemuxml2argvdata/qemuxml2argv-hostdev-vfio.xml
index 8daa53a..7e6748b 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-hostdev-vfio.xml
+++ b/tests/qemuxml2argvdata/qemuxml2argv-hostdev-vfio.xml
@@ -22,7 +22,7 @@
     <controller type='usb' index='0'/>
     <controller type='ide' index='0'/>
     <controller type='pci' index='0' model='pci-root'/>
-    <hostdev mode='subsystem' type='pci' managed='yes'>
+    <hostdev mode='subsystem' type='pci' managed='yes' ephemeral='yes'>
       <driver name='vfio'/>
       <source>
         <address domain='0x0000' bus='0x06' slot='0x12' function='0x5'/>
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-net-hostdev-multidomain.xml b/tests/qemuxml2argvdata/qemuxml2argv-net-hostdev-multidomain.xml
index 14b9515..fa07462 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-net-hostdev-multidomain.xml
+++ b/tests/qemuxml2argvdata/qemuxml2argv-net-hostdev-multidomain.xml
@@ -22,7 +22,7 @@
     <controller type='usb' index='0'/>
     <controller type='ide' index='0'/>
     <controller type='pci' index='0' model='pci-root'/>
-    <interface type='hostdev' managed='yes'>
+    <interface type='hostdev' managed='yes' ephemeral='yes'>
       <mac address='00:11:22:33:44:55'/>
       <source>
         <address type='pci' domain='0x2424' bus='0x21' slot='0x1c' function='0x6'/>
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-net-hostdev-vfio-multidomain.xml b/tests/qemuxml2argvdata/qemuxml2argv-net-hostdev-vfio-multidomain.xml
index 5e834ad..fe71993 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-net-hostdev-vfio-multidomain.xml
+++ b/tests/qemuxml2argvdata/qemuxml2argv-net-hostdev-vfio-multidomain.xml
@@ -22,7 +22,7 @@
     <controller type='usb' index='0'/>
     <controller type='ide' index='0'/>
     <controller type='pci' index='0' model='pci-root'/>
-    <interface type='hostdev' managed='yes'>
+    <interface type='hostdev' managed='yes' ephemeral='yes'>
       <mac address='00:11:22:33:44:55'/>
       <driver name='vfio'/>
       <source>
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-net-hostdev-vfio.xml b/tests/qemuxml2argvdata/qemuxml2argv-net-hostdev-vfio.xml
index b4f5e72..e0ff4a6 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-net-hostdev-vfio.xml
+++ b/tests/qemuxml2argvdata/qemuxml2argv-net-hostdev-vfio.xml
@@ -22,7 +22,7 @@
     <controller type='usb' index='0'/>
     <controller type='ide' index='0'/>
     <controller type='pci' index='0' model='pci-root'/>
-    <interface type='hostdev' managed='yes'>
+    <interface type='hostdev' managed='yes' ephemeral='yes'>
       <mac address='00:11:22:33:44:55'/>
       <driver name='vfio'/>
       <source>
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-net-hostdev.xml b/tests/qemuxml2argvdata/qemuxml2argv-net-hostdev.xml
index f88eefc..b851944 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-net-hostdev.xml
+++ b/tests/qemuxml2argvdata/qemuxml2argv-net-hostdev.xml
@@ -22,7 +22,7 @@
     <controller type='usb' index='0'/>
     <controller type='ide' index='0'/>
     <controller type='pci' index='0' model='pci-root'/>
-    <interface type='hostdev' managed='yes'>
+    <interface type='hostdev' managed='yes' ephemeral='yes'>
       <mac address='00:11:22:33:44:55'/>
       <source>
         <address type='pci' domain='0x0000' bus='0x03' slot='0x07' function='0x1'/>
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-pci-rom.xml b/tests/qemuxml2argvdata/qemuxml2argv-pci-rom.xml
index a5e59b2..f0de8fb 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-pci-rom.xml
+++ b/tests/qemuxml2argvdata/qemuxml2argv-pci-rom.xml
@@ -32,13 +32,13 @@
       <model type='virtio'/>
       <rom file='/etc/fake/bootrom.bin'/>
     </interface>
-    <hostdev mode='subsystem' type='pci' managed='yes'>
+    <hostdev mode='subsystem' type='pci' managed='yes' ephemeral='no'>
       <source>
         <address domain='0x0000' bus='0x06' slot='0x12' function='0x5'/>
       </source>
       <rom bar='off'/>
     </hostdev>
-    <hostdev mode='subsystem' type='pci' managed='yes'>
+    <hostdev mode='subsystem' type='pci' managed='yes' ephemeral='no'>
       <source>
         <address domain='0x0000' bus='0x06' slot='0x12' function='0x6'/>
       </source>
diff --git a/tests/qemuxml2xmloutdata/qemuxml2xmlout-hostdev-scsi-autogen-address.xml b/tests/qemuxml2xmloutdata/qemuxml2xmlout-hostdev-scsi-autogen-address.xml
index e416654..a11eb2e 100644
--- a/tests/qemuxml2xmloutdata/qemuxml2xmlout-hostdev-scsi-autogen-address.xml
+++ b/tests/qemuxml2xmloutdata/qemuxml2xmlout-hostdev-scsi-autogen-address.xml
@@ -24,77 +24,77 @@
     <controller type='ide' index='0'/>
     <controller type='pci' index='0' model='pci-root'/>
     <controller type='scsi' index='1'/>
-    <hostdev mode='subsystem' type='scsi' managed='yes'>
+    <hostdev mode='subsystem' type='scsi' managed='yes' ephemeral='no'>
       <source>
         <adapter name='scsi_host0'/>
         <address bus='0' target='0' unit='0'/>
       </source>
       <address type='drive' controller='0' bus='0' target='0' unit='0'/>
     </hostdev>
-    <hostdev mode='subsystem' type='scsi' managed='yes'>
+    <hostdev mode='subsystem' type='scsi' managed='yes' ephemeral='no'>
       <source>
         <adapter name='scsi_host1'/>
         <address bus='0' target='0' unit='1'/>
       </source>
       <address type='drive' controller='0' bus='0' target='0' unit='1'/>
     </hostdev>
-    <hostdev mode='subsystem' type='scsi' managed='yes'>
+    <hostdev mode='subsystem' type='scsi' managed='yes' ephemeral='no'>
       <source>
         <adapter name='scsi_host2'/>
         <address bus='0' target='0' unit='2'/>
       </source>
       <address type='drive' controller='0' bus='0' target='0' unit='2'/>
     </hostdev>
-    <hostdev mode='subsystem' type='scsi' managed='yes'>
+    <hostdev mode='subsystem' type='scsi' managed='yes' ephemeral='no'>
       <source>
         <adapter name='scsi_host3'/>
         <address bus='0' target='0' unit='3'/>
       </source>
       <address type='drive' controller='0' bus='0' target='0' unit='3'/>
     </hostdev>
-    <hostdev mode='subsystem' type='scsi' managed='yes'>
+    <hostdev mode='subsystem' type='scsi' managed='yes' ephemeral='no'>
       <source>
         <adapter name='scsi_host4'/>
         <address bus='0' target='0' unit='4'/>
       </source>
       <address type='drive' controller='0' bus='0' target='0' unit='4'/>
     </hostdev>
-    <hostdev mode='subsystem' type='scsi' managed='yes'>
+    <hostdev mode='subsystem' type='scsi' managed='yes' ephemeral='no'>
       <source>
         <adapter name='scsi_host5'/>
         <address bus='0' target='0' unit='5'/>
       </source>
       <address type='drive' controller='0' bus='0' target='0' unit='5'/>
     </hostdev>
-    <hostdev mode='subsystem' type='scsi' managed='yes'>
+    <hostdev mode='subsystem' type='scsi' managed='yes' ephemeral='no'>
       <source>
         <adapter name='scsi_host6'/>
         <address bus='0' target='0' unit='6'/>
       </source>
       <address type='drive' controller='0' bus='0' target='0' unit='6'/>
     </hostdev>
-    <hostdev mode='subsystem' type='scsi' managed='yes'>
+    <hostdev mode='subsystem' type='scsi' managed='yes' ephemeral='no'>
       <source>
         <adapter name='scsi_host7'/>
         <address bus='0' target='0' unit='7'/>
       </source>
       <address type='drive' controller='1' bus='0' target='0' unit='0'/>
     </hostdev>
-    <hostdev mode='subsystem' type='scsi' managed='yes'>
+    <hostdev mode='subsystem' type='scsi' managed='yes' ephemeral='no'>
       <source>
         <adapter name='scsi_host8'/>
         <address bus='0' target='0' unit='8'/>
       </source>
       <address type='drive' controller='1' bus='0' target='0' unit='1'/>
     </hostdev>
-    <hostdev mode='subsystem' type='scsi' managed='yes'>
+    <hostdev mode='subsystem' type='scsi' managed='yes' ephemeral='no'>
       <source>
         <adapter name='scsi_host9'/>
         <address bus='0' target='0' unit='9'/>
       </source>
       <address type='drive' controller='1' bus='0' target='0' unit='5'/>
     </hostdev>
-    <hostdev mode='subsystem' type='scsi' managed='yes'>
+    <hostdev mode='subsystem' type='scsi' managed='yes' ephemeral='no'>
       <source>
         <adapter name='scsi_host10'/>
         <address bus='0' target='0' unit='10'/>
-- 
1.9.3




More information about the libvir-list mailing list