mirror of
https://github.com/libvirt/libvirt.git
synced 2025-02-25 18:55:26 -06:00
conf: Generic XMLs for scsi hostdev
An example of the scsi hostdev XML:
<hostdev mode='subsystem' type='scsi'>
<source>
<adapter name='scsi_host0'/>
<address bus='0' target='0' unit='0'/>
</source>
<address type='drive' controller='0' bus='0' target='4' unit='8'/>
</hostdev>
Controller is implicitly added for scsi hostdev, though the scsi
controller's model defaults to "lsilogic", which might be not what
the user wants (same problem exists for virtio-scsi disk). It's
the existing problem, will be addressed later.
The device address must be specified manually. Later patch will let
libvirt generate it automatically.
This only introduces the generic XMLs for scsi hostdev, later patches
will add other elements, e.g. <readonly>, <shareable>.
Signed-off-by: Han Cheng <hanc.fnst@cn.fujitsu.com>
Signed-off-by: Osier Yang <jyang@redhat.com>
This commit is contained in:
@@ -2257,13 +2257,13 @@
|
||||
|
||||
<h4><a name="elementsHostDev">Host device assignment</a></h4>
|
||||
|
||||
<h5><a href="elementsHostDevSubsys">USB / PCI devices</a></h5>
|
||||
<h5><a href="elementsHostDevSubsys">USB / PCI / SCSI devices</a></h5>
|
||||
|
||||
<p>
|
||||
USB and PCI devices attached to the host can be passed through
|
||||
USB, PCI and SCSI devices attached to the host can be passed through
|
||||
to the guest using the <code>hostdev</code> element.
|
||||
<span class="since">since after 0.4.4 for USB and 0.6.0 for PCI
|
||||
(KVM only)</span>:
|
||||
<span class="since">since after 0.4.4 for USB, 0.6.0 for PCI(KVM only)
|
||||
and 1.0.6 for SCSI(KVM only)</span>:
|
||||
</p>
|
||||
|
||||
<pre>
|
||||
@@ -2292,14 +2292,31 @@
|
||||
<rom bar='on' file='/etc/fake/boot.bin'/>
|
||||
</hostdev>
|
||||
</devices>
|
||||
...</pre>
|
||||
|
||||
<p>or:</p>
|
||||
|
||||
<pre>
|
||||
...
|
||||
<devices>
|
||||
<hostdev mode='subsystem' type='scsi'>
|
||||
<source>
|
||||
<adapter name='scsi_host0'/>
|
||||
<address type='scsi' bus='0' target='0' unit='0'/>
|
||||
</source>
|
||||
<readonly/>
|
||||
<address type='drive' controller='0' bus='0' target='0' unit='0'/>
|
||||
</hostdev>
|
||||
</devices>
|
||||
...</pre>
|
||||
|
||||
<dl>
|
||||
<dt><code>hostdev</code></dt>
|
||||
<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 a USB device and "pci"
|
||||
for a PCI device. When <code>managed</code> is "yes" for a PCI
|
||||
"subsystem" and <code>type</code> is "usb" for a USB device, "pci"
|
||||
for a PCI device and "scsi" for a SCSI device. When
|
||||
<code>managed</code> is "yes" for a PCI
|
||||
device, it is detached from the host before being passed on to
|
||||
the guest, and reattached to the host after the guest exits.
|
||||
If <code>managed</code> is omitted or "no", and for USB
|
||||
@@ -2309,13 +2326,16 @@
|
||||
hot-plugging the device,
|
||||
and <code>virNodeDeviceReAttach</code> (or <code>virsh
|
||||
nodedev-reattach</code>) after hot-unplug or stopping the
|
||||
guest.</dd>
|
||||
guest. For SCSI device, user is responsible to make sure the device
|
||||
is not used by host.</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
|
||||
address on the hosts using the <code>address</code> element. PCI devices
|
||||
on the other hand can only be described by their <code>address</code>.
|
||||
SCSI devices are described by both the <code>adapter</code> and
|
||||
<code>address</code> elements.
|
||||
|
||||
<span class="since">Since 1.0.0</span>, the <code>source</code> element
|
||||
of USB devices may contain <code>startupPolicy</code> attribute which can
|
||||
|
||||
@@ -3094,6 +3094,7 @@
|
||||
<choice>
|
||||
<ref name="hostdevsubsyspci"/>
|
||||
<ref name="hostdevsubsysusb"/>
|
||||
<ref name="hostdevsubsysscsi"/>
|
||||
</choice>
|
||||
</define>
|
||||
|
||||
@@ -3162,6 +3163,20 @@
|
||||
</element>
|
||||
</define>
|
||||
|
||||
<define name="hostdevsubsysscsi">
|
||||
<attribute name="type">
|
||||
<value>scsi</value>
|
||||
</attribute>
|
||||
<element name="source">
|
||||
<interleave>
|
||||
<ref name="sourceinfoadapter"/>
|
||||
<element name="address">
|
||||
<ref name="scsiaddress"/>
|
||||
</element>
|
||||
</interleave>
|
||||
</element>
|
||||
</define>
|
||||
|
||||
<define name="hostdevcapsstorage">
|
||||
<attribute name="type">
|
||||
<value>storage</value>
|
||||
@@ -3217,6 +3232,17 @@
|
||||
</attribute>
|
||||
</element>
|
||||
</define>
|
||||
<define name="scsiaddress">
|
||||
<attribute name="bus">
|
||||
<ref name="driveBus"/>
|
||||
</attribute>
|
||||
<attribute name="target">
|
||||
<ref name="driveTarget"/>
|
||||
</attribute>
|
||||
<attribute name="unit">
|
||||
<ref name="driveUnit"/>
|
||||
</attribute>
|
||||
</define>
|
||||
<define name="usbportaddress">
|
||||
<attribute name="bus">
|
||||
<ref name="usbAddr"/>
|
||||
|
||||
Reference in New Issue
Block a user