2009-04-02 13:19:11 +00:00
|
|
|
<?xml version="1.0"?>
|
|
|
|
<grammar xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
|
2007-01-09 16:29:18 +00:00
|
|
|
<!-- We handle only document defining a domain -->
|
|
|
|
<start>
|
2009-04-02 13:19:11 +00:00
|
|
|
<ref name="domain"/>
|
2007-01-09 16:29:18 +00:00
|
|
|
</start>
|
2009-07-21 05:23:03 +00:00
|
|
|
|
2011-06-26 09:13:10 +00:00
|
|
|
<include href='basictypes.rng'/>
|
2009-07-21 05:23:03 +00:00
|
|
|
<include href='storageencryption.rng'/>
|
2011-06-29 04:38:10 +00:00
|
|
|
<include href='networkcommon.rng'/>
|
2009-09-30 14:07:24 +00:00
|
|
|
|
|
|
|
<!--
|
|
|
|
description element, maybe placed anywhere under the root
|
|
|
|
-->
|
|
|
|
<define name="description">
|
|
|
|
<element name="description">
|
|
|
|
<text/>
|
|
|
|
</element>
|
|
|
|
</define>
|
|
|
|
|
2008-02-05 19:27:37 +00:00
|
|
|
<!--
|
2007-01-09 16:29:18 +00:00
|
|
|
We handle only document defining a domain
|
2007-01-10 15:20:46 +00:00
|
|
|
-->
|
2009-04-02 13:19:11 +00:00
|
|
|
<define name="domain">
|
2007-01-10 15:20:46 +00:00
|
|
|
<element name="domain">
|
2009-04-02 13:19:11 +00:00
|
|
|
<ref name="hvs"/>
|
|
|
|
<ref name="ids"/>
|
2007-01-09 16:29:18 +00:00
|
|
|
<interleave>
|
2009-09-30 14:07:24 +00:00
|
|
|
<optional>
|
|
|
|
<ref name="description"/>
|
|
|
|
</optional>
|
2009-12-18 13:37:09 +00:00
|
|
|
<optional>
|
|
|
|
<ref name="cpu"/>
|
|
|
|
</optional>
|
2010-10-24 13:37:21 +00:00
|
|
|
<optional>
|
|
|
|
<ref name="sysinfo"/>
|
|
|
|
</optional>
|
2009-04-02 13:19:11 +00:00
|
|
|
<ref name="os"/>
|
|
|
|
<ref name="clock"/>
|
|
|
|
<ref name="resources"/>
|
|
|
|
<ref name="features"/>
|
|
|
|
<ref name="termination"/>
|
|
|
|
<optional>
|
|
|
|
<ref name="devices"/>
|
|
|
|
</optional>
|
|
|
|
<optional>
|
|
|
|
<ref name="seclabel"/>
|
|
|
|
</optional>
|
2010-04-20 21:22:49 +00:00
|
|
|
<optional>
|
|
|
|
<ref name='qemucmdline'/>
|
|
|
|
</optional>
|
2007-01-09 16:29:18 +00:00
|
|
|
</interleave>
|
2008-07-08 12:05:13 +00:00
|
|
|
</element>
|
2007-01-10 15:20:46 +00:00
|
|
|
</define>
|
2009-04-02 13:19:11 +00:00
|
|
|
<define name="seclabel">
|
|
|
|
<element name="seclabel">
|
|
|
|
<attribute name="model">
|
|
|
|
<text/>
|
2009-03-03 09:44:41 +00:00
|
|
|
</attribute>
|
2009-04-02 13:19:11 +00:00
|
|
|
<attribute name="type">
|
2009-03-19 14:26:51 +00:00
|
|
|
<choice>
|
|
|
|
<value>dynamic</value>
|
|
|
|
<value>static</value>
|
|
|
|
</choice>
|
2011-06-24 09:21:33 +00:00
|
|
|
</attribute>
|
|
|
|
<attribute name="relabel">
|
|
|
|
<choice>
|
|
|
|
<value>yes</value>
|
|
|
|
<value>no</value>
|
|
|
|
</choice>
|
2009-03-19 14:26:51 +00:00
|
|
|
</attribute>
|
2009-04-02 13:19:11 +00:00
|
|
|
<element name="label">
|
|
|
|
<text/>
|
2009-03-03 09:44:41 +00:00
|
|
|
</element>
|
2011-03-21 07:58:51 +00:00
|
|
|
<element name="imagelabel">
|
|
|
|
<text/>
|
|
|
|
</element>
|
2011-06-23 14:48:48 +00:00
|
|
|
<element name="baselabel">
|
|
|
|
<text/>
|
|
|
|
</element>
|
2009-03-03 09:44:41 +00:00
|
|
|
</element>
|
|
|
|
</define>
|
2009-04-02 13:19:11 +00:00
|
|
|
<define name="hvs">
|
|
|
|
<attribute name="type">
|
2008-07-08 12:05:13 +00:00
|
|
|
<choice>
|
2009-04-02 13:19:11 +00:00
|
|
|
<value>xen</value>
|
|
|
|
<value>kvm</value>
|
|
|
|
<value>kqemu</value>
|
|
|
|
<value>qemu</value>
|
|
|
|
<value>lxc</value>
|
|
|
|
<value>openvz</value>
|
|
|
|
<value>test</value>
|
2008-07-08 12:05:13 +00:00
|
|
|
</choice>
|
|
|
|
</attribute>
|
|
|
|
</define>
|
2009-04-02 13:19:11 +00:00
|
|
|
<define name="os">
|
2008-07-08 12:05:13 +00:00
|
|
|
<choice>
|
2009-04-02 13:19:11 +00:00
|
|
|
<ref name="osxen"/>
|
|
|
|
<ref name="oshvm"/>
|
|
|
|
<ref name="osexe"/>
|
2008-07-08 12:05:13 +00:00
|
|
|
</choice>
|
|
|
|
</define>
|
2009-04-02 13:19:11 +00:00
|
|
|
<define name="osxen">
|
2008-07-08 12:05:13 +00:00
|
|
|
<choice>
|
|
|
|
<group>
|
2009-04-02 13:19:11 +00:00
|
|
|
<optional>
|
|
|
|
<ref name="bootloader"/>
|
|
|
|
</optional>
|
|
|
|
<element name="os">
|
|
|
|
<ref name="ostypexen"/>
|
|
|
|
<ref name="osbootkernel"/>
|
|
|
|
</element>
|
2008-07-08 12:05:13 +00:00
|
|
|
</group>
|
|
|
|
<group>
|
2009-04-02 13:19:11 +00:00
|
|
|
<ref name="bootloader"/>
|
|
|
|
<optional>
|
|
|
|
<element name="os">
|
|
|
|
<ref name="ostypexen"/>
|
|
|
|
<optional>
|
|
|
|
<ref name="osbootkernel"/>
|
|
|
|
</optional>
|
|
|
|
</element>
|
|
|
|
</optional>
|
2008-07-08 12:05:13 +00:00
|
|
|
</group>
|
|
|
|
</choice>
|
|
|
|
</define>
|
2009-04-02 13:19:11 +00:00
|
|
|
<define name="oshvm">
|
|
|
|
<element name="os">
|
|
|
|
<ref name="ostypehvm"/>
|
2007-01-10 15:20:46 +00:00
|
|
|
<interleave>
|
2009-04-02 13:19:11 +00:00
|
|
|
<optional>
|
|
|
|
<element name="loader">
|
|
|
|
<ref name="absFilePath"/>
|
|
|
|
</element>
|
|
|
|
</optional>
|
|
|
|
<choice>
|
|
|
|
<ref name="osbootkernel"/>
|
2011-01-12 14:19:34 +00:00
|
|
|
<zeroOrMore>
|
2010-06-15 09:44:48 +00:00
|
|
|
<ref name="osbootdev"/>
|
2011-01-12 14:19:34 +00:00
|
|
|
</zeroOrMore>
|
2009-04-02 13:19:11 +00:00
|
|
|
</choice>
|
2010-07-26 14:28:58 +00:00
|
|
|
<optional>
|
|
|
|
<element name="bootmenu">
|
|
|
|
<attribute name="enable">
|
|
|
|
<choice>
|
|
|
|
<value>yes</value>
|
|
|
|
<value>no</value>
|
|
|
|
</choice>
|
|
|
|
</attribute>
|
|
|
|
</element>
|
|
|
|
</optional>
|
2010-11-05 13:10:34 +00:00
|
|
|
<optional>
|
|
|
|
<ref name="smbios"/>
|
|
|
|
</optional>
|
2011-07-08 07:56:17 +00:00
|
|
|
<optional>
|
|
|
|
<ref name="bios"/>
|
|
|
|
</optional>
|
2007-01-10 15:20:46 +00:00
|
|
|
</interleave>
|
2008-07-08 12:05:13 +00:00
|
|
|
</element>
|
|
|
|
</define>
|
2009-04-02 13:19:11 +00:00
|
|
|
<define name="ostypexen">
|
|
|
|
<element name="type">
|
2008-07-08 12:05:13 +00:00
|
|
|
<optional>
|
2009-04-02 13:19:11 +00:00
|
|
|
<attribute name="arch">
|
|
|
|
<choice>
|
|
|
|
<value>i686</value>
|
|
|
|
<value>x86_64</value>
|
|
|
|
<value>ia64</value>
|
|
|
|
</choice>
|
|
|
|
</attribute>
|
2008-07-08 12:05:13 +00:00
|
|
|
</optional>
|
|
|
|
<optional>
|
2009-04-02 13:19:11 +00:00
|
|
|
<attribute name="machine">
|
|
|
|
<choice>
|
|
|
|
<value>xenpv</value>
|
|
|
|
<value>xenner</value>
|
|
|
|
</choice>
|
|
|
|
</attribute>
|
2008-07-08 12:05:13 +00:00
|
|
|
</optional>
|
|
|
|
<choice>
|
2009-04-02 13:19:11 +00:00
|
|
|
<value>xen</value>
|
|
|
|
<value>linux</value>
|
2008-07-08 12:05:13 +00:00
|
|
|
</choice>
|
|
|
|
</element>
|
|
|
|
</define>
|
2009-04-02 13:19:11 +00:00
|
|
|
<define name="ostypehvm">
|
|
|
|
<element name="type">
|
2008-07-08 12:05:13 +00:00
|
|
|
<optional>
|
2009-04-02 13:19:11 +00:00
|
|
|
<choice>
|
|
|
|
<ref name="hvmx86"/>
|
|
|
|
<ref name="hvmmips"/>
|
|
|
|
<ref name="hvmsparc"/>
|
|
|
|
<ref name="hvmppc"/>
|
|
|
|
</choice>
|
2008-07-08 12:05:13 +00:00
|
|
|
</optional>
|
|
|
|
<value>hvm</value>
|
|
|
|
</element>
|
2007-01-10 15:20:46 +00:00
|
|
|
</define>
|
2009-04-02 13:19:11 +00:00
|
|
|
<define name="hvmx86">
|
2007-01-10 15:20:46 +00:00
|
|
|
<group>
|
2009-10-12 09:47:01 +00:00
|
|
|
<optional>
|
|
|
|
<attribute name="arch">
|
|
|
|
<choice>
|
|
|
|
<value>i686</value>
|
|
|
|
<value>x86_64</value>
|
|
|
|
</choice>
|
|
|
|
</attribute>
|
|
|
|
</optional>
|
|
|
|
<optional>
|
|
|
|
<attribute name="machine">
|
2009-12-14 15:59:06 +00:00
|
|
|
<data type="string">
|
|
|
|
<param name="pattern">[a-zA-Z0-9_\.\-]+</param>
|
|
|
|
</data>
|
2009-10-12 09:47:01 +00:00
|
|
|
</attribute>
|
2009-12-14 15:59:06 +00:00
|
|
|
</optional>
|
2007-01-10 15:20:46 +00:00
|
|
|
</group>
|
|
|
|
</define>
|
2009-04-02 13:19:11 +00:00
|
|
|
<define name="hvmmips">
|
2007-01-10 15:20:46 +00:00
|
|
|
<group>
|
2009-10-12 09:47:01 +00:00
|
|
|
<optional>
|
|
|
|
<attribute name="arch">
|
|
|
|
<value>mips</value>
|
|
|
|
</attribute>
|
|
|
|
</optional>
|
|
|
|
<optional>
|
|
|
|
<attribute name="machine">
|
|
|
|
<value>mips</value>
|
|
|
|
</attribute>
|
|
|
|
</optional>
|
2007-01-10 15:20:46 +00:00
|
|
|
</group>
|
|
|
|
</define>
|
2009-04-02 13:19:11 +00:00
|
|
|
<define name="hvmsparc">
|
2007-01-10 15:20:46 +00:00
|
|
|
<group>
|
2009-10-12 09:47:01 +00:00
|
|
|
<optional>
|
|
|
|
<attribute name="arch">
|
|
|
|
<value>sparc</value>
|
|
|
|
</attribute>
|
|
|
|
</optional>
|
|
|
|
<optional>
|
|
|
|
<attribute name="machine">
|
|
|
|
<value>sun4m</value>
|
|
|
|
</attribute>
|
|
|
|
</optional>
|
2007-01-10 15:20:46 +00:00
|
|
|
</group>
|
|
|
|
</define>
|
2009-04-02 13:19:11 +00:00
|
|
|
<define name="hvmppc">
|
2007-01-10 15:20:46 +00:00
|
|
|
<group>
|
2009-10-12 09:47:01 +00:00
|
|
|
<optional>
|
|
|
|
<attribute name="arch">
|
|
|
|
<value>ppc</value>
|
|
|
|
</attribute>
|
|
|
|
</optional>
|
|
|
|
<optional>
|
|
|
|
<attribute name="machine">
|
|
|
|
<choice>
|
|
|
|
<value>g3beige</value>
|
|
|
|
<value>mac99</value>
|
|
|
|
<value>prep</value>
|
|
|
|
</choice>
|
|
|
|
</attribute>
|
|
|
|
</optional>
|
2007-01-10 15:20:46 +00:00
|
|
|
</group>
|
|
|
|
</define>
|
2009-04-02 13:19:11 +00:00
|
|
|
<define name="osexe">
|
|
|
|
<element name="os">
|
|
|
|
<element name="type">
|
|
|
|
<value>exe</value>
|
2008-08-01 13:31:37 +00:00
|
|
|
</element>
|
|
|
|
<interleave>
|
2009-04-02 13:19:11 +00:00
|
|
|
<optional>
|
|
|
|
<element name="init">
|
|
|
|
<ref name="absFilePath"/>
|
|
|
|
</element>
|
|
|
|
</optional>
|
2008-08-01 13:31:37 +00:00
|
|
|
</interleave>
|
|
|
|
</element>
|
|
|
|
</define>
|
2008-02-05 19:27:37 +00:00
|
|
|
<!--
|
2007-01-09 16:29:18 +00:00
|
|
|
The Identifiers can be:
|
|
|
|
- an optional id attribute with a number on the domain element
|
|
|
|
- a mandatory name
|
|
|
|
- an optional uuid
|
|
|
|
-->
|
2009-04-02 13:19:11 +00:00
|
|
|
<define name="ids">
|
2007-01-09 16:29:18 +00:00
|
|
|
<optional>
|
2009-04-02 13:19:11 +00:00
|
|
|
<attribute name="id">
|
|
|
|
<ref name="unsignedInt"/>
|
2007-01-09 16:29:18 +00:00
|
|
|
</attribute>
|
|
|
|
</optional>
|
|
|
|
<interleave>
|
|
|
|
<element name="name">
|
2009-04-02 13:19:11 +00:00
|
|
|
<ref name="domainName"/>
|
2007-01-09 16:29:18 +00:00
|
|
|
</element>
|
|
|
|
<optional>
|
|
|
|
<element name="uuid">
|
2009-04-02 13:19:11 +00:00
|
|
|
<ref name="UUID"/>
|
2007-01-09 16:29:18 +00:00
|
|
|
</element>
|
|
|
|
</optional>
|
|
|
|
</interleave>
|
|
|
|
</define>
|
|
|
|
<!--
|
|
|
|
Resources usage defines the amount of memory (maximum and possibly
|
|
|
|
current usage) and number of virtual CPUs used by that domain.
|
2007-01-10 10:08:06 +00:00
|
|
|
We can't check here the rule that currentMemory <= memory
|
2007-01-09 16:29:18 +00:00
|
|
|
-->
|
2009-04-02 13:19:11 +00:00
|
|
|
<define name="resources">
|
2007-01-09 16:29:18 +00:00
|
|
|
<interleave>
|
2009-04-02 13:19:11 +00:00
|
|
|
<element name="memory">
|
|
|
|
<ref name="memoryKB"/>
|
2007-01-09 16:29:18 +00:00
|
|
|
</element>
|
2007-01-10 10:08:06 +00:00
|
|
|
<optional>
|
2009-04-02 13:19:11 +00:00
|
|
|
<element name="currentMemory">
|
|
|
|
<ref name="memoryKB"/>
|
2007-01-10 10:08:06 +00:00
|
|
|
</element>
|
|
|
|
</optional>
|
Support configuration of huge pages in guests
Add option to domain XML for
<memoryBacking>
<hugepages/>
</memoryBacking>
* configure.in: Add check for mntent.h
* qemud/libvirtd_qemu.aug, qemud/test_libvirtd_qemu.aug, src/qemu.conf
Add 'hugetlbfs_mount' config parameter
* src/qemu_conf.c, src/qemu_conf.h: Check for -mem-path flag in QEMU,
and pass it when hugepages are requested.
Load hugetlbfs_mount config parameter, search for mount if not given.
* src/qemu_driver.c: Free hugetlbfs_mount/path parameter in driver shutdown.
Create directory for QEMU hugepage usage, chowning if required.
* docs/formatdomain.html.in: Document memoryBacking/hugepages elements
* docs/schemas/domain.rng: Add memoryBacking/hugepages elements to schema
* src/util.c, src/util.h, src/libvirt_private.syms: Add virFileFindMountPoint
helper API
* tests/qemuhelptest.c: Add -mem-path constants
* tests/qemuxml2argvtest.c, tests/qemuxml2xmltest.c: Add tests for hugepage
handling
* tests/qemuxml2argvdata/qemuxml2argv-hugepages.xml,
tests/qemuxml2argvdata/qemuxml2argv-hugepages.args: Data files for
hugepage tests
2009-08-25 14:05:18 +00:00
|
|
|
<optional>
|
2009-10-21 12:26:38 +00:00
|
|
|
<element name="memoryBacking">
|
|
|
|
<optional>
|
|
|
|
<element name="hugepages">
|
|
|
|
<empty/>
|
|
|
|
</element>
|
|
|
|
</optional>
|
|
|
|
</element>
|
Support configuration of huge pages in guests
Add option to domain XML for
<memoryBacking>
<hugepages/>
</memoryBacking>
* configure.in: Add check for mntent.h
* qemud/libvirtd_qemu.aug, qemud/test_libvirtd_qemu.aug, src/qemu.conf
Add 'hugetlbfs_mount' config parameter
* src/qemu_conf.c, src/qemu_conf.h: Check for -mem-path flag in QEMU,
and pass it when hugepages are requested.
Load hugetlbfs_mount config parameter, search for mount if not given.
* src/qemu_driver.c: Free hugetlbfs_mount/path parameter in driver shutdown.
Create directory for QEMU hugepage usage, chowning if required.
* docs/formatdomain.html.in: Document memoryBacking/hugepages elements
* docs/schemas/domain.rng: Add memoryBacking/hugepages elements to schema
* src/util.c, src/util.h, src/libvirt_private.syms: Add virFileFindMountPoint
helper API
* tests/qemuhelptest.c: Add -mem-path constants
* tests/qemuxml2argvtest.c, tests/qemuxml2xmltest.c: Add tests for hugepage
handling
* tests/qemuxml2argvdata/qemuxml2argv-hugepages.xml,
tests/qemuxml2argvdata/qemuxml2argv-hugepages.args: Data files for
hugepage tests
2009-08-25 14:05:18 +00:00
|
|
|
</optional>
|
2010-10-12 14:06:55 +00:00
|
|
|
|
2011-02-08 06:58:25 +00:00
|
|
|
<!-- The Blkio cgroup related tunables would go in the blkiotune -->
|
|
|
|
<optional>
|
|
|
|
<element name="blkiotune">
|
|
|
|
<!-- I/O weight the VM can use -->
|
|
|
|
<optional>
|
|
|
|
<element name="weight">
|
|
|
|
<ref name="weight"/>
|
|
|
|
</element>
|
|
|
|
</optional>
|
|
|
|
</element>
|
|
|
|
</optional>
|
|
|
|
|
2010-10-12 14:06:55 +00:00
|
|
|
<!-- All the memory/swap related tunables would go in the memtune -->
|
|
|
|
<optional>
|
2010-10-12 14:12:08 +00:00
|
|
|
<element name="memtune">
|
|
|
|
<!-- Maximum memory the VM can use -->
|
|
|
|
<optional>
|
|
|
|
<element name="hard_limit">
|
|
|
|
<ref name="memoryKB"/>
|
|
|
|
</element>
|
|
|
|
</optional>
|
|
|
|
<!-- Minimum memory ascertained for the VM during contention -->
|
|
|
|
<optional>
|
|
|
|
<element name="soft_limit">
|
|
|
|
<ref name="memoryKB"/>
|
|
|
|
</element>
|
|
|
|
</optional>
|
|
|
|
<!-- Minimum amount of memory required to start the VM -->
|
|
|
|
<optional>
|
|
|
|
<element name="min_guarantee">
|
|
|
|
<ref name="memoryKB"/>
|
|
|
|
</element>
|
|
|
|
</optional>
|
|
|
|
<!-- Maximum swap area the VM can use -->
|
|
|
|
<optional>
|
|
|
|
<element name="swap_hard_limit">
|
|
|
|
<ref name="memoryKB"/>
|
|
|
|
</element>
|
|
|
|
</optional>
|
|
|
|
</element>
|
2010-10-12 14:06:55 +00:00
|
|
|
</optional>
|
|
|
|
|
2007-01-10 10:08:06 +00:00
|
|
|
<optional>
|
2009-04-02 13:19:11 +00:00
|
|
|
<element name="vcpu">
|
2008-07-08 12:05:13 +00:00
|
|
|
<optional>
|
2010-09-27 23:29:13 +00:00
|
|
|
<attribute name="cpuset">
|
|
|
|
<ref name="cpuset"/>
|
|
|
|
</attribute>
|
2008-07-08 12:05:13 +00:00
|
|
|
</optional>
|
2010-09-27 23:36:06 +00:00
|
|
|
<optional>
|
|
|
|
<attribute name="current">
|
|
|
|
<ref name="countCPU"/>
|
|
|
|
</attribute>
|
|
|
|
</optional>
|
2009-04-02 13:19:11 +00:00
|
|
|
<ref name="countCPU"/>
|
2007-01-10 10:08:06 +00:00
|
|
|
</element>
|
|
|
|
</optional>
|
2011-03-29 13:01:57 +00:00
|
|
|
|
|
|
|
<!-- All the cpu related tunables would go in the cputune -->
|
|
|
|
<optional>
|
|
|
|
<element name="cputune">
|
|
|
|
<optional>
|
|
|
|
<element name="shares">
|
|
|
|
<ref name="cpushares"/>
|
|
|
|
</element>
|
|
|
|
</optional>
|
2011-07-21 02:09:46 +00:00
|
|
|
<optional>
|
|
|
|
<element name="period">
|
|
|
|
<ref name="cpuperiod"/>
|
|
|
|
</element>
|
|
|
|
</optional>
|
|
|
|
<optional>
|
|
|
|
<element name="quota">
|
|
|
|
<ref name="cpuquota"/>
|
|
|
|
</element>
|
|
|
|
</optional>
|
2011-03-29 13:01:57 +00:00
|
|
|
<zeroOrMore>
|
|
|
|
<element name="vcpupin">
|
|
|
|
<attribute name="vcpu">
|
|
|
|
<ref name="vcpuid"/>
|
|
|
|
</attribute>
|
|
|
|
<attribute name="cpuset">
|
|
|
|
<ref name="cpuset"/>
|
|
|
|
</attribute>
|
|
|
|
</element>
|
|
|
|
</zeroOrMore>
|
|
|
|
</element>
|
|
|
|
</optional>
|
2011-06-20 07:13:25 +00:00
|
|
|
|
|
|
|
<!-- All the NUMA related tunables would go in the numatune -->
|
|
|
|
<optional>
|
|
|
|
<element name="numatune">
|
|
|
|
<optional>
|
|
|
|
<element name="memory">
|
|
|
|
<attribute name="mode">
|
|
|
|
<choice>
|
|
|
|
<value>strict</value>
|
|
|
|
<value>preferred</value>
|
|
|
|
<value>interleave</value>
|
|
|
|
</choice>
|
|
|
|
</attribute>
|
|
|
|
<attribute name="nodeset">
|
|
|
|
<ref name="cpuset"/>
|
|
|
|
</attribute>
|
|
|
|
</element>
|
|
|
|
</optional>
|
|
|
|
</element>
|
|
|
|
</optional>
|
2007-01-09 16:29:18 +00:00
|
|
|
</interleave>
|
|
|
|
</define>
|
2009-04-02 13:19:11 +00:00
|
|
|
<define name="clock">
|
2008-07-08 12:05:13 +00:00
|
|
|
<optional>
|
2009-04-02 13:19:11 +00:00
|
|
|
<element name="clock">
|
2010-02-02 17:49:09 +00:00
|
|
|
<choice>
|
|
|
|
<attribute name="offset">
|
2008-07-08 12:05:13 +00:00
|
|
|
<value>localtime</value>
|
2010-02-02 17:49:09 +00:00
|
|
|
</attribute>
|
|
|
|
<attribute name="offset">
|
2008-07-08 12:05:13 +00:00
|
|
|
<value>utc</value>
|
2010-02-02 17:49:09 +00:00
|
|
|
</attribute>
|
2010-02-02 18:28:44 +00:00
|
|
|
<group>
|
|
|
|
<attribute name="offset">
|
|
|
|
<value>timezone</value>
|
|
|
|
</attribute>
|
|
|
|
<optional>
|
|
|
|
<attribute name="timezone">
|
|
|
|
<ref name="timeZone"/>
|
|
|
|
</attribute>
|
|
|
|
</optional>
|
|
|
|
</group>
|
2010-02-02 17:49:09 +00:00
|
|
|
<group>
|
|
|
|
<attribute name="offset">
|
|
|
|
<value>variable</value>
|
|
|
|
</attribute>
|
|
|
|
<optional>
|
|
|
|
<attribute name="adjustment">
|
|
|
|
<ref name="timeDelta"/>
|
|
|
|
</attribute>
|
|
|
|
</optional>
|
|
|
|
</group>
|
|
|
|
</choice>
|
2010-11-08 11:27:41 +00:00
|
|
|
<zeroOrMore>
|
|
|
|
<ref name="timer"/>
|
|
|
|
</zeroOrMore>
|
2008-07-08 12:05:13 +00:00
|
|
|
</element>
|
|
|
|
</optional>
|
|
|
|
</define>
|
2010-03-30 11:47:39 +00:00
|
|
|
<define name="timer">
|
|
|
|
<element name="timer">
|
|
|
|
<attribute name="name">
|
|
|
|
<choice>
|
|
|
|
<value>platform</value>
|
|
|
|
<value>pit</value>
|
|
|
|
<value>rtc</value>
|
|
|
|
<value>hpet</value>
|
|
|
|
<value>tsc</value>
|
|
|
|
</choice>
|
|
|
|
</attribute>
|
|
|
|
<optional>
|
2010-03-31 17:03:54 +00:00
|
|
|
<attribute name="track">
|
2010-03-30 11:47:39 +00:00
|
|
|
<choice>
|
2010-03-31 17:03:54 +00:00
|
|
|
<value>boot</value>
|
2010-03-30 11:47:39 +00:00
|
|
|
<value>guest</value>
|
2010-03-31 17:03:54 +00:00
|
|
|
<value>wall</value>
|
2010-03-30 11:47:39 +00:00
|
|
|
</choice>
|
|
|
|
</attribute>
|
|
|
|
</optional>
|
|
|
|
<optional>
|
|
|
|
<attribute name="tickpolicy">
|
|
|
|
<choice>
|
|
|
|
<value>delay</value>
|
|
|
|
<value>catchup</value>
|
|
|
|
<value>merge</value>
|
|
|
|
<value>discard</value>
|
|
|
|
</choice>
|
|
|
|
</attribute>
|
|
|
|
</optional>
|
2010-03-31 17:03:54 +00:00
|
|
|
<optional>
|
|
|
|
<ref name="catchup"/>
|
|
|
|
</optional>
|
2010-03-30 11:47:39 +00:00
|
|
|
<optional>
|
|
|
|
<attribute name="frequency">
|
|
|
|
<ref name="unsignedInt"/>
|
|
|
|
</attribute>
|
|
|
|
</optional>
|
|
|
|
<optional>
|
|
|
|
<attribute name="mode">
|
|
|
|
<choice>
|
|
|
|
<value>auto</value>
|
|
|
|
<value>native</value>
|
|
|
|
<value>emulate</value>
|
|
|
|
<value>paravirt</value>
|
2010-03-31 17:03:54 +00:00
|
|
|
<value>smpsafe</value>
|
2010-03-30 11:47:39 +00:00
|
|
|
</choice>
|
|
|
|
</attribute>
|
|
|
|
</optional>
|
|
|
|
<optional>
|
|
|
|
<attribute name="present">
|
|
|
|
<choice>
|
|
|
|
<value>yes</value>
|
|
|
|
<value>no</value>
|
|
|
|
</choice>
|
|
|
|
</attribute>
|
|
|
|
</optional>
|
|
|
|
<empty/>
|
|
|
|
</element>
|
|
|
|
</define>
|
2010-03-31 17:03:54 +00:00
|
|
|
<define name="catchup">
|
|
|
|
<element name="catchup">
|
|
|
|
<optional>
|
|
|
|
<attribute name="threshold">
|
|
|
|
<ref name="unsignedInt"/>
|
|
|
|
</attribute>
|
|
|
|
<attribute name="slew">
|
|
|
|
<ref name="unsignedInt"/>
|
|
|
|
</attribute>
|
|
|
|
<attribute name="limit">
|
|
|
|
<ref name="unsignedInt"/>
|
|
|
|
</attribute>
|
|
|
|
</optional>
|
|
|
|
</element>
|
|
|
|
</define>
|
2010-03-30 11:47:39 +00:00
|
|
|
<!--
|
2007-01-10 10:08:06 +00:00
|
|
|
A bootloader may be used to extract the OS information instead of
|
|
|
|
defining the OS parameter in the instance. It points just to the
|
|
|
|
binary or script used to extract the data from the first disk device.
|
|
|
|
-->
|
2009-04-02 13:19:11 +00:00
|
|
|
<define name="bootloader">
|
2008-07-08 12:05:13 +00:00
|
|
|
<interleave>
|
2009-04-02 13:19:11 +00:00
|
|
|
<element name="bootloader">
|
|
|
|
<choice>
|
|
|
|
<ref name="absFilePath"/>
|
|
|
|
<empty/>
|
|
|
|
</choice>
|
2008-07-08 12:05:13 +00:00
|
|
|
</element>
|
|
|
|
<optional>
|
2009-04-02 13:19:11 +00:00
|
|
|
<element name="bootloader_args">
|
|
|
|
<text/>
|
|
|
|
</element>
|
2008-07-08 12:05:13 +00:00
|
|
|
</optional>
|
|
|
|
</interleave>
|
2007-01-09 16:29:18 +00:00
|
|
|
</define>
|
2009-04-02 13:19:11 +00:00
|
|
|
<define name="osbootkernel">
|
2007-01-09 16:29:18 +00:00
|
|
|
<interleave>
|
2011-07-07 01:17:16 +00:00
|
|
|
<optional>
|
|
|
|
<element name="kernel">
|
|
|
|
<ref name="absFilePath"/>
|
|
|
|
</element>
|
|
|
|
</optional>
|
2007-01-09 16:29:18 +00:00
|
|
|
<optional>
|
2009-04-02 13:19:11 +00:00
|
|
|
<element name="initrd">
|
|
|
|
<ref name="absFilePath"/>
|
|
|
|
</element>
|
2007-01-09 16:29:18 +00:00
|
|
|
</optional>
|
2007-01-10 10:08:06 +00:00
|
|
|
<optional>
|
2009-04-02 13:19:11 +00:00
|
|
|
<element name="root">
|
2010-11-22 16:46:13 +00:00
|
|
|
<ref name="absFilePath"/>
|
2007-01-10 10:08:06 +00:00
|
|
|
</element>
|
|
|
|
</optional>
|
2007-01-09 16:29:18 +00:00
|
|
|
<optional>
|
2009-04-02 13:19:11 +00:00
|
|
|
<element name="cmdline">
|
|
|
|
<text/>
|
|
|
|
</element>
|
2007-01-09 16:29:18 +00:00
|
|
|
</optional>
|
|
|
|
</interleave>
|
|
|
|
</define>
|
2009-04-02 13:19:11 +00:00
|
|
|
<define name="osbootdev">
|
|
|
|
<element name="boot">
|
|
|
|
<attribute name="dev">
|
2008-07-08 12:05:13 +00:00
|
|
|
<choice>
|
|
|
|
<value>hd</value>
|
|
|
|
<value>fd</value>
|
|
|
|
<value>cdrom</value>
|
|
|
|
<value>network</value>
|
|
|
|
</choice>
|
|
|
|
</attribute>
|
|
|
|
<empty/>
|
2007-01-09 16:29:18 +00:00
|
|
|
</element>
|
2008-07-08 12:05:13 +00:00
|
|
|
</define>
|
2009-04-02 13:19:11 +00:00
|
|
|
<define name="diskspec">
|
2008-07-08 12:05:13 +00:00
|
|
|
<optional>
|
2009-04-02 13:19:11 +00:00
|
|
|
<ref name="driver"/>
|
2008-07-08 12:05:13 +00:00
|
|
|
</optional>
|
2009-04-02 13:19:11 +00:00
|
|
|
<ref name="target"/>
|
2011-01-12 14:19:34 +00:00
|
|
|
<optional>
|
|
|
|
<ref name="deviceBoot"/>
|
|
|
|
</optional>
|
2008-07-08 12:05:13 +00:00
|
|
|
<optional>
|
2009-04-02 13:19:11 +00:00
|
|
|
<element name="readonly">
|
2008-07-08 12:05:13 +00:00
|
|
|
<empty/>
|
2007-01-09 16:29:18 +00:00
|
|
|
</element>
|
2008-07-08 12:05:13 +00:00
|
|
|
</optional>
|
|
|
|
<optional>
|
2009-04-02 13:19:11 +00:00
|
|
|
<element name="shareable">
|
2008-07-08 12:05:13 +00:00
|
|
|
<empty/>
|
|
|
|
</element>
|
|
|
|
</optional>
|
2009-08-14 11:22:01 +00:00
|
|
|
<optional>
|
|
|
|
<element name="serial">
|
|
|
|
<ref name="diskSerial"/>
|
|
|
|
</element>
|
|
|
|
</optional>
|
2009-07-21 05:23:03 +00:00
|
|
|
<optional>
|
|
|
|
<ref name="encryption"/>
|
|
|
|
</optional>
|
2009-11-30 18:35:58 +00:00
|
|
|
<optional>
|
|
|
|
<ref name="address"/>
|
|
|
|
</optional>
|
2007-01-09 16:29:18 +00:00
|
|
|
</define>
|
2010-12-09 18:25:11 +00:00
|
|
|
|
|
|
|
<define name="lease">
|
|
|
|
<element name="lease">
|
|
|
|
<interleave>
|
|
|
|
<element name="lockspace">
|
|
|
|
<text/>
|
|
|
|
</element>
|
|
|
|
<element name="key">
|
|
|
|
<text/>
|
|
|
|
</element>
|
|
|
|
<element name="target">
|
|
|
|
<attribute name="path">
|
|
|
|
<text/>
|
|
|
|
</attribute>
|
|
|
|
<optional>
|
|
|
|
<attribute name="offset">
|
|
|
|
<ref name="unsignedInt"/>
|
|
|
|
</attribute>
|
|
|
|
</optional>
|
|
|
|
</element>
|
|
|
|
</interleave>
|
|
|
|
</element>
|
|
|
|
</define>
|
2007-01-09 16:29:18 +00:00
|
|
|
<!--
|
|
|
|
A disk description can be either of type file or block
|
|
|
|
The name of the attribute on the source element depends on the type
|
|
|
|
|
|
|
|
-->
|
2009-04-02 13:19:11 +00:00
|
|
|
<define name="disk">
|
|
|
|
<element name="disk">
|
2007-01-10 10:08:06 +00:00
|
|
|
<optional>
|
2009-04-02 13:19:11 +00:00
|
|
|
<attribute name="device">
|
|
|
|
<choice>
|
|
|
|
<value>floppy</value>
|
|
|
|
<value>disk</value>
|
|
|
|
<value>cdrom</value>
|
|
|
|
</choice>
|
|
|
|
</attribute>
|
2007-01-10 10:08:06 +00:00
|
|
|
</optional>
|
2007-01-09 16:29:18 +00:00
|
|
|
<choice>
|
|
|
|
<group>
|
2009-04-02 13:19:11 +00:00
|
|
|
<attribute name="type">
|
|
|
|
<value>file</value>
|
2008-07-08 12:05:13 +00:00
|
|
|
</attribute>
|
2009-04-02 13:19:11 +00:00
|
|
|
<interleave>
|
|
|
|
<optional>
|
|
|
|
<element name="source">
|
|
|
|
<attribute name="file">
|
|
|
|
<ref name="absFilePath"/>
|
|
|
|
</attribute>
|
|
|
|
<empty/>
|
|
|
|
</element>
|
|
|
|
</optional>
|
|
|
|
<ref name="diskspec"/>
|
|
|
|
</interleave>
|
2007-01-09 16:29:18 +00:00
|
|
|
</group>
|
|
|
|
<group>
|
2009-04-02 13:19:11 +00:00
|
|
|
<attribute name="type">
|
|
|
|
<value>block</value>
|
|
|
|
</attribute>
|
|
|
|
<interleave>
|
|
|
|
<optional>
|
|
|
|
<element name="source">
|
|
|
|
<attribute name="dev">
|
2010-11-22 16:46:13 +00:00
|
|
|
<ref name="absFilePath"/>
|
2009-04-02 13:19:11 +00:00
|
|
|
</attribute>
|
|
|
|
<empty/>
|
|
|
|
</element>
|
|
|
|
</optional>
|
|
|
|
<ref name="diskspec"/>
|
|
|
|
</interleave>
|
2007-01-09 16:29:18 +00:00
|
|
|
</group>
|
2009-11-16 18:08:29 +00:00
|
|
|
<group>
|
|
|
|
<attribute name="type">
|
|
|
|
<value>dir</value>
|
|
|
|
</attribute>
|
|
|
|
<interleave>
|
|
|
|
<optional>
|
|
|
|
<element name="source">
|
|
|
|
<attribute name="dir">
|
|
|
|
<ref name="absFilePath"/>
|
|
|
|
</attribute>
|
|
|
|
<empty/>
|
|
|
|
</element>
|
|
|
|
</optional>
|
|
|
|
<ref name="diskspec"/>
|
|
|
|
</interleave>
|
|
|
|
</group>
|
2010-12-06 07:24:09 +00:00
|
|
|
<group>
|
|
|
|
<attribute name="type">
|
|
|
|
<value>network</value>
|
|
|
|
</attribute>
|
|
|
|
<interleave>
|
|
|
|
<optional>
|
|
|
|
<element name="source">
|
|
|
|
<attribute name="protocol">
|
|
|
|
<choice>
|
|
|
|
<value>nbd</value>
|
|
|
|
<value>rbd</value>
|
|
|
|
<value>sheepdog</value>
|
|
|
|
</choice>
|
|
|
|
</attribute>
|
2010-12-07 19:56:34 +00:00
|
|
|
<optional>
|
|
|
|
<attribute name="name"/>
|
|
|
|
</optional>
|
2010-12-06 07:24:09 +00:00
|
|
|
<zeroOrMore>
|
|
|
|
<element name="host">
|
|
|
|
<attribute name="name">
|
2011-06-26 09:13:10 +00:00
|
|
|
<ref name="dnsName"/>
|
2010-12-06 07:24:09 +00:00
|
|
|
</attribute>
|
|
|
|
<attribute name="port">
|
|
|
|
<ref name="unsignedInt"/>
|
|
|
|
</attribute>
|
|
|
|
</element>
|
|
|
|
</zeroOrMore>
|
|
|
|
<empty/>
|
|
|
|
</element>
|
|
|
|
</optional>
|
|
|
|
<ref name="diskspec"/>
|
|
|
|
</interleave>
|
|
|
|
</group>
|
2009-04-02 13:19:11 +00:00
|
|
|
<ref name="diskspec"/>
|
2007-01-09 16:29:18 +00:00
|
|
|
</choice>
|
|
|
|
</element>
|
|
|
|
</define>
|
2009-04-02 13:19:11 +00:00
|
|
|
<define name="target">
|
|
|
|
<element name="target">
|
|
|
|
<attribute name="dev">
|
|
|
|
<ref name="deviceName"/>
|
2007-01-09 16:29:18 +00:00
|
|
|
</attribute>
|
2008-07-08 12:05:13 +00:00
|
|
|
<optional>
|
2009-04-02 13:19:11 +00:00
|
|
|
<attribute name="bus">
|
|
|
|
<choice>
|
|
|
|
<value>ide</value>
|
|
|
|
<value>fdc</value>
|
|
|
|
<value>scsi</value>
|
|
|
|
<value>virtio</value>
|
|
|
|
<value>xen</value>
|
|
|
|
<value>usb</value>
|
|
|
|
<value>uml</value>
|
|
|
|
</choice>
|
|
|
|
</attribute>
|
2008-07-08 12:05:13 +00:00
|
|
|
</optional>
|
2007-01-10 10:08:06 +00:00
|
|
|
</element>
|
|
|
|
</define>
|
|
|
|
<!--
|
2008-02-05 19:27:37 +00:00
|
|
|
Disk may use a special driver for access. Currently this is
|
2007-01-10 10:08:06 +00:00
|
|
|
only defined for Xen for tap/aio and file, but will certainly be
|
|
|
|
extended in the future, and libvirt doesn't look for specific values.
|
|
|
|
-->
|
2009-04-02 13:19:11 +00:00
|
|
|
<define name="driver">
|
|
|
|
<element name="driver">
|
2009-01-30 17:15:39 +00:00
|
|
|
<choice>
|
2009-04-02 13:19:11 +00:00
|
|
|
<group>
|
|
|
|
<ref name="driverFormat"/>
|
|
|
|
<optional>
|
|
|
|
<ref name="driverCache"/>
|
|
|
|
</optional>
|
|
|
|
</group>
|
|
|
|
<group>
|
|
|
|
<optional>
|
|
|
|
<ref name="driverFormat"/>
|
|
|
|
</optional>
|
|
|
|
<ref name="driverCache"/>
|
|
|
|
</group>
|
2009-01-30 17:15:39 +00:00
|
|
|
</choice>
|
2010-03-24 15:32:10 +00:00
|
|
|
<optional>
|
|
|
|
<ref name="driverErrorPolicy"/>
|
|
|
|
</optional>
|
2010-04-21 14:28:21 +00:00
|
|
|
<optional>
|
|
|
|
<ref name="driverIO"/>
|
|
|
|
</optional>
|
2011-06-20 08:26:47 +00:00
|
|
|
<optional>
|
|
|
|
<ref name="ioeventfd"/>
|
|
|
|
</optional>
|
2011-08-13 06:32:45 +00:00
|
|
|
<optional>
|
|
|
|
<ref name="event_idx"/>
|
|
|
|
</optional>
|
2008-07-08 12:05:13 +00:00
|
|
|
<empty/>
|
|
|
|
</element>
|
2007-01-09 16:29:18 +00:00
|
|
|
</define>
|
2009-04-02 13:19:11 +00:00
|
|
|
<define name="driverFormat">
|
|
|
|
<attribute name="name">
|
|
|
|
<ref name="genericName"/>
|
2009-01-30 17:15:39 +00:00
|
|
|
</attribute>
|
|
|
|
<optional>
|
2009-04-02 13:19:11 +00:00
|
|
|
<attribute name="type">
|
|
|
|
<ref name="genericName"/>
|
2009-01-30 17:15:39 +00:00
|
|
|
</attribute>
|
|
|
|
</optional>
|
|
|
|
</define>
|
2009-04-02 13:19:11 +00:00
|
|
|
<define name="driverCache">
|
|
|
|
<attribute name="cache">
|
2009-01-30 17:15:39 +00:00
|
|
|
<choice>
|
2009-04-02 13:19:11 +00:00
|
|
|
<value>none</value>
|
|
|
|
<value>writeback</value>
|
|
|
|
<value>writethrough</value>
|
2011-09-02 13:36:58 +00:00
|
|
|
<value>directsync</value>
|
2009-01-30 17:15:39 +00:00
|
|
|
</choice>
|
|
|
|
</attribute>
|
|
|
|
</define>
|
2010-03-24 15:32:10 +00:00
|
|
|
<define name="driverErrorPolicy">
|
|
|
|
<attribute name="error_policy">
|
|
|
|
<choice>
|
|
|
|
<value>stop</value>
|
|
|
|
<value>ignore</value>
|
2010-04-08 20:05:50 +00:00
|
|
|
<value>enospace</value>
|
2010-03-24 15:32:10 +00:00
|
|
|
</choice>
|
|
|
|
</attribute>
|
|
|
|
</define>
|
2010-04-21 14:28:21 +00:00
|
|
|
<define name="driverIO">
|
|
|
|
<attribute name="io">
|
|
|
|
<choice>
|
|
|
|
<value>threads</value>
|
|
|
|
<value>native</value>
|
|
|
|
</choice>
|
|
|
|
</attribute>
|
|
|
|
</define>
|
2011-06-20 08:26:47 +00:00
|
|
|
<define name="ioeventfd">
|
|
|
|
<attribute name="ioeventfd">
|
|
|
|
<choice>
|
|
|
|
<value>on</value>
|
|
|
|
<value>off</value>
|
|
|
|
</choice>
|
|
|
|
</attribute>
|
|
|
|
</define>
|
2011-08-13 06:32:45 +00:00
|
|
|
<define name="event_idx">
|
|
|
|
<attribute name="event_idx">
|
|
|
|
<choice>
|
|
|
|
<value>on</value>
|
|
|
|
<value>off</value>
|
|
|
|
</choice>
|
|
|
|
</attribute>
|
|
|
|
</define>
|
2009-12-02 19:15:38 +00:00
|
|
|
<define name="controller">
|
|
|
|
<element name="controller">
|
2010-02-18 16:52:03 +00:00
|
|
|
<choice>
|
|
|
|
<group>
|
|
|
|
<optional>
|
|
|
|
<attribute name="type">
|
|
|
|
<choice>
|
|
|
|
<value>fdc</value>
|
|
|
|
<value>ide</value>
|
|
|
|
<value>scsi</value>
|
|
|
|
<value>sata</value>
|
2011-01-06 01:02:20 +00:00
|
|
|
<value>ccid</value>
|
2011-09-02 13:21:23 +00:00
|
|
|
<value>usb</value>
|
2010-02-18 16:52:03 +00:00
|
|
|
</choice>
|
|
|
|
</attribute>
|
|
|
|
</optional>
|
|
|
|
</group>
|
|
|
|
<!-- virtio-serial can have 2 additional attributes -->
|
|
|
|
<group>
|
|
|
|
<attribute name="type">
|
|
|
|
<value>virtio-serial</value>
|
|
|
|
</attribute>
|
|
|
|
<optional>
|
|
|
|
<attribute name="ports">
|
|
|
|
<ref name="unsignedInt"/>
|
|
|
|
</attribute>
|
|
|
|
</optional>
|
|
|
|
<optional>
|
|
|
|
<attribute name="vectors">
|
|
|
|
<ref name="unsignedInt"/>
|
|
|
|
</attribute>
|
|
|
|
</optional>
|
|
|
|
</group>
|
|
|
|
</choice>
|
2009-12-02 19:15:38 +00:00
|
|
|
<attribute name="index">
|
|
|
|
<ref name="unsignedInt"/>
|
|
|
|
</attribute>
|
2010-06-17 14:39:50 +00:00
|
|
|
<optional>
|
|
|
|
<attribute name="model">
|
|
|
|
<choice>
|
2010-07-06 17:02:48 +00:00
|
|
|
<value>auto</value>
|
2010-06-17 14:39:50 +00:00
|
|
|
<value>buslogic</value>
|
|
|
|
<value>lsilogic</value>
|
|
|
|
<value>lsisas1068</value>
|
2010-06-24 14:58:54 +00:00
|
|
|
<value>vmpvscsi</value>
|
2011-09-02 13:14:29 +00:00
|
|
|
<value>piix3-uhci</value>
|
|
|
|
<value>piix4-uhci</value>
|
|
|
|
<value>ehci</value>
|
|
|
|
<value>ich9-ehci1</value>
|
|
|
|
<value>ich9-uhci1</value>
|
|
|
|
<value>ich9-uhci2</value>
|
|
|
|
<value>ich9-uhci3</value>
|
|
|
|
<value>vt82c686b-uhci</value>
|
|
|
|
<value>pci-ohci</value>
|
2010-06-17 14:39:50 +00:00
|
|
|
</choice>
|
|
|
|
</attribute>
|
|
|
|
</optional>
|
2009-12-02 19:15:38 +00:00
|
|
|
<optional>
|
2010-02-17 16:16:42 +00:00
|
|
|
<ref name="address"/>
|
2009-12-02 19:15:38 +00:00
|
|
|
</optional>
|
|
|
|
</element>
|
|
|
|
</define>
|
2009-04-02 13:19:11 +00:00
|
|
|
<define name="filesystem">
|
|
|
|
<element name="filesystem">
|
2008-08-01 13:31:37 +00:00
|
|
|
<choice>
|
|
|
|
<group>
|
2009-04-02 13:19:11 +00:00
|
|
|
<attribute name="type">
|
|
|
|
<value>file</value>
|
2008-08-01 13:31:37 +00:00
|
|
|
</attribute>
|
2009-04-02 13:19:11 +00:00
|
|
|
<interleave>
|
|
|
|
<element name="source">
|
|
|
|
<attribute name="file">
|
|
|
|
<ref name="absFilePath"/>
|
|
|
|
</attribute>
|
|
|
|
<empty/>
|
|
|
|
</element>
|
|
|
|
<ref name="filesystemtgt"/>
|
|
|
|
</interleave>
|
2008-08-01 13:31:37 +00:00
|
|
|
</group>
|
|
|
|
<group>
|
2009-04-02 13:19:11 +00:00
|
|
|
<attribute name="type">
|
|
|
|
<value>block</value>
|
|
|
|
</attribute>
|
|
|
|
<interleave>
|
|
|
|
<element name="source">
|
|
|
|
<attribute name="dev">
|
2010-11-22 16:46:13 +00:00
|
|
|
<ref name="absFilePath"/>
|
2009-04-02 13:19:11 +00:00
|
|
|
</attribute>
|
|
|
|
<empty/>
|
|
|
|
</element>
|
|
|
|
<ref name="filesystemtgt"/>
|
|
|
|
</interleave>
|
2008-08-01 13:31:37 +00:00
|
|
|
</group>
|
|
|
|
<group>
|
2009-04-02 13:19:11 +00:00
|
|
|
<attribute name="type">
|
|
|
|
<value>mount</value>
|
|
|
|
</attribute>
|
|
|
|
<interleave>
|
|
|
|
<element name="source">
|
|
|
|
<attribute name="dir">
|
|
|
|
<ref name="absFilePath"/>
|
|
|
|
</attribute>
|
|
|
|
<empty/>
|
|
|
|
</element>
|
|
|
|
<ref name="filesystemtgt"/>
|
|
|
|
</interleave>
|
2008-08-01 13:31:37 +00:00
|
|
|
</group>
|
|
|
|
<group>
|
2009-04-02 13:19:11 +00:00
|
|
|
<attribute name="type">
|
|
|
|
<value>template</value>
|
|
|
|
</attribute>
|
|
|
|
<interleave>
|
|
|
|
<element name="source">
|
|
|
|
<attribute name="name">
|
|
|
|
<ref name="genericName"/>
|
|
|
|
</attribute>
|
|
|
|
<empty/>
|
|
|
|
</element>
|
|
|
|
<ref name="filesystemtgt"/>
|
|
|
|
</interleave>
|
2008-08-01 13:31:37 +00:00
|
|
|
</group>
|
|
|
|
</choice>
|
Add device info to serial, parallel, channel, input & fs devices
Although the serial, parallel, chanel, input & fs devices do
not have PCI address info, they can all have device aliases.
Thus it neccessary to associate the virDomainDeviceInfo data
with them all.
* src/conf/domain_conf.c, src/conf/domain_conf.h: Add hooks for
parsing / formatting device info for serial, parallel, channel
input and fs devices.
* docs/schemas/domain.rng: Associate device info with character
devices, input & fs device
2010-01-06 12:39:53 +00:00
|
|
|
<optional>
|
2010-02-17 16:16:42 +00:00
|
|
|
<ref name="address"/>
|
2010-10-14 13:08:24 +00:00
|
|
|
<attribute name="accessmode">
|
|
|
|
<choice>
|
|
|
|
<value>passthrough</value>
|
|
|
|
<value>mapped</value>
|
|
|
|
<value>squash</value>
|
|
|
|
</choice>
|
|
|
|
</attribute>
|
Add device info to serial, parallel, channel, input & fs devices
Although the serial, parallel, chanel, input & fs devices do
not have PCI address info, they can all have device aliases.
Thus it neccessary to associate the virDomainDeviceInfo data
with them all.
* src/conf/domain_conf.c, src/conf/domain_conf.h: Add hooks for
parsing / formatting device info for serial, parallel, channel
input and fs devices.
* docs/schemas/domain.rng: Associate device info with character
devices, input & fs device
2010-01-06 12:39:53 +00:00
|
|
|
</optional>
|
2008-08-01 13:31:37 +00:00
|
|
|
</element>
|
|
|
|
</define>
|
2009-04-02 13:19:11 +00:00
|
|
|
<define name="filesystemtgt">
|
|
|
|
<element name="target">
|
|
|
|
<attribute name="dir">
|
|
|
|
<ref name="absDirPath"/>
|
2008-08-01 13:31:37 +00:00
|
|
|
</attribute>
|
|
|
|
<empty/>
|
|
|
|
</element>
|
|
|
|
</define>
|
2007-01-09 16:29:18 +00:00
|
|
|
<!--
|
2007-01-10 10:08:06 +00:00
|
|
|
An interface description can either be of type bridge in which case
|
|
|
|
it will use a bridging source, or of type ethernet which uses a device
|
|
|
|
source and a device target instead. They both share a set of interface
|
2008-07-08 12:05:13 +00:00
|
|
|
options. FIXME
|
2007-01-09 16:29:18 +00:00
|
|
|
-->
|
2009-04-02 13:19:11 +00:00
|
|
|
<define name="interface">
|
|
|
|
<element name="interface">
|
2007-01-10 10:08:06 +00:00
|
|
|
<choice>
|
|
|
|
<group>
|
2009-04-02 13:19:11 +00:00
|
|
|
<attribute name="type">
|
2007-01-10 10:08:06 +00:00
|
|
|
<value>bridge</value>
|
|
|
|
</attribute>
|
2009-04-02 13:19:11 +00:00
|
|
|
<interleave>
|
2008-07-08 12:05:13 +00:00
|
|
|
<optional>
|
2009-04-02 13:19:11 +00:00
|
|
|
<element name="source">
|
|
|
|
<attribute name="bridge">
|
|
|
|
<ref name="deviceName"/>
|
|
|
|
</attribute>
|
|
|
|
<empty/>
|
|
|
|
</element>
|
2008-07-08 12:05:13 +00:00
|
|
|
</optional>
|
2009-04-02 13:19:11 +00:00
|
|
|
<ref name="interface-options"/>
|
|
|
|
</interleave>
|
|
|
|
</group>
|
2007-01-10 10:08:06 +00:00
|
|
|
<group>
|
2009-04-02 13:19:11 +00:00
|
|
|
<attribute name="type">
|
2007-01-10 10:08:06 +00:00
|
|
|
<value>ethernet</value>
|
|
|
|
</attribute>
|
2009-04-02 13:19:11 +00:00
|
|
|
<interleave>
|
2008-07-08 12:05:13 +00:00
|
|
|
<optional>
|
2009-04-02 13:19:11 +00:00
|
|
|
<element name="source">
|
|
|
|
<attribute name="dev">
|
|
|
|
<ref name="deviceName"/>
|
|
|
|
</attribute>
|
|
|
|
<empty/>
|
|
|
|
</element>
|
2008-07-08 12:05:13 +00:00
|
|
|
</optional>
|
2009-04-02 13:19:11 +00:00
|
|
|
<ref name="interface-options"/>
|
|
|
|
</interleave>
|
|
|
|
</group>
|
2008-07-08 12:05:13 +00:00
|
|
|
<group>
|
2009-04-02 13:19:11 +00:00
|
|
|
<attribute name="type">
|
2008-07-08 12:05:13 +00:00
|
|
|
<value>network</value>
|
|
|
|
</attribute>
|
2009-04-02 13:19:11 +00:00
|
|
|
<interleave>
|
|
|
|
<element name="source">
|
|
|
|
<attribute name="network">
|
|
|
|
<ref name="deviceName"/>
|
|
|
|
</attribute>
|
2011-06-26 08:09:00 +00:00
|
|
|
<optional>
|
|
|
|
<attribute name="portgroup">
|
|
|
|
<ref name="deviceName"/>
|
|
|
|
</attribute>
|
|
|
|
</optional>
|
2009-04-02 13:19:11 +00:00
|
|
|
<empty/>
|
|
|
|
</element>
|
2011-06-26 08:09:00 +00:00
|
|
|
<optional>
|
|
|
|
<ref name="virtualPortProfile"/>
|
|
|
|
</optional>
|
2009-04-02 13:19:11 +00:00
|
|
|
<ref name="interface-options"/>
|
|
|
|
</interleave>
|
|
|
|
</group>
|
2010-02-15 16:43:42 +00:00
|
|
|
<group>
|
|
|
|
<attribute name="type">
|
|
|
|
<value>direct</value>
|
|
|
|
</attribute>
|
|
|
|
<interleave>
|
|
|
|
<element name="source">
|
|
|
|
<attribute name="dev">
|
|
|
|
<ref name="deviceName"/>
|
|
|
|
</attribute>
|
|
|
|
<optional>
|
|
|
|
<attribute name="mode">
|
|
|
|
<ref name="bridgeMode"/>
|
|
|
|
</attribute>
|
|
|
|
</optional>
|
|
|
|
<empty/>
|
|
|
|
</element>
|
2010-05-25 21:37:00 +00:00
|
|
|
<optional>
|
|
|
|
<ref name="virtualPortProfile"/>
|
|
|
|
</optional>
|
2010-02-15 16:43:42 +00:00
|
|
|
<ref name="interface-options"/>
|
|
|
|
</interleave>
|
|
|
|
</group>
|
2007-01-10 15:20:46 +00:00
|
|
|
<group>
|
2009-04-02 13:19:11 +00:00
|
|
|
<attribute name="type">
|
2007-01-10 15:20:46 +00:00
|
|
|
<value>user</value>
|
|
|
|
</attribute>
|
2009-04-02 13:19:11 +00:00
|
|
|
<interleave>
|
|
|
|
<ref name="interface-options"/>
|
|
|
|
</interleave>
|
|
|
|
</group>
|
2009-05-11 09:50:27 +00:00
|
|
|
<group>
|
|
|
|
<attribute name="type">
|
|
|
|
<value>internal</value>
|
|
|
|
</attribute>
|
|
|
|
<interleave>
|
|
|
|
<element name="source">
|
|
|
|
<attribute name="name">
|
|
|
|
<ref name="deviceName"/>
|
|
|
|
</attribute>
|
|
|
|
<empty/>
|
|
|
|
</element>
|
|
|
|
<ref name="interface-options"/>
|
|
|
|
</interleave>
|
|
|
|
</group>
|
2007-01-10 10:08:06 +00:00
|
|
|
</choice>
|
|
|
|
</element>
|
|
|
|
</define>
|
|
|
|
<!--
|
|
|
|
The interface options possible are:
|
|
|
|
- the MAC address
|
2009-04-02 13:19:11 +00:00
|
|
|
- the IP address bound to the interface
|
|
|
|
- the name of the script used to set up the binding
|
|
|
|
- the target device used
|
2011-01-12 14:19:34 +00:00
|
|
|
- boot order
|
2007-01-10 10:08:06 +00:00
|
|
|
-->
|
2009-04-02 13:19:11 +00:00
|
|
|
<define name="interface-options">
|
2008-07-08 12:05:13 +00:00
|
|
|
<interleave>
|
|
|
|
<optional>
|
2009-04-02 13:19:11 +00:00
|
|
|
<element name="target">
|
|
|
|
<attribute name="dev">
|
|
|
|
<ref name="deviceName"/>
|
|
|
|
</attribute>
|
|
|
|
<empty/>
|
|
|
|
</element>
|
2008-07-08 12:05:13 +00:00
|
|
|
</optional>
|
|
|
|
<optional>
|
2009-04-02 13:19:11 +00:00
|
|
|
<element name="mac">
|
|
|
|
<attribute name="address">
|
2011-06-26 09:13:10 +00:00
|
|
|
<ref name="macAddr"/>
|
2009-04-02 13:19:11 +00:00
|
|
|
</attribute>
|
|
|
|
<empty/>
|
|
|
|
</element>
|
2008-07-08 12:05:13 +00:00
|
|
|
</optional>
|
|
|
|
<optional>
|
2009-04-02 13:19:11 +00:00
|
|
|
<element name="ip">
|
|
|
|
<attribute name="address">
|
2011-06-26 09:13:10 +00:00
|
|
|
<ref name="ipv4Addr"/>
|
2009-04-02 13:19:11 +00:00
|
|
|
</attribute>
|
|
|
|
<empty/>
|
|
|
|
</element>
|
2008-07-08 12:05:13 +00:00
|
|
|
</optional>
|
|
|
|
<optional>
|
2009-04-02 13:19:11 +00:00
|
|
|
<element name="script">
|
|
|
|
<attribute name="path">
|
|
|
|
<ref name="filePath"/>
|
|
|
|
</attribute>
|
|
|
|
<empty/>
|
|
|
|
</element>
|
2008-07-08 12:05:13 +00:00
|
|
|
</optional>
|
|
|
|
<optional>
|
2009-04-02 13:19:11 +00:00
|
|
|
<element name="model">
|
|
|
|
<attribute name="type"/>
|
|
|
|
<empty/>
|
|
|
|
</element>
|
2008-07-08 12:05:13 +00:00
|
|
|
</optional>
|
2011-01-12 04:18:49 +00:00
|
|
|
<optional>
|
|
|
|
<element name="driver">
|
|
|
|
<optional>
|
|
|
|
<attribute name="name">
|
|
|
|
<choice>
|
|
|
|
<value>qemu</value>
|
|
|
|
<value>vhost</value>
|
|
|
|
</choice>
|
|
|
|
</attribute>
|
|
|
|
</optional>
|
Add txmode attribute to interface XML for virtio backend
This is in response to:
https://bugzilla.redhat.com/show_bug.cgi?id=629662
Explanation
qemu's virtio-net-pci driver allows setting the algorithm used for tx
packets to either "bh" or "timer". This is done by adding ",tx=bh" or
",tx=timer" to the "-device virtio-net-pci" commandline option.
'bh' stands for 'bottom half'; when this is set, packet tx is all done
in an iothread in the bottom half of the driver. (In libvirt, this
option is called the more descriptive "iothread".)
'timer' means that tx work is done in qemu, and if there is more tx
data than can be sent at the present time, a timer is set before qemu
moves on to do other things; when the timer fires, another attempt is
made to send more data. (libvirt retains the name "timer" for this
option.)
The resulting difference, according to the qemu developer who added
the option is:
bh makes tx more asynchronous and reduces latency, but potentially
causes more processor bandwidth contention since the cpu doing the
tx isn't necessarily the cpu where the guest generated the
packets.
Solution
This patch provides a libvirt domain xml knob to change the option on
the qemu commandline, by adding a new attribute "txmode" to the
<driver> element that can be placed inside any <interface> element in
a domain definition. It's use would be something like this:
<interface ...>
...
<model type='virtio'/>
<driver txmode='iothread'/>
...
</interface>
I chose to put this setting as an attribute to <driver> rather than as
a sub-element to <tune> because it is specific to the virtio-net
driver, not something that is generally usable by all network drivers.
(note that this is the same placement as the "driver name=..."
attribute used to choose kernel vs. userland backend for the
virtio-net driver.)
Actually adding the tx=xxx option to the qemu commandline is only done
if the version of qemu being used advertises it in the output of
qemu -device virtio-net-pci,?
If a particular txmode is requested in the XML, and the option isn't
listed in that help output, an UNSUPPORTED_CONFIG error is logged, and
the domain fails to start.
2011-02-03 20:20:01 +00:00
|
|
|
<optional>
|
|
|
|
<attribute name="txmode">
|
|
|
|
<choice>
|
|
|
|
<value>iothread</value>
|
|
|
|
<value>timer</value>
|
|
|
|
</choice>
|
|
|
|
</attribute>
|
|
|
|
</optional>
|
2011-06-20 08:26:47 +00:00
|
|
|
<optional>
|
|
|
|
<ref name="ioeventfd"/>
|
|
|
|
</optional>
|
2011-08-13 06:32:45 +00:00
|
|
|
<optional>
|
|
|
|
<ref name="event_idx"/>
|
|
|
|
</optional>
|
2011-01-12 04:18:49 +00:00
|
|
|
<empty/>
|
|
|
|
</element>
|
|
|
|
</optional>
|
2009-11-30 18:35:58 +00:00
|
|
|
<optional>
|
2010-02-17 16:16:42 +00:00
|
|
|
<ref name="address"/>
|
2009-11-30 18:35:58 +00:00
|
|
|
</optional>
|
2010-04-06 15:09:46 +00:00
|
|
|
<optional>
|
|
|
|
<element name="filterref">
|
|
|
|
<ref name="filterref-node-attributes"/>
|
|
|
|
</element>
|
|
|
|
</optional>
|
2011-01-12 19:38:01 +00:00
|
|
|
<optional>
|
|
|
|
<element name="tune">
|
|
|
|
<optional>
|
|
|
|
<!-- size of send buffer for network tap devices -->
|
|
|
|
<element name="sndbuf">
|
|
|
|
<ref name="unsignedInt"/>
|
|
|
|
</element>
|
|
|
|
</optional>
|
|
|
|
</element>
|
|
|
|
</optional>
|
2011-01-12 14:19:34 +00:00
|
|
|
<optional>
|
|
|
|
<ref name="deviceBoot"/>
|
|
|
|
</optional>
|
2011-07-22 14:07:23 +00:00
|
|
|
<optional>
|
|
|
|
<ref name="bandwidth"/>
|
|
|
|
</optional>
|
2008-07-08 12:05:13 +00:00
|
|
|
</interleave>
|
2007-01-09 16:29:18 +00:00
|
|
|
</define>
|
|
|
|
<!--
|
2008-07-08 12:05:13 +00:00
|
|
|
An emulator description is just a path to the binary used for the task
|
2007-01-09 16:29:18 +00:00
|
|
|
-->
|
2009-04-02 13:19:11 +00:00
|
|
|
<define name="emulator">
|
|
|
|
<element name="emulator">
|
|
|
|
<ref name="absFilePath"/>
|
2007-01-09 16:29:18 +00:00
|
|
|
</element>
|
|
|
|
</define>
|
|
|
|
<!--
|
2007-01-10 10:08:06 +00:00
|
|
|
A graphic description, currently in Xen only 2 types are supported:
|
2008-12-11 11:44:30 +00:00
|
|
|
- sdl with optional display, xauth and fullscreen
|
2009-04-02 13:19:11 +00:00
|
|
|
- vnc with a required port and optional listen IP address, password
|
2008-07-08 12:05:13 +00:00
|
|
|
and keymap
|
2007-01-09 16:29:18 +00:00
|
|
|
-->
|
2009-04-02 13:19:11 +00:00
|
|
|
<define name="graphic">
|
|
|
|
<element name="graphics">
|
2007-01-09 16:29:18 +00:00
|
|
|
<choice>
|
2009-04-02 13:19:11 +00:00
|
|
|
<group>
|
|
|
|
<attribute name="type">
|
|
|
|
<value>sdl</value>
|
|
|
|
</attribute>
|
|
|
|
<optional>
|
|
|
|
<attribute name="display">
|
|
|
|
<text/>
|
|
|
|
</attribute>
|
|
|
|
</optional>
|
2008-07-08 12:05:13 +00:00
|
|
|
<optional>
|
2009-04-02 13:19:11 +00:00
|
|
|
<attribute name="xauth">
|
2008-07-08 12:05:13 +00:00
|
|
|
<text/>
|
|
|
|
</attribute>
|
|
|
|
</optional>
|
2009-04-02 13:19:11 +00:00
|
|
|
<optional>
|
|
|
|
<attribute name="fullscreen">
|
|
|
|
<choice>
|
|
|
|
<value>yes</value>
|
|
|
|
<value>no</value>
|
|
|
|
</choice>
|
|
|
|
</attribute>
|
|
|
|
</optional>
|
|
|
|
</group>
|
|
|
|
<group>
|
|
|
|
<attribute name="type">
|
|
|
|
<value>vnc</value>
|
|
|
|
</attribute>
|
2011-01-07 21:03:07 +00:00
|
|
|
<choice>
|
|
|
|
<group>
|
|
|
|
<optional>
|
|
|
|
<attribute name="port">
|
|
|
|
<ref name="PortNumber"/>
|
|
|
|
</attribute>
|
|
|
|
</optional>
|
|
|
|
<optional>
|
|
|
|
<attribute name="autoport">
|
|
|
|
<choice>
|
|
|
|
<value>yes</value>
|
|
|
|
<value>no</value>
|
|
|
|
</choice>
|
|
|
|
</attribute>
|
|
|
|
</optional>
|
|
|
|
<optional>
|
|
|
|
<attribute name="listen">
|
2011-05-19 10:39:35 +00:00
|
|
|
<ref name="addrIPorName"/>
|
2011-01-07 21:03:07 +00:00
|
|
|
</attribute>
|
|
|
|
</optional>
|
|
|
|
</group>
|
|
|
|
<group>
|
|
|
|
<optional>
|
|
|
|
<attribute name="socket">
|
|
|
|
<ref name="absFilePath"/>
|
|
|
|
</attribute>
|
|
|
|
</optional>
|
|
|
|
</group>
|
|
|
|
</choice>
|
2009-04-02 13:19:11 +00:00
|
|
|
<optional>
|
|
|
|
<attribute name="passwd">
|
2009-08-14 09:54:14 +00:00
|
|
|
<text/>
|
|
|
|
</attribute>
|
|
|
|
</optional>
|
|
|
|
<optional>
|
|
|
|
<attribute name="keymap">
|
|
|
|
<text/>
|
|
|
|
</attribute>
|
|
|
|
</optional>
|
2011-05-26 11:47:39 +00:00
|
|
|
<optional>
|
|
|
|
<attribute name="passwdValidTo">
|
|
|
|
<data type="dateTime"/>
|
|
|
|
</attribute>
|
|
|
|
</optional>
|
2011-05-26 14:15:54 +00:00
|
|
|
<optional>
|
|
|
|
<attribute name="connected">
|
|
|
|
<choice>
|
|
|
|
<value>keep</value>
|
|
|
|
</choice>
|
|
|
|
</attribute>
|
|
|
|
</optional>
|
conf: add <listen> subelement to domain <graphics> element
Once it's plugged in, the <listen> element will be an optional
replacement for the "listen" attribute that graphics elements already
have. If the <listen> element is type='address', it will have an
attribute called 'address' which will contain an IP address or dns
name that the guest's display server should listen on. If, however,
type='network', the <listen> element should have an attribute called
'network' that will be set to the name of a network configuration to
get the IP address from.
* docs/schemas/domain.rng: updated to allow the <listen> element
* docs/formatdomain.html.in: document the <listen> element and its
attributes.
* src/conf/domain_conf.[hc]:
1) The domain parser, formatter, and data structure are modified to
support 0 or more <listen> subelements to each <graphics>
element. The old style "legacy" listen attribute is also still
accepted, and will be stored internally just as if it were a
separate <listen> element. On output (i.e. format), the address
attribute of the first <listen> element of type 'address' will be
duplicated in the legacy "listen" attribute of the <graphic>
element.
2) The "listenAddr" attribute has been removed from the unions in
virDomainGRaphicsDef for graphics types vnc, rdp, and spice.
This attribute is now in the <listen> subelement (aka
virDomainGraphicsListenDef)
3) Helper functions were written to provide simple access
(both Get and Set) to the listen elements and their attributes.
* src/libvirt_private.syms: export the listen helper functions
* src/qemu/qemu_command.c, src/qemu/qemu_hotplug.c,
src/qemu/qemu_migration.c, src/vbox/vbox_tmpl.c,
src/vmx/vmx.c, src/xenxs/xen_sxpr.c, src/xenxs/xen_xm.c
Modify all these files to use the listen helper functions rather
than directly referencing the (now missing) listenAddr
attribute. There can be multiple <listen> elements to a single
<graphics>, but the drivers all currently only support one, so all
replacements of direct access with a helper function indicate index
"0".
* tests/* - only 3 of these are new files added explicitly to test the
new <listen> element. All the others have been modified to reflect
the fact that any legacy "listen" attributes passed in to the domain
parse will be saved in a <listen> element (i.e. one of the
virDomainGraphicsListenDefs), and during the domain format function,
both the <listen> element as well as the legacy attributes will be
output.
2011-07-07 04:20:28 +00:00
|
|
|
<ref name="listenElements"/>
|
2009-08-14 09:54:14 +00:00
|
|
|
</group>
|
|
|
|
<group>
|
|
|
|
<attribute name="type">
|
|
|
|
<value>spice</value>
|
|
|
|
</attribute>
|
|
|
|
<optional>
|
|
|
|
<attribute name="port">
|
|
|
|
<ref name="PortNumber"/>
|
|
|
|
</attribute>
|
|
|
|
</optional>
|
|
|
|
<optional>
|
|
|
|
<attribute name="tlsPort">
|
|
|
|
<ref name="PortNumber"/>
|
|
|
|
</attribute>
|
|
|
|
</optional>
|
|
|
|
<optional>
|
|
|
|
<attribute name="autoport">
|
|
|
|
<choice>
|
|
|
|
<value>yes</value>
|
|
|
|
<value>no</value>
|
|
|
|
</choice>
|
|
|
|
</attribute>
|
|
|
|
</optional>
|
|
|
|
<optional>
|
|
|
|
<attribute name="listen">
|
2011-05-19 10:39:35 +00:00
|
|
|
<ref name="addrIPorName"/>
|
2009-08-14 09:54:14 +00:00
|
|
|
</attribute>
|
|
|
|
</optional>
|
|
|
|
<optional>
|
|
|
|
<attribute name="passwd">
|
2009-04-02 13:19:11 +00:00
|
|
|
<text/>
|
|
|
|
</attribute>
|
|
|
|
</optional>
|
|
|
|
<optional>
|
|
|
|
<attribute name="keymap">
|
|
|
|
<text/>
|
|
|
|
</attribute>
|
|
|
|
</optional>
|
2011-05-26 11:47:39 +00:00
|
|
|
<optional>
|
|
|
|
<attribute name="passwdValidTo">
|
|
|
|
<data type="dateTime"/>
|
|
|
|
</attribute>
|
|
|
|
</optional>
|
2011-05-26 14:15:54 +00:00
|
|
|
<optional>
|
|
|
|
<attribute name="connected">
|
|
|
|
<choice>
|
|
|
|
<value>fail</value>
|
|
|
|
<value>disconnect</value>
|
|
|
|
<value>keep</value>
|
|
|
|
</choice>
|
|
|
|
</attribute>
|
|
|
|
</optional>
|
2011-04-14 08:44:20 +00:00
|
|
|
<interleave>
|
conf: add <listen> subelement to domain <graphics> element
Once it's plugged in, the <listen> element will be an optional
replacement for the "listen" attribute that graphics elements already
have. If the <listen> element is type='address', it will have an
attribute called 'address' which will contain an IP address or dns
name that the guest's display server should listen on. If, however,
type='network', the <listen> element should have an attribute called
'network' that will be set to the name of a network configuration to
get the IP address from.
* docs/schemas/domain.rng: updated to allow the <listen> element
* docs/formatdomain.html.in: document the <listen> element and its
attributes.
* src/conf/domain_conf.[hc]:
1) The domain parser, formatter, and data structure are modified to
support 0 or more <listen> subelements to each <graphics>
element. The old style "legacy" listen attribute is also still
accepted, and will be stored internally just as if it were a
separate <listen> element. On output (i.e. format), the address
attribute of the first <listen> element of type 'address' will be
duplicated in the legacy "listen" attribute of the <graphic>
element.
2) The "listenAddr" attribute has been removed from the unions in
virDomainGRaphicsDef for graphics types vnc, rdp, and spice.
This attribute is now in the <listen> subelement (aka
virDomainGraphicsListenDef)
3) Helper functions were written to provide simple access
(both Get and Set) to the listen elements and their attributes.
* src/libvirt_private.syms: export the listen helper functions
* src/qemu/qemu_command.c, src/qemu/qemu_hotplug.c,
src/qemu/qemu_migration.c, src/vbox/vbox_tmpl.c,
src/vmx/vmx.c, src/xenxs/xen_sxpr.c, src/xenxs/xen_xm.c
Modify all these files to use the listen helper functions rather
than directly referencing the (now missing) listenAddr
attribute. There can be multiple <listen> elements to a single
<graphics>, but the drivers all currently only support one, so all
replacements of direct access with a helper function indicate index
"0".
* tests/* - only 3 of these are new files added explicitly to test the
new <listen> element. All the others have been modified to reflect
the fact that any legacy "listen" attributes passed in to the domain
parse will be saved in a <listen> element (i.e. one of the
virDomainGraphicsListenDefs), and during the domain format function,
both the <listen> element as well as the legacy attributes will be
output.
2011-07-07 04:20:28 +00:00
|
|
|
<ref name="listenElements"/>
|
2011-04-14 08:44:20 +00:00
|
|
|
<zeroOrMore>
|
|
|
|
<element name="channel">
|
|
|
|
<attribute name="name">
|
|
|
|
<choice>
|
|
|
|
<value>main</value>
|
|
|
|
<value>display</value>
|
|
|
|
<value>inputs</value>
|
|
|
|
<value>cursor</value>
|
|
|
|
<value>playback</value>
|
|
|
|
<value>record</value>
|
|
|
|
<value>smartcard</value>
|
|
|
|
</choice>
|
|
|
|
</attribute>
|
|
|
|
<attribute name="mode">
|
|
|
|
<choice>
|
|
|
|
<value>any</value>
|
|
|
|
<value>secure</value>
|
|
|
|
<value>insecure</value>
|
|
|
|
</choice>
|
|
|
|
</attribute>
|
|
|
|
<empty/>
|
|
|
|
</element>
|
|
|
|
</zeroOrMore>
|
|
|
|
<optional>
|
|
|
|
<element name="image">
|
|
|
|
<attribute name="compression">
|
|
|
|
<choice>
|
|
|
|
<value>auto_glz</value>
|
|
|
|
<value>auto_lz</value>
|
|
|
|
<value>quic</value>
|
|
|
|
<value>glz</value>
|
|
|
|
<value>lz</value>
|
|
|
|
<value>off</value>
|
|
|
|
</choice>
|
|
|
|
</attribute>
|
|
|
|
<empty/>
|
|
|
|
</element>
|
|
|
|
</optional>
|
|
|
|
<optional>
|
|
|
|
<element name="jpeg">
|
|
|
|
<attribute name="compression">
|
|
|
|
<choice>
|
|
|
|
<value>auto</value>
|
|
|
|
<value>never</value>
|
|
|
|
<value>always</value>
|
|
|
|
</choice>
|
|
|
|
</attribute>
|
|
|
|
<empty/>
|
|
|
|
</element>
|
|
|
|
</optional>
|
|
|
|
<optional>
|
|
|
|
<element name="zlib">
|
|
|
|
<attribute name="compression">
|
|
|
|
<choice>
|
|
|
|
<value>auto</value>
|
|
|
|
<value>never</value>
|
|
|
|
<value>always</value>
|
|
|
|
</choice>
|
|
|
|
</attribute>
|
|
|
|
<empty/>
|
|
|
|
</element>
|
|
|
|
</optional>
|
|
|
|
<optional>
|
|
|
|
<element name="playback">
|
|
|
|
<attribute name="compression">
|
|
|
|
<choice>
|
|
|
|
<value>on</value>
|
|
|
|
<value>off</value>
|
|
|
|
</choice>
|
|
|
|
</attribute>
|
2011-05-23 15:16:42 +00:00
|
|
|
<empty/>
|
|
|
|
</element>
|
|
|
|
</optional>
|
|
|
|
<optional>
|
|
|
|
<element name="streaming">
|
|
|
|
<attribute name="mode">
|
|
|
|
<choice>
|
|
|
|
<value>filter</value>
|
|
|
|
<value>all</value>
|
|
|
|
<value>off</value>
|
|
|
|
</choice>
|
|
|
|
</attribute>
|
2011-04-14 08:44:20 +00:00
|
|
|
<empty/>
|
|
|
|
</element>
|
|
|
|
</optional>
|
2011-06-14 11:35:48 +00:00
|
|
|
<optional>
|
|
|
|
<element name="clipboard">
|
|
|
|
<attribute name="copypaste">
|
|
|
|
<choice>
|
|
|
|
<value>yes</value>
|
|
|
|
<value>no</value>
|
|
|
|
</choice>
|
|
|
|
</attribute>
|
|
|
|
<empty/>
|
|
|
|
</element>
|
|
|
|
</optional>
|
2011-04-14 08:44:20 +00:00
|
|
|
</interleave>
|
2009-04-02 13:19:11 +00:00
|
|
|
</group>
|
2009-05-15 09:43:51 +00:00
|
|
|
<group>
|
|
|
|
<attribute name="type">
|
|
|
|
<value>rdp</value>
|
|
|
|
</attribute>
|
|
|
|
<optional>
|
|
|
|
<attribute name="port">
|
|
|
|
<ref name="PortNumber"/>
|
|
|
|
</attribute>
|
|
|
|
</optional>
|
|
|
|
<optional>
|
|
|
|
<attribute name="autoport">
|
|
|
|
<choice>
|
|
|
|
<value>yes</value>
|
|
|
|
<value>no</value>
|
|
|
|
</choice>
|
|
|
|
</attribute>
|
|
|
|
</optional>
|
|
|
|
<optional>
|
|
|
|
<attribute name="replaceUser">
|
|
|
|
<choice>
|
|
|
|
<value>yes</value>
|
|
|
|
<value>no</value>
|
|
|
|
</choice>
|
|
|
|
</attribute>
|
|
|
|
</optional>
|
|
|
|
<optional>
|
|
|
|
<attribute name="multiUser">
|
|
|
|
<choice>
|
|
|
|
<value>yes</value>
|
|
|
|
<value>no</value>
|
|
|
|
</choice>
|
|
|
|
</attribute>
|
|
|
|
</optional>
|
|
|
|
<optional>
|
|
|
|
<attribute name="listen">
|
2011-05-19 10:39:35 +00:00
|
|
|
<ref name="addrIPorName"/>
|
2009-05-15 09:43:51 +00:00
|
|
|
</attribute>
|
|
|
|
</optional>
|
conf: add <listen> subelement to domain <graphics> element
Once it's plugged in, the <listen> element will be an optional
replacement for the "listen" attribute that graphics elements already
have. If the <listen> element is type='address', it will have an
attribute called 'address' which will contain an IP address or dns
name that the guest's display server should listen on. If, however,
type='network', the <listen> element should have an attribute called
'network' that will be set to the name of a network configuration to
get the IP address from.
* docs/schemas/domain.rng: updated to allow the <listen> element
* docs/formatdomain.html.in: document the <listen> element and its
attributes.
* src/conf/domain_conf.[hc]:
1) The domain parser, formatter, and data structure are modified to
support 0 or more <listen> subelements to each <graphics>
element. The old style "legacy" listen attribute is also still
accepted, and will be stored internally just as if it were a
separate <listen> element. On output (i.e. format), the address
attribute of the first <listen> element of type 'address' will be
duplicated in the legacy "listen" attribute of the <graphic>
element.
2) The "listenAddr" attribute has been removed from the unions in
virDomainGRaphicsDef for graphics types vnc, rdp, and spice.
This attribute is now in the <listen> subelement (aka
virDomainGraphicsListenDef)
3) Helper functions were written to provide simple access
(both Get and Set) to the listen elements and their attributes.
* src/libvirt_private.syms: export the listen helper functions
* src/qemu/qemu_command.c, src/qemu/qemu_hotplug.c,
src/qemu/qemu_migration.c, src/vbox/vbox_tmpl.c,
src/vmx/vmx.c, src/xenxs/xen_sxpr.c, src/xenxs/xen_xm.c
Modify all these files to use the listen helper functions rather
than directly referencing the (now missing) listenAddr
attribute. There can be multiple <listen> elements to a single
<graphics>, but the drivers all currently only support one, so all
replacements of direct access with a helper function indicate index
"0".
* tests/* - only 3 of these are new files added explicitly to test the
new <listen> element. All the others have been modified to reflect
the fact that any legacy "listen" attributes passed in to the domain
parse will be saved in a <listen> element (i.e. one of the
virDomainGraphicsListenDefs), and during the domain format function,
both the <listen> element as well as the legacy attributes will be
output.
2011-07-07 04:20:28 +00:00
|
|
|
<ref name="listenElements"/>
|
2009-05-15 09:43:51 +00:00
|
|
|
</group>
|
|
|
|
<group>
|
|
|
|
<attribute name="type">
|
|
|
|
<value>desktop</value>
|
|
|
|
</attribute>
|
|
|
|
<optional>
|
|
|
|
<attribute name="display">
|
|
|
|
<text/>
|
|
|
|
</attribute>
|
|
|
|
</optional>
|
|
|
|
<optional>
|
|
|
|
<attribute name="fullscreen">
|
|
|
|
<choice>
|
|
|
|
<value>yes</value>
|
|
|
|
<value>no</value>
|
|
|
|
</choice>
|
|
|
|
</attribute>
|
|
|
|
</optional>
|
|
|
|
</group>
|
2007-01-09 16:29:18 +00:00
|
|
|
</choice>
|
|
|
|
</element>
|
|
|
|
</define>
|
conf: add <listen> subelement to domain <graphics> element
Once it's plugged in, the <listen> element will be an optional
replacement for the "listen" attribute that graphics elements already
have. If the <listen> element is type='address', it will have an
attribute called 'address' which will contain an IP address or dns
name that the guest's display server should listen on. If, however,
type='network', the <listen> element should have an attribute called
'network' that will be set to the name of a network configuration to
get the IP address from.
* docs/schemas/domain.rng: updated to allow the <listen> element
* docs/formatdomain.html.in: document the <listen> element and its
attributes.
* src/conf/domain_conf.[hc]:
1) The domain parser, formatter, and data structure are modified to
support 0 or more <listen> subelements to each <graphics>
element. The old style "legacy" listen attribute is also still
accepted, and will be stored internally just as if it were a
separate <listen> element. On output (i.e. format), the address
attribute of the first <listen> element of type 'address' will be
duplicated in the legacy "listen" attribute of the <graphic>
element.
2) The "listenAddr" attribute has been removed from the unions in
virDomainGRaphicsDef for graphics types vnc, rdp, and spice.
This attribute is now in the <listen> subelement (aka
virDomainGraphicsListenDef)
3) Helper functions were written to provide simple access
(both Get and Set) to the listen elements and their attributes.
* src/libvirt_private.syms: export the listen helper functions
* src/qemu/qemu_command.c, src/qemu/qemu_hotplug.c,
src/qemu/qemu_migration.c, src/vbox/vbox_tmpl.c,
src/vmx/vmx.c, src/xenxs/xen_sxpr.c, src/xenxs/xen_xm.c
Modify all these files to use the listen helper functions rather
than directly referencing the (now missing) listenAddr
attribute. There can be multiple <listen> elements to a single
<graphics>, but the drivers all currently only support one, so all
replacements of direct access with a helper function indicate index
"0".
* tests/* - only 3 of these are new files added explicitly to test the
new <listen> element. All the others have been modified to reflect
the fact that any legacy "listen" attributes passed in to the domain
parse will be saved in a <listen> element (i.e. one of the
virDomainGraphicsListenDefs), and during the domain format function,
both the <listen> element as well as the legacy attributes will be
output.
2011-07-07 04:20:28 +00:00
|
|
|
|
|
|
|
<define name="listenElements">
|
|
|
|
<zeroOrMore>
|
|
|
|
<element name="listen">
|
|
|
|
<choice>
|
|
|
|
<group>
|
|
|
|
<attribute name="type">
|
|
|
|
<value>address</value>
|
|
|
|
</attribute>
|
|
|
|
<attribute name="address">
|
|
|
|
<ref name="addrIPorName"/>
|
|
|
|
</attribute>
|
|
|
|
</group>
|
|
|
|
<group>
|
|
|
|
<attribute name="type">
|
|
|
|
<value>network</value>
|
|
|
|
</attribute>
|
|
|
|
<attribute name="network">
|
|
|
|
<text/>
|
|
|
|
</attribute>
|
|
|
|
<optional>
|
|
|
|
<attribute name="address">
|
|
|
|
<ref name="addrIPorName"/>
|
|
|
|
</attribute>
|
|
|
|
</optional>
|
|
|
|
</group>
|
|
|
|
</choice>
|
|
|
|
</element>
|
|
|
|
</zeroOrMore>
|
|
|
|
</define>
|
2009-07-06 13:54:44 +00:00
|
|
|
<!--
|
2010-04-12 17:16:38 +00:00
|
|
|
A video adapter description, allowing configuration of device
|
|
|
|
model, number of virtual heads, and video ram size
|
2009-07-06 13:54:44 +00:00
|
|
|
-->
|
|
|
|
<define name="video">
|
|
|
|
<element name="video">
|
|
|
|
<optional>
|
2009-10-21 12:26:38 +00:00
|
|
|
<element name="model">
|
2009-07-06 13:54:44 +00:00
|
|
|
<attribute name="type">
|
|
|
|
<choice>
|
|
|
|
<value>vga</value>
|
|
|
|
<value>cirrus</value>
|
|
|
|
<value>vmvga</value>
|
|
|
|
<value>xen</value>
|
|
|
|
<value>vbox</value>
|
2009-07-08 13:47:14 +00:00
|
|
|
<value>qxl</value>
|
2009-07-06 13:54:44 +00:00
|
|
|
</choice>
|
|
|
|
</attribute>
|
|
|
|
<optional>
|
|
|
|
<attribute name="vram">
|
|
|
|
<ref name="unsignedInt"/>
|
|
|
|
</attribute>
|
|
|
|
</optional>
|
|
|
|
<optional>
|
|
|
|
<attribute name="heads">
|
|
|
|
<ref name="unsignedInt"/>
|
|
|
|
</attribute>
|
|
|
|
</optional>
|
2009-09-03 08:26:41 +00:00
|
|
|
<optional>
|
|
|
|
<element name="acceleration">
|
|
|
|
<optional>
|
|
|
|
<attribute name="accel3d">
|
|
|
|
<choice>
|
|
|
|
<value>yes</value>
|
|
|
|
<value>no</value>
|
|
|
|
</choice>
|
|
|
|
</attribute>
|
|
|
|
</optional>
|
|
|
|
<optional>
|
|
|
|
<attribute name="accel2d">
|
|
|
|
<choice>
|
|
|
|
<value>yes</value>
|
|
|
|
<value>no</value>
|
|
|
|
</choice>
|
|
|
|
</attribute>
|
|
|
|
</optional>
|
|
|
|
</element>
|
|
|
|
</optional>
|
2009-10-21 12:26:38 +00:00
|
|
|
</element>
|
2009-07-06 13:54:44 +00:00
|
|
|
</optional>
|
2009-12-10 19:19:08 +00:00
|
|
|
<optional>
|
|
|
|
<ref name="address"/>
|
|
|
|
</optional>
|
2009-07-06 13:54:44 +00:00
|
|
|
</element>
|
|
|
|
</define>
|
2007-01-09 16:29:18 +00:00
|
|
|
<!--
|
|
|
|
When a domain terminates multiple policies can be applied depending
|
|
|
|
on how it ended:
|
|
|
|
-->
|
2009-04-02 13:19:11 +00:00
|
|
|
<define name="termination">
|
2007-01-09 16:29:18 +00:00
|
|
|
<interleave>
|
|
|
|
<optional>
|
2009-04-02 13:19:11 +00:00
|
|
|
<element name="on_reboot">
|
|
|
|
<ref name="offOptions"/>
|
|
|
|
</element>
|
2007-01-09 16:29:18 +00:00
|
|
|
</optional>
|
|
|
|
<optional>
|
2009-04-02 13:19:11 +00:00
|
|
|
<element name="on_poweroff">
|
|
|
|
<ref name="offOptions"/>
|
|
|
|
</element>
|
2007-01-09 16:29:18 +00:00
|
|
|
</optional>
|
|
|
|
<optional>
|
2009-04-02 13:19:11 +00:00
|
|
|
<element name="on_crash">
|
2010-08-12 17:15:44 +00:00
|
|
|
<ref name="crashOptions"/>
|
2009-04-02 13:19:11 +00:00
|
|
|
</element>
|
2007-01-09 16:29:18 +00:00
|
|
|
</optional>
|
|
|
|
</interleave>
|
|
|
|
</define>
|
|
|
|
<!--
|
|
|
|
Options when a domain terminates:
|
|
|
|
destroy: The domain is cleaned up
|
|
|
|
restart: A new domain is started in place of the old one
|
|
|
|
preserve: The domain will remain in memory until it is destroyed manually
|
|
|
|
rename-restart: a variant of the previous one but where the old domain is
|
|
|
|
renamed before being saved to allow a restart
|
|
|
|
-->
|
2009-04-02 13:19:11 +00:00
|
|
|
<define name="offOptions">
|
2007-01-09 16:29:18 +00:00
|
|
|
<choice>
|
|
|
|
<value>destroy</value>
|
|
|
|
<value>restart</value>
|
|
|
|
<value>preserve</value>
|
|
|
|
<value>rename-restart</value>
|
|
|
|
</choice>
|
|
|
|
</define>
|
2010-08-12 17:15:44 +00:00
|
|
|
<!--
|
|
|
|
Options when a domain crashes:
|
|
|
|
destroy: The domain is cleaned up
|
|
|
|
restart: A new domain is started in place of the old one
|
|
|
|
preserve: The domain will remain in memory until it is destroyed manually
|
|
|
|
rename-restart: a variant of the previous one but where the old domain is
|
|
|
|
renamed before being saved to allow a restart
|
|
|
|
coredump-destroy: The crashed domain's core will be dumped, and then the
|
|
|
|
domain will be terminated completely and all resources
|
|
|
|
released
|
|
|
|
coredump-restart: The crashed domain's core will be dumped, and then the
|
|
|
|
domain will be restarted with the same configuration
|
|
|
|
-->
|
|
|
|
<define name="crashOptions">
|
|
|
|
<choice>
|
|
|
|
<value>destroy</value>
|
|
|
|
<value>restart</value>
|
|
|
|
<value>preserve</value>
|
|
|
|
<value>rename-restart</value>
|
|
|
|
<value>coredump-destroy</value>
|
|
|
|
<value>coredump-restart</value>
|
|
|
|
</choice>
|
|
|
|
</define>
|
2008-07-08 12:05:13 +00:00
|
|
|
<!--
|
|
|
|
Specific setup for a qemu emulated character device. Note: this
|
|
|
|
definition doesn't fully specify the constraints on this node.
|
|
|
|
-->
|
2009-04-02 13:19:11 +00:00
|
|
|
<define name="qemucdev">
|
2009-11-05 14:31:03 +00:00
|
|
|
<ref name="qemucdevSrcType"/>
|
2009-11-18 10:25:20 +00:00
|
|
|
<optional>
|
|
|
|
<attribute name="tty">
|
2010-11-22 16:46:13 +00:00
|
|
|
<ref name="absFilePath"/>
|
2009-11-18 10:25:20 +00:00
|
|
|
</attribute>
|
|
|
|
</optional>
|
2009-11-05 14:31:03 +00:00
|
|
|
<interleave>
|
|
|
|
<ref name="qemucdevSrcDef"/>
|
|
|
|
<optional>
|
2010-07-22 17:56:21 +00:00
|
|
|
<ref name="qemucdevTgtDef"/>
|
2009-11-05 14:31:03 +00:00
|
|
|
</optional>
|
Add device info to serial, parallel, channel, input & fs devices
Although the serial, parallel, chanel, input & fs devices do
not have PCI address info, they can all have device aliases.
Thus it neccessary to associate the virDomainDeviceInfo data
with them all.
* src/conf/domain_conf.c, src/conf/domain_conf.h: Add hooks for
parsing / formatting device info for serial, parallel, channel
input and fs devices.
* docs/schemas/domain.rng: Associate device info with character
devices, input & fs device
2010-01-06 12:39:53 +00:00
|
|
|
<optional>
|
2010-02-17 16:16:42 +00:00
|
|
|
<ref name="address"/>
|
Add device info to serial, parallel, channel, input & fs devices
Although the serial, parallel, chanel, input & fs devices do
not have PCI address info, they can all have device aliases.
Thus it neccessary to associate the virDomainDeviceInfo data
with them all.
* src/conf/domain_conf.c, src/conf/domain_conf.h: Add hooks for
parsing / formatting device info for serial, parallel, channel
input and fs devices.
* docs/schemas/domain.rng: Associate device info with character
devices, input & fs device
2010-01-06 12:39:53 +00:00
|
|
|
</optional>
|
2009-11-05 14:31:03 +00:00
|
|
|
</interleave>
|
|
|
|
</define>
|
2010-07-22 17:56:21 +00:00
|
|
|
|
|
|
|
<define name="qemucdevConsoleTgtType">
|
|
|
|
<attribute name="type">
|
|
|
|
<choice>
|
|
|
|
<value>xen</value>
|
|
|
|
<value>serial</value>
|
|
|
|
<value>uml</value>
|
2010-07-14 17:02:04 +00:00
|
|
|
<value>virtio</value>
|
2010-07-22 17:56:21 +00:00
|
|
|
</choice>
|
|
|
|
</attribute>
|
|
|
|
</define>
|
|
|
|
|
|
|
|
<define name="qemucdevTgtDef">
|
|
|
|
<element name="target">
|
|
|
|
<interleave>
|
|
|
|
<optional>
|
|
|
|
<ref name="qemucdevConsoleTgtType"/>
|
|
|
|
</optional>
|
|
|
|
<optional>
|
|
|
|
<attribute name="port"/>
|
|
|
|
</optional>
|
|
|
|
</interleave>
|
|
|
|
</element>
|
|
|
|
</define>
|
|
|
|
|
2009-11-05 14:31:03 +00:00
|
|
|
<define name="qemucdevSrcType">
|
2009-04-02 13:19:11 +00:00
|
|
|
<attribute name="type">
|
2008-07-08 12:05:13 +00:00
|
|
|
<choice>
|
|
|
|
<value>dev</value>
|
|
|
|
<value>file</value>
|
|
|
|
<value>pipe</value>
|
|
|
|
<value>unix</value>
|
|
|
|
<value>tcp</value>
|
|
|
|
<value>udp</value>
|
|
|
|
<value>null</value>
|
|
|
|
<value>stdio</value>
|
|
|
|
<value>vc</value>
|
|
|
|
<value>pty</value>
|
2011-02-03 04:09:44 +00:00
|
|
|
<value>spicevmc</value>
|
2008-07-08 12:05:13 +00:00
|
|
|
</choice>
|
|
|
|
</attribute>
|
2009-11-05 14:31:03 +00:00
|
|
|
</define>
|
|
|
|
<define name="qemucdevSrcDef">
|
2009-12-11 07:46:11 +00:00
|
|
|
<zeroOrMore>
|
|
|
|
<element name="source">
|
|
|
|
<optional>
|
|
|
|
<attribute name="mode"/>
|
|
|
|
</optional>
|
|
|
|
<optional>
|
|
|
|
<attribute name="path"/>
|
|
|
|
</optional>
|
|
|
|
<optional>
|
|
|
|
<attribute name="host"/>
|
|
|
|
</optional>
|
|
|
|
<optional>
|
|
|
|
<attribute name="service"/>
|
|
|
|
</optional>
|
|
|
|
<optional>
|
|
|
|
<attribute name="wiremode"/>
|
|
|
|
</optional>
|
|
|
|
</element>
|
|
|
|
</zeroOrMore>
|
2009-11-05 14:31:03 +00:00
|
|
|
<optional>
|
|
|
|
<element name="protocol">
|
|
|
|
<optional>
|
2011-01-06 00:13:16 +00:00
|
|
|
<attribute name="type">
|
|
|
|
<choice>
|
|
|
|
<value>raw</value>
|
|
|
|
<value>telnet</value>
|
|
|
|
<value>telnets</value>
|
|
|
|
<value>tls</value>
|
|
|
|
</choice>
|
|
|
|
</attribute>
|
2009-11-05 14:31:03 +00:00
|
|
|
</optional>
|
|
|
|
</element>
|
|
|
|
</optional>
|
2008-07-08 12:05:13 +00:00
|
|
|
</define>
|
2007-01-09 16:29:18 +00:00
|
|
|
<!--
|
|
|
|
The description for a console
|
|
|
|
just a tty device
|
|
|
|
-->
|
2009-04-02 13:19:11 +00:00
|
|
|
<define name="console">
|
|
|
|
<element name="console">
|
2008-07-08 12:05:13 +00:00
|
|
|
<choice>
|
|
|
|
<group>
|
|
|
|
<optional>
|
2009-04-02 13:19:11 +00:00
|
|
|
<attribute name="tty">
|
2010-11-22 16:46:13 +00:00
|
|
|
<ref name="absFilePath"/>
|
2008-07-08 12:05:13 +00:00
|
|
|
</attribute>
|
|
|
|
</optional>
|
|
|
|
<empty/>
|
|
|
|
</group>
|
2010-07-14 17:02:04 +00:00
|
|
|
<choice>
|
|
|
|
<ref name="qemucdev"/>
|
|
|
|
</choice>
|
2008-07-08 12:05:13 +00:00
|
|
|
</choice>
|
|
|
|
</element>
|
|
|
|
</define>
|
2009-04-02 13:19:11 +00:00
|
|
|
<define name="sound">
|
|
|
|
<element name="sound">
|
|
|
|
<attribute name="model">
|
2008-07-08 12:05:13 +00:00
|
|
|
<choice>
|
|
|
|
<value>sb16</value>
|
|
|
|
<value>es1370</value>
|
|
|
|
<value>pcspk</value>
|
2009-03-16 10:47:12 +00:00
|
|
|
<value>ac97</value>
|
2011-01-13 14:15:11 +00:00
|
|
|
<value>ich6</value>
|
2008-07-08 12:05:13 +00:00
|
|
|
</choice>
|
2007-01-09 16:29:18 +00:00
|
|
|
</attribute>
|
2009-12-10 19:19:08 +00:00
|
|
|
<optional>
|
|
|
|
<ref name="address"/>
|
|
|
|
</optional>
|
2007-01-09 16:29:18 +00:00
|
|
|
</element>
|
|
|
|
</define>
|
2009-10-21 12:26:38 +00:00
|
|
|
<define name="watchdog">
|
|
|
|
<element name="watchdog">
|
|
|
|
<attribute name="model">
|
|
|
|
<choice>
|
|
|
|
<value>i6300esb</value>
|
|
|
|
<value>ib700</value>
|
|
|
|
</choice>
|
|
|
|
</attribute>
|
|
|
|
<optional>
|
|
|
|
<attribute name="action">
|
|
|
|
<choice>
|
|
|
|
<value>reset</value>
|
|
|
|
<value>shutdown</value>
|
|
|
|
<value>poweroff</value>
|
|
|
|
<value>pause</value>
|
|
|
|
<value>none</value>
|
2010-12-10 05:52:11 +00:00
|
|
|
<value>dump</value>
|
2009-10-21 12:26:38 +00:00
|
|
|
</choice>
|
|
|
|
</attribute>
|
|
|
|
</optional>
|
2009-12-10 19:19:08 +00:00
|
|
|
<optional>
|
|
|
|
<ref name="address"/>
|
|
|
|
</optional>
|
2009-10-21 12:26:38 +00:00
|
|
|
</element>
|
|
|
|
</define>
|
2010-07-15 13:02:42 +00:00
|
|
|
<define name="memballoon">
|
|
|
|
<element name="memballoon">
|
|
|
|
<attribute name="model">
|
|
|
|
<choice>
|
|
|
|
<value>virtio</value>
|
|
|
|
<value>xen</value>
|
2010-08-11 09:28:17 +00:00
|
|
|
<value>none</value>
|
2010-07-15 13:02:42 +00:00
|
|
|
</choice>
|
|
|
|
</attribute>
|
|
|
|
<optional>
|
|
|
|
<ref name="address"/>
|
|
|
|
</optional>
|
|
|
|
</element>
|
|
|
|
</define>
|
2009-04-02 13:19:11 +00:00
|
|
|
<define name="parallel">
|
|
|
|
<element name="parallel">
|
|
|
|
<ref name="qemucdev"/>
|
2008-07-08 12:05:13 +00:00
|
|
|
</element>
|
|
|
|
</define>
|
2009-04-02 13:19:11 +00:00
|
|
|
<define name="serial">
|
|
|
|
<element name="serial">
|
|
|
|
<ref name="qemucdev"/>
|
2008-07-08 12:05:13 +00:00
|
|
|
</element>
|
|
|
|
</define>
|
2009-11-05 14:31:03 +00:00
|
|
|
<define name="guestfwdTarget">
|
|
|
|
<element name="target">
|
2009-11-13 15:03:43 +00:00
|
|
|
<attribute name="type">
|
|
|
|
<value>guestfwd</value>
|
|
|
|
</attribute>
|
|
|
|
<attribute name="address"/>
|
|
|
|
<attribute name="port"/>
|
2009-11-05 14:31:03 +00:00
|
|
|
</element>
|
|
|
|
</define>
|
2010-02-18 16:52:03 +00:00
|
|
|
<define name="virtioTarget">
|
|
|
|
<element name="target">
|
|
|
|
<attribute name="type">
|
2011-02-03 04:09:44 +00:00
|
|
|
<value>virtio</value>
|
2010-02-18 16:52:03 +00:00
|
|
|
</attribute>
|
|
|
|
<optional>
|
|
|
|
<attribute name="name"/>
|
|
|
|
</optional>
|
|
|
|
</element>
|
|
|
|
</define>
|
2009-11-05 14:31:03 +00:00
|
|
|
<define name="channel">
|
|
|
|
<element name="channel">
|
|
|
|
<ref name="qemucdevSrcType"/>
|
|
|
|
<interleave>
|
|
|
|
<ref name="qemucdevSrcDef"/>
|
2010-02-18 16:52:03 +00:00
|
|
|
<choice>
|
|
|
|
<ref name="guestfwdTarget"/>
|
|
|
|
<ref name="virtioTarget"/>
|
|
|
|
</choice>
|
2010-02-17 16:16:42 +00:00
|
|
|
<optional>
|
|
|
|
<ref name="address"/>
|
|
|
|
</optional>
|
2009-11-05 14:31:03 +00:00
|
|
|
</interleave>
|
|
|
|
</element>
|
|
|
|
</define>
|
2011-01-06 01:02:20 +00:00
|
|
|
<define name="smartcard">
|
|
|
|
<element name="smartcard">
|
|
|
|
<choice>
|
|
|
|
<group>
|
|
|
|
<attribute name="mode">
|
|
|
|
<value>host</value>
|
|
|
|
</attribute>
|
|
|
|
<!-- might need to add optional database element here later -->
|
|
|
|
</group>
|
|
|
|
<group>
|
|
|
|
<attribute name="mode">
|
|
|
|
<value>host-certificates</value>
|
|
|
|
</attribute>
|
|
|
|
<ref name='certificate'/>
|
|
|
|
<ref name='certificate'/>
|
|
|
|
<ref name='certificate'/>
|
|
|
|
<optional>
|
|
|
|
<element name="database">
|
|
|
|
<ref name="absDirPath"/>
|
|
|
|
</element>
|
|
|
|
</optional>
|
|
|
|
</group>
|
|
|
|
<group>
|
|
|
|
<attribute name="mode">
|
|
|
|
<value>passthrough</value>
|
|
|
|
</attribute>
|
|
|
|
<ref name="qemucdevSrcType"/>
|
|
|
|
<interleave>
|
|
|
|
<ref name="qemucdevSrcDef"/>
|
|
|
|
<optional>
|
|
|
|
<ref name="qemucdevTgtDef"/>
|
|
|
|
</optional>
|
|
|
|
</interleave>
|
|
|
|
</group>
|
|
|
|
</choice>
|
|
|
|
<optional>
|
|
|
|
<ref name="address"/>
|
|
|
|
</optional>
|
|
|
|
</element>
|
|
|
|
</define>
|
|
|
|
<define name="certificate">
|
|
|
|
<element name="certificate">
|
|
|
|
<text/>
|
|
|
|
</element>
|
|
|
|
</define>
|
2009-04-02 13:19:11 +00:00
|
|
|
<define name="input">
|
|
|
|
<element name="input">
|
|
|
|
<attribute name="type">
|
2008-07-08 12:05:13 +00:00
|
|
|
<choice>
|
|
|
|
<value>tablet</value>
|
|
|
|
<value>mouse</value>
|
|
|
|
</choice>
|
|
|
|
</attribute>
|
|
|
|
<optional>
|
2009-04-02 13:19:11 +00:00
|
|
|
<attribute name="bus">
|
2008-07-08 12:05:13 +00:00
|
|
|
<choice>
|
|
|
|
<value>ps2</value>
|
|
|
|
<value>usb</value>
|
|
|
|
<value>xen</value>
|
|
|
|
</choice>
|
|
|
|
</attribute>
|
|
|
|
</optional>
|
Add device info to serial, parallel, channel, input & fs devices
Although the serial, parallel, chanel, input & fs devices do
not have PCI address info, they can all have device aliases.
Thus it neccessary to associate the virDomainDeviceInfo data
with them all.
* src/conf/domain_conf.c, src/conf/domain_conf.h: Add hooks for
parsing / formatting device info for serial, parallel, channel
input and fs devices.
* docs/schemas/domain.rng: Associate device info with character
devices, input & fs device
2010-01-06 12:39:53 +00:00
|
|
|
<optional>
|
2010-02-17 16:16:42 +00:00
|
|
|
<ref name="address"/>
|
Add device info to serial, parallel, channel, input & fs devices
Although the serial, parallel, chanel, input & fs devices do
not have PCI address info, they can all have device aliases.
Thus it neccessary to associate the virDomainDeviceInfo data
with them all.
* src/conf/domain_conf.c, src/conf/domain_conf.h: Add hooks for
parsing / formatting device info for serial, parallel, channel
input and fs devices.
* docs/schemas/domain.rng: Associate device info with character
devices, input & fs device
2010-01-06 12:39:53 +00:00
|
|
|
</optional>
|
2007-01-09 16:29:18 +00:00
|
|
|
</element>
|
|
|
|
</define>
|
2009-04-02 13:19:11 +00:00
|
|
|
<define name="hostdev">
|
|
|
|
<element name="hostdev">
|
2008-08-08 14:27:05 +00:00
|
|
|
<optional>
|
2009-04-02 13:19:11 +00:00
|
|
|
<attribute name="mode">
|
2008-08-08 14:27:05 +00:00
|
|
|
<choice>
|
2009-04-02 13:19:11 +00:00
|
|
|
<value>subsystem</value>
|
|
|
|
<value>capabilities</value>
|
|
|
|
</choice>
|
|
|
|
</attribute>
|
2011-03-01 10:23:20 +00:00
|
|
|
</optional>
|
|
|
|
<attribute name="type">
|
|
|
|
<choice>
|
|
|
|
<value>usb</value>
|
|
|
|
<value>pci</value>
|
|
|
|
</choice>
|
|
|
|
</attribute>
|
|
|
|
<optional>
|
2009-04-02 13:19:11 +00:00
|
|
|
<attribute name="managed">
|
|
|
|
<choice>
|
|
|
|
<value>yes</value>
|
|
|
|
<value>no</value>
|
2008-08-08 14:27:05 +00:00
|
|
|
</choice>
|
|
|
|
</attribute>
|
|
|
|
</optional>
|
|
|
|
<group>
|
2009-04-02 13:19:11 +00:00
|
|
|
<element name="source">
|
|
|
|
<choice>
|
2010-02-17 16:16:42 +00:00
|
|
|
<group>
|
2010-02-01 17:21:05 +00:00
|
|
|
<ref name="usbproduct"/>
|
2010-02-17 16:16:42 +00:00
|
|
|
<optional>
|
|
|
|
<ref name="usbaddress"/>
|
|
|
|
</optional>
|
|
|
|
</group>
|
2009-04-02 13:19:11 +00:00
|
|
|
<ref name="usbaddress"/>
|
2009-11-30 18:35:58 +00:00
|
|
|
<element name="address">
|
|
|
|
<ref name="pciaddress"/>
|
|
|
|
</element>
|
2009-04-02 13:19:11 +00:00
|
|
|
</choice>
|
|
|
|
</element>
|
2008-08-08 14:27:05 +00:00
|
|
|
</group>
|
2011-02-03 12:06:21 +00:00
|
|
|
<optional>
|
|
|
|
<ref name="deviceBoot"/>
|
|
|
|
</optional>
|
2009-11-30 18:35:58 +00:00
|
|
|
<optional>
|
|
|
|
<ref name="address"/>
|
|
|
|
</optional>
|
2008-08-08 14:27:05 +00:00
|
|
|
</element>
|
|
|
|
</define>
|
|
|
|
<define name="usbproduct">
|
|
|
|
<element name="vendor">
|
|
|
|
<attribute name="id">
|
2009-04-02 13:19:11 +00:00
|
|
|
<ref name="usbId"/>
|
2008-08-08 14:27:05 +00:00
|
|
|
</attribute>
|
|
|
|
</element>
|
|
|
|
<element name="product">
|
|
|
|
<attribute name="id">
|
2009-04-02 13:19:11 +00:00
|
|
|
<ref name="usbId"/>
|
2008-08-08 14:27:05 +00:00
|
|
|
</attribute>
|
|
|
|
</element>
|
|
|
|
</define>
|
|
|
|
<define name="usbaddress">
|
|
|
|
<element name="address">
|
|
|
|
<attribute name="bus">
|
|
|
|
<ref name="usbAddr"/>
|
|
|
|
</attribute>
|
|
|
|
<attribute name="device">
|
|
|
|
<ref name="usbAddr"/>
|
|
|
|
</attribute>
|
|
|
|
</element>
|
|
|
|
</define>
|
2009-01-12 15:09:19 +00:00
|
|
|
<define name="pciaddress">
|
2009-11-30 18:35:58 +00:00
|
|
|
<optional>
|
|
|
|
<attribute name="domain">
|
|
|
|
<ref name="pciDomain"/>
|
2009-01-12 15:09:19 +00:00
|
|
|
</attribute>
|
2009-11-30 18:35:58 +00:00
|
|
|
</optional>
|
|
|
|
<attribute name="bus">
|
|
|
|
<ref name="pciBus"/>
|
|
|
|
</attribute>
|
|
|
|
<attribute name="slot">
|
|
|
|
<ref name="pciSlot"/>
|
|
|
|
</attribute>
|
|
|
|
<attribute name="function">
|
|
|
|
<ref name="pciFunc"/>
|
|
|
|
</attribute>
|
2009-01-12 15:09:19 +00:00
|
|
|
</define>
|
2009-12-01 16:56:24 +00:00
|
|
|
<define name="driveaddress">
|
|
|
|
<optional>
|
|
|
|
<attribute name="controller">
|
|
|
|
<ref name="driveController"/>
|
|
|
|
</attribute>
|
|
|
|
</optional>
|
|
|
|
<optional>
|
|
|
|
<attribute name="bus">
|
2010-02-17 16:16:42 +00:00
|
|
|
<ref name="driveBus"/>
|
2009-12-01 16:56:24 +00:00
|
|
|
</attribute>
|
|
|
|
</optional>
|
|
|
|
<attribute name="unit">
|
|
|
|
<ref name="driveUnit"/>
|
|
|
|
</attribute>
|
|
|
|
</define>
|
2010-02-18 16:52:03 +00:00
|
|
|
<define name="virtioserialaddress">
|
|
|
|
<attribute name="controller">
|
|
|
|
<ref name="driveController"/>
|
|
|
|
</attribute>
|
|
|
|
<optional>
|
|
|
|
<attribute name="bus">
|
|
|
|
<ref name="driveBus"/>
|
|
|
|
</attribute>
|
|
|
|
</optional>
|
2010-06-08 15:31:50 +00:00
|
|
|
<optional>
|
|
|
|
<attribute name="port">
|
|
|
|
<ref name="driveUnit"/>
|
|
|
|
</attribute>
|
|
|
|
</optional>
|
2010-02-18 16:52:03 +00:00
|
|
|
</define>
|
2011-01-06 01:02:20 +00:00
|
|
|
<define name="ccidaddress">
|
|
|
|
<attribute name="controller">
|
|
|
|
<ref name="driveController"/>
|
|
|
|
</attribute>
|
|
|
|
<optional>
|
|
|
|
<attribute name="slot">
|
|
|
|
<ref name="driveUnit"/>
|
|
|
|
</attribute>
|
|
|
|
</optional>
|
|
|
|
</define>
|
2007-01-10 15:20:46 +00:00
|
|
|
<!--
|
2008-07-08 12:05:13 +00:00
|
|
|
Devices attached to a domain.
|
2011-01-06 01:02:20 +00:00
|
|
|
Sub-elements such as <alias> are not documented here, as they
|
|
|
|
can only exist when generated for a live domain and are ignored
|
|
|
|
when defining a domain.
|
2007-01-10 15:20:46 +00:00
|
|
|
-->
|
2009-04-02 13:19:11 +00:00
|
|
|
<define name="devices">
|
|
|
|
<element name="devices">
|
2007-01-10 15:20:46 +00:00
|
|
|
<interleave>
|
2009-04-02 13:19:11 +00:00
|
|
|
<optional>
|
|
|
|
<ref name="emulator"/>
|
|
|
|
</optional>
|
|
|
|
<zeroOrMore>
|
|
|
|
<choice>
|
|
|
|
<ref name="disk"/>
|
2009-12-02 19:15:38 +00:00
|
|
|
<ref name="controller"/>
|
2010-12-09 18:25:11 +00:00
|
|
|
<ref name="lease"/>
|
2009-04-02 13:19:11 +00:00
|
|
|
<ref name="filesystem"/>
|
|
|
|
<ref name="interface"/>
|
|
|
|
<ref name="input"/>
|
|
|
|
<ref name="sound"/>
|
|
|
|
<ref name="hostdev"/>
|
|
|
|
<ref name="graphic"/>
|
2009-07-06 13:54:44 +00:00
|
|
|
<ref name="video"/>
|
2009-04-02 13:19:11 +00:00
|
|
|
<ref name="console"/>
|
|
|
|
<ref name="parallel"/>
|
|
|
|
<ref name="serial"/>
|
2009-11-05 14:31:03 +00:00
|
|
|
<ref name="channel"/>
|
2011-01-06 01:02:20 +00:00
|
|
|
<ref name="smartcard"/>
|
2009-04-02 13:19:11 +00:00
|
|
|
</choice>
|
|
|
|
</zeroOrMore>
|
2009-10-21 12:26:38 +00:00
|
|
|
<optional>
|
|
|
|
<ref name="watchdog"/>
|
|
|
|
</optional>
|
2010-07-15 13:02:42 +00:00
|
|
|
<optional>
|
|
|
|
<ref name="memballoon"/>
|
|
|
|
</optional>
|
2007-01-10 15:20:46 +00:00
|
|
|
</interleave>
|
|
|
|
</element>
|
|
|
|
</define>
|
2007-01-09 16:29:18 +00:00
|
|
|
<!--
|
2011-01-05 23:07:54 +00:00
|
|
|
A set of optional features: PAE, APIC, ACPI, and HAP support
|
2007-01-09 16:29:18 +00:00
|
|
|
-->
|
2009-04-02 13:19:11 +00:00
|
|
|
<define name="features">
|
2007-01-09 16:29:18 +00:00
|
|
|
<optional>
|
|
|
|
<element name="features">
|
|
|
|
<interleave>
|
2009-04-02 13:19:11 +00:00
|
|
|
<optional>
|
|
|
|
<element name="pae">
|
|
|
|
<empty/>
|
|
|
|
</element>
|
|
|
|
</optional>
|
|
|
|
<optional>
|
|
|
|
<element name="apic">
|
|
|
|
<empty/>
|
|
|
|
</element>
|
|
|
|
</optional>
|
|
|
|
<optional>
|
|
|
|
<element name="acpi">
|
|
|
|
<empty/>
|
|
|
|
</element>
|
|
|
|
</optional>
|
2011-01-05 23:07:54 +00:00
|
|
|
<optional>
|
|
|
|
<element name="hap">
|
|
|
|
<empty/>
|
|
|
|
</element>
|
|
|
|
</optional>
|
2009-04-02 13:19:11 +00:00
|
|
|
</interleave>
|
2007-01-09 16:29:18 +00:00
|
|
|
</element>
|
|
|
|
</optional>
|
|
|
|
</define>
|
2009-12-18 13:37:09 +00:00
|
|
|
<!--
|
|
|
|
CPU specification
|
|
|
|
-->
|
|
|
|
<define name="cpu">
|
|
|
|
<element name="cpu">
|
2010-02-09 14:53:03 +00:00
|
|
|
<choice>
|
|
|
|
<ref name="cpuTopology"/>
|
|
|
|
<group>
|
|
|
|
<ref name="cpuMatch"/>
|
|
|
|
<interleave>
|
|
|
|
<ref name="cpuModel"/>
|
|
|
|
<optional>
|
2010-07-02 15:51:59 +00:00
|
|
|
<ref name="cpuVendor"/>
|
2010-12-01 14:25:48 +00:00
|
|
|
</optional>
|
|
|
|
<optional>
|
2010-02-09 14:53:03 +00:00
|
|
|
<ref name="cpuTopology"/>
|
|
|
|
</optional>
|
|
|
|
<zeroOrMore>
|
|
|
|
<ref name="cpuFeature"/>
|
|
|
|
</zeroOrMore>
|
|
|
|
</interleave>
|
|
|
|
</group>
|
|
|
|
</choice>
|
|
|
|
</element>
|
|
|
|
</define>
|
|
|
|
|
|
|
|
<define name="cpuMatch">
|
|
|
|
<attribute name="match">
|
|
|
|
<choice>
|
|
|
|
<value>minimum</value>
|
|
|
|
<value>exact</value>
|
|
|
|
<value>strict</value>
|
|
|
|
</choice>
|
|
|
|
</attribute>
|
|
|
|
</define>
|
|
|
|
|
|
|
|
<define name="cpuModel">
|
|
|
|
<element name="model">
|
|
|
|
<text/>
|
|
|
|
</element>
|
|
|
|
</define>
|
|
|
|
|
2010-07-02 15:51:59 +00:00
|
|
|
<define name="cpuVendor">
|
|
|
|
<element name="vendor">
|
|
|
|
<text/>
|
|
|
|
</element>
|
|
|
|
</define>
|
|
|
|
|
2010-02-09 14:53:03 +00:00
|
|
|
<define name="cpuFeature">
|
|
|
|
<element name="feature">
|
|
|
|
<attribute name="policy">
|
|
|
|
<choice>
|
|
|
|
<value>force</value>
|
|
|
|
<value>require</value>
|
|
|
|
<value>optional</value>
|
|
|
|
<value>disable</value>
|
|
|
|
<value>forbid</value>
|
|
|
|
</choice>
|
|
|
|
</attribute>
|
|
|
|
<attribute name="name">
|
|
|
|
<ref name="featureName"/>
|
|
|
|
</attribute>
|
|
|
|
<empty/>
|
|
|
|
</element>
|
|
|
|
</define>
|
|
|
|
|
|
|
|
<define name="cpuTopology">
|
|
|
|
<element name="topology">
|
|
|
|
<attribute name="sockets">
|
|
|
|
<ref name="positiveInteger"/>
|
|
|
|
</attribute>
|
|
|
|
<attribute name="cores">
|
|
|
|
<ref name="positiveInteger"/>
|
|
|
|
</attribute>
|
|
|
|
<attribute name="threads">
|
|
|
|
<ref name="positiveInteger"/>
|
|
|
|
</attribute>
|
2009-12-18 13:37:09 +00:00
|
|
|
</element>
|
|
|
|
</define>
|
2009-11-30 18:35:58 +00:00
|
|
|
|
2010-10-24 13:37:21 +00:00
|
|
|
<!--
|
|
|
|
System information specification:
|
|
|
|
Placeholder for system specific informations likes the ones
|
|
|
|
contained in the SMBIOS area.
|
|
|
|
Only a limited subset of entries can be modified there, so we
|
|
|
|
fully enumerate each case here.
|
|
|
|
The DMTF spec doesn't specify any string subset, just 0 terminated
|
|
|
|
byte strings, but better be safe and restrict at least the names
|
|
|
|
to avoid problems with space normalization in attribute values,
|
|
|
|
the value is kept as the element body for maximum flexibility.
|
|
|
|
A priori we allow only type 0 and type 1 string updates
|
|
|
|
-->
|
|
|
|
<define name="sysinfo">
|
|
|
|
<element name="sysinfo">
|
|
|
|
<attribute name="type">
|
|
|
|
<value>smbios</value>
|
|
|
|
</attribute>
|
|
|
|
<interleave>
|
|
|
|
<optional>
|
|
|
|
<element name="bios">
|
|
|
|
<oneOrMore>
|
|
|
|
<element name="entry">
|
|
|
|
<attribute name="name">
|
|
|
|
<ref name="sysinfo-bios-name"/>
|
|
|
|
</attribute>
|
|
|
|
<ref name="sysinfo-value"/>
|
|
|
|
</element>
|
|
|
|
</oneOrMore>
|
|
|
|
</element>
|
|
|
|
</optional>
|
|
|
|
<optional>
|
|
|
|
<element name="system">
|
|
|
|
<oneOrMore>
|
|
|
|
<element name="entry">
|
|
|
|
<attribute name="name">
|
|
|
|
<ref name="sysinfo-system-name"/>
|
|
|
|
</attribute>
|
|
|
|
<ref name="sysinfo-value"/>
|
|
|
|
</element>
|
|
|
|
</oneOrMore>
|
|
|
|
</element>
|
|
|
|
</optional>
|
|
|
|
</interleave>
|
|
|
|
</element>
|
|
|
|
</define>
|
|
|
|
|
|
|
|
<define name="sysinfo-bios-name">
|
|
|
|
<choice>
|
|
|
|
<value>vendor</value>
|
|
|
|
<value>version</value>
|
|
|
|
<value>date</value>
|
|
|
|
<value>release</value>
|
|
|
|
</choice>
|
|
|
|
</define>
|
|
|
|
|
|
|
|
<define name="sysinfo-system-name">
|
|
|
|
<choice>
|
|
|
|
<value>manufacturer</value>
|
|
|
|
<value>product</value>
|
|
|
|
<value>version</value>
|
|
|
|
<value>serial</value>
|
|
|
|
<value>uuid</value>
|
|
|
|
<value>sku</value>
|
2010-12-02 00:07:41 +00:00
|
|
|
<value>family</value>
|
2010-10-24 13:37:21 +00:00
|
|
|
</choice>
|
|
|
|
</define>
|
|
|
|
|
|
|
|
<define name="sysinfo-value">
|
|
|
|
<data type="string">
|
2010-12-02 00:45:19 +00:00
|
|
|
<param name='pattern'>[a-zA-Z0-9/\-_\. \(\)]+</param>
|
2010-10-24 13:37:21 +00:00
|
|
|
</data>
|
|
|
|
</define>
|
|
|
|
|
2010-11-05 13:10:34 +00:00
|
|
|
<define name="smbios">
|
|
|
|
<element name="smbios">
|
|
|
|
<attribute name="mode">
|
|
|
|
<choice>
|
|
|
|
<value>emulate</value>
|
|
|
|
<value>host</value>
|
|
|
|
<value>sysinfo</value>
|
|
|
|
</choice>
|
|
|
|
</attribute>
|
|
|
|
<empty/>
|
|
|
|
</element>
|
|
|
|
</define>
|
|
|
|
|
2011-07-08 07:56:17 +00:00
|
|
|
<define name="bios">
|
|
|
|
<element name="bios">
|
|
|
|
<attribute name="useserial">
|
|
|
|
<choice>
|
|
|
|
<value>yes</value>
|
|
|
|
<value>no</value>
|
|
|
|
</choice>
|
|
|
|
</attribute>
|
|
|
|
</element>
|
|
|
|
</define>
|
|
|
|
|
2009-11-30 18:35:58 +00:00
|
|
|
<define name="address">
|
|
|
|
<element name="address">
|
|
|
|
<choice>
|
2010-02-17 16:16:42 +00:00
|
|
|
<group>
|
|
|
|
<attribute name="type">
|
|
|
|
<value>pci</value>
|
|
|
|
</attribute>
|
|
|
|
<ref name="pciaddress"/>
|
|
|
|
</group>
|
|
|
|
<group>
|
|
|
|
<attribute name="type">
|
|
|
|
<value>drive</value>
|
|
|
|
</attribute>
|
|
|
|
<ref name="driveaddress"/>
|
|
|
|
</group>
|
2010-02-18 16:52:03 +00:00
|
|
|
<group>
|
|
|
|
<attribute name="type">
|
|
|
|
<value>virtio-serial</value>
|
|
|
|
</attribute>
|
|
|
|
<ref name="virtioserialaddress"/>
|
|
|
|
</group>
|
2011-01-06 01:02:20 +00:00
|
|
|
<group>
|
|
|
|
<attribute name="type">
|
|
|
|
<value>ccid</value>
|
|
|
|
</attribute>
|
|
|
|
<ref name="ccidaddress"/>
|
|
|
|
</group>
|
2009-11-30 18:35:58 +00:00
|
|
|
</choice>
|
|
|
|
</element>
|
|
|
|
</define>
|
|
|
|
|
2010-04-06 15:09:46 +00:00
|
|
|
<define name="filterref-node-attributes">
|
|
|
|
<attribute name="filter">
|
|
|
|
<data type="NCName"/>
|
|
|
|
</attribute>
|
|
|
|
<optional>
|
|
|
|
<element name="parameter">
|
|
|
|
<attribute name="name">
|
|
|
|
<ref name="filter-param-name"/>
|
|
|
|
</attribute>
|
|
|
|
<attribute name="value">
|
|
|
|
<ref name="filter-param-value"/>
|
|
|
|
</attribute>
|
|
|
|
</element>
|
|
|
|
</optional>
|
|
|
|
</define>
|
|
|
|
|
2011-01-12 14:19:34 +00:00
|
|
|
<define name="deviceBoot">
|
|
|
|
<element name="boot">
|
|
|
|
<attribute name="order">
|
|
|
|
<ref name="positiveInteger"/>
|
|
|
|
</attribute>
|
|
|
|
<empty/>
|
|
|
|
</element>
|
|
|
|
</define>
|
|
|
|
|
2010-04-20 21:22:49 +00:00
|
|
|
<!--
|
|
|
|
Optional hypervisor extensions in their own namespace:
|
|
|
|
QEmu
|
|
|
|
-->
|
|
|
|
<define name="qemucmdline">
|
|
|
|
<element name="commandline" ns="http://libvirt.org/schemas/domain/qemu/1.0">
|
|
|
|
<zeroOrMore>
|
|
|
|
<element name="arg">
|
|
|
|
<attribute name='value'/>
|
|
|
|
</element>
|
|
|
|
</zeroOrMore>
|
|
|
|
<zeroOrMore>
|
|
|
|
<element name="env">
|
|
|
|
<attribute name='name'>
|
|
|
|
<ref name="filter-param-name"/>
|
|
|
|
</attribute>
|
|
|
|
<optional>
|
|
|
|
<attribute name='value'/>
|
|
|
|
</optional>
|
|
|
|
<empty/>
|
|
|
|
</element>
|
|
|
|
</zeroOrMore>
|
|
|
|
</element>
|
|
|
|
</define>
|
|
|
|
|
2007-01-09 16:29:18 +00:00
|
|
|
<!--
|
|
|
|
Type library
|
|
|
|
|
2011-02-08 06:58:25 +00:00
|
|
|
A domain name should be made of ascii, numbers, _-+ and is non-empty
|
2007-01-09 16:29:18 +00:00
|
|
|
memoryKB request at least 4Mbytes though Xen will grow bigger if too low
|
2011-02-08 06:58:25 +00:00
|
|
|
weight currently is in range [100, 1000]
|
2007-01-09 16:29:18 +00:00
|
|
|
-->
|
2010-09-27 23:29:13 +00:00
|
|
|
<define name="cpuset">
|
|
|
|
<data type="string">
|
|
|
|
<param name="pattern">([0-9]+(-[0-9]+)?|\^[0-9]+)(,([0-9]+(-[0-9]+)?|\^[0-9]+))*</param>
|
|
|
|
</data>
|
|
|
|
</define>
|
2009-04-02 13:19:11 +00:00
|
|
|
<define name="countCPU">
|
|
|
|
<data type="unsignedShort">
|
2007-01-09 16:29:18 +00:00
|
|
|
<param name="pattern">[0-9]+</param>
|
|
|
|
<param name="minInclusive">1</param>
|
|
|
|
</data>
|
|
|
|
</define>
|
2011-03-29 13:01:57 +00:00
|
|
|
<define name="vcpuid">
|
|
|
|
<data type="unsignedShort">
|
|
|
|
<param name="pattern">[0-9]+</param>
|
|
|
|
</data>
|
|
|
|
</define>
|
|
|
|
<define name="cpushares">
|
|
|
|
<data type="unsignedInt">
|
|
|
|
<param name="pattern">[0-9]+</param>
|
|
|
|
</data>
|
2011-07-21 02:09:46 +00:00
|
|
|
</define>
|
|
|
|
<define name="cpuperiod">
|
|
|
|
<data type="unsignedLong">
|
|
|
|
<param name="pattern">[0-9]+</param>
|
|
|
|
<param name="minInclusive">1000</param>
|
|
|
|
<param name="maxInclusive">1000000</param>
|
|
|
|
</data>
|
|
|
|
</define>
|
|
|
|
<define name="cpuquota">
|
|
|
|
<data type="long">
|
|
|
|
<param name="pattern">-?[0-9]+</param>
|
|
|
|
<param name="maxInclusive">18446744073709551</param>
|
|
|
|
<param name='minInclusive'>-1</param>
|
|
|
|
</data>
|
|
|
|
</define>
|
2009-04-02 13:19:11 +00:00
|
|
|
<define name="PortNumber">
|
|
|
|
<data type="short">
|
2007-01-10 10:08:06 +00:00
|
|
|
<param name="minInclusive">-1</param>
|
2007-01-09 16:29:18 +00:00
|
|
|
</data>
|
|
|
|
</define>
|
2011-02-08 06:58:25 +00:00
|
|
|
<define name="weight">
|
|
|
|
<data type="unsignedInt">
|
|
|
|
<param name="pattern">[0-9]+</param>
|
|
|
|
<param name="minInclusive">100</param>
|
|
|
|
<param name="maxInclusive">1000</param>
|
|
|
|
</data>
|
|
|
|
</define>
|
2009-04-02 13:19:11 +00:00
|
|
|
<define name="memoryKB">
|
|
|
|
<data type="unsignedInt">
|
2007-01-09 16:29:18 +00:00
|
|
|
<param name="pattern">[0-9]+</param>
|
|
|
|
<param name="minInclusive">4000</param>
|
|
|
|
</data>
|
|
|
|
</define>
|
2009-04-02 13:19:11 +00:00
|
|
|
<define name="domainName">
|
|
|
|
<data type="string">
|
2008-07-25 06:37:20 +00:00
|
|
|
<param name="pattern">[A-Za-z0-9_\.\+\-&:/]+</param>
|
2007-01-09 16:29:18 +00:00
|
|
|
</data>
|
|
|
|
</define>
|
2009-08-14 11:22:01 +00:00
|
|
|
<define name="diskSerial">
|
|
|
|
<data type="string">
|
|
|
|
<param name="pattern">[A-Za-z0-9_\.\+\-]+</param>
|
|
|
|
</data>
|
|
|
|
</define>
|
2009-04-02 13:19:11 +00:00
|
|
|
<define name="genericName">
|
|
|
|
<data type="string">
|
2007-01-10 10:08:06 +00:00
|
|
|
<param name="pattern">[a-zA-Z0-9_\+\-]+</param>
|
|
|
|
</data>
|
|
|
|
</define>
|
2010-02-15 16:43:42 +00:00
|
|
|
<define name="bridgeMode">
|
|
|
|
<data type="string">
|
2011-05-17 11:26:09 +00:00
|
|
|
<param name="pattern">(vepa|bridge|private|passthrough)</param>
|
2010-02-15 16:43:42 +00:00
|
|
|
</data>
|
|
|
|
</define>
|
2011-05-19 10:39:35 +00:00
|
|
|
<define name="addrIPorName">
|
|
|
|
<data type="string">
|
|
|
|
<param name="pattern">(([0-2]?[0-9]?[0-9]\.){3}[0-2]?[0-9]?[0-9])|(([0-9a-fA-F]+|:)+[0-9a-fA-F]+)|([a-zA-Z0-9_\.\+\-]*)</param>
|
|
|
|
</data>
|
|
|
|
</define>
|
2009-04-02 13:19:11 +00:00
|
|
|
<define name="usbId">
|
|
|
|
<data type="string">
|
2008-08-08 14:27:05 +00:00
|
|
|
<param name="pattern">(0x)?[0-9a-fA-F]{1,4}</param>
|
|
|
|
</data>
|
|
|
|
</define>
|
2009-04-02 13:19:11 +00:00
|
|
|
<define name="usbAddr">
|
|
|
|
<data type="string">
|
2008-08-08 14:27:05 +00:00
|
|
|
<param name="pattern">(0x)?[0-9a-fA-F]{1,3}</param>
|
|
|
|
</data>
|
|
|
|
</define>
|
2009-04-02 13:19:11 +00:00
|
|
|
<define name="pciDomain">
|
|
|
|
<data type="string">
|
2009-01-12 15:09:19 +00:00
|
|
|
<param name="pattern">(0x)?[0-9a-fA-F]{1,4}</param>
|
|
|
|
</data>
|
|
|
|
</define>
|
2009-04-02 13:19:11 +00:00
|
|
|
<define name="pciBus">
|
|
|
|
<data type="string">
|
2009-01-12 15:09:19 +00:00
|
|
|
<param name="pattern">(0x)?[0-9a-fA-F]{1,2}</param>
|
|
|
|
</data>
|
|
|
|
</define>
|
2009-04-02 13:19:11 +00:00
|
|
|
<define name="pciSlot">
|
|
|
|
<data type="string">
|
2009-01-12 15:09:19 +00:00
|
|
|
<param name="pattern">(0x)?[0-1]?[0-9a-fA-F]</param>
|
|
|
|
</data>
|
|
|
|
</define>
|
2009-04-02 13:19:11 +00:00
|
|
|
<define name="pciFunc">
|
|
|
|
<data type="string">
|
2009-01-12 15:09:19 +00:00
|
|
|
<param name="pattern">(0x)?[0-7]</param>
|
|
|
|
</data>
|
|
|
|
</define>
|
2009-12-01 16:56:24 +00:00
|
|
|
<define name="driveController">
|
|
|
|
<data type="string">
|
|
|
|
<param name="pattern">[0-9]{1,2}</param>
|
|
|
|
</data>
|
|
|
|
</define>
|
|
|
|
<define name="driveBus">
|
|
|
|
<data type="string">
|
|
|
|
<param name="pattern">[0-9]{1,2}</param>
|
|
|
|
</data>
|
|
|
|
</define>
|
|
|
|
<define name="driveUnit">
|
|
|
|
<data type="string">
|
|
|
|
<param name="pattern">[0-9]{1,2}</param>
|
|
|
|
</data>
|
|
|
|
</define>
|
2009-12-18 13:37:09 +00:00
|
|
|
<define name="featureName">
|
|
|
|
<data type="string">
|
|
|
|
<param name='pattern'>[a-zA-Z0-9\-_]+</param>
|
|
|
|
</data>
|
|
|
|
</define>
|
2010-02-02 17:49:09 +00:00
|
|
|
<define name="timeDelta">
|
|
|
|
<data type="string">
|
|
|
|
<param name="pattern">(-|\+)?[0-9]+</param>
|
|
|
|
</data>
|
|
|
|
</define>
|
2010-02-02 18:28:44 +00:00
|
|
|
<define name="timeZone">
|
|
|
|
<data type="string">
|
|
|
|
<param name="pattern">[a-zA-Z0-9_\.\+\-/]+</param>
|
|
|
|
</data>
|
|
|
|
</define>
|
2010-04-06 15:09:46 +00:00
|
|
|
<define name="filter-param-name">
|
|
|
|
<data type="string">
|
|
|
|
<param name="pattern">[a-zA-Z0-9_]+</param>
|
|
|
|
</data>
|
|
|
|
</define>
|
|
|
|
<define name="filter-param-value">
|
|
|
|
<data type="string">
|
|
|
|
<param name="pattern">[a-zA-Z0-9_\.:]+</param>
|
|
|
|
</data>
|
|
|
|
</define>
|
2007-01-09 16:29:18 +00:00
|
|
|
</grammar>
|