]> xenbits.xensource.com Git - people/liuw/libxenctrl-split/libvirt.git/commitdiff
docs: document <controller> element
authorEric Blake <eblake@redhat.com>
Mon, 17 Jan 2011 21:33:00 +0000 (14:33 -0700)
committerEric Blake <eblake@redhat.com>
Thu, 20 Jan 2011 15:58:40 +0000 (08:58 -0700)
* docs/formatdomain.html.in: Talk about <controller> and <address>
throughout.

docs/formatdomain.html.in

index 55e2cbd0bd21846755e732381df0566790173fa7..c9d8b726e082ecb007dc43289ab9a78c327f1c27 100644 (file)
       &lt;/source&gt;
       &lt;target dev="hdb" bus="ide"/&gt;
       &lt;boot order='1'/&gt;
+      &lt;address type='drive' controller='0' bus='1' unit='0'/&gt;
     &lt;/disk&gt;
   &lt;/devices&gt;
   ...</pre>
           </tr>
         </table>
       </dd>
+      <dt><code>address</code></dt>
+      <dd>If present, the <code>address</code> element ties the disk
+        to a given slot of a controller (the
+        actual <code>&lt;controller&gt;</code> device can often be
+        inferred by libvirt, although it can
+        be <a href="#elementsControllers">explicitly specified</a>).
+        The <code>type</code> attribute is mandatory, and is typically
+        "pci" or "drive".  For a "pci" controller, additional
+        attributes for <code>bus</code>, <code>slot</code>,
+        and <code>function</code> must be present, as well as an
+        optional <code>domain</code>.  For a "drive" controller,
+        additional attributes <code>controller</code>, <code>bus</code>,
+        and <code>unit</code> are available, each defaulting to 0.
+      </dd>
     </dl>
 
+    <h4><a name="elementsControllers">Controllers</a></h4>
+
+    <p>
+      Many devices that have an <code>&lt;address&gt;</code>
+      sub-element are designed to work with a controller to manage
+      related devices.  Normally, libvirt can automatically infer such
+      controllers without requiring explicit XML markup, but sometimes
+      it is necessary to provide an explicit controller element.
+    </p>
+
+<pre>
+  ...
+  &lt;devices&gt;
+    &lt;controller type='ide' index='0'/&gt;
+    &lt;controller type='virtio-serial' index='0' ports='16' vectors='4'/&gt;
+    &lt;controller type='virtio-serial' index='1'&gt;
+      &lt;address type='pci' domain='0x0000' bus='0x00' slot='0x0a' function='0x0'/&gt;
+    &lt;/controller&gt;
+    ...
+  &lt;/devices&gt;
+  ...</pre>
+
+    <p>
+      Each controller has a mandatory attribute <code>type</code>,
+      which must be one of "ide", "fdc", "scsi", "sata", or
+      "virtio-serial", and a mandatory attribute <code>index</code>
+      which is the decimal integer describing in which order the bus
+      controller is encountered (for use in <code>controller</code>
+      attributes of <code>&lt;address&gt;</code> elements).  The
+      "virtio-serial" controller has two additional optional
+      attributes <code>ports</code> and <code>vectors</code>, which
+      control how many devices can be connected through the
+      controller.  A "scsi" controller has an optional
+      attribute <code>model</code>, which is one of "auto",
+      "buslogic", "lsilogic", "lsias1068", or "vmpvscsi".
+    </p>
+
+    <p>
+      For controllers that are themselves devices on a PCI or USB bus,
+      an optional sub-element <code>&lt;address&gt;</code> can specify
+      the exact relationship of the controller to its master bus, with
+      semantics like any other device's <code>address</code>
+      sub-element.
+    </p>
+
+
     <h4><a name="elementsUSB">USB and PCI devices</a></h4>
 
     <p>
   &lt;/devices&gt;
   ...</pre>
 
+    <p>
+      There are several possibilities for specifying a network
+      interface visible to the guest.  Each subsection below provides
+      more details about common setup options.  Additionally,
+      each <code>&lt;interface&gt;</code> element has an
+      optional <code>&lt;address&gt;</code> sub-element that can tie
+      the interface to a particular pci slot, with
+      attribute <code>type='pci'</code> and additional
+      attributes <code>domain</code>, <code>bus</code>, <code>slot</code>,
+      and <code>function</code> as appropriate.
+    </p>
+
     <h5><a name="elementsNICSVirtual">Virtual network</a></h5>
 
     <p>
@@ -1229,6 +1302,11 @@ qemu-kvm -net nic,model=? /dev/null
         It takes values "xen" (paravirtualized), "ps2" and "usb".</dd>
     </dl>
 
+    <p>
+      The <code>input</code> element has an optional
+      sub-element <code>&lt;address&gt;</code> which can tie the
+      device to a particular PCI slot.
+    </p>
 
     <h4><a name="elementsGraphics">Graphical framebuffers</a></h4>
 
@@ -1365,6 +1443,12 @@ qemu-kvm -net nic,model=? /dev/null
         <code>accel3d</code> and <code>accel2d</code> attributes in the
         <code>acceleration</code> element.
       </dd>
+
+      <dt><code>address</code></dt>
+      <dd>
+        The optional <code>address</code> sub-element can be used to
+        tie the video device to a particular PCI slot.
+      </dd>
     </dl>
 
     <h4><a name="elementsConsole">Consoles, serial, parallel &amp; channel devices</a></h4>
@@ -1409,6 +1493,14 @@ qemu-kvm -net nic,model=? /dev/null
       configured by the <code>source</code> element.
     </p>
 
+    <p>
+      Each character device element has an optional
+      sub-element <code>&lt;address&gt;</code> which can tie the
+      device to a
+      particular <a href="#elementsControllers">controller</a> or PCI
+      slot.
+    </p>
+
     <h5><a name="elementsCharGuestInterface">Guest interface</a></h5>
 
     <p>
@@ -1528,9 +1620,11 @@ qemu-kvm -net nic,model=? /dev/null
 
       <dt><code>virtio</code></dt>
       <dd>Paravirtualized virtio channel. Channel is exposed in the guest under
-        /dev/vport*, and if the optional element<code>name</code> is specified,
+        /dev/vport*, and if the optional element <code>name</code> is specified,
         /dev/virtio-ports/$name (for more info, please see
-        <a href="http://fedoraproject.org/wiki/Features/VirtioSerial">http://fedoraproject.org/wiki/Features/VirtioSerial</a>)
+        <a href="http://fedoraproject.org/wiki/Features/VirtioSerial">http://fedoraproject.org/wiki/Features/VirtioSerial</a>). The
+        optional element <code>address</code> can tie the channel to a
+        particular <code>type='virtio-serial'</code> controller.
         <span class="since">Since 0.7.7</span></dd>
     </dl>
 
@@ -1787,6 +1881,12 @@ qemu-kvm -net nic,model=? /dev/null
       </dd>
     </dl>
 
+    <p>
+      Each <code>sound</code> element has an optional
+      sub-element <code>&lt;address&gt;</code> which can tie the
+      device to a particular PCI slot.
+    </p>
+
     <h4><a name="elementsWatchdog">Watchdog device</a></h4>
 
     <p>