[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

[libvirt] [PATCH v3] domain.rng vs. formatdomain.html#elementsUSB

The Relax-NG schema for domains regarding <hostdev> doesn't match what's
implemented in src/conf/domain_conf.c#virDomainHostdevDefFormat(): The
implementation only requires @type, but the schema currently either
required none or all three attributes (@mode, @type, and @managed) to be
defined together, because they are declared in the same
<optional)-section. (@managed is currently even undocumented on

Thus the following minimal <hostdev>-example fails to validate:
<domain type='test'>
                <type arch='x86_64' machine='xenpv'>linux</type>
                <hostdev type='pci'>
                                <address bus='0x06' slot='0x00' function='0x0'/>

The schema is changed to match the current implementation:
1. @mode is optional (which defaults to 'subsystem')
2. @type is required
3. @managed is optional (which defaults to 'no')

The documnetation is updated to mention @managed.

Signed-off-by: Philipp Hahn <hahn univention de>
 docs/formatdomain.html.in |    7 ++++---
 docs/schemas/domain.rng   |   14 ++++++++------
 2 files changed, 12 insertions(+), 9 deletions(-)

diff --git a/docs/formatdomain.html.in b/docs/formatdomain.html.in
index 84b1cab..0ec2045 100644
--- a/docs/formatdomain.html.in
+++ b/docs/formatdomain.html.in
@@ -953,7 +953,7 @@
-    &lt;hostdev mode='subsystem' type='pci'&gt;
+    &lt;hostdev mode='subsystem' type='pci' managed='yes'&gt;
         &lt;address bus='0x06' slot='0x02' function='0x0'/&gt;
@@ -967,8 +967,9 @@
       <dd>The <code>hostdev</code> element is the main container for describing
       host devices. For usb device passthrough <code>mode</code> is always
       "subsystem" and <code>type</code> is "usb" for an USB device and "pci"
-      for a PCI device..
-      <dt><code>source</code></dt>
+	  for a PCI device. When <code>managed</code> is "yes" for a PIC device, it
+	  is detached from the host before being passed on to the guest.</dd>
+	  <dt><code>source</code></dt>
       <dd>The source element describes the device as seen from the host.
       The USB device can either be addressed by vendor / product id using the
       <code>vendor</code> and <code>product</code> elements or by the device's
diff --git a/docs/schemas/domain.rng b/docs/schemas/domain.rng
index 8b215f3..21c4380 100644
--- a/docs/schemas/domain.rng
+++ b/docs/schemas/domain.rng
@@ -1731,12 +1731,14 @@
-        <attribute name="type">
-          <choice>
-            <value>usb</value>
-            <value>pci</value>
-          </choice>
-        </attribute>
+      </optional>
+      <attribute name="type">
+        <choice>
+          <value>usb</value>
+          <value>pci</value>
+        </choice>
+      </attribute>
+      <optional>
         <attribute name="managed">

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]