mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-08-28 19:41:16 +00:00
SMMUv3 is an IOMMU implementation for ARM virt guests. Signed-off-by: Andrea Bolognani <abologna@redhat.com> Reviewed-by: Ján Tomko <jtomko@redhat.com>
6569 lines
173 KiB
XML
6569 lines
173 KiB
XML
<?xml version="1.0"?>
|
|
<grammar xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
|
|
<!-- domain-related definitions used in multiple grammars -->
|
|
<include href='basictypes.rng'/>
|
|
<include href='storagecommon.rng'/>
|
|
<include href='networkcommon.rng'/>
|
|
<include href='cputypes.rng'/>
|
|
<include href='nwfilter_params.rng'/>
|
|
|
|
<!--
|
|
description and title element, may be placed anywhere under the root
|
|
-->
|
|
<define name="description">
|
|
<element name="description">
|
|
<text/>
|
|
</element>
|
|
</define>
|
|
|
|
<define name="title">
|
|
<element name="title">
|
|
<data type="string">
|
|
<!-- Use literal newline instead of \n for bug in libxml2 2.7.6 -->
|
|
<param name="pattern">[^
|
|
]+</param>
|
|
</data>
|
|
</element>
|
|
</define>
|
|
|
|
<!--
|
|
We handle only document defining a domain
|
|
-->
|
|
<define name="domain">
|
|
<element name="domain">
|
|
<ref name="hvs"/>
|
|
<interleave>
|
|
<ref name="ids"/>
|
|
<optional>
|
|
<ref name="title"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="description"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="metadata"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="cpu"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="sysinfo"/>
|
|
</optional>
|
|
<ref name="os"/>
|
|
<ref name="clock"/>
|
|
<ref name="resources"/>
|
|
<ref name="features"/>
|
|
<ref name="events"/>
|
|
<optional>
|
|
<ref name="pm"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="perf"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="idmap"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="devices"/>
|
|
</optional>
|
|
<zeroOrMore>
|
|
<ref name="seclabel"/>
|
|
</zeroOrMore>
|
|
<optional>
|
|
<ref name='qemucmdline'/>
|
|
</optional>
|
|
<optional>
|
|
<ref name='lxcsharens'/>
|
|
</optional>
|
|
<optional>
|
|
<ref name='keywrap'/>
|
|
</optional>
|
|
<optional>
|
|
<ref name='launchSecurity'/>
|
|
</optional>
|
|
<optional>
|
|
<ref name='bhyvecmdline'/>
|
|
</optional>
|
|
</interleave>
|
|
</element>
|
|
</define>
|
|
<define name="seclabel">
|
|
<element name="seclabel">
|
|
<optional>
|
|
<attribute name='model'>
|
|
<text/>
|
|
</attribute>
|
|
</optional>
|
|
<choice>
|
|
<group>
|
|
<!-- with dynamic label (default), relabel must be yes, baselabel
|
|
is optional, and label and imagelabel are output-only -->
|
|
<optional>
|
|
<attribute name='type'>
|
|
<value>dynamic</value>
|
|
</attribute>
|
|
</optional>
|
|
<optional>
|
|
<attribute name='relabel'>
|
|
<value>yes</value>
|
|
</attribute>
|
|
</optional>
|
|
<interleave>
|
|
<optional>
|
|
<element name='label'>
|
|
<text/>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name='imagelabel'>
|
|
<text/>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name='baselabel'>
|
|
<text/>
|
|
</element>
|
|
</optional>
|
|
</interleave>
|
|
</group>
|
|
<group>
|
|
<!-- with static label, relabel can be either format (default
|
|
no), label is required, imagelabel is output-only, and no
|
|
baselabel is present -->
|
|
<attribute name='type'>
|
|
<value>static</value>
|
|
</attribute>
|
|
<optional>
|
|
<attribute name='relabel'>
|
|
<ref name="virYesNo"/>
|
|
</attribute>
|
|
</optional>
|
|
<interleave>
|
|
<element name='label'>
|
|
<text/>
|
|
</element>
|
|
<optional>
|
|
<element name='imagelabel'>
|
|
<text/>
|
|
</element>
|
|
</optional>
|
|
</interleave>
|
|
</group>
|
|
<group>
|
|
<!-- with none, relabel must be no if present -->
|
|
<attribute name='type'>
|
|
<value>none</value>
|
|
</attribute>
|
|
<optional>
|
|
<attribute name='relabel'>
|
|
<value>no</value>
|
|
</attribute>
|
|
</optional>
|
|
</group>
|
|
</choice>
|
|
</element>
|
|
</define>
|
|
<define name="devSeclabel">
|
|
<element name="seclabel">
|
|
<!-- A per-device seclabel override is more limited, either
|
|
relabel=no or a <label> must be present on input;
|
|
output also can include labelskip=yes. -->
|
|
<optional>
|
|
<attribute name='model'>
|
|
<text/>
|
|
</attribute>
|
|
</optional>
|
|
<choice>
|
|
<group>
|
|
<attribute name='relabel'>
|
|
<value>no</value>
|
|
</attribute>
|
|
</group>
|
|
<group>
|
|
<attribute name='labelskip'>
|
|
<value>yes</value>
|
|
</attribute>
|
|
</group>
|
|
<group>
|
|
<optional>
|
|
<attribute name='relabel'>
|
|
<value>yes</value>
|
|
</attribute>
|
|
</optional>
|
|
<oneOrMore>
|
|
<element name='label'>
|
|
<text/>
|
|
</element>
|
|
</oneOrMore>
|
|
</group>
|
|
</choice>
|
|
</element>
|
|
</define>
|
|
<define name="hvs">
|
|
<attribute name="type">
|
|
<choice>
|
|
<value>qemu</value>
|
|
<value>kqemu</value>
|
|
<value>kvm</value>
|
|
<value>xen</value>
|
|
<value>lxc</value>
|
|
<value>uml</value> <!-- NOT USED ANYMORE -->
|
|
<value>openvz</value>
|
|
<value>test</value>
|
|
<value>vmware</value>
|
|
<value>hyperv</value>
|
|
<value>vbox</value>
|
|
<value>phyp</value>
|
|
<value>vz</value>
|
|
<value>bhyve</value>
|
|
</choice>
|
|
</attribute>
|
|
</define>
|
|
<define name="os">
|
|
<choice>
|
|
<ref name="osxen"/>
|
|
<ref name="oshvm"/>
|
|
<ref name="osexe"/>
|
|
</choice>
|
|
</define>
|
|
<define name="osxen">
|
|
<choice>
|
|
<group>
|
|
<optional>
|
|
<ref name="bootloader"/>
|
|
</optional>
|
|
<element name="os">
|
|
<ref name="ostypexen"/>
|
|
<ref name="osbootkernel"/>
|
|
</element>
|
|
</group>
|
|
<group>
|
|
<ref name="bootloader"/>
|
|
<optional>
|
|
<element name="os">
|
|
<ref name="ostypexen"/>
|
|
<optional>
|
|
<ref name="osbootkernel"/>
|
|
</optional>
|
|
</element>
|
|
</optional>
|
|
</group>
|
|
</choice>
|
|
</define>
|
|
<define name="oshvm">
|
|
<optional>
|
|
<ref name="bootloader"/>
|
|
</optional>
|
|
<element name="os">
|
|
<interleave>
|
|
<optional>
|
|
<attribute name="firmware">
|
|
<choice>
|
|
<value>bios</value>
|
|
<value>efi</value>
|
|
</choice>
|
|
</attribute>
|
|
</optional>
|
|
<ref name="ostypehvm"/>
|
|
<optional>
|
|
<element name="loader">
|
|
<optional>
|
|
<attribute name="readonly">
|
|
<choice>
|
|
<value>yes</value>
|
|
<value>no</value>
|
|
</choice>
|
|
</attribute>
|
|
</optional>
|
|
<optional>
|
|
<attribute name="secure">
|
|
<choice>
|
|
<value>yes</value>
|
|
<value>no</value>
|
|
</choice>
|
|
</attribute>
|
|
</optional>
|
|
<optional>
|
|
<attribute name="type">
|
|
<choice>
|
|
<value>rom</value>
|
|
<value>pflash</value>
|
|
</choice>
|
|
</attribute>
|
|
</optional>
|
|
<optional>
|
|
<ref name="absFilePath"/>
|
|
</optional>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name="nvram">
|
|
<optional>
|
|
<attribute name="template">
|
|
<ref name="absFilePath"/>
|
|
</attribute>
|
|
</optional>
|
|
<optional>
|
|
<ref name="absFilePath"/>
|
|
</optional>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<ref name="osbootkernel"/>
|
|
</optional>
|
|
<zeroOrMore>
|
|
<ref name="osbootdev"/>
|
|
</zeroOrMore>
|
|
<optional>
|
|
<element name="bootmenu">
|
|
<attribute name="enable">
|
|
<ref name="virYesNo"/>
|
|
</attribute>
|
|
<optional>
|
|
<attribute name="timeout">
|
|
<ref name="unsignedShort"/>
|
|
</attribute>
|
|
</optional>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<ref name="smbios"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="bios"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="acpiTable"/>
|
|
</optional>
|
|
</interleave>
|
|
</element>
|
|
</define>
|
|
<define name="ostypexen">
|
|
<element name="type">
|
|
<optional>
|
|
<attribute name="arch">
|
|
<choice>
|
|
<value>i686</value>
|
|
<value>x86_64</value>
|
|
<value>ia64</value>
|
|
</choice>
|
|
</attribute>
|
|
</optional>
|
|
<optional>
|
|
<attribute name="machine">
|
|
<choice>
|
|
<value>xenpv</value>
|
|
<value>xenfv</value>
|
|
<value>xenpvh</value>
|
|
</choice>
|
|
</attribute>
|
|
</optional>
|
|
<choice>
|
|
<value>xen</value>
|
|
<value>linux</value>
|
|
<value>xenpvh</value>
|
|
</choice>
|
|
</element>
|
|
</define>
|
|
<define name="ostypehvm">
|
|
<element name="type">
|
|
<optional>
|
|
<attribute name="arch">
|
|
<ref name="archnames"/>
|
|
</attribute>
|
|
</optional>
|
|
<optional>
|
|
<attribute name="machine">
|
|
<data type="string">
|
|
<param name="pattern">[a-zA-Z0-9_\.\-]+</param>
|
|
</data>
|
|
</attribute>
|
|
</optional>
|
|
<value>hvm</value>
|
|
</element>
|
|
</define>
|
|
|
|
<define name="osexe">
|
|
<element name="os">
|
|
<element name="type">
|
|
<optional>
|
|
<attribute name="arch">
|
|
<ref name="archnames"/>
|
|
</attribute>
|
|
</optional>
|
|
<value>exe</value>
|
|
</element>
|
|
<interleave>
|
|
<optional>
|
|
<element name="init">
|
|
<ref name="absFilePath"/>
|
|
</element>
|
|
</optional>
|
|
<zeroOrMore>
|
|
<element name="initarg">
|
|
<text/>
|
|
</element>
|
|
</zeroOrMore>
|
|
<zeroOrMore>
|
|
<element name="initenv">
|
|
<attribute name="name">
|
|
<data type='string'>
|
|
<param name='pattern'>[a-zA-Z_]+[a-zA-Z0-9_]*</param>
|
|
</data>
|
|
</attribute>
|
|
<text/>
|
|
</element>
|
|
</zeroOrMore>
|
|
<optional>
|
|
<element name="initdir">
|
|
<ref name="absFilePath"/>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name="inituser">
|
|
<choice>
|
|
<ref name="unsignedInt"/>
|
|
<ref name="genericName"/>
|
|
</choice>
|
|
</element>
|
|
<element name="initgroup">
|
|
<choice>
|
|
<ref name="unsignedInt"/>
|
|
<ref name="genericName"/>
|
|
</choice>
|
|
</element>
|
|
</optional>
|
|
</interleave>
|
|
</element>
|
|
</define>
|
|
|
|
<define name="keywrap">
|
|
<element name="keywrap">
|
|
<oneOrMore>
|
|
<element name="cipher">
|
|
<attribute name="name">
|
|
<choice>
|
|
<value>aes</value>
|
|
<value>dea</value>
|
|
</choice>
|
|
</attribute>
|
|
<attribute name="state">
|
|
<ref name='virOnOff'/>
|
|
</attribute>
|
|
</element>
|
|
</oneOrMore>
|
|
</element>
|
|
</define>
|
|
|
|
<define name="launchSecurity">
|
|
<element name="launchSecurity">
|
|
<attribute name="type">
|
|
<value>sev</value>
|
|
</attribute>
|
|
<interleave>
|
|
<element name="cbitpos">
|
|
<data type='unsignedInt'/>
|
|
</element>
|
|
<element name="reducedPhysBits">
|
|
<data type='unsignedInt'/>
|
|
</element>
|
|
<element name="policy">
|
|
<ref name='hexuint'/>
|
|
</element>
|
|
<optional>
|
|
<element name="handle">
|
|
<ref name='unsignedInt'/>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name="dhCert">
|
|
<data type="string"/>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name="session">
|
|
<data type="string"/>
|
|
</element>
|
|
</optional>
|
|
</interleave>
|
|
</element>
|
|
</define>
|
|
|
|
<!--
|
|
Enable or disable perf events for the domain. For each
|
|
of the events the following rules apply:
|
|
on: the event will be forcefully enabled
|
|
off: the event will be forcefully disabled
|
|
not specified: the event will be disabled by default
|
|
-->
|
|
<define name="perf">
|
|
<element name="perf">
|
|
<oneOrMore>
|
|
<element name="event">
|
|
<attribute name="name">
|
|
<choice>
|
|
<value>cmt</value>
|
|
<value>mbmt</value>
|
|
<value>mbml</value>
|
|
<value>cpu_cycles</value>
|
|
<value>instructions</value>
|
|
<value>cache_references</value>
|
|
<value>cache_misses</value>
|
|
<value>branch_instructions</value>
|
|
<value>branch_misses</value>
|
|
<value>bus_cycles</value>
|
|
<value>stalled_cycles_frontend</value>
|
|
<value>stalled_cycles_backend</value>
|
|
<value>ref_cpu_cycles</value>
|
|
<value>cpu_clock</value>
|
|
<value>task_clock</value>
|
|
<value>page_faults</value>
|
|
<value>context_switches</value>
|
|
<value>cpu_migrations</value>
|
|
<value>page_faults_min</value>
|
|
<value>page_faults_maj</value>
|
|
<value>alignment_faults</value>
|
|
<value>emulation_faults</value>
|
|
</choice>
|
|
</attribute>
|
|
<attribute name="enabled">
|
|
<ref name="virYesNo"/>
|
|
</attribute>
|
|
</element>
|
|
</oneOrMore>
|
|
</element>
|
|
</define>
|
|
|
|
<!--
|
|
The Identifiers can be:
|
|
- an optional id attribute with a number on the domain element
|
|
- a mandatory name
|
|
- an optional uuid
|
|
-->
|
|
<define name="ids">
|
|
<optional>
|
|
<attribute name="id">
|
|
<ref name="unsignedInt"/>
|
|
</attribute>
|
|
</optional>
|
|
<interleave>
|
|
<element name="name">
|
|
<ref name="domainName"/>
|
|
</element>
|
|
<optional>
|
|
<element name="uuid">
|
|
<ref name="UUID"/>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name="genid">
|
|
<choice>
|
|
<ref name="UUID"/>
|
|
<empty/>
|
|
</choice>
|
|
</element>
|
|
</optional>
|
|
</interleave>
|
|
</define>
|
|
<define name="idmap">
|
|
<element name="idmap">
|
|
<interleave>
|
|
<zeroOrMore>
|
|
<element name="uid">
|
|
<attribute name="start">
|
|
<ref name="unsignedInt"/>
|
|
</attribute>
|
|
<attribute name="target">
|
|
<ref name="unsignedInt"/>
|
|
</attribute>
|
|
<attribute name="count">
|
|
<ref name="unsignedInt"/>
|
|
</attribute>
|
|
<empty/>
|
|
</element>
|
|
</zeroOrMore>
|
|
<zeroOrMore>
|
|
<element name="gid">
|
|
<attribute name="start">
|
|
<ref name="unsignedInt"/>
|
|
</attribute>
|
|
<attribute name="target">
|
|
<ref name="unsignedInt"/>
|
|
</attribute>
|
|
<attribute name="count">
|
|
<ref name="unsignedInt"/>
|
|
</attribute>
|
|
<empty/>
|
|
</element>
|
|
</zeroOrMore>
|
|
</interleave>
|
|
</element>
|
|
</define>
|
|
<!--
|
|
Resources usage defines the amount of memory (maximum and possibly
|
|
current usage) and number of virtual CPUs used by that domain.
|
|
We can't check here the rule that currentMemory <= memory
|
|
-->
|
|
<define name="resources">
|
|
<interleave>
|
|
<optional>
|
|
<element name="memory">
|
|
<ref name='scaledInteger'/>
|
|
<optional>
|
|
<attribute name="dumpCore">
|
|
<ref name="virOnOff"/>
|
|
</attribute>
|
|
</optional>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name="maxMemory">
|
|
<ref name="scaledInteger"/>
|
|
<attribute name="slots">
|
|
<ref name="unsignedInt"/>
|
|
</attribute>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name="currentMemory">
|
|
<ref name='scaledInteger'/>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name="memoryBacking">
|
|
<interleave>
|
|
<optional>
|
|
<element name="hugepages">
|
|
<zeroOrMore>
|
|
<element name="page">
|
|
<attribute name="size">
|
|
<ref name="unsignedLong"/>
|
|
</attribute>
|
|
<optional>
|
|
<attribute name='unit'>
|
|
<ref name='unit'/>
|
|
</attribute>
|
|
</optional>
|
|
<optional>
|
|
<attribute name="nodeset">
|
|
<ref name='cpuset'/>
|
|
</attribute>
|
|
</optional>
|
|
<empty/>
|
|
</element>
|
|
</zeroOrMore>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name="nosharepages">
|
|
<empty/>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name="locked">
|
|
<empty/>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name="source">
|
|
<attribute name="type">
|
|
<choice>
|
|
<value>file</value>
|
|
<value>anonymous</value>
|
|
<value>memfd</value>
|
|
</choice>
|
|
</attribute>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name="access">
|
|
<attribute name="mode">
|
|
<choice>
|
|
<value>shared</value>
|
|
<value>private</value>
|
|
</choice>
|
|
</attribute>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name="allocation">
|
|
<attribute name="mode">
|
|
<choice>
|
|
<value>immediate</value>
|
|
<value>ondemand</value>
|
|
</choice>
|
|
</attribute>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name="discard">
|
|
<empty/>
|
|
</element>
|
|
</optional>
|
|
</interleave>
|
|
</element>
|
|
</optional>
|
|
|
|
<optional>
|
|
<element name="vcpu">
|
|
<optional>
|
|
<attribute name="placement">
|
|
<choice>
|
|
<value>static</value>
|
|
<value>auto</value>
|
|
</choice>
|
|
</attribute>
|
|
</optional>
|
|
<optional>
|
|
<attribute name="cpuset">
|
|
<ref name="cpuset"/>
|
|
</attribute>
|
|
</optional>
|
|
<optional>
|
|
<attribute name="current">
|
|
<ref name="countCPU"/>
|
|
</attribute>
|
|
</optional>
|
|
<ref name="countCPU"/>
|
|
</element>
|
|
</optional>
|
|
|
|
<optional>
|
|
<element name="vcpus">
|
|
<zeroOrMore>
|
|
<element name="vcpu">
|
|
<attribute name="id">
|
|
<ref name="unsignedInt"/>
|
|
</attribute>
|
|
<attribute name="enabled">
|
|
<ref name="virYesNo"/>
|
|
</attribute>
|
|
<optional>
|
|
<attribute name="hotpluggable">
|
|
<ref name="virYesNo"/>
|
|
</attribute>
|
|
</optional>
|
|
<optional>
|
|
<attribute name="order">
|
|
<ref name="unsignedInt"/>
|
|
</attribute>
|
|
</optional>
|
|
</element>
|
|
</zeroOrMore>
|
|
</element>
|
|
</optional>
|
|
|
|
<optional>
|
|
<element name="iothreads">
|
|
<ref name="unsignedInt"/>
|
|
</element>
|
|
</optional>
|
|
|
|
<optional>
|
|
<element name="iothreadids">
|
|
<zeroOrMore>
|
|
<element name="iothread">
|
|
<attribute name="id">
|
|
<ref name="unsignedInt"/>
|
|
</attribute>
|
|
</element>
|
|
</zeroOrMore>
|
|
</element>
|
|
</optional>
|
|
|
|
<optional>
|
|
<ref name="blkiotune"/>
|
|
</optional>
|
|
|
|
<optional>
|
|
<ref name="memtune"/>
|
|
</optional>
|
|
|
|
<optional>
|
|
<ref name="cputune"/>
|
|
</optional>
|
|
|
|
<optional>
|
|
<ref name="numatune"/>
|
|
</optional>
|
|
|
|
<optional>
|
|
<ref name="respartition"/>
|
|
</optional>
|
|
</interleave>
|
|
</define>
|
|
|
|
<!-- The Blkio cgroup related tunables would go in the blkiotune -->
|
|
<define name="blkiotune">
|
|
<element name="blkiotune">
|
|
<interleave>
|
|
<!-- I/O weight the VM can use -->
|
|
<optional>
|
|
<element name="weight">
|
|
<ref name="weight"/>
|
|
</element>
|
|
</optional>
|
|
<zeroOrMore>
|
|
<element name="device">
|
|
<interleave>
|
|
<element name="path">
|
|
<ref name="absFilePath"/>
|
|
</element>
|
|
<optional>
|
|
<element name="weight">
|
|
<ref name="weight"/>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name="read_iops_sec">
|
|
<data type='unsignedInt'/>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name="write_iops_sec">
|
|
<data type='unsignedInt'/>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name="read_bytes_sec">
|
|
<data type='unsignedLong'/>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name="write_bytes_sec">
|
|
<data type='unsignedLong'/>
|
|
</element>
|
|
</optional>
|
|
</interleave>
|
|
</element>
|
|
</zeroOrMore>
|
|
</interleave>
|
|
</element>
|
|
</define>
|
|
|
|
<!-- All the memory/swap related tunables would go in the memtune -->
|
|
<define name="memtune">
|
|
<element name="memtune">
|
|
<!-- Maximum memory the VM can use -->
|
|
<optional>
|
|
<element name="hard_limit">
|
|
<ref name='scaledInteger'/>
|
|
</element>
|
|
</optional>
|
|
<!-- Minimum memory ascertained for the VM during contention -->
|
|
<optional>
|
|
<element name="soft_limit">
|
|
<ref name='scaledInteger'/>
|
|
</element>
|
|
</optional>
|
|
<!-- Minimum amount of memory required to start the VM -->
|
|
<optional>
|
|
<element name="min_guarantee">
|
|
<ref name='scaledInteger'/>
|
|
</element>
|
|
</optional>
|
|
<!-- Maximum swap area the VM can use -->
|
|
<optional>
|
|
<element name="swap_hard_limit">
|
|
<ref name='scaledInteger'/>
|
|
</element>
|
|
</optional>
|
|
</element>
|
|
</define>
|
|
|
|
<!-- All the cpu related tunables would go in the cputune -->
|
|
<define name="cputune">
|
|
<element name="cputune">
|
|
<interleave>
|
|
<optional>
|
|
<element name="shares">
|
|
<ref name="cpushares"/>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name="global_period">
|
|
<ref name="cpuperiod"/>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name="global_quota">
|
|
<ref name="cpuquota"/>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name="period">
|
|
<ref name="cpuperiod"/>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name="quota">
|
|
<ref name="cpuquota"/>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name="emulator_period">
|
|
<ref name="cpuperiod"/>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name="emulator_quota">
|
|
<ref name="cpuquota"/>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name="iothread_period">
|
|
<ref name="cpuperiod"/>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name="iothread_quota">
|
|
<ref name="cpuquota"/>
|
|
</element>
|
|
</optional>
|
|
<zeroOrMore>
|
|
<element name="vcpupin">
|
|
<attribute name="vcpu">
|
|
<ref name="vcpuid"/>
|
|
</attribute>
|
|
<attribute name="cpuset">
|
|
<ref name="cpuset"/>
|
|
</attribute>
|
|
</element>
|
|
</zeroOrMore>
|
|
<optional>
|
|
<element name="emulatorpin">
|
|
<attribute name="cpuset">
|
|
<ref name="cpuset"/>
|
|
</attribute>
|
|
</element>
|
|
</optional>
|
|
<zeroOrMore>
|
|
<element name="iothreadpin">
|
|
<attribute name="iothread">
|
|
<ref name="unsignedInt"/>
|
|
</attribute>
|
|
<attribute name="cpuset">
|
|
<ref name="cpuset"/>
|
|
</attribute>
|
|
</element>
|
|
</zeroOrMore>
|
|
<zeroOrMore>
|
|
<element name="vcpusched">
|
|
<optional>
|
|
<attribute name="vcpus">
|
|
<ref name='cpuset'/>
|
|
</attribute>
|
|
</optional>
|
|
<ref name="schedparam"/>
|
|
</element>
|
|
</zeroOrMore>
|
|
<zeroOrMore>
|
|
<element name="iothreadsched">
|
|
<optional>
|
|
<attribute name="iothreads">
|
|
<ref name='cpuset'/>
|
|
</attribute>
|
|
</optional>
|
|
<ref name="schedparam"/>
|
|
</element>
|
|
</zeroOrMore>
|
|
<optional>
|
|
<element name="emulatorsched">
|
|
<ref name="schedparam"/>
|
|
</element>
|
|
</optional>
|
|
<zeroOrMore>
|
|
<element name="cachetune">
|
|
<attribute name="vcpus">
|
|
<ref name='cpuset'/>
|
|
</attribute>
|
|
<zeroOrMore>
|
|
<element name="cache">
|
|
<attribute name="id">
|
|
<ref name='unsignedInt'/>
|
|
</attribute>
|
|
<attribute name="level">
|
|
<ref name='unsignedInt'/>
|
|
</attribute>
|
|
<attribute name="type">
|
|
<choice>
|
|
<value>both</value>
|
|
<value>code</value>
|
|
<value>data</value>
|
|
</choice>
|
|
</attribute>
|
|
<attribute name="size">
|
|
<ref name='unsignedLong'/>
|
|
</attribute>
|
|
<optional>
|
|
<attribute name='unit'>
|
|
<ref name='unit'/>
|
|
</attribute>
|
|
</optional>
|
|
</element>
|
|
</zeroOrMore>
|
|
<zeroOrMore>
|
|
<element name="monitor">
|
|
<attribute name="level">
|
|
<ref name='unsignedInt'/>
|
|
</attribute>
|
|
<attribute name="vcpus">
|
|
<ref name='cpuset'/>
|
|
</attribute>
|
|
</element>
|
|
</zeroOrMore>
|
|
</element>
|
|
</zeroOrMore>
|
|
<zeroOrMore>
|
|
<element name="memorytune">
|
|
<attribute name="vcpus">
|
|
<ref name='cpuset'/>
|
|
</attribute>
|
|
<oneOrMore>
|
|
<element name="node">
|
|
<attribute name="id">
|
|
<ref name='unsignedInt'/>
|
|
</attribute>
|
|
<attribute name="bandwidth">
|
|
<ref name='unsignedInt'/>
|
|
</attribute>
|
|
</element>
|
|
</oneOrMore>
|
|
</element>
|
|
</zeroOrMore>
|
|
</interleave>
|
|
</element>
|
|
</define>
|
|
|
|
<define name="schedparam">
|
|
<choice>
|
|
<group>
|
|
<attribute name="scheduler">
|
|
<choice>
|
|
<value>batch</value>
|
|
<value>idle</value>
|
|
</choice>
|
|
</attribute>
|
|
</group>
|
|
<group>
|
|
<attribute name="scheduler">
|
|
<choice>
|
|
<value>fifo</value>
|
|
<value>rr</value>
|
|
</choice>
|
|
</attribute>
|
|
<attribute name="priority">
|
|
<ref name="unsignedShort"/>
|
|
</attribute>
|
|
</group>
|
|
</choice>
|
|
</define>
|
|
|
|
<!-- All the NUMA related tunables would go in the numatune -->
|
|
<define name="numatune">
|
|
<element name="numatune">
|
|
<interleave>
|
|
<optional>
|
|
<element name="memory">
|
|
<optional>
|
|
<attribute name="mode">
|
|
<choice>
|
|
<value>strict</value>
|
|
<value>preferred</value>
|
|
<value>interleave</value>
|
|
</choice>
|
|
</attribute>
|
|
</optional>
|
|
<choice>
|
|
<group>
|
|
<optional>
|
|
<attribute name='placement'>
|
|
<value>static</value>
|
|
</attribute>
|
|
</optional>
|
|
<optional>
|
|
<attribute name='nodeset'>
|
|
<ref name='cpuset'/>
|
|
</attribute>
|
|
</optional>
|
|
</group>
|
|
<attribute name='placement'>
|
|
<value>auto</value>
|
|
</attribute>
|
|
</choice>
|
|
</element>
|
|
</optional>
|
|
<zeroOrMore>
|
|
<element name="memnode">
|
|
<attribute name="cellid">
|
|
<ref name="unsignedInt"/>
|
|
</attribute>
|
|
<attribute name="mode">
|
|
<choice>
|
|
<value>strict</value>
|
|
<value>preferred</value>
|
|
<value>interleave</value>
|
|
</choice>
|
|
</attribute>
|
|
<attribute name='nodeset'>
|
|
<ref name='cpuset'/>
|
|
</attribute>
|
|
</element>
|
|
</zeroOrMore>
|
|
</interleave>
|
|
</element>
|
|
</define>
|
|
|
|
<define name="respartition">
|
|
<element name="resource">
|
|
<element name="partition">
|
|
<ref name="absFilePath"/>
|
|
</element>
|
|
</element>
|
|
</define>
|
|
|
|
<define name="clock">
|
|
<optional>
|
|
<element name="clock">
|
|
<choice>
|
|
<group>
|
|
<attribute name="offset">
|
|
<choice>
|
|
<value>localtime</value>
|
|
<value>utc</value>
|
|
</choice>
|
|
</attribute>
|
|
<optional>
|
|
<attribute name='adjustment'>
|
|
<choice>
|
|
<ref name='timeDelta'/>
|
|
<value>reset</value>
|
|
</choice>
|
|
</attribute>
|
|
</optional>
|
|
</group>
|
|
<group>
|
|
<attribute name="offset">
|
|
<value>timezone</value>
|
|
</attribute>
|
|
<optional>
|
|
<attribute name="timezone">
|
|
<ref name="timeZone"/>
|
|
</attribute>
|
|
</optional>
|
|
</group>
|
|
<group>
|
|
<attribute name="offset">
|
|
<value>variable</value>
|
|
</attribute>
|
|
<optional>
|
|
<attribute name="adjustment">
|
|
<ref name="timeDelta"/>
|
|
</attribute>
|
|
</optional>
|
|
<optional>
|
|
<attribute name="basis">
|
|
<choice>
|
|
<value>utc</value>
|
|
<value>localtime</value>
|
|
</choice>
|
|
</attribute>
|
|
</optional>
|
|
</group>
|
|
</choice>
|
|
<zeroOrMore>
|
|
<ref name="timer"/>
|
|
</zeroOrMore>
|
|
</element>
|
|
</optional>
|
|
</define>
|
|
<define name="timer">
|
|
<element name="timer">
|
|
<choice>
|
|
<group>
|
|
<attribute name="name">
|
|
<choice>
|
|
<value>platform</value>
|
|
<value>rtc</value>
|
|
</choice>
|
|
</attribute>
|
|
<optional>
|
|
<attribute name="track">
|
|
<choice>
|
|
<value>boot</value>
|
|
<value>guest</value>
|
|
<value>wall</value>
|
|
</choice>
|
|
</attribute>
|
|
</optional>
|
|
<optional>
|
|
<ref name="tickpolicy"/>
|
|
</optional>
|
|
</group>
|
|
<group>
|
|
<attribute name="name">
|
|
<value>tsc</value>
|
|
</attribute>
|
|
<optional>
|
|
<ref name="tickpolicy"/>
|
|
</optional>
|
|
<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>
|
|
<value>smpsafe</value>
|
|
</choice>
|
|
</attribute>
|
|
</optional>
|
|
</group>
|
|
<group>
|
|
<attribute name="name">
|
|
<choice>
|
|
<value>hpet</value>
|
|
<value>pit</value>
|
|
</choice>
|
|
</attribute>
|
|
<optional>
|
|
<ref name="tickpolicy"/>
|
|
</optional>
|
|
</group>
|
|
<group>
|
|
<attribute name="name">
|
|
<choice>
|
|
<value>kvmclock</value>
|
|
<value>hypervclock</value>
|
|
</choice>
|
|
</attribute>
|
|
</group>
|
|
</choice>
|
|
<optional>
|
|
<attribute name="present">
|
|
<ref name="virYesNo"/>
|
|
</attribute>
|
|
</optional>
|
|
<empty/>
|
|
</element>
|
|
</define>
|
|
|
|
<define name="tickpolicy">
|
|
<choice>
|
|
<group>
|
|
<attribute name="tickpolicy">
|
|
<choice>
|
|
<value>delay</value>
|
|
<value>merge</value>
|
|
<value>discard</value>
|
|
</choice>
|
|
</attribute>
|
|
</group>
|
|
<group>
|
|
<attribute name="tickpolicy">
|
|
<value>catchup</value>
|
|
</attribute>
|
|
<optional>
|
|
<element name="catchup">
|
|
<optional>
|
|
<attribute name="threshold">
|
|
<ref name="unsignedInt"/>
|
|
</attribute>
|
|
</optional>
|
|
<optional>
|
|
<attribute name="slew">
|
|
<ref name="unsignedInt"/>
|
|
</attribute>
|
|
</optional>
|
|
<optional>
|
|
<attribute name="limit">
|
|
<ref name="unsignedInt"/>
|
|
</attribute>
|
|
</optional>
|
|
</element>
|
|
</optional>
|
|
</group>
|
|
</choice>
|
|
</define>
|
|
<!--
|
|
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.
|
|
-->
|
|
<define name="bootloader">
|
|
<interleave>
|
|
<optional>
|
|
<element name="bootloader">
|
|
<choice>
|
|
<text/>
|
|
<empty/>
|
|
</choice>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name="bootloader_args">
|
|
<text/>
|
|
</element>
|
|
</optional>
|
|
</interleave>
|
|
</define>
|
|
<define name="osbootkernel">
|
|
<interleave>
|
|
<optional>
|
|
<element name="kernel">
|
|
<ref name="absFilePath"/>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name="initrd">
|
|
<ref name="absFilePath"/>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name="root">
|
|
<ref name="absFilePath"/>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name="cmdline">
|
|
<text/>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name="dtb">
|
|
<ref name="absFilePath"/>
|
|
</element>
|
|
</optional>
|
|
</interleave>
|
|
</define>
|
|
<define name="osbootdev">
|
|
<element name="boot">
|
|
<attribute name="dev">
|
|
<choice>
|
|
<value>hd</value>
|
|
<value>fd</value>
|
|
<value>cdrom</value>
|
|
<value>network</value>
|
|
</choice>
|
|
</attribute>
|
|
<empty/>
|
|
</element>
|
|
</define>
|
|
<define name="diskspec">
|
|
<interleave>
|
|
<optional>
|
|
<ref name="diskDriver"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name='diskMirror'/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="diskAuth"/>
|
|
</optional>
|
|
<ref name="target"/>
|
|
<optional>
|
|
<ref name="deviceBoot"/>
|
|
</optional>
|
|
<optional>
|
|
<element name="backenddomain">
|
|
<attribute name="name">
|
|
<ref name="domainName"/>
|
|
</attribute>
|
|
<empty/>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name="readonly">
|
|
<empty/>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name="shareable">
|
|
<empty/>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name="transient">
|
|
<empty/>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name="serial">
|
|
<ref name="diskSerial"/>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<ref name="encryption"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="diskIoTune"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="alias"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="address"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="geometry"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="diskBlockIo"/>
|
|
</optional>
|
|
<optional>
|
|
<element name="wwn">
|
|
<ref name="wwn"/>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name="vendor">
|
|
<data type="string">
|
|
<!-- All printable characters -->
|
|
<param name="pattern">[ -~]{0,8}</param>
|
|
</data>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name="product">
|
|
<data type="string">
|
|
<!-- All printable characters -->
|
|
<param name="pattern">[ -~]{0,16}</param>
|
|
</data>
|
|
</element>
|
|
</optional>
|
|
</interleave>
|
|
</define>
|
|
<define name="snapshot">
|
|
<attribute name="snapshot">
|
|
<choice>
|
|
<value>no</value>
|
|
<value>internal</value>
|
|
<value>external</value>
|
|
</choice>
|
|
</attribute>
|
|
</define>
|
|
|
|
<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>
|
|
|
|
<define name="startupPolicy">
|
|
<attribute name="startupPolicy">
|
|
<choice>
|
|
<value>mandatory</value>
|
|
<value>requisite</value>
|
|
<value>optional</value>
|
|
</choice>
|
|
</attribute>
|
|
</define>
|
|
|
|
<!--
|
|
A disk description can be either of type file or block
|
|
The name of the attribute on the source element depends on the type
|
|
|
|
-->
|
|
<define name="disk">
|
|
<element name="disk">
|
|
<choice>
|
|
<group>
|
|
<optional>
|
|
<attribute name="device">
|
|
<choice>
|
|
<value>floppy</value>
|
|
<value>disk</value>
|
|
<value>cdrom</value>
|
|
</choice>
|
|
</attribute>
|
|
</optional>
|
|
<interleave>
|
|
<ref name="diskSource"/>
|
|
<ref name="diskSpecsExtra"/>
|
|
</interleave>
|
|
</group>
|
|
<group>
|
|
<attribute name="device">
|
|
<value>lun</value>
|
|
</attribute>
|
|
<optional>
|
|
<ref name="rawIO"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="sgIO"/>
|
|
</optional>
|
|
<interleave>
|
|
<choice>
|
|
<ref name="diskSourceNetwork"/>
|
|
<ref name="diskSourceBlock"/>
|
|
<ref name="diskSourceVolume"/>
|
|
</choice>
|
|
<ref name="diskSpecsExtra"/>
|
|
</interleave>
|
|
</group>
|
|
</choice>
|
|
<optional>
|
|
<attribute name="model">
|
|
<choice>
|
|
<value>virtio</value>
|
|
<value>virtio-transitional</value>
|
|
<value>virtio-non-transitional</value>
|
|
</choice>
|
|
</attribute>
|
|
</optional>
|
|
<optional>
|
|
<ref name="snapshot"/>
|
|
</optional>
|
|
</element>
|
|
</define>
|
|
|
|
<define name="diskSpecsExtra">
|
|
<interleave>
|
|
<ref name="storageSourceExtra"/>
|
|
<ref name="diskBackingChain"/>
|
|
</interleave>
|
|
</define>
|
|
|
|
<define name="diskBackingChain">
|
|
<choice>
|
|
<ref name="diskBackingStore"/>
|
|
<ref name="diskBackingStoreLast"/>
|
|
</choice>
|
|
</define>
|
|
|
|
<define name="diskBackingStore">
|
|
<element name="backingStore">
|
|
<optional>
|
|
<attribute name="index">
|
|
<ref name="positiveInteger"/>
|
|
</attribute>
|
|
</optional>
|
|
<interleave>
|
|
<ref name="diskSource"/>
|
|
<ref name="diskBackingChain"/>
|
|
<ref name="diskFormat"/>
|
|
</interleave>
|
|
</element>
|
|
</define>
|
|
|
|
<define name="diskFormat">
|
|
<element name="format">
|
|
<attribute name="type">
|
|
<ref name="storageFormat"/>
|
|
</attribute>
|
|
<empty/>
|
|
</element>
|
|
</define>
|
|
|
|
<define name="diskBackingStoreLast">
|
|
<optional>
|
|
<element name="backingStore">
|
|
<empty/>
|
|
</element>
|
|
</optional>
|
|
</define>
|
|
|
|
<define name="diskSourceCommon">
|
|
<optional>
|
|
<attribute name="index">
|
|
<ref name="positiveInteger"/>
|
|
</attribute>
|
|
</optional>
|
|
</define>
|
|
|
|
<define name="diskSource">
|
|
<choice>
|
|
<ref name="diskSourceFile"/>
|
|
<ref name="diskSourceBlock"/>
|
|
<ref name="diskSourceDir"/>
|
|
<ref name="diskSourceNetwork"/>
|
|
<ref name="diskSourceVolume"/>
|
|
</choice>
|
|
</define>
|
|
|
|
<define name="diskSourceFile">
|
|
<optional>
|
|
<attribute name="type">
|
|
<value>file</value>
|
|
</attribute>
|
|
</optional>
|
|
<optional>
|
|
<element name="source">
|
|
<optional>
|
|
<attribute name="file">
|
|
<ref name="absFilePath"/>
|
|
</attribute>
|
|
</optional>
|
|
<ref name="diskSourceCommon"/>
|
|
<optional>
|
|
<ref name="storageStartupPolicy"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="encryption"/>
|
|
</optional>
|
|
<zeroOrMore>
|
|
<ref name='devSeclabel'/>
|
|
</zeroOrMore>
|
|
</element>
|
|
</optional>
|
|
</define>
|
|
|
|
<define name="diskSourceBlock">
|
|
<attribute name="type">
|
|
<value>block</value>
|
|
</attribute>
|
|
<optional>
|
|
<element name="source">
|
|
<optional>
|
|
<attribute name="dev">
|
|
<ref name="absFilePath"/>
|
|
</attribute>
|
|
</optional>
|
|
<ref name="diskSourceCommon"/>
|
|
<optional>
|
|
<ref name="storageStartupPolicy"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="encryption"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="reservations"/>
|
|
</optional>
|
|
<zeroOrMore>
|
|
<ref name='devSeclabel'/>
|
|
</zeroOrMore>
|
|
</element>
|
|
</optional>
|
|
</define>
|
|
|
|
<define name="diskSourceDir">
|
|
<attribute name="type">
|
|
<value>dir</value>
|
|
</attribute>
|
|
<optional>
|
|
<element name="source">
|
|
<attribute name="dir">
|
|
<ref name="absFilePath"/>
|
|
</attribute>
|
|
<ref name="diskSourceCommon"/>
|
|
<optional>
|
|
<ref name="storageStartupPolicy"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="encryption"/>
|
|
</optional>
|
|
<empty/>
|
|
</element>
|
|
</optional>
|
|
</define>
|
|
|
|
<define name="diskSourceNetworkHost">
|
|
<element name="host">
|
|
<choice>
|
|
<group>
|
|
<optional>
|
|
<attribute name="transport">
|
|
<choice>
|
|
<value>tcp</value>
|
|
<value>rdma</value>
|
|
</choice>
|
|
</attribute>
|
|
</optional>
|
|
<attribute name="name">
|
|
<choice>
|
|
<ref name="dnsName"/>
|
|
<ref name="ipAddr"/>
|
|
</choice>
|
|
</attribute>
|
|
<optional>
|
|
<attribute name="port">
|
|
<ref name="unsignedInt"/>
|
|
</attribute>
|
|
</optional>
|
|
</group>
|
|
<group>
|
|
<attribute name="transport">
|
|
<value>unix</value>
|
|
</attribute>
|
|
<attribute name="socket">
|
|
<ref name="absFilePath"/>
|
|
</attribute>
|
|
</group>
|
|
</choice>
|
|
</element>
|
|
</define>
|
|
|
|
<define name="diskSourceNetworkProtocolRBD">
|
|
<element name="source">
|
|
<interleave>
|
|
<attribute name="protocol">
|
|
<value>rbd</value>
|
|
</attribute>
|
|
<ref name="diskSourceCommon"/>
|
|
<optional>
|
|
<attribute name="name"/>
|
|
</optional>
|
|
<zeroOrMore>
|
|
<ref name="diskSourceNetworkHost"/>
|
|
</zeroOrMore>
|
|
<optional>
|
|
<element name="snapshot">
|
|
<attribute name="name">
|
|
<ref name="genericName"/>
|
|
</attribute>
|
|
<empty/>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name="config">
|
|
<attribute name="file">
|
|
<ref name="absFilePath"/>
|
|
</attribute>
|
|
<empty/>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<ref name="diskAuth"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="encryption"/>
|
|
</optional>
|
|
<empty/>
|
|
</interleave>
|
|
</element>
|
|
</define>
|
|
|
|
<define name="diskSourceNetworkProtocolISCSI">
|
|
<element name="source">
|
|
<attribute name="protocol">
|
|
<value>iscsi</value>
|
|
</attribute>
|
|
<attribute name="name"/>
|
|
<ref name="diskSourceCommon"/>
|
|
<ref name="diskSourceNetworkHost"/>
|
|
<optional>
|
|
<ref name="diskAuth"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="encryption"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="initiatorinfo"/>
|
|
</optional>
|
|
</element>
|
|
</define>
|
|
|
|
<define name="diskSourceNetworkProtocolHTTP">
|
|
<element name="source">
|
|
<attribute name="protocol">
|
|
<choice>
|
|
<value>http</value>
|
|
<value>https</value>
|
|
</choice>
|
|
</attribute>
|
|
<attribute name="name"/>
|
|
<ref name="diskSourceCommon"/>
|
|
<ref name="diskSourceNetworkHost"/>
|
|
<optional>
|
|
<ref name="encryption"/>
|
|
</optional>
|
|
</element>
|
|
</define>
|
|
|
|
<define name="diskSourceNetworkProtocolSimple">
|
|
<element name="source">
|
|
<attribute name="protocol">
|
|
<choice>
|
|
<value>sheepdog</value>
|
|
<value>ftp</value>
|
|
<value>ftps</value>
|
|
<value>tftp</value>
|
|
</choice>
|
|
</attribute>
|
|
<attribute name="name"/>
|
|
<ref name="diskSourceCommon"/>
|
|
<ref name="diskSourceNetworkHost"/>
|
|
<optional>
|
|
<ref name="encryption"/>
|
|
</optional>
|
|
</element>
|
|
</define>
|
|
|
|
<define name="diskSourceNetworkProtocolNBD">
|
|
<element name="source">
|
|
<attribute name="protocol">
|
|
<value>nbd</value>
|
|
</attribute>
|
|
<optional>
|
|
<attribute name="name"/>
|
|
</optional>
|
|
<optional>
|
|
<attribute name="tls">
|
|
<ref name="virYesNo"/>
|
|
</attribute>
|
|
</optional>
|
|
<ref name="diskSourceCommon"/>
|
|
<ref name="diskSourceNetworkHost"/>
|
|
<optional>
|
|
<ref name="encryption"/>
|
|
</optional>
|
|
</element>
|
|
</define>
|
|
|
|
<define name="diskSourceNetworkProtocolGluster">
|
|
<element name="source">
|
|
<attribute name="protocol">
|
|
<value>gluster</value>
|
|
</attribute>
|
|
<attribute name="name"/>
|
|
<ref name="diskSourceCommon"/>
|
|
<oneOrMore>
|
|
<ref name="diskSourceNetworkHost"/>
|
|
</oneOrMore>
|
|
<optional>
|
|
<ref name="encryption"/>
|
|
</optional>
|
|
</element>
|
|
</define>
|
|
|
|
<define name="diskSourceNetworkProtocolVxHS">
|
|
<element name="source">
|
|
<attribute name="protocol">
|
|
<choice>
|
|
<value>vxhs</value>
|
|
</choice>
|
|
</attribute>
|
|
<attribute name="name"/>
|
|
<ref name="diskSourceCommon"/>
|
|
<optional>
|
|
<attribute name="tls">
|
|
<ref name="virYesNo"/>
|
|
</attribute>
|
|
</optional>
|
|
<ref name="diskSourceNetworkHost"/>
|
|
</element>
|
|
</define>
|
|
|
|
<define name="diskSourceNetwork">
|
|
<attribute name="type">
|
|
<value>network</value>
|
|
</attribute>
|
|
<choice>
|
|
<ref name="diskSourceNetworkProtocolNBD"/>
|
|
<ref name="diskSourceNetworkProtocolGluster"/>
|
|
<ref name="diskSourceNetworkProtocolRBD"/>
|
|
<ref name="diskSourceNetworkProtocolISCSI"/>
|
|
<ref name="diskSourceNetworkProtocolHTTP"/>
|
|
<ref name="diskSourceNetworkProtocolSimple"/>
|
|
<ref name="diskSourceNetworkProtocolVxHS"/>
|
|
</choice>
|
|
</define>
|
|
|
|
<define name="diskSourceVolume">
|
|
<attribute name="type">
|
|
<value>volume</value>
|
|
</attribute>
|
|
<optional>
|
|
<element name="source">
|
|
<attribute name="pool">
|
|
<ref name="poolName"/>
|
|
</attribute>
|
|
<attribute name="volume">
|
|
<ref name="volName"/>
|
|
</attribute>
|
|
<optional>
|
|
<attribute name="mode">
|
|
<choice>
|
|
<value>host</value>
|
|
<value>direct</value>
|
|
</choice>
|
|
</attribute>
|
|
</optional>
|
|
<ref name="diskSourceCommon"/>
|
|
<optional>
|
|
<ref name="storageStartupPolicy"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="encryption"/>
|
|
</optional>
|
|
<zeroOrMore>
|
|
<ref name='devSeclabel'/>
|
|
</zeroOrMore>
|
|
</element>
|
|
</optional>
|
|
</define>
|
|
|
|
<define name="diskTarget">
|
|
<data type="string">
|
|
<param name="pattern">(ioemu:)?(fd|hd|sd|vd|xvd|ubd)[a-zA-Z0-9_]+</param>
|
|
</data>
|
|
</define>
|
|
<define name="target">
|
|
<element name="target">
|
|
<attribute name="dev">
|
|
<ref name="diskTarget"/>
|
|
</attribute>
|
|
<optional>
|
|
<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> <!-- NOT USED ANYMORE -->
|
|
<value>sata</value>
|
|
<value>sd</value>
|
|
</choice>
|
|
</attribute>
|
|
</optional>
|
|
<optional>
|
|
<attribute name="tray">
|
|
<choice>
|
|
<value>open</value>
|
|
<value>closed</value>
|
|
</choice>
|
|
</attribute>
|
|
</optional>
|
|
<optional>
|
|
<attribute name="removable">
|
|
<ref name="virOnOff"/>
|
|
</attribute>
|
|
</optional>
|
|
</element>
|
|
</define>
|
|
<define name="geometry">
|
|
<element name="geometry">
|
|
<attribute name="cyls">
|
|
<data type="integer"/>
|
|
</attribute>
|
|
<attribute name="heads">
|
|
<data type="integer"/>
|
|
</attribute>
|
|
<attribute name="secs">
|
|
<data type="integer"/>
|
|
</attribute>
|
|
<optional>
|
|
<attribute name="trans">
|
|
<choice>
|
|
<value>auto</value>
|
|
<value>none</value>
|
|
<value>lba</value>
|
|
</choice>
|
|
</attribute>
|
|
</optional>
|
|
</element>
|
|
</define>
|
|
<define name="diskBlockIo">
|
|
<element name="blockio">
|
|
<optional>
|
|
<attribute name="logical_block_size">
|
|
<data type="integer"/>
|
|
</attribute>
|
|
</optional>
|
|
<optional>
|
|
<attribute name="physical_block_size">
|
|
<data type="integer"/>
|
|
</attribute>
|
|
</optional>
|
|
</element>
|
|
</define>
|
|
<!--
|
|
Disk may use a special driver for access.
|
|
-->
|
|
<define name="diskDriver">
|
|
<element name="driver">
|
|
<optional>
|
|
<ref name="driverFormat"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="driverCache"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="driverErrorPolicy"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="driverRerrorPolicy"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="driverIO"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="ioeventfd"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="event_idx"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="copy_on_read"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="discard"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="driverIOThread"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="detect_zeroes"/>
|
|
</optional>
|
|
<optional>
|
|
<attribute name='queues'>
|
|
<ref name="positiveInteger"/>
|
|
</attribute>
|
|
</optional>
|
|
<ref name="virtioOptions"/>
|
|
<empty/>
|
|
</element>
|
|
</define>
|
|
<define name="driverFormat">
|
|
<optional>
|
|
<attribute name="name">
|
|
<ref name="genericName"/>
|
|
</attribute>
|
|
</optional>
|
|
<optional>
|
|
<attribute name='type'>
|
|
<choice>
|
|
<ref name='storageFormat'/>
|
|
<value>aio</value> <!-- back-compat for 'raw' -->
|
|
</choice>
|
|
</attribute>
|
|
</optional>
|
|
</define>
|
|
|
|
<define name="driverCache">
|
|
<attribute name="cache">
|
|
<choice>
|
|
<value>default</value>
|
|
<value>none</value>
|
|
<value>writeback</value>
|
|
<value>writethrough</value>
|
|
<value>directsync</value>
|
|
<value>unsafe</value>
|
|
</choice>
|
|
</attribute>
|
|
</define>
|
|
<define name="driverErrorPolicy">
|
|
<attribute name="error_policy">
|
|
<choice>
|
|
<value>stop</value>
|
|
<value>report</value>
|
|
<value>ignore</value>
|
|
<value>enospace</value>
|
|
</choice>
|
|
</attribute>
|
|
</define>
|
|
<define name="driverRerrorPolicy">
|
|
<attribute name="rerror_policy">
|
|
<choice>
|
|
<value>stop</value>
|
|
<value>report</value>
|
|
<value>ignore</value>
|
|
</choice>
|
|
</attribute>
|
|
</define>
|
|
<define name="driverIO">
|
|
<attribute name="io">
|
|
<choice>
|
|
<value>threads</value>
|
|
<value>native</value>
|
|
</choice>
|
|
</attribute>
|
|
</define>
|
|
<define name="ioeventfd">
|
|
<attribute name="ioeventfd">
|
|
<ref name="virOnOff"/>
|
|
</attribute>
|
|
</define>
|
|
<define name="event_idx">
|
|
<attribute name="event_idx">
|
|
<ref name="virOnOff"/>
|
|
</attribute>
|
|
</define>
|
|
<define name="copy_on_read">
|
|
<attribute name='copy_on_read'>
|
|
<ref name="virOnOff"/>
|
|
</attribute>
|
|
</define>
|
|
<define name="discard">
|
|
<attribute name='discard'>
|
|
<choice>
|
|
<value>unmap</value>
|
|
<value>ignore</value>
|
|
</choice>
|
|
</attribute>
|
|
</define>
|
|
<define name="driverIOThread">
|
|
<attribute name='iothread'>
|
|
<ref name="unsignedInt"/>
|
|
</attribute>
|
|
</define>
|
|
<define name="detect_zeroes">
|
|
<attribute name='detect_zeroes'>
|
|
<choice>
|
|
<value>off</value>
|
|
<value>on</value>
|
|
<value>unmap</value>
|
|
</choice>
|
|
</attribute>
|
|
</define>
|
|
<define name="controller">
|
|
<element name="controller">
|
|
<optional>
|
|
<attribute name="index">
|
|
<ref name="unsignedInt"/>
|
|
</attribute>
|
|
</optional>
|
|
<interleave>
|
|
<optional>
|
|
<ref name="alias"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="address"/>
|
|
</optional>
|
|
<choice>
|
|
<!-- fdc/sata/ccid have only the common attributes -->
|
|
<group>
|
|
<attribute name="type">
|
|
<choice>
|
|
<value>fdc</value>
|
|
<value>sata</value>
|
|
<value>ccid</value>
|
|
</choice>
|
|
</attribute>
|
|
</group>
|
|
<!-- scsi has an optional attribute "model" -->
|
|
<group>
|
|
<attribute name="type">
|
|
<value>scsi</value>
|
|
</attribute>
|
|
<optional>
|
|
<attribute name="model">
|
|
<choice>
|
|
<value>auto</value>
|
|
<value>buslogic</value>
|
|
<value>lsilogic</value>
|
|
<value>lsisas1068</value>
|
|
<value>vmpvscsi</value>
|
|
<value>ibmvscsi</value>
|
|
<value>virtio-scsi</value>
|
|
<value>lsisas1078</value>
|
|
<value>virtio-transitional</value>
|
|
<value>virtio-non-transitional</value>
|
|
</choice>
|
|
</attribute>
|
|
</optional>
|
|
</group>
|
|
<!-- usb has an optional attribute "model",
|
|
and optional subelements "master" and "ports" -->
|
|
<group>
|
|
<attribute name="type">
|
|
<value>usb</value>
|
|
</attribute>
|
|
<optional>
|
|
<attribute name="model">
|
|
<choice>
|
|
<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>
|
|
<value>nec-xhci</value>
|
|
<value>none</value>
|
|
<value>qusb1</value>
|
|
<value>qusb2</value>
|
|
<value>qemu-xhci</value>
|
|
</choice>
|
|
</attribute>
|
|
</optional>
|
|
<optional>
|
|
<ref name="usbmaster"/>
|
|
</optional>
|
|
<optional>
|
|
<attribute name="ports">
|
|
<ref name="unsignedInt"/>
|
|
</attribute>
|
|
</optional>
|
|
</group>
|
|
<!-- ide has an optional attribute "model" -->
|
|
<group>
|
|
<attribute name="type">
|
|
<value>ide</value>
|
|
</attribute>
|
|
<optional>
|
|
<attribute name="model">
|
|
<choice>
|
|
<value>piix3</value>
|
|
<value>piix4</value>
|
|
<value>ich6</value>
|
|
</choice>
|
|
</attribute>
|
|
</optional>
|
|
</group>
|
|
<!-- pci has an optional attribute "model" -->
|
|
<group>
|
|
<attribute name="type">
|
|
<value>pci</value>
|
|
</attribute>
|
|
<optional>
|
|
<element name="model">
|
|
<attribute name="name">
|
|
<choice>
|
|
<!-- implementations of 'pci-root' -->
|
|
<value>spapr-pci-host-bridge</value>
|
|
<!-- implementations of 'pci-bridge' -->
|
|
<value>pci-bridge</value>
|
|
<!-- implementations of 'dmi-to-pci-bridge' -->
|
|
<value>i82801b11-bridge</value>
|
|
<!-- implementations of 'pcie-to-pci-bridge' -->
|
|
<value>pcie-pci-bridge</value>
|
|
<!-- implementations of 'pcie-root-port' -->
|
|
<value>ioh3420</value>
|
|
<value>pcie-root-port</value>
|
|
<!-- implementations of 'pcie-switch-upstream-port' -->
|
|
<value>x3130-upstream</value>
|
|
<!-- implementations of 'pcie-switch-downstream-port' -->
|
|
<value>xio3130-downstream</value>
|
|
<!-- implementations of 'pci-expander-bus' -->
|
|
<value>pxb</value>
|
|
<!-- implementations of 'pcie-expander-bus' -->
|
|
<value>pxb-pcie</value>
|
|
</choice>
|
|
</attribute>
|
|
<empty/>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name="target">
|
|
<optional>
|
|
<attribute name='chassisNr'>
|
|
<ref name='uint8'/>
|
|
</attribute>
|
|
</optional>
|
|
<optional>
|
|
<attribute name="chassis">
|
|
<ref name='uint8'/>
|
|
</attribute>
|
|
</optional>
|
|
<optional>
|
|
<attribute name="port">
|
|
<ref name='uint8'/>
|
|
</attribute>
|
|
</optional>
|
|
<optional>
|
|
<attribute name='busNr'>
|
|
<ref name='uint8'/>
|
|
</attribute>
|
|
</optional>
|
|
<optional>
|
|
<attribute name='index'>
|
|
<ref name='uint8'/>
|
|
</attribute>
|
|
</optional>
|
|
<optional>
|
|
<element name='node'>
|
|
<ref name='unsignedInt'/>
|
|
</element>
|
|
</optional>
|
|
</element>
|
|
</optional>
|
|
<!-- *-root controllers have an optional element "pcihole64"-->
|
|
<choice>
|
|
<group>
|
|
<attribute name="model">
|
|
<choice>
|
|
<value>pci-root</value>
|
|
<value>pcie-root</value>
|
|
</choice>
|
|
</attribute>
|
|
<optional>
|
|
<element name="pcihole64">
|
|
<ref name="scaledInteger"/>
|
|
</element>
|
|
</optional>
|
|
</group>
|
|
<group>
|
|
<attribute name="model">
|
|
<choice>
|
|
<value>pci-bridge</value>
|
|
<value>dmi-to-pci-bridge</value>
|
|
<value>pcie-to-pci-bridge</value>
|
|
<value>pcie-root-port</value>
|
|
<value>pcie-switch-upstream-port</value>
|
|
<value>pcie-switch-downstream-port</value>
|
|
<value>pci-expander-bus</value>
|
|
<value>pcie-expander-bus</value>
|
|
</choice>
|
|
</attribute>
|
|
</group>
|
|
</choice>
|
|
</group>
|
|
<!-- virtio-serial has optional "ports" and "vectors" -->
|
|
<group>
|
|
<attribute name="type">
|
|
<value>virtio-serial</value>
|
|
</attribute>
|
|
<optional>
|
|
<attribute name="model">
|
|
<choice>
|
|
<value>virtio</value>
|
|
<value>virtio-transitional</value>
|
|
<value>virtio-non-transitional</value>
|
|
</choice>
|
|
</attribute>
|
|
</optional>
|
|
<optional>
|
|
<attribute name="ports">
|
|
<ref name="unsignedInt"/>
|
|
</attribute>
|
|
</optional>
|
|
<optional>
|
|
<attribute name="vectors">
|
|
<ref name="unsignedInt"/>
|
|
</attribute>
|
|
</optional>
|
|
</group>
|
|
<!-- xenbus has an optional attribute "maxGrantFrames" -->
|
|
<group>
|
|
<attribute name="type">
|
|
<value>xenbus</value>
|
|
</attribute>
|
|
<optional>
|
|
<attribute name="maxGrantFrames">
|
|
<ref name="unsignedInt"/>
|
|
</attribute>
|
|
</optional>
|
|
</group>
|
|
</choice>
|
|
<optional>
|
|
<element name="driver">
|
|
<optional>
|
|
<attribute name="queues">
|
|
<ref name="unsignedInt"/>
|
|
</attribute>
|
|
</optional>
|
|
<optional>
|
|
<attribute name="cmd_per_lun">
|
|
<ref name="unsignedInt"/>
|
|
</attribute>
|
|
</optional>
|
|
<optional>
|
|
<attribute name="max_sectors">
|
|
<ref name="unsignedInt"/>
|
|
</attribute>
|
|
</optional>
|
|
<optional>
|
|
<ref name="ioeventfd"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="driverIOThread"/>
|
|
</optional>
|
|
<ref name="virtioOptions"/>
|
|
</element>
|
|
</optional>
|
|
</interleave>
|
|
</element>
|
|
</define>
|
|
<define name="filesystem">
|
|
<element name="filesystem">
|
|
<choice>
|
|
<group>
|
|
<attribute name="type">
|
|
<value>file</value>
|
|
</attribute>
|
|
<optional>
|
|
<ref name="fsDriver"/>
|
|
</optional>
|
|
<interleave>
|
|
<element name="source">
|
|
<attribute name="file">
|
|
<ref name="absFilePath"/>
|
|
</attribute>
|
|
<empty/>
|
|
</element>
|
|
</interleave>
|
|
</group>
|
|
<group>
|
|
<attribute name="type">
|
|
<value>block</value>
|
|
</attribute>
|
|
<optional>
|
|
<ref name="fsDriver"/>
|
|
</optional>
|
|
<interleave>
|
|
<element name="source">
|
|
<attribute name="dev">
|
|
<ref name="absFilePath"/>
|
|
</attribute>
|
|
<empty/>
|
|
</element>
|
|
</interleave>
|
|
</group>
|
|
<group>
|
|
<!-- type='mount' is default -->
|
|
<optional>
|
|
<attribute name="type">
|
|
<value>mount</value>
|
|
</attribute>
|
|
</optional>
|
|
<optional>
|
|
<ref name="fsDriver"/>
|
|
</optional>
|
|
<interleave>
|
|
<element name="source">
|
|
<attribute name="dir">
|
|
<ref name="absDirPath"/>
|
|
</attribute>
|
|
<empty/>
|
|
</element>
|
|
</interleave>
|
|
</group>
|
|
<group>
|
|
<optional>
|
|
<attribute name="type">
|
|
<value>bind</value>
|
|
</attribute>
|
|
</optional>
|
|
<optional>
|
|
<ref name="fsDriver"/>
|
|
</optional>
|
|
<interleave>
|
|
<element name="source">
|
|
<attribute name="dir">
|
|
<ref name="absDirPath"/>
|
|
</attribute>
|
|
<empty/>
|
|
</element>
|
|
</interleave>
|
|
</group>
|
|
<group>
|
|
<attribute name="type">
|
|
<value>template</value>
|
|
</attribute>
|
|
<optional>
|
|
<ref name="fsDriver"/>
|
|
</optional>
|
|
<interleave>
|
|
<element name="source">
|
|
<attribute name="name">
|
|
<ref name="genericName"/>
|
|
</attribute>
|
|
<empty/>
|
|
</element>
|
|
</interleave>
|
|
</group>
|
|
<group>
|
|
<attribute name="type">
|
|
<value>ram</value>
|
|
</attribute>
|
|
<optional>
|
|
<ref name="fsDriver"/>
|
|
</optional>
|
|
<interleave>
|
|
<element name="source">
|
|
<attribute name="usage">
|
|
<ref name="unsignedLong"/>
|
|
</attribute>
|
|
<optional>
|
|
<attribute name='units'>
|
|
<ref name='unit'/>
|
|
</attribute>
|
|
</optional>
|
|
<empty/>
|
|
</element>
|
|
</interleave>
|
|
</group>
|
|
</choice>
|
|
<interleave>
|
|
<element name="target">
|
|
<attribute name="dir"/>
|
|
<empty/>
|
|
</element>
|
|
<optional>
|
|
<attribute name="accessmode">
|
|
<choice>
|
|
<value>passthrough</value>
|
|
<value>mapped</value>
|
|
<value>squash</value>
|
|
</choice>
|
|
</attribute>
|
|
</optional>
|
|
<optional>
|
|
<element name='readonly'>
|
|
<empty/>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<ref name="alias"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="address"/>
|
|
</optional>
|
|
</interleave>
|
|
<interleave>
|
|
<optional>
|
|
<element name="space_hard_limit">
|
|
<ref name='scaledInteger'/>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name="space_soft_limit">
|
|
<ref name='scaledInteger'/>
|
|
</element>
|
|
</optional>
|
|
</interleave>
|
|
<optional>
|
|
<attribute name="model">
|
|
<choice>
|
|
<value>virtio</value>
|
|
<value>virtio-transitional</value>
|
|
<value>virtio-non-transitional</value>
|
|
</choice>
|
|
</attribute>
|
|
</optional>
|
|
</element>
|
|
</define>
|
|
<define name="fsDriver">
|
|
<element name="driver">
|
|
<!-- Annoying inconsistency. 'disk' uses 'name'
|
|
for this kind of info, and 'type' for the
|
|
storage format. We need the latter too, so
|
|
had to invent a new attribute name -->
|
|
<optional>
|
|
<attribute name="type">
|
|
<choice>
|
|
<value>path</value>
|
|
<value>handle</value>
|
|
<value>loop</value>
|
|
<value>nbd</value>
|
|
<value>ploop</value>
|
|
</choice>
|
|
</attribute>
|
|
</optional>
|
|
<optional>
|
|
<attribute name="format">
|
|
<ref name="storageFormat"/>
|
|
</attribute>
|
|
</optional>
|
|
<optional>
|
|
<attribute name="wrpolicy">
|
|
<value>immediate</value>
|
|
</attribute>
|
|
</optional>
|
|
<ref name='virtioOptions'/>
|
|
<empty/>
|
|
</element>
|
|
</define>
|
|
|
|
<define name="interface-network-attributes">
|
|
<attribute name="network">
|
|
<text/>
|
|
</attribute>
|
|
<optional>
|
|
<attribute name="portgroup">
|
|
<ref name="deviceName"/>
|
|
</attribute>
|
|
</optional>
|
|
</define>
|
|
|
|
<define name="interface-bridge-attributes">
|
|
<attribute name="bridge">
|
|
<ref name="deviceName"/>
|
|
</attribute>
|
|
<optional>
|
|
<attribute name="macTableManager">
|
|
<ref name="macTableManager"/>
|
|
</attribute>
|
|
</optional>
|
|
</define>
|
|
|
|
<!--
|
|
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
|
|
options. FIXME
|
|
-->
|
|
<define name="interface">
|
|
<element name="interface">
|
|
<choice>
|
|
<group>
|
|
<attribute name="type">
|
|
<value>bridge</value>
|
|
</attribute>
|
|
<interleave>
|
|
<optional>
|
|
<element name="source">
|
|
<ref name="interface-bridge-attributes"/>
|
|
<optional>
|
|
<ref name="interface-network-attributes"/>
|
|
</optional>
|
|
<empty/>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<ref name="virtualPortProfile"/>
|
|
</optional>
|
|
<ref name="interface-options"/>
|
|
</interleave>
|
|
</group>
|
|
<group>
|
|
<attribute name="type">
|
|
<value>ethernet</value>
|
|
</attribute>
|
|
<interleave>
|
|
<optional>
|
|
<element name="source">
|
|
<ref name="interface-ip-info"/>
|
|
</element>
|
|
</optional>
|
|
<ref name="interface-options"/>
|
|
</interleave>
|
|
</group>
|
|
<group>
|
|
<attribute name="type">
|
|
<value>vhostuser</value>
|
|
</attribute>
|
|
<interleave>
|
|
<ref name="unixSocketSource"/>
|
|
<ref name="interface-options"/>
|
|
</interleave>
|
|
</group>
|
|
<group>
|
|
<attribute name="type">
|
|
<value>network</value>
|
|
</attribute>
|
|
<interleave>
|
|
<element name="source">
|
|
<ref name='interface-network-attributes'/>
|
|
<optional>
|
|
<ref name="interface-bridge-attributes"/>
|
|
</optional>
|
|
<empty/>
|
|
</element>
|
|
<optional>
|
|
<ref name="virtualPortProfile"/>
|
|
</optional>
|
|
<ref name="interface-options"/>
|
|
</interleave>
|
|
</group>
|
|
<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>
|
|
<optional>
|
|
<ref name='interface-network-attributes'/>
|
|
</optional>
|
|
<empty/>
|
|
</element>
|
|
<optional>
|
|
<ref name="virtualPortProfile"/>
|
|
</optional>
|
|
<ref name="interface-options"/>
|
|
</interleave>
|
|
</group>
|
|
<group>
|
|
<attribute name="type">
|
|
<value>user</value>
|
|
</attribute>
|
|
<interleave>
|
|
<ref name="interface-options"/>
|
|
</interleave>
|
|
</group>
|
|
<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>
|
|
<group>
|
|
<attribute name="type">
|
|
<choice>
|
|
<value>mcast</value>
|
|
<value>client</value>
|
|
</choice>
|
|
</attribute>
|
|
<interleave>
|
|
<element name="source">
|
|
<attribute name="address">
|
|
<ref name="ipv4Addr"/>
|
|
</attribute>
|
|
<attribute name="port">
|
|
<ref name="PortNumber"/>
|
|
</attribute>
|
|
<empty/>
|
|
</element>
|
|
<ref name="interface-options"/>
|
|
</interleave>
|
|
</group>
|
|
<group>
|
|
<attribute name="type">
|
|
<value>udp</value>
|
|
</attribute>
|
|
<interleave>
|
|
<element name="source">
|
|
<attribute name="address">
|
|
<ref name="ipv4Addr"/>
|
|
</attribute>
|
|
<attribute name="port">
|
|
<ref name="PortNumber"/>
|
|
</attribute>
|
|
<element name="local">
|
|
<attribute name="address">
|
|
<ref name="ipv4Addr"/>
|
|
</attribute>
|
|
<attribute name="port">
|
|
<ref name="PortNumber"/>
|
|
</attribute>
|
|
<empty/>
|
|
</element>
|
|
</element>
|
|
<ref name="interface-options"/>
|
|
</interleave>
|
|
</group>
|
|
<group>
|
|
<attribute name="type">
|
|
<value>server</value>
|
|
</attribute>
|
|
<interleave>
|
|
<element name="source">
|
|
<optional>
|
|
<attribute name="address">
|
|
<ref name="ipv4Addr"/>
|
|
</attribute>
|
|
</optional>
|
|
<attribute name="port">
|
|
<ref name="PortNumber"/>
|
|
</attribute>
|
|
<empty/>
|
|
</element>
|
|
<ref name="interface-options"/>
|
|
</interleave>
|
|
</group>
|
|
<group>
|
|
<attribute name="type">
|
|
<value>hostdev</value>
|
|
</attribute>
|
|
<optional>
|
|
<attribute name="managed">
|
|
<ref name="virYesNo"/>
|
|
</attribute>
|
|
</optional>
|
|
<interleave>
|
|
<element name="source">
|
|
<optional>
|
|
<attribute name="missing">
|
|
<ref name="virYesNo"/>
|
|
</attribute>
|
|
</optional>
|
|
<choice>
|
|
<group>
|
|
<ref name="usbproduct"/>
|
|
<optional>
|
|
<ref name="usbaddress"/>
|
|
</optional>
|
|
</group>
|
|
<element name="address">
|
|
<choice>
|
|
<group>
|
|
<attribute name="type">
|
|
<value>pci</value>
|
|
</attribute>
|
|
<ref name="pciaddress"/>
|
|
</group>
|
|
<group>
|
|
<attribute name="type">
|
|
<value>usb</value>
|
|
</attribute>
|
|
<attribute name="bus">
|
|
<ref name="usbAddr"/>
|
|
</attribute>
|
|
<attribute name="device">
|
|
<ref name="usbAddr"/>
|
|
</attribute>
|
|
</group>
|
|
</choice>
|
|
</element>
|
|
</choice>
|
|
</element>
|
|
<optional>
|
|
<ref name="virtualPortProfile"/>
|
|
</optional>
|
|
<ref name="interface-options"/>
|
|
</interleave>
|
|
</group>
|
|
</choice>
|
|
<optional>
|
|
<attribute name="trustGuestRxFilters">
|
|
<ref name="virYesNo"/>
|
|
</attribute>
|
|
</optional>
|
|
</element>
|
|
</define>
|
|
<!--
|
|
The interface options possible are:
|
|
- the MAC address
|
|
- the IP address bound to the interface
|
|
- the name of the script used to set up the binding
|
|
- the target device used
|
|
- boot order
|
|
- link state
|
|
-->
|
|
<define name="interface-options">
|
|
<interleave>
|
|
<optional>
|
|
<element name="link">
|
|
<attribute name="state">
|
|
<choice>
|
|
<value>up</value>
|
|
<value>down</value>
|
|
</choice>
|
|
</attribute>
|
|
<empty/>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<ref name="mtu"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="coalesce"/>
|
|
</optional>
|
|
<optional>
|
|
<element name="target">
|
|
<attribute name="dev">
|
|
<ref name="deviceName"/>
|
|
</attribute>
|
|
<empty/>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name="guest">
|
|
<interleave>
|
|
<optional>
|
|
<attribute name="dev">
|
|
<ref name="deviceName"/>
|
|
</attribute>
|
|
</optional>
|
|
<optional>
|
|
<attribute name="actual">
|
|
<ref name="deviceName"/>
|
|
</attribute>
|
|
</optional>
|
|
</interleave>
|
|
<empty/>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name="mac">
|
|
<attribute name="address">
|
|
<ref name="uniMacAddr"/>
|
|
</attribute>
|
|
<empty/>
|
|
</element>
|
|
</optional>
|
|
<ref name="interface-ip-info"/>
|
|
<optional>
|
|
<element name="script">
|
|
<attribute name="path">
|
|
<ref name="filePath"/>
|
|
</attribute>
|
|
<empty/>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name="backenddomain">
|
|
<attribute name="name">
|
|
<ref name="domainName"/>
|
|
</attribute>
|
|
<empty/>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name="model">
|
|
<attribute name="type">
|
|
<data type="string">
|
|
<param name='pattern'>[a-zA-Z0-9\-_]+</param>
|
|
</data>
|
|
</attribute>
|
|
<empty/>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name="backend">
|
|
<optional>
|
|
<attribute name='tap'>
|
|
<ref name='absFilePath'/>
|
|
</attribute>
|
|
</optional>
|
|
<optional>
|
|
<attribute name='vhost'>
|
|
<ref name='absFilePath'/>
|
|
</attribute>
|
|
</optional>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name="driver">
|
|
<choice>
|
|
<group>
|
|
<attribute name="name">
|
|
<choice>
|
|
<value>kvm</value>
|
|
<value>vfio</value>
|
|
<value>xen</value>
|
|
</choice>
|
|
</attribute>
|
|
</group>
|
|
<group>
|
|
<optional>
|
|
<attribute name="name">
|
|
<choice>
|
|
<value>qemu</value>
|
|
<value>vhost</value>
|
|
</choice>
|
|
</attribute>
|
|
</optional>
|
|
<optional>
|
|
<attribute name='queues'>
|
|
<ref name="positiveInteger"/>
|
|
</attribute>
|
|
</optional>
|
|
<optional>
|
|
<attribute name='rx_queue_size'>
|
|
<ref name='positiveInteger'/>
|
|
</attribute>
|
|
</optional>
|
|
<optional>
|
|
<attribute name='tx_queue_size'>
|
|
<ref name='positiveInteger'/>
|
|
</attribute>
|
|
</optional>
|
|
<optional>
|
|
<attribute name="txmode">
|
|
<choice>
|
|
<value>iothread</value>
|
|
<value>timer</value>
|
|
</choice>
|
|
</attribute>
|
|
</optional>
|
|
<optional>
|
|
<ref name="ioeventfd"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="event_idx"/>
|
|
</optional>
|
|
</group>
|
|
</choice>
|
|
<ref name="virtioOptions"/>
|
|
<interleave>
|
|
<optional>
|
|
<element name='host'>
|
|
<optional>
|
|
<attribute name='csum'>
|
|
<ref name="virOnOff"/>
|
|
</attribute>
|
|
</optional>
|
|
<optional>
|
|
<attribute name='gso'>
|
|
<ref name="virOnOff"/>
|
|
</attribute>
|
|
</optional>
|
|
<optional>
|
|
<attribute name='tso4'>
|
|
<ref name="virOnOff"/>
|
|
</attribute>
|
|
</optional>
|
|
<optional>
|
|
<attribute name='tso6'>
|
|
<ref name="virOnOff"/>
|
|
</attribute>
|
|
</optional>
|
|
<optional>
|
|
<attribute name='ecn'>
|
|
<ref name="virOnOff"/>
|
|
</attribute>
|
|
</optional>
|
|
<optional>
|
|
<attribute name='ufo'>
|
|
<ref name="virOnOff"/>
|
|
</attribute>
|
|
</optional>
|
|
<optional>
|
|
<attribute name='mrg_rxbuf'>
|
|
<ref name="virOnOff"/>
|
|
</attribute>
|
|
</optional>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name='guest'>
|
|
<optional>
|
|
<attribute name='csum'>
|
|
<ref name="virOnOff"/>
|
|
</attribute>
|
|
</optional>
|
|
<optional>
|
|
<attribute name='tso4'>
|
|
<ref name="virOnOff"/>
|
|
</attribute>
|
|
</optional>
|
|
<optional>
|
|
<attribute name='tso6'>
|
|
<ref name="virOnOff"/>
|
|
</attribute>
|
|
</optional>
|
|
<optional>
|
|
<attribute name='ecn'>
|
|
<ref name="virOnOff"/>
|
|
</attribute>
|
|
</optional>
|
|
<optional>
|
|
<attribute name='ufo'>
|
|
<ref name="virOnOff"/>
|
|
</attribute>
|
|
</optional>
|
|
</element>
|
|
</optional>
|
|
</interleave>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<ref name="alias"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="address"/>
|
|
</optional>
|
|
<optional>
|
|
<element name="filterref">
|
|
<ref name="filterref-node-attributes"/>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name="tune">
|
|
<optional>
|
|
<!-- size of send buffer for network tap devices -->
|
|
<element name="sndbuf">
|
|
<ref name="unsignedInt"/>
|
|
</element>
|
|
</optional>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<ref name="deviceBoot"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="rom"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="bandwidth"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="vlan"/>
|
|
</optional>
|
|
</interleave>
|
|
</define>
|
|
|
|
<!--
|
|
All ip-related info for either the host or guest side of an interface
|
|
-->
|
|
<define name="interface-ip-info">
|
|
<zeroOrMore>
|
|
<element name="ip">
|
|
<attribute name="address">
|
|
<ref name="ipAddr"/>
|
|
</attribute>
|
|
<optional>
|
|
<attribute name="family">
|
|
<ref name="addr-family"/>
|
|
</attribute>
|
|
</optional>
|
|
<optional>
|
|
<attribute name="prefix">
|
|
<ref name="ipPrefix"/>
|
|
</attribute>
|
|
</optional>
|
|
<optional>
|
|
<attribute name="peer">
|
|
<ref name="ipAddr"/>
|
|
</attribute>
|
|
</optional>
|
|
<empty/>
|
|
</element>
|
|
</zeroOrMore>
|
|
<zeroOrMore>
|
|
<ref name="route"/>
|
|
</zeroOrMore>
|
|
</define>
|
|
<!--
|
|
An emulator description is just a path to the binary used for the task
|
|
-->
|
|
<define name="emulator">
|
|
<element name="emulator">
|
|
<ref name="absFilePath"/>
|
|
</element>
|
|
</define>
|
|
<!--
|
|
A graphic description (SPICE, VNC, SDL, ...)
|
|
-->
|
|
<define name="graphic">
|
|
<element name="graphics">
|
|
<choice>
|
|
<group>
|
|
<attribute name="type">
|
|
<value>sdl</value>
|
|
</attribute>
|
|
<optional>
|
|
<attribute name="display">
|
|
<text/>
|
|
</attribute>
|
|
</optional>
|
|
<optional>
|
|
<attribute name="xauth">
|
|
<text/>
|
|
</attribute>
|
|
</optional>
|
|
<optional>
|
|
<attribute name="fullscreen">
|
|
<ref name="virYesNo"/>
|
|
</attribute>
|
|
</optional>
|
|
<optional>
|
|
<element name="gl">
|
|
<attribute name="enable">
|
|
<ref name="virYesNo"/>
|
|
</attribute>
|
|
<empty/>
|
|
</element>
|
|
</optional>
|
|
</group>
|
|
<group>
|
|
<attribute name="type">
|
|
<value>vnc</value>
|
|
</attribute>
|
|
<choice>
|
|
<group>
|
|
<optional>
|
|
<attribute name="port">
|
|
<ref name="PortNumber"/>
|
|
</attribute>
|
|
</optional>
|
|
<optional>
|
|
<attribute name="autoport">
|
|
<ref name="virYesNo"/>
|
|
</attribute>
|
|
</optional>
|
|
<optional>
|
|
<attribute name="websocket">
|
|
<ref name="PortNumber"/>
|
|
</attribute>
|
|
</optional>
|
|
<optional>
|
|
<attribute name="listen">
|
|
<ref name="addrIPorName"/>
|
|
</attribute>
|
|
</optional>
|
|
<optional>
|
|
<attribute name='sharePolicy'>
|
|
<choice>
|
|
<value>allow-exclusive</value>
|
|
<value>force-shared</value>
|
|
<value>ignore</value>
|
|
</choice>
|
|
</attribute>
|
|
</optional>
|
|
</group>
|
|
<group>
|
|
<optional>
|
|
<attribute name="socket">
|
|
<ref name="absFilePath"/>
|
|
</attribute>
|
|
</optional>
|
|
</group>
|
|
</choice>
|
|
<optional>
|
|
<attribute name="passwd">
|
|
<text/>
|
|
</attribute>
|
|
</optional>
|
|
<optional>
|
|
<attribute name="keymap">
|
|
<text/>
|
|
</attribute>
|
|
</optional>
|
|
<optional>
|
|
<attribute name="passwdValidTo">
|
|
<data type="dateTime"/>
|
|
</attribute>
|
|
</optional>
|
|
<optional>
|
|
<attribute name="connected">
|
|
<value>keep</value>
|
|
</attribute>
|
|
</optional>
|
|
<ref name="listenElements"/>
|
|
</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">
|
|
<ref name="virYesNo"/>
|
|
</attribute>
|
|
</optional>
|
|
<optional>
|
|
<attribute name="listen">
|
|
<ref name="addrIPorName"/>
|
|
</attribute>
|
|
</optional>
|
|
<optional>
|
|
<attribute name="passwd">
|
|
<text/>
|
|
</attribute>
|
|
</optional>
|
|
<optional>
|
|
<attribute name="keymap">
|
|
<text/>
|
|
</attribute>
|
|
</optional>
|
|
<optional>
|
|
<attribute name="passwdValidTo">
|
|
<data type="dateTime"/>
|
|
</attribute>
|
|
</optional>
|
|
<optional>
|
|
<attribute name="connected">
|
|
<choice>
|
|
<value>fail</value>
|
|
<value>disconnect</value>
|
|
<value>keep</value>
|
|
</choice>
|
|
</attribute>
|
|
</optional>
|
|
<optional>
|
|
<attribute name="defaultMode">
|
|
<choice>
|
|
<value>any</value>
|
|
<value>secure</value>
|
|
<value>insecure</value>
|
|
</choice>
|
|
</attribute>
|
|
</optional>
|
|
<interleave>
|
|
<ref name="listenElements"/>
|
|
<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>
|
|
<value>usbredir</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">
|
|
<ref name="virOnOff"/>
|
|
</attribute>
|
|
<empty/>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name="streaming">
|
|
<attribute name="mode">
|
|
<choice>
|
|
<value>filter</value>
|
|
<value>all</value>
|
|
<value>off</value>
|
|
</choice>
|
|
</attribute>
|
|
<empty/>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name="clipboard">
|
|
<attribute name="copypaste">
|
|
<ref name="virYesNo"/>
|
|
</attribute>
|
|
<empty/>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name="mouse">
|
|
<attribute name="mode">
|
|
<choice>
|
|
<value>server</value>
|
|
<value>client</value>
|
|
</choice>
|
|
</attribute>
|
|
<empty/>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name="filetransfer">
|
|
<attribute name="enable">
|
|
<ref name="virYesNo"/>
|
|
</attribute>
|
|
<empty/>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name="gl">
|
|
<attribute name="enable">
|
|
<ref name="virYesNo"/>
|
|
</attribute>
|
|
<optional>
|
|
<attribute name="rendernode">
|
|
<ref name="absFilePath"/>
|
|
</attribute>
|
|
</optional>
|
|
<empty/>
|
|
</element>
|
|
</optional>
|
|
</interleave>
|
|
</group>
|
|
<group>
|
|
<attribute name="type">
|
|
<value>rdp</value>
|
|
</attribute>
|
|
<optional>
|
|
<attribute name="port">
|
|
<ref name="PortNumber"/>
|
|
</attribute>
|
|
</optional>
|
|
<optional>
|
|
<attribute name="autoport">
|
|
<ref name="virYesNo"/>
|
|
</attribute>
|
|
</optional>
|
|
<optional>
|
|
<attribute name="replaceUser">
|
|
<ref name="virYesNo"/>
|
|
</attribute>
|
|
</optional>
|
|
<optional>
|
|
<attribute name="multiUser">
|
|
<ref name="virYesNo"/>
|
|
</attribute>
|
|
</optional>
|
|
<optional>
|
|
<attribute name="listen">
|
|
<ref name="addrIPorName"/>
|
|
</attribute>
|
|
</optional>
|
|
<ref name="listenElements"/>
|
|
</group>
|
|
<group>
|
|
<attribute name="type">
|
|
<value>desktop</value>
|
|
</attribute>
|
|
<optional>
|
|
<attribute name="display">
|
|
<text/>
|
|
</attribute>
|
|
</optional>
|
|
<optional>
|
|
<attribute name="fullscreen">
|
|
<ref name="virYesNo"/>
|
|
</attribute>
|
|
</optional>
|
|
</group>
|
|
<group>
|
|
<attribute name="type">
|
|
<value>egl-headless</value>
|
|
</attribute>
|
|
<optional>
|
|
<element name="gl">
|
|
<optional>
|
|
<attribute name="rendernode">
|
|
<ref name="absFilePath"/>
|
|
</attribute>
|
|
</optional>
|
|
</element>
|
|
</optional>
|
|
</group>
|
|
</choice>
|
|
</element>
|
|
</define>
|
|
|
|
<define name="listenElements">
|
|
<zeroOrMore>
|
|
<element name="listen">
|
|
<choice>
|
|
<group>
|
|
<attribute name="type">
|
|
<value>address</value>
|
|
</attribute>
|
|
<optional>
|
|
<attribute name="address">
|
|
<ref name="addrIPorName"/>
|
|
</attribute>
|
|
</optional>
|
|
</group>
|
|
<group>
|
|
<attribute name="type">
|
|
<value>network</value>
|
|
</attribute>
|
|
<attribute name="network">
|
|
<text/>
|
|
</attribute>
|
|
<optional>
|
|
<attribute name="address">
|
|
<ref name="addrIPorName"/>
|
|
</attribute>
|
|
</optional>
|
|
</group>
|
|
<group>
|
|
<attribute name="type">
|
|
<value>socket</value>
|
|
</attribute>
|
|
<optional>
|
|
<attribute name="socket">
|
|
<ref name="absFilePath"/>
|
|
</attribute>
|
|
</optional>
|
|
</group>
|
|
<group>
|
|
<attribute name="type">
|
|
<value>none</value>
|
|
</attribute>
|
|
</group>
|
|
</choice>
|
|
</element>
|
|
</zeroOrMore>
|
|
</define>
|
|
<!--
|
|
A video adapter description, allowing configuration of device
|
|
model, number of virtual heads, video ram size, and for qxl
|
|
both ram bar sizes.
|
|
-->
|
|
<define name="video">
|
|
<element name="video">
|
|
<optional>
|
|
<element name="driver">
|
|
<optional>
|
|
<ref name="virtioOptions"/>
|
|
</optional>
|
|
<optional>
|
|
<attribute name="vgaconf">
|
|
<choice>
|
|
<value>io</value>
|
|
<value>on</value>
|
|
<value>off</value>
|
|
</choice>
|
|
</attribute>
|
|
</optional>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name="model">
|
|
<choice>
|
|
<attribute name="type">
|
|
<choice>
|
|
<value>vga</value>
|
|
<value>cirrus</value>
|
|
<value>vmvga</value>
|
|
<value>xen</value>
|
|
<value>vbox</value>
|
|
<value>virtio</value>
|
|
<value>gop</value>
|
|
<value>none</value>
|
|
</choice>
|
|
</attribute>
|
|
<group>
|
|
<attribute name="type">
|
|
<value>qxl</value>
|
|
</attribute>
|
|
<optional>
|
|
<attribute name="ram">
|
|
<ref name="unsignedInt"/>
|
|
</attribute>
|
|
</optional>
|
|
<optional>
|
|
<attribute name="vgamem">
|
|
<ref name="unsignedInt"/>
|
|
</attribute>
|
|
</optional>
|
|
<optional>
|
|
<attribute name="vram64">
|
|
<ref name="unsignedInt"/>
|
|
</attribute>
|
|
</optional>
|
|
</group>
|
|
</choice>
|
|
<optional>
|
|
<attribute name="vram">
|
|
<ref name="unsignedInt"/>
|
|
</attribute>
|
|
</optional>
|
|
<optional>
|
|
<attribute name="heads">
|
|
<ref name="unsignedInt"/>
|
|
</attribute>
|
|
</optional>
|
|
<optional>
|
|
<attribute name="primary">
|
|
<ref name="virYesNo"/>
|
|
</attribute>
|
|
</optional>
|
|
<optional>
|
|
<element name="acceleration">
|
|
<optional>
|
|
<attribute name="accel3d">
|
|
<ref name="virYesNo"/>
|
|
</attribute>
|
|
</optional>
|
|
<optional>
|
|
<attribute name="accel2d">
|
|
<ref name="virYesNo"/>
|
|
</attribute>
|
|
</optional>
|
|
</element>
|
|
</optional>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<ref name="alias"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="address"/>
|
|
</optional>
|
|
</element>
|
|
</define>
|
|
<!--
|
|
When a certain event happens, multiple policies can be applied
|
|
depends on what happened:
|
|
-->
|
|
<define name="events">
|
|
<interleave>
|
|
<optional>
|
|
<element name="on_reboot">
|
|
<ref name="offOptions"/>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name="on_poweroff">
|
|
<ref name="offOptions"/>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name="on_crash">
|
|
<ref name="crashOptions"/>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name="on_lockfailure">
|
|
<ref name="lockfailureOptions"/>
|
|
</element>
|
|
</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
|
|
-->
|
|
<define name="offOptions">
|
|
<choice>
|
|
<value>destroy</value>
|
|
<value>restart</value>
|
|
<value>preserve</value>
|
|
<value>rename-restart</value>
|
|
</choice>
|
|
</define>
|
|
<!--
|
|
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>
|
|
<!--
|
|
Options when resource locks are lost:
|
|
poweroff: power off the domain
|
|
restart: power off the domain and start it up again to reacquire the
|
|
locks
|
|
pause: pause the execution of the domain so that it can be manually
|
|
resumed when lock issues are solved
|
|
ignore: keep the domain running
|
|
-->
|
|
<define name="lockfailureOptions">
|
|
<choice>
|
|
<value>poweroff</value>
|
|
<value>restart</value>
|
|
<value>pause</value>
|
|
<value>ignore</value>
|
|
</choice>
|
|
</define>
|
|
<!--
|
|
Control ACPI sleep states (dis)allowed for the domain
|
|
For each of the states the following rules apply:
|
|
on: the state will be forcefully enabled
|
|
off: the state will be forcefully disabled
|
|
not specified: hypervisor will be left to decide its defaults
|
|
-->
|
|
<define name="pm">
|
|
<element name="pm">
|
|
<interleave>
|
|
<optional>
|
|
<element name="suspend-to-mem">
|
|
<ref name="suspendChoices"/>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name="suspend-to-disk">
|
|
<ref name="suspendChoices"/>
|
|
</element>
|
|
</optional>
|
|
</interleave>
|
|
<empty/>
|
|
</element>
|
|
</define>
|
|
<define name="suspendChoices">
|
|
<optional>
|
|
<attribute name="enabled">
|
|
<ref name="virYesNo"/>
|
|
</attribute>
|
|
</optional>
|
|
</define>
|
|
<!--
|
|
Specific setup for a qemu emulated character device. Note: this
|
|
definition doesn't fully specify the constraints on this node.
|
|
-->
|
|
<define name="qemucdev">
|
|
<ref name="qemucdevSrcType"/>
|
|
<optional>
|
|
<attribute name="tty">
|
|
<ref name="absFilePath"/>
|
|
</attribute>
|
|
</optional>
|
|
<interleave>
|
|
<ref name="qemucdevSrcDef"/>
|
|
<optional>
|
|
<ref name="qemucdevTgtDef"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="alias"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="address"/>
|
|
</optional>
|
|
</interleave>
|
|
</define>
|
|
|
|
<define name="qemucdevConsoleTgtType">
|
|
<attribute name="type">
|
|
<choice>
|
|
<value>xen</value>
|
|
<value>serial</value>
|
|
<value>uml</value> <!-- NOT USED ANYMORE -->
|
|
<value>virtio</value>
|
|
<value>lxc</value>
|
|
<value>openvz</value>
|
|
<value>sclp</value>
|
|
<value>sclplm</value>
|
|
</choice>
|
|
</attribute>
|
|
</define>
|
|
|
|
<define name='qemucdevSerialTgtType'>
|
|
<attribute name='type'>
|
|
<choice>
|
|
<value>isa-serial</value>
|
|
<value>usb-serial</value>
|
|
<value>pci-serial</value>
|
|
<value>spapr-vio-serial</value>
|
|
<value>system-serial</value>
|
|
<value>sclp-serial</value>
|
|
</choice>
|
|
</attribute>
|
|
</define>
|
|
|
|
<define name='qemucdevSerialTgtModel'>
|
|
<element name='model'>
|
|
<attribute name='name'>
|
|
<choice>
|
|
<value>isa-serial</value>
|
|
<value>usb-serial</value>
|
|
<value>pci-serial</value>
|
|
<value>spapr-vty</value>
|
|
<value>pl011</value>
|
|
<value>16550a</value>
|
|
<value>sclpconsole</value>
|
|
<value>sclplmconsole</value>
|
|
</choice>
|
|
</attribute>
|
|
</element>
|
|
</define>
|
|
|
|
<define name="qemucdevTgtDef">
|
|
<element name="target">
|
|
<interleave>
|
|
<choice>
|
|
<optional>
|
|
<ref name="qemucdevConsoleTgtType"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="qemucdevSerialTgtType"/>
|
|
</optional>
|
|
</choice>
|
|
<optional>
|
|
<attribute name="port"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="qemucdevSerialTgtModel"/>
|
|
</optional>
|
|
</interleave>
|
|
</element>
|
|
</define>
|
|
|
|
<define name="qemucdevSrcTypeChoice">
|
|
<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>
|
|
<value>spicevmc</value>
|
|
<value>spiceport</value>
|
|
<value>nmdm</value>
|
|
</choice>
|
|
</define>
|
|
|
|
<define name="usbdevfilter">
|
|
<element name="usbdev">
|
|
<attribute name="allow">
|
|
<ref name="virYesNo"/>
|
|
</attribute>
|
|
<optional>
|
|
<attribute name="class">
|
|
<choice>
|
|
<ref name="usbClass"/>
|
|
<ref name="usbIdDefault"/>
|
|
</choice>
|
|
</attribute>
|
|
</optional>
|
|
<optional>
|
|
<attribute name="vendor">
|
|
<choice>
|
|
<ref name="usbId"/>
|
|
<ref name="usbIdDefault"/>
|
|
</choice>
|
|
</attribute>
|
|
</optional>
|
|
<optional>
|
|
<attribute name="product">
|
|
<choice>
|
|
<ref name="usbId"/>
|
|
<ref name="usbIdDefault"/>
|
|
</choice>
|
|
</attribute>
|
|
</optional>
|
|
<optional>
|
|
<attribute name="version">
|
|
<choice>
|
|
<ref name="usbVersion"/>
|
|
<ref name="usbIdDefault"/>
|
|
</choice>
|
|
</attribute>
|
|
</optional>
|
|
</element>
|
|
</define>
|
|
|
|
<define name="qemucdevSrcType">
|
|
<attribute name="type">
|
|
<ref name="qemucdevSrcTypeChoice"/>
|
|
</attribute>
|
|
</define>
|
|
<define name="qemucdevSrcDef">
|
|
<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="channel"/>
|
|
</optional>
|
|
<optional>
|
|
<attribute name="master"/>
|
|
</optional>
|
|
<optional>
|
|
<attribute name="slave"/>
|
|
</optional>
|
|
<optional>
|
|
<attribute name="append">
|
|
<ref name="virOnOff"/>
|
|
</attribute>
|
|
</optional>
|
|
<optional>
|
|
<attribute name="tls">
|
|
<ref name="virYesNo"/>
|
|
</attribute>
|
|
</optional>
|
|
<optional>
|
|
<ref name="reconnect"/>
|
|
</optional>
|
|
<zeroOrMore>
|
|
<ref name='devSeclabel'/>
|
|
</zeroOrMore>
|
|
</element>
|
|
</zeroOrMore>
|
|
<optional>
|
|
<element name="protocol">
|
|
<optional>
|
|
<attribute name="type">
|
|
<choice>
|
|
<value>raw</value>
|
|
<value>telnet</value>
|
|
<value>telnets</value>
|
|
<value>tls</value>
|
|
</choice>
|
|
</attribute>
|
|
</optional>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name="log">
|
|
<attribute name="file">
|
|
<ref name="absFilePath"/>
|
|
</attribute>
|
|
<optional>
|
|
<attribute name="append">
|
|
<ref name="virOnOff"/>
|
|
</attribute>
|
|
</optional>
|
|
</element>
|
|
</optional>
|
|
</define>
|
|
<!--
|
|
The description for a console
|
|
just a tty device
|
|
-->
|
|
<define name="console">
|
|
<element name="console">
|
|
<choice>
|
|
<group>
|
|
<optional>
|
|
<attribute name="tty">
|
|
<ref name="absFilePath"/>
|
|
</attribute>
|
|
</optional>
|
|
<empty/>
|
|
</group>
|
|
<ref name="qemucdev"/>
|
|
</choice>
|
|
</element>
|
|
</define>
|
|
<define name="codec">
|
|
<element name="codec">
|
|
<attribute name="type">
|
|
<choice>
|
|
<value>duplex</value>
|
|
<value>micro</value>
|
|
<value>output</value>
|
|
</choice>
|
|
</attribute>
|
|
</element>
|
|
</define>
|
|
<define name="sound">
|
|
<element name="sound">
|
|
<attribute name="model">
|
|
<choice>
|
|
<value>sb16</value>
|
|
<value>es1370</value>
|
|
<value>pcspk</value>
|
|
<value>ac97</value>
|
|
<value>ich6</value>
|
|
<value>ich9</value>
|
|
<value>usb</value>
|
|
</choice>
|
|
</attribute>
|
|
<interleave>
|
|
<optional>
|
|
<ref name="alias"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="address"/>
|
|
</optional>
|
|
<zeroOrMore>
|
|
<ref name="codec"/>
|
|
</zeroOrMore>
|
|
</interleave>
|
|
</element>
|
|
</define>
|
|
<define name="watchdog">
|
|
<element name="watchdog">
|
|
<attribute name="model">
|
|
<choice>
|
|
<value>i6300esb</value>
|
|
<value>ib700</value>
|
|
<value>diag288</value>
|
|
</choice>
|
|
</attribute>
|
|
<optional>
|
|
<attribute name="action">
|
|
<choice>
|
|
<value>reset</value>
|
|
<value>shutdown</value>
|
|
<value>poweroff</value>
|
|
<value>pause</value>
|
|
<value>none</value>
|
|
<value>dump</value>
|
|
<value>inject-nmi</value>
|
|
</choice>
|
|
</attribute>
|
|
</optional>
|
|
<optional>
|
|
<ref name="alias"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="address"/>
|
|
</optional>
|
|
</element>
|
|
</define>
|
|
<define name="nvram">
|
|
<element name="nvram">
|
|
<optional>
|
|
<ref name="address"/>
|
|
</optional>
|
|
</element>
|
|
</define>
|
|
|
|
<define name="shmem">
|
|
<element name="shmem">
|
|
<attribute name="name">
|
|
<data type="string">
|
|
<param name="pattern">[^/]*</param>
|
|
</data>
|
|
</attribute>
|
|
<interleave>
|
|
<optional>
|
|
<element name="model">
|
|
<attribute name="type">
|
|
<choice>
|
|
<value>ivshmem</value>
|
|
<value>ivshmem-plain</value>
|
|
<value>ivshmem-doorbell</value>
|
|
</choice>
|
|
</attribute>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name="size">
|
|
<ref name="scaledInteger"/>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name="server">
|
|
<optional>
|
|
<attribute name="path">
|
|
<ref name="absFilePath"/>
|
|
</attribute>
|
|
</optional>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name="msi">
|
|
<optional>
|
|
<ref name="ioeventfd"/>
|
|
</optional>
|
|
<optional>
|
|
<attribute name="vectors">
|
|
<ref name="unsignedInt"/>
|
|
</attribute>
|
|
</optional>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<ref name="alias"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="address"/>
|
|
</optional>
|
|
</interleave>
|
|
</element>
|
|
</define>
|
|
|
|
<define name="memballoon">
|
|
<element name="memballoon">
|
|
<attribute name="model">
|
|
<choice>
|
|
<value>virtio</value>
|
|
<value>virtio-transitional</value>
|
|
<value>virtio-non-transitional</value>
|
|
<value>xen</value>
|
|
<value>none</value>
|
|
</choice>
|
|
</attribute>
|
|
<optional>
|
|
<attribute name="autodeflate">
|
|
<ref name="virOnOff"/>
|
|
</attribute>
|
|
</optional>
|
|
<interleave>
|
|
<optional>
|
|
<ref name="alias"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="address"/>
|
|
</optional>
|
|
<optional>
|
|
<element name="stats">
|
|
<attribute name="period">
|
|
<ref name='positiveInteger'/>
|
|
</attribute>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name="driver">
|
|
<ref name="virtioOptions"/>
|
|
</element>
|
|
</optional>
|
|
</interleave>
|
|
</element>
|
|
</define>
|
|
<define name="parallel">
|
|
<element name="parallel">
|
|
<ref name="qemucdev"/>
|
|
</element>
|
|
</define>
|
|
<define name="serial">
|
|
<element name="serial">
|
|
<ref name="qemucdev"/>
|
|
</element>
|
|
</define>
|
|
<define name="guestfwdTarget">
|
|
<element name="target">
|
|
<attribute name="type">
|
|
<value>guestfwd</value>
|
|
</attribute>
|
|
<attribute name="address"/>
|
|
<attribute name="port"/>
|
|
</element>
|
|
</define>
|
|
<define name="virtioTarget">
|
|
<element name="target">
|
|
<attribute name="type">
|
|
<value>virtio</value>
|
|
</attribute>
|
|
<optional>
|
|
<attribute name="name"/>
|
|
</optional>
|
|
<optional>
|
|
<attribute name="state">
|
|
<choice>
|
|
<value>connected</value>
|
|
<value>disconnected</value>
|
|
</choice>
|
|
</attribute>
|
|
</optional>
|
|
</element>
|
|
</define>
|
|
<define name="xenTarget">
|
|
<element name="target">
|
|
<attribute name="type">
|
|
<value>xen</value>
|
|
</attribute>
|
|
<optional>
|
|
<attribute name="name"/>
|
|
</optional>
|
|
</element>
|
|
</define>
|
|
<define name="channel">
|
|
<element name="channel">
|
|
<ref name="qemucdevSrcType"/>
|
|
<interleave>
|
|
<ref name="qemucdevSrcDef"/>
|
|
<choice>
|
|
<ref name="guestfwdTarget"/>
|
|
<ref name="virtioTarget"/>
|
|
<ref name="xenTarget"/>
|
|
</choice>
|
|
<optional>
|
|
<ref name="alias"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="address"/>
|
|
</optional>
|
|
</interleave>
|
|
</element>
|
|
</define>
|
|
<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="alias"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="address"/>
|
|
</optional>
|
|
</element>
|
|
</define>
|
|
<define name="certificate">
|
|
<element name="certificate">
|
|
<text/>
|
|
</element>
|
|
</define>
|
|
|
|
<define name="tpm">
|
|
<element name="tpm">
|
|
<optional>
|
|
<attribute name="model">
|
|
<choice>
|
|
<value>tpm-tis</value>
|
|
<value>tpm-crb</value>
|
|
</choice>
|
|
</attribute>
|
|
</optional>
|
|
<ref name="tpm-backend"/>
|
|
<optional>
|
|
<ref name="alias"/>
|
|
</optional>
|
|
</element>
|
|
</define>
|
|
|
|
<define name="tpm-backend">
|
|
<element name="backend">
|
|
<choice>
|
|
<group>
|
|
<attribute name="type">
|
|
<value>passthrough</value>
|
|
</attribute>
|
|
<ref name="tpm-passthrough-device"/>
|
|
</group>
|
|
<group>
|
|
<attribute name="type">
|
|
<value>emulator</value>
|
|
</attribute>
|
|
</group>
|
|
</choice>
|
|
<choice>
|
|
<group>
|
|
<optional>
|
|
<attribute name="version">
|
|
<choice>
|
|
<value>1.2</value>
|
|
<value>2.0</value>
|
|
</choice>
|
|
</attribute>
|
|
</optional>
|
|
</group>
|
|
</choice>
|
|
</element>
|
|
</define>
|
|
|
|
<define name="tpm-passthrough-device">
|
|
<optional>
|
|
<element name="device">
|
|
<optional>
|
|
<attribute name="path">
|
|
<ref name="filePath"/>
|
|
</attribute>
|
|
</optional>
|
|
</element>
|
|
</optional>
|
|
</define>
|
|
|
|
<define name="vsock">
|
|
<element name="vsock">
|
|
<optional>
|
|
<attribute name="model">
|
|
<choice>
|
|
<value>virtio</value>
|
|
<value>virtio-transitional</value>
|
|
<value>virtio-non-transitional</value>
|
|
</choice>
|
|
</attribute>
|
|
</optional>
|
|
<interleave>
|
|
<optional>
|
|
<element name="cid">
|
|
<optional>
|
|
<attribute name="auto">
|
|
<ref name="virYesNo"/>
|
|
</attribute>
|
|
</optional>
|
|
<optional>
|
|
<attribute name="address">
|
|
<ref name="unsignedInt"/>
|
|
</attribute>
|
|
</optional>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<ref name="address"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="alias"/>
|
|
</optional>
|
|
</interleave>
|
|
</element>
|
|
</define>
|
|
<define name="iommu">
|
|
<element name="iommu">
|
|
<attribute name="model">
|
|
<choice>
|
|
<value>intel</value>
|
|
<value>smmuv3</value>
|
|
</choice>
|
|
</attribute>
|
|
<optional>
|
|
<element name="driver">
|
|
<optional>
|
|
<attribute name="intremap">
|
|
<ref name="virOnOff"/>
|
|
</attribute>
|
|
</optional>
|
|
<optional>
|
|
<attribute name="caching_mode">
|
|
<ref name="virOnOff"/>
|
|
</attribute>
|
|
</optional>
|
|
<optional>
|
|
<attribute name="eim">
|
|
<ref name="virOnOff"/>
|
|
</attribute>
|
|
</optional>
|
|
<optional>
|
|
<attribute name="iotlb">
|
|
<ref name="virOnOff"/>
|
|
</attribute>
|
|
</optional>
|
|
</element>
|
|
</optional>
|
|
</element>
|
|
</define>
|
|
|
|
<define name="input">
|
|
<element name="input">
|
|
<interleave>
|
|
<optional>
|
|
<element name="driver">
|
|
<ref name="virtioOptions"/>
|
|
</element>
|
|
</optional>
|
|
<choice>
|
|
<group>
|
|
<attribute name="type">
|
|
<choice>
|
|
<value>tablet</value>
|
|
<value>mouse</value>
|
|
<value>keyboard</value>
|
|
</choice>
|
|
</attribute>
|
|
<optional>
|
|
<attribute name="bus">
|
|
<choice>
|
|
<value>ps2</value>
|
|
<value>usb</value>
|
|
<value>xen</value>
|
|
<value>virtio</value>
|
|
</choice>
|
|
</attribute>
|
|
</optional>
|
|
</group>
|
|
<group>
|
|
<attribute name="type">
|
|
<value>passthrough</value>
|
|
</attribute>
|
|
<attribute name="bus">
|
|
<value>virtio</value>
|
|
</attribute>
|
|
<element name="source">
|
|
<attribute name="evdev">
|
|
<ref name="absFilePath"/>
|
|
</attribute>
|
|
</element>
|
|
</group>
|
|
</choice>
|
|
<optional>
|
|
<attribute name="model">
|
|
<choice>
|
|
<value>virtio</value>
|
|
<value>virtio-transitional</value>
|
|
<value>virtio-non-transitional</value>
|
|
</choice>
|
|
</attribute>
|
|
</optional>
|
|
<optional>
|
|
<ref name="alias"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="address"/>
|
|
</optional>
|
|
</interleave>
|
|
</element>
|
|
</define>
|
|
<define name="hub">
|
|
<element name="hub">
|
|
<attribute name="type">
|
|
<value>usb</value>
|
|
</attribute>
|
|
<interleave>
|
|
<optional>
|
|
<ref name="alias"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="address"/>
|
|
</optional>
|
|
</interleave>
|
|
</element>
|
|
</define>
|
|
<define name="redirdev">
|
|
<element name="redirdev">
|
|
<attribute name="bus">
|
|
<value>usb</value>
|
|
</attribute>
|
|
<attribute name="type">
|
|
<ref name="qemucdevSrcTypeChoice"/>
|
|
</attribute>
|
|
<interleave>
|
|
<ref name="qemucdevSrcDef"/>
|
|
<optional>
|
|
<ref name="alias"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="address"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="deviceBoot"/>
|
|
</optional>
|
|
</interleave>
|
|
</element>
|
|
</define>
|
|
<define name="redirfilter">
|
|
<element name="redirfilter">
|
|
<zeroOrMore>
|
|
<ref name="usbdevfilter"/>
|
|
</zeroOrMore>
|
|
</element>
|
|
</define>
|
|
|
|
<define name="hostdev">
|
|
<element name="hostdev">
|
|
<interleave>
|
|
<choice>
|
|
<group>
|
|
<ref name="hostdevsubsys"/>
|
|
</group>
|
|
<group>
|
|
<ref name="hostdevcaps"/>
|
|
</group>
|
|
</choice>
|
|
<optional>
|
|
<ref name="alias"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="deviceBoot"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="rom"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="address"/>
|
|
</optional>
|
|
<optional>
|
|
<element name="readonly">
|
|
<empty/>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name="shareable">
|
|
<empty/>
|
|
</element>
|
|
</optional>
|
|
</interleave>
|
|
</element>
|
|
</define>
|
|
|
|
<define name="hostdevsubsys">
|
|
<optional>
|
|
<attribute name="mode">
|
|
<value>subsystem</value>
|
|
</attribute>
|
|
</optional>
|
|
<optional>
|
|
<attribute name="managed">
|
|
<ref name="virYesNo"/>
|
|
</attribute>
|
|
</optional>
|
|
<choice>
|
|
<ref name="hostdevsubsyspci"/>
|
|
<ref name="hostdevsubsysusb"/>
|
|
<ref name="hostdevsubsysscsi"/>
|
|
<ref name="hostdevsubsyshost"/>
|
|
<ref name="hostdevsubsysmdev"/>
|
|
</choice>
|
|
</define>
|
|
|
|
<define name="hostdevcaps">
|
|
<attribute name="mode">
|
|
<value>capabilities</value>
|
|
</attribute>
|
|
<choice>
|
|
<group>
|
|
<ref name="hostdevcapsstorage"/>
|
|
</group>
|
|
<group>
|
|
<ref name="hostdevcapsmisc"/>
|
|
</group>
|
|
<group>
|
|
<ref name="hostdevcapsnet"/>
|
|
</group>
|
|
</choice>
|
|
</define>
|
|
|
|
|
|
<define name="hostdevsubsyspci">
|
|
<attribute name="type">
|
|
<value>pci</value>
|
|
</attribute>
|
|
<interleave>
|
|
<optional>
|
|
<element name="driver">
|
|
<attribute name="name">
|
|
<choice>
|
|
<value>kvm</value>
|
|
<value>vfio</value>
|
|
<value>xen</value>
|
|
</choice>
|
|
</attribute>
|
|
<empty/>
|
|
</element>
|
|
</optional>
|
|
<element name="source">
|
|
<optional>
|
|
<ref name="startupPolicy"/>
|
|
</optional>
|
|
<element name="address">
|
|
<ref name="pciaddress"/>
|
|
</element>
|
|
</element>
|
|
</interleave>
|
|
</define>
|
|
|
|
<define name="hostdevsubsysusb">
|
|
<attribute name="type">
|
|
<value>usb</value>
|
|
</attribute>
|
|
<element name="source">
|
|
<optional>
|
|
<ref name="startupPolicy"/>
|
|
</optional>
|
|
<choice>
|
|
<group>
|
|
<ref name="usbproduct"/>
|
|
<optional>
|
|
<ref name="usbaddress"/>
|
|
</optional>
|
|
</group>
|
|
<ref name="usbaddress"/>
|
|
</choice>
|
|
</element>
|
|
</define>
|
|
|
|
<define name="hostdevsubsysscsi">
|
|
<attribute name="type">
|
|
<value>scsi</value>
|
|
</attribute>
|
|
<optional>
|
|
<ref name="sgIO"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="rawIO"/>
|
|
</optional>
|
|
<element name="source">
|
|
<choice>
|
|
<group> <!-- scsi_host adapter -->
|
|
<optional>
|
|
<attribute name="protocol">
|
|
<value>adapter</value> <!-- scsi_host, default, optional -->
|
|
</attribute>
|
|
</optional>
|
|
<interleave>
|
|
<ref name="sourceinfoadapter"/>
|
|
<element name="address">
|
|
<ref name="scsiaddress"/>
|
|
</element>
|
|
</interleave>
|
|
</group>
|
|
<group> <!-- iscsi adapter -->
|
|
<attribute name="protocol">
|
|
<value>iscsi</value> <!-- iscsi, required -->
|
|
</attribute>
|
|
<attribute name="name">
|
|
<text/>
|
|
</attribute>
|
|
<interleave>
|
|
<oneOrMore>
|
|
<element name='host'>
|
|
<attribute name='name'>
|
|
<text/>
|
|
</attribute>
|
|
<optional>
|
|
<attribute name='port'>
|
|
<ref name="PortNumber"/>
|
|
</attribute>
|
|
</optional>
|
|
<empty/>
|
|
</element>
|
|
</oneOrMore>
|
|
<optional>
|
|
<ref name='diskAuth'/>
|
|
</optional>
|
|
</interleave>
|
|
</group>
|
|
</choice>
|
|
</element>
|
|
</define>
|
|
|
|
<define name="hostdevsubsyshost">
|
|
<attribute name="type">
|
|
<value>scsi_host</value>
|
|
</attribute>
|
|
<optional>
|
|
<attribute name="model">
|
|
<choice>
|
|
<value>virtio</value>
|
|
<value>virtio-transitional</value>
|
|
<value>virtio-non-transitional</value>
|
|
</choice>
|
|
</attribute>
|
|
</optional>
|
|
<element name="source">
|
|
<choice>
|
|
<group>
|
|
<attribute name="protocol">
|
|
<value>vhost</value> <!-- vhost, required -->
|
|
</attribute>
|
|
<attribute name="wwpn">
|
|
<data type="string">
|
|
<param name="pattern">(naa\.)[0-9a-fA-F]{16}</param>
|
|
</data>
|
|
</attribute>
|
|
</group>
|
|
</choice>
|
|
</element>
|
|
</define>
|
|
|
|
<define name="hostdevsubsysmdev">
|
|
<attribute name="type">
|
|
<value>mdev</value>
|
|
</attribute>
|
|
<attribute name="model">
|
|
<choice>
|
|
<value>vfio-pci</value>
|
|
<value>vfio-ccw</value>
|
|
<value>vfio-ap</value>
|
|
</choice>
|
|
</attribute>
|
|
<optional>
|
|
<attribute name="display">
|
|
<ref name="virOnOff"/>
|
|
</attribute>
|
|
</optional>
|
|
<element name="source">
|
|
<ref name="mdevaddress"/>
|
|
</element>
|
|
</define>
|
|
|
|
<define name="hostdevcapsstorage">
|
|
<attribute name="type">
|
|
<value>storage</value>
|
|
</attribute>
|
|
<element name="source">
|
|
<element name="block">
|
|
<ref name="absFilePath"/>
|
|
</element>
|
|
</element>
|
|
</define>
|
|
|
|
<define name="hostdevcapsmisc">
|
|
<attribute name="type">
|
|
<value>misc</value>
|
|
</attribute>
|
|
<element name="source">
|
|
<element name="char">
|
|
<ref name="absFilePath"/>
|
|
</element>
|
|
</element>
|
|
</define>
|
|
|
|
<define name="hostdevcapsnet">
|
|
<attribute name="type">
|
|
<value>net</value>
|
|
</attribute>
|
|
<interleave>
|
|
<element name="source">
|
|
<element name="interface">
|
|
<ref name="deviceName"/>
|
|
</element>
|
|
</element>
|
|
<ref name="interface-ip-info"/>
|
|
</interleave>
|
|
</define>
|
|
|
|
<define name="usbproduct">
|
|
<element name="vendor">
|
|
<attribute name="id">
|
|
<ref name="usbId"/>
|
|
</attribute>
|
|
</element>
|
|
<element name="product">
|
|
<attribute name="id">
|
|
<ref name="usbId"/>
|
|
</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>
|
|
<define name="scsiaddress">
|
|
<attribute name="bus">
|
|
<ref name="driveBus"/>
|
|
</attribute>
|
|
<attribute name="target">
|
|
<ref name="driveSCSITarget"/>
|
|
</attribute>
|
|
<attribute name="unit">
|
|
<ref name="driveSCSIUnit"/>
|
|
</attribute>
|
|
</define>
|
|
<define name="usbportaddress">
|
|
<attribute name="bus">
|
|
<ref name="usbAddr"/>
|
|
</attribute>
|
|
<optional>
|
|
<attribute name="port">
|
|
<ref name="usbPort"/>
|
|
</attribute>
|
|
</optional>
|
|
</define>
|
|
<define name="spaprvioaddress">
|
|
<optional>
|
|
<attribute name="reg">
|
|
<ref name="spaprvioReg"/>
|
|
</attribute>
|
|
</optional>
|
|
</define>
|
|
<define name="ccwaddress">
|
|
<optional>
|
|
<attribute name="cssid">
|
|
<ref name="ccwCssidRange"/>
|
|
</attribute>
|
|
<attribute name="ssid">
|
|
<ref name="ccwSsidRange"/>
|
|
</attribute>
|
|
<attribute name="devno">
|
|
<ref name="ccwDevnoRange"/>
|
|
</attribute>
|
|
</optional>
|
|
</define>
|
|
<define name="driveaddress">
|
|
<optional>
|
|
<attribute name="controller">
|
|
<ref name="driveController"/>
|
|
</attribute>
|
|
</optional>
|
|
<optional>
|
|
<attribute name="bus">
|
|
<ref name="driveBus"/>
|
|
</attribute>
|
|
</optional>
|
|
<optional>
|
|
<attribute name="target">
|
|
<ref name="driveTarget"/>
|
|
</attribute>
|
|
</optional>
|
|
<optional>
|
|
<attribute name="unit">
|
|
<ref name="driveUnit"/>
|
|
</attribute>
|
|
</optional>
|
|
</define>
|
|
<define name="virtioserialaddress">
|
|
<attribute name="controller">
|
|
<ref name="driveController"/>
|
|
</attribute>
|
|
<optional>
|
|
<attribute name="bus">
|
|
<ref name="driveBus"/>
|
|
</attribute>
|
|
</optional>
|
|
<optional>
|
|
<attribute name="port">
|
|
<ref name="driveUnit"/>
|
|
</attribute>
|
|
</optional>
|
|
</define>
|
|
<define name="ccidaddress">
|
|
<attribute name="controller">
|
|
<ref name="driveController"/>
|
|
</attribute>
|
|
<optional>
|
|
<attribute name="slot">
|
|
<ref name="driveUnit"/>
|
|
</attribute>
|
|
</optional>
|
|
</define>
|
|
<define name="dimmaddress">
|
|
<optional>
|
|
<attribute name="slot">
|
|
<ref name="unsignedInt"/>
|
|
</attribute>
|
|
</optional>
|
|
<optional>
|
|
<attribute name="base">
|
|
<ref name="hexuint"/>
|
|
</attribute>
|
|
</optional>
|
|
</define>
|
|
<define name="mdevaddress">
|
|
<element name="address">
|
|
<attribute name="uuid">
|
|
<ref name="UUID"/>
|
|
</attribute>
|
|
</element>
|
|
</define>
|
|
<define name="devices">
|
|
<element name="devices">
|
|
<interleave>
|
|
<optional>
|
|
<ref name="emulator"/>
|
|
</optional>
|
|
<zeroOrMore>
|
|
<choice>
|
|
<ref name="disk"/>
|
|
<ref name="controller"/>
|
|
<ref name="lease"/>
|
|
<ref name="filesystem"/>
|
|
<ref name="interface"/>
|
|
<ref name="input"/>
|
|
<ref name="sound"/>
|
|
<ref name="hostdev"/>
|
|
<ref name="graphic"/>
|
|
<ref name="video"/>
|
|
<ref name="console"/>
|
|
<ref name="parallel"/>
|
|
<ref name="serial"/>
|
|
<ref name="channel"/>
|
|
<ref name="smartcard"/>
|
|
<ref name="hub"/>
|
|
<ref name="redirdev"/>
|
|
<ref name="redirfilter"/>
|
|
<ref name="rng"/>
|
|
<ref name="tpm"/>
|
|
<ref name="shmem"/>
|
|
<ref name="memorydev"/>
|
|
</choice>
|
|
</zeroOrMore>
|
|
<optional>
|
|
<ref name="watchdog"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="memballoon"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="nvram"/>
|
|
</optional>
|
|
<zeroOrMore>
|
|
<ref name="panic"/>
|
|
</zeroOrMore>
|
|
<optional>
|
|
<ref name="iommu"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="vsock"/>
|
|
</optional>
|
|
</interleave>
|
|
</element>
|
|
</define>
|
|
<!--
|
|
A set of optional features: PAE, APIC, ACPI, GIC,
|
|
HyperV Enlightenment, KVM features, paravirtual spinlocks and HAP support
|
|
-->
|
|
<define name="features">
|
|
<optional>
|
|
<element name="features">
|
|
<interleave>
|
|
<optional>
|
|
<element name="pae">
|
|
<empty/>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name="apic">
|
|
<optional>
|
|
<attribute name="eoi">
|
|
<ref name="virOnOff"/>
|
|
</attribute>
|
|
</optional>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name="acpi">
|
|
<empty/>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name="hap">
|
|
<optional>
|
|
<attribute name="state">
|
|
<ref name="virOnOff"/>
|
|
</attribute>
|
|
</optional>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<ref name="hyperv"/>
|
|
</optional>
|
|
<optional>
|
|
<element name="viridian">
|
|
<empty/>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<ref name="kvm"/>
|
|
</optional>
|
|
<optional>
|
|
<element name="privnet">
|
|
<empty/>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name="pvspinlock">
|
|
<optional>
|
|
<ref name="featurestate"/>
|
|
</optional>
|
|
<empty/>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<ref name="capabilities"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="pmu"/>
|
|
</optional>
|
|
<optional>
|
|
<element name="vmport">
|
|
<optional>
|
|
<attribute name="state">
|
|
<ref name="virOnOff"/>
|
|
</attribute>
|
|
</optional>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name="gic">
|
|
<optional>
|
|
<attribute name="version">
|
|
<choice>
|
|
<value>host</value>
|
|
<value>2</value>
|
|
<value>3</value>
|
|
</choice>
|
|
</attribute>
|
|
</optional>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name="smm">
|
|
<optional>
|
|
<attribute name="state">
|
|
<ref name="virOnOff"/>
|
|
</attribute>
|
|
<optional>
|
|
<element name="tseg">
|
|
<ref name="scaledInteger"/>
|
|
</element>
|
|
</optional>
|
|
</optional>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<ref name="ioapic"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="hpt"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="vmcoreinfo"/>
|
|
</optional>
|
|
<optional>
|
|
<element name="htm">
|
|
<ref name="featurestate"/>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name="nested-hv">
|
|
<ref name="featurestate"/>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<ref name="msrs"/>
|
|
</optional>
|
|
</interleave>
|
|
</element>
|
|
</optional>
|
|
</define>
|
|
<!--
|
|
CPU specification
|
|
-->
|
|
<define name="cpu">
|
|
<element name="cpu">
|
|
<optional>
|
|
<ref name="cpuMode"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="cpuMatch"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="cpuCheck"/>
|
|
</optional>
|
|
<interleave>
|
|
<optional>
|
|
<ref name="cpuModel"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="cpuVendor"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="cpuTopology"/>
|
|
</optional>
|
|
<zeroOrMore>
|
|
<ref name="cpuFeature"/>
|
|
</zeroOrMore>
|
|
<optional>
|
|
<ref name="cpuNuma"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="cpuCache"/>
|
|
</optional>
|
|
</interleave>
|
|
</element>
|
|
</define>
|
|
|
|
<!--
|
|
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>
|
|
<zeroOrMore>
|
|
<element name="baseBoard">
|
|
<oneOrMore>
|
|
<element name="entry">
|
|
<attribute name="name">
|
|
<ref name="sysinfo-baseBoard-name"/>
|
|
</attribute>
|
|
<ref name="sysinfo-value"/>
|
|
</element>
|
|
</oneOrMore>
|
|
</element>
|
|
</zeroOrMore>
|
|
<optional>
|
|
<element name="chassis">
|
|
<oneOrMore>
|
|
<element name="entry">
|
|
<attribute name="name">
|
|
<ref name="sysinfo-chassis-name"/>
|
|
</attribute>
|
|
<ref name="sysinfo-value"/>
|
|
</element>
|
|
</oneOrMore>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name="oemStrings">
|
|
<oneOrMore>
|
|
<element name="entry">
|
|
<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>
|
|
<value>family</value>
|
|
</choice>
|
|
</define>
|
|
|
|
<define name="sysinfo-baseBoard-name">
|
|
<choice>
|
|
<value>manufacturer</value>
|
|
<value>product</value>
|
|
<value>version</value>
|
|
<value>serial</value>
|
|
<value>asset</value>
|
|
<value>location</value>
|
|
</choice>
|
|
</define>
|
|
|
|
<define name="sysinfo-chassis-name">
|
|
<choice>
|
|
<value>manufacturer</value>
|
|
<value>version</value>
|
|
<value>serial</value>
|
|
<value>asset</value>
|
|
<value>sku</value>
|
|
</choice>
|
|
</define>
|
|
|
|
<define name="sysinfo-value">
|
|
<data type="string"/>
|
|
</define>
|
|
|
|
<define name="acpiTable">
|
|
<element name="acpi">
|
|
<zeroOrMore>
|
|
<element name="table">
|
|
<attribute name="type">
|
|
<value>slic</value>
|
|
</attribute>
|
|
<ref name="absFilePath"/>
|
|
</element>
|
|
</zeroOrMore>
|
|
</element>
|
|
</define>
|
|
|
|
<define name="smbios">
|
|
<element name="smbios">
|
|
<attribute name="mode">
|
|
<choice>
|
|
<value>emulate</value>
|
|
<value>host</value>
|
|
<value>sysinfo</value>
|
|
</choice>
|
|
</attribute>
|
|
<empty/>
|
|
</element>
|
|
</define>
|
|
|
|
<define name="bios">
|
|
<element name="bios">
|
|
<optional>
|
|
<attribute name="useserial">
|
|
<ref name="virYesNo"/>
|
|
</attribute>
|
|
</optional>
|
|
<optional>
|
|
<attribute name="rebootTimeout">
|
|
<ref name="rebootTimeoutDelay"/>
|
|
</attribute>
|
|
</optional>
|
|
</element>
|
|
</define>
|
|
|
|
<define name="ioapic">
|
|
<element name="ioapic">
|
|
<attribute name="driver">
|
|
<choice>
|
|
<value>qemu</value>
|
|
<value>kvm</value>
|
|
</choice>
|
|
</attribute>
|
|
<empty/>
|
|
</element>
|
|
</define>
|
|
|
|
<define name="hpt">
|
|
<element name="hpt">
|
|
<optional>
|
|
<attribute name="resizing">
|
|
<choice>
|
|
<value>enabled</value>
|
|
<value>disabled</value>
|
|
<value>required</value>
|
|
</choice>
|
|
</attribute>
|
|
</optional>
|
|
<optional>
|
|
<element name="maxpagesize">
|
|
<ref name='scaledInteger'/>
|
|
</element>
|
|
</optional>
|
|
</element>
|
|
</define>
|
|
|
|
<define name="vmcoreinfo">
|
|
<element name="vmcoreinfo">
|
|
<optional>
|
|
<attribute name="state">
|
|
<ref name="virOnOff"/>
|
|
</attribute>
|
|
</optional>
|
|
</element>
|
|
</define>
|
|
|
|
<define name="msrs">
|
|
<element name="msrs">
|
|
<attribute name="unknown">
|
|
<choice>
|
|
<value>ignore</value>
|
|
<value>fault</value>
|
|
</choice>
|
|
</attribute>
|
|
</element>
|
|
</define>
|
|
|
|
<define name="address">
|
|
<element name="address">
|
|
<choice>
|
|
<group>
|
|
<attribute name="type">
|
|
<value>pci</value>
|
|
</attribute>
|
|
<ref name="pciaddress"/>
|
|
<ref name="zpciaddress"/>
|
|
</group>
|
|
<group>
|
|
<attribute name="type">
|
|
<value>drive</value>
|
|
</attribute>
|
|
<ref name="driveaddress"/>
|
|
</group>
|
|
<group>
|
|
<attribute name="type">
|
|
<value>virtio-serial</value>
|
|
</attribute>
|
|
<ref name="virtioserialaddress"/>
|
|
</group>
|
|
<group>
|
|
<attribute name="type">
|
|
<value>ccid</value>
|
|
</attribute>
|
|
<ref name="ccidaddress"/>
|
|
</group>
|
|
<group>
|
|
<attribute name="type">
|
|
<value>usb</value>
|
|
</attribute>
|
|
<ref name="usbportaddress"/>
|
|
</group>
|
|
<group>
|
|
<attribute name="type">
|
|
<value>spapr-vio</value>
|
|
</attribute>
|
|
<ref name="spaprvioaddress"/>
|
|
</group>
|
|
<group>
|
|
<attribute name="type">
|
|
<value>ccw</value>
|
|
</attribute>
|
|
<ref name="ccwaddress"/>
|
|
</group>
|
|
<group>
|
|
<attribute name="type">
|
|
<value>isa</value>
|
|
</attribute>
|
|
<ref name="isaaddress"/>
|
|
</group>
|
|
<group>
|
|
<attribute name="type">
|
|
<value>virtio-mmio</value>
|
|
</attribute>
|
|
</group>
|
|
<group>
|
|
<attribute name="type">
|
|
<value>dimm</value>
|
|
</attribute>
|
|
<ref name="dimmaddress"/>
|
|
</group>
|
|
</choice>
|
|
</element>
|
|
</define>
|
|
|
|
<define name="rom">
|
|
<element name="rom">
|
|
<optional>
|
|
<attribute name="enabled">
|
|
<ref name="virYesNo"/>
|
|
</attribute>
|
|
</optional>
|
|
<optional>
|
|
<attribute name="bar">
|
|
<ref name="virOnOff"/>
|
|
</attribute>
|
|
</optional>
|
|
<optional>
|
|
<attribute name="file">
|
|
<ref name="absFilePath"/>
|
|
</attribute>
|
|
</optional>
|
|
<empty/>
|
|
</element>
|
|
</define>
|
|
|
|
<define name="memorydev">
|
|
<element name="memory">
|
|
<attribute name="model">
|
|
<choice>
|
|
<value>dimm</value>
|
|
<value>nvdimm</value>
|
|
</choice>
|
|
</attribute>
|
|
<optional>
|
|
<attribute name="access">
|
|
<choice>
|
|
<value>shared</value>
|
|
<value>private</value>
|
|
</choice>
|
|
</attribute>
|
|
</optional>
|
|
<optional>
|
|
<attribute name="discard">
|
|
<ref name="virYesNo"/>
|
|
</attribute>
|
|
</optional>
|
|
<interleave>
|
|
<optional>
|
|
<ref name="memorydev-source"/>
|
|
</optional>
|
|
<ref name="memorydev-target"/>
|
|
<optional>
|
|
<ref name="address"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="alias"/>
|
|
</optional>
|
|
</interleave>
|
|
</element>
|
|
</define>
|
|
|
|
<define name="memorydev-source">
|
|
<element name="source">
|
|
<choice>
|
|
<group>
|
|
<interleave>
|
|
<optional>
|
|
<element name="pagesize">
|
|
<ref name="scaledInteger"/>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name="nodemask">
|
|
<ref name="cpuset"/>
|
|
</element>
|
|
</optional>
|
|
</interleave>
|
|
</group>
|
|
<group>
|
|
<interleave>
|
|
<element name="path">
|
|
<ref name="absFilePath"/>
|
|
</element>
|
|
<optional>
|
|
<element name="alignsize">
|
|
<ref name="scaledInteger"/>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name="pmem">
|
|
<empty/>
|
|
</element>
|
|
</optional>
|
|
</interleave>
|
|
</group>
|
|
</choice>
|
|
</element>
|
|
</define>
|
|
|
|
<define name="memorydev-target">
|
|
<element name="target">
|
|
<interleave>
|
|
<element name="size">
|
|
<ref name="scaledInteger"/>
|
|
</element>
|
|
<optional>
|
|
<element name="node">
|
|
<ref name="unsignedInt"/>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name="label">
|
|
<element name="size">
|
|
<ref name="scaledInteger"/>
|
|
</element>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name="readonly">
|
|
<empty/>
|
|
</element>
|
|
</optional>
|
|
</interleave>
|
|
</element>
|
|
</define>
|
|
|
|
<define name="rng">
|
|
<element name="rng">
|
|
<attribute name="model">
|
|
<choice>
|
|
<value>virtio</value>
|
|
<value>virtio-transitional</value>
|
|
<value>virtio-non-transitional</value>
|
|
</choice>
|
|
</attribute>
|
|
<interleave>
|
|
<ref name="rng-backend"/>
|
|
<optional>
|
|
<element name="driver">
|
|
<ref name="virtioOptions"/>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<ref name="rng-rate"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="alias"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="address"/>
|
|
</optional>
|
|
</interleave>
|
|
</element>
|
|
</define>
|
|
|
|
<define name="rng-backend">
|
|
<element name="backend">
|
|
<choice>
|
|
<group>
|
|
<attribute name="model">
|
|
<value>random</value>
|
|
</attribute>
|
|
<choice>
|
|
<ref name='absFilePath'/>
|
|
<empty/>
|
|
</choice>
|
|
</group>
|
|
<group>
|
|
<attribute name="model">
|
|
<value>egd</value>
|
|
</attribute>
|
|
<ref name="qemucdevSrcType"/>
|
|
<ref name="qemucdevSrcDef"/>
|
|
</group>
|
|
</choice>
|
|
</element>
|
|
</define>
|
|
|
|
<define name="rng-rate">
|
|
<element name="rate">
|
|
<attribute name="bytes">
|
|
<ref name="positiveInteger"/>
|
|
</attribute>
|
|
<optional>
|
|
<attribute name="period">
|
|
<ref name="positiveInteger"/>
|
|
</attribute>
|
|
</optional>
|
|
<empty/>
|
|
</element>
|
|
</define>
|
|
|
|
<define name="virtioOptions">
|
|
<optional>
|
|
<attribute name="iommu">
|
|
<ref name="virOnOff"/>
|
|
</attribute>
|
|
</optional>
|
|
<optional>
|
|
<attribute name="ats">
|
|
<ref name="virOnOff"/>
|
|
</attribute>
|
|
</optional>
|
|
</define>
|
|
|
|
<define name="usbmaster">
|
|
<element name="master">
|
|
<attribute name="startport">
|
|
<ref name="usbPort"/>
|
|
</attribute>
|
|
<empty/>
|
|
</element>
|
|
</define>
|
|
|
|
<define name="deviceBoot">
|
|
<element name="boot">
|
|
<attribute name="order">
|
|
<ref name="positiveInteger"/>
|
|
</attribute>
|
|
<optional>
|
|
<attribute name="loadparm">
|
|
<data type="string">
|
|
<param name="pattern">[a-zA-Z0-9.\s]{1,8}</param>
|
|
</data>
|
|
</attribute>
|
|
</optional>
|
|
<empty/>
|
|
</element>
|
|
</define>
|
|
|
|
<define name='diskMirror'>
|
|
<element name='mirror'>
|
|
<choice>
|
|
<group> <!-- old format, for block copy back-compat -->
|
|
<attribute name='file'>
|
|
<ref name='absFilePath'/>
|
|
</attribute>
|
|
<optional>
|
|
<attribute name='format'>
|
|
<ref name='storageFormat'/>
|
|
</attribute>
|
|
</optional>
|
|
<optional>
|
|
<attribute name='job'>
|
|
<value>copy</value>
|
|
</attribute>
|
|
</optional>
|
|
<optional>
|
|
<interleave>
|
|
<ref name='diskSourceFile'/>
|
|
<optional>
|
|
<ref name="diskFormat"/>
|
|
</optional>
|
|
</interleave>
|
|
</optional>
|
|
</group>
|
|
<group> <!-- preferred format -->
|
|
<attribute name='job'>
|
|
<choice>
|
|
<value>copy</value>
|
|
<value>active-commit</value>
|
|
</choice>
|
|
</attribute>
|
|
<interleave>
|
|
<ref name="diskSource"/>
|
|
<optional>
|
|
<ref name="diskFormat"/>
|
|
</optional>
|
|
</interleave>
|
|
</group>
|
|
</choice>
|
|
<optional>
|
|
<attribute name='ready'>
|
|
<choice>
|
|
<value>yes</value>
|
|
<value>abort</value>
|
|
<value>pivot</value>
|
|
</choice>
|
|
</attribute>
|
|
</optional>
|
|
<ref name="diskBackingChain"/>
|
|
</element>
|
|
</define>
|
|
<define name="diskAuth">
|
|
<element name="auth">
|
|
<attribute name="username">
|
|
<ref name="genericName"/>
|
|
</attribute>
|
|
<ref name="diskAuthSecret"/>
|
|
</element>
|
|
</define>
|
|
|
|
<define name='diskAuthSecret'>
|
|
<element name='secret'>
|
|
<attribute name='type'>
|
|
<choice>
|
|
<value>ceph</value>
|
|
<value>iscsi</value>
|
|
</choice>
|
|
</attribute>
|
|
<choice>
|
|
<attribute name='uuid'>
|
|
<ref name="UUID"/>
|
|
</attribute>
|
|
<attribute name='usage'>
|
|
<ref name='genericName'/>
|
|
</attribute>
|
|
</choice>
|
|
</element>
|
|
</define>
|
|
|
|
<define name='diskIoTune'>
|
|
<element name="iotune">
|
|
<interleave>
|
|
<choice>
|
|
<element name="total_bytes_sec">
|
|
<data type="unsignedLong"/>
|
|
</element>
|
|
<group>
|
|
<interleave>
|
|
<optional>
|
|
<element name="read_bytes_sec">
|
|
<data type="unsignedLong"/>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name="write_bytes_sec">
|
|
<data type="unsignedLong"/>
|
|
</element>
|
|
</optional>
|
|
</interleave>
|
|
</group>
|
|
</choice>
|
|
<choice>
|
|
<element name="total_iops_sec">
|
|
<data type="unsignedLong"/>
|
|
</element>
|
|
<group>
|
|
<interleave>
|
|
<optional>
|
|
<element name="read_iops_sec">
|
|
<data type="unsignedLong"/>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name="write_iops_sec">
|
|
<data type="unsignedLong"/>
|
|
</element>
|
|
</optional>
|
|
</interleave>
|
|
</group>
|
|
</choice>
|
|
<choice>
|
|
<element name="total_bytes_sec_max">
|
|
<data type="unsignedLong"/>
|
|
</element>
|
|
<group>
|
|
<interleave>
|
|
<optional>
|
|
<element name="read_bytes_sec_max">
|
|
<data type="unsignedLong"/>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name="write_bytes_sec_max">
|
|
<data type="unsignedLong"/>
|
|
</element>
|
|
</optional>
|
|
</interleave>
|
|
</group>
|
|
</choice>
|
|
<choice>
|
|
<element name="total_iops_sec_max">
|
|
<data type="unsignedLong"/>
|
|
</element>
|
|
<group>
|
|
<interleave>
|
|
<optional>
|
|
<element name="read_iops_sec_max">
|
|
<data type="unsignedLong"/>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name="write_iops_sec_max">
|
|
<data type="unsignedLong"/>
|
|
</element>
|
|
</optional>
|
|
</interleave>
|
|
</group>
|
|
</choice>
|
|
<optional>
|
|
<element name="size_iops_sec">
|
|
<data type="unsignedLong"/>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name="group_name">
|
|
<text/>
|
|
</element>
|
|
</optional>
|
|
<choice>
|
|
<element name="total_bytes_sec_max_length">
|
|
<data type="unsignedLong"/>
|
|
</element>
|
|
<group>
|
|
<interleave>
|
|
<optional>
|
|
<element name="read_bytes_sec_max_length">
|
|
<data type="unsignedLong"/>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name="write_bytes_sec_max_length">
|
|
<data type="unsignedLong"/>
|
|
</element>
|
|
</optional>
|
|
</interleave>
|
|
</group>
|
|
</choice>
|
|
<choice>
|
|
<element name="total_iops_sec_max_length">
|
|
<data type="unsignedLong"/>
|
|
</element>
|
|
<group>
|
|
<interleave>
|
|
<optional>
|
|
<element name="read_iops_sec_max_length">
|
|
<data type="unsignedLong"/>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name="write_iops_sec_max_length">
|
|
<data type="unsignedLong"/>
|
|
</element>
|
|
</optional>
|
|
</interleave>
|
|
</group>
|
|
</choice>
|
|
</interleave>
|
|
</element>
|
|
</define>
|
|
|
|
<!-- Optional HyperV Enlightenment features -->
|
|
<define name="hyperv">
|
|
<element name="hyperv">
|
|
<interleave>
|
|
<optional>
|
|
<element name="relaxed">
|
|
<ref name="featurestate"/>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name="vapic">
|
|
<ref name="featurestate"/>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name="spinlocks">
|
|
<ref name="featurestate"/>
|
|
<optional>
|
|
<attribute name="retries">
|
|
<data type="unsignedInt"/>
|
|
</attribute>
|
|
</optional>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name="vpindex">
|
|
<ref name="featurestate"/>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name="runtime">
|
|
<ref name="featurestate"/>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name="synic">
|
|
<ref name="featurestate"/>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name="stimer">
|
|
<ref name="featurestate"/>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name="reset">
|
|
<ref name="featurestate"/>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name="vendor_id">
|
|
<ref name="featurestate"/>
|
|
<optional>
|
|
<attribute name="value">
|
|
<data type="string">
|
|
<param name='pattern'>[^,]{0,12}</param>
|
|
</data>
|
|
</attribute>
|
|
</optional>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name="frequencies">
|
|
<ref name="featurestate"/>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name="reenlightenment">
|
|
<ref name="featurestate"/>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name="tlbflush">
|
|
<ref name="featurestate"/>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name="ipi">
|
|
<ref name="featurestate"/>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name="evmcs">
|
|
<ref name="featurestate"/>
|
|
</element>
|
|
</optional>
|
|
</interleave>
|
|
</element>
|
|
</define>
|
|
|
|
<!-- Optional KVM features -->
|
|
<define name="kvm">
|
|
<element name="kvm">
|
|
<interleave>
|
|
<optional>
|
|
<element name="hidden">
|
|
<ref name="featurestate"/>
|
|
</element>
|
|
</optional>
|
|
</interleave>
|
|
</element>
|
|
</define>
|
|
|
|
<!-- Optional capabilities features -->
|
|
<define name="capabilities">
|
|
<element name="capabilities">
|
|
<ref name="capabilitiespolicy"/>
|
|
<interleave>
|
|
<optional>
|
|
<element name="audit_control">
|
|
<ref name="featurestate"/>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name="audit_write">
|
|
<ref name="featurestate"/>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name="block_suspend">
|
|
<ref name="featurestate"/>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name="chown">
|
|
<ref name="featurestate"/>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name="dac_override">
|
|
<ref name="featurestate"/>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name="dac_read_search">
|
|
<ref name="featurestate"/>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name="fowner">
|
|
<ref name="featurestate"/>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name="fsetid">
|
|
<ref name="featurestate"/>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name="ipc_lock">
|
|
<ref name="featurestate"/>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name="ipc_owner">
|
|
<ref name="featurestate"/>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name="kill">
|
|
<ref name="featurestate"/>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name="lease">
|
|
<ref name="featurestate"/>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name="linux_immutable">
|
|
<ref name="featurestate"/>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name="mac_admin">
|
|
<ref name="featurestate"/>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name="mac_override">
|
|
<ref name="featurestate"/>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name="mknod">
|
|
<ref name="featurestate"/>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name="net_admin">
|
|
<ref name="featurestate"/>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name="net_bind_service">
|
|
<ref name="featurestate"/>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name="net_broadcast">
|
|
<ref name="featurestate"/>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name="net_raw">
|
|
<ref name="featurestate"/>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name="setgid">
|
|
<ref name="featurestate"/>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name="setfcap">
|
|
<ref name="featurestate"/>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name="setpcap">
|
|
<ref name="featurestate"/>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name="setuid">
|
|
<ref name="featurestate"/>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name="sys_admin">
|
|
<ref name="featurestate"/>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name="sys_boot">
|
|
<ref name="featurestate"/>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name="sys_chroot">
|
|
<ref name="featurestate"/>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name="sys_module">
|
|
<ref name="featurestate"/>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name="sys_nice">
|
|
<ref name="featurestate"/>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name="sys_pacct">
|
|
<ref name="featurestate"/>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name="sys_ptrace">
|
|
<ref name="featurestate"/>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name="sys_rawio">
|
|
<ref name="featurestate"/>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name="sys_resource">
|
|
<ref name="featurestate"/>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name="sys_time">
|
|
<ref name="featurestate"/>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name="sys_tty_config">
|
|
<ref name="featurestate"/>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name="syslog">
|
|
<ref name="featurestate"/>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name="wake_alarm">
|
|
<ref name="featurestate"/>
|
|
</element>
|
|
</optional>
|
|
</interleave>
|
|
</element>
|
|
</define>
|
|
|
|
<define name="pmu">
|
|
<element name="pmu">
|
|
<optional>
|
|
<ref name="featurestate"/>
|
|
</optional>
|
|
</element>
|
|
</define>
|
|
|
|
<define name="featurestate">
|
|
<attribute name="state">
|
|
<ref name="virOnOff"/>
|
|
</attribute>
|
|
</define>
|
|
|
|
<define name="capabilitiespolicy">
|
|
<attribute name="policy">
|
|
<choice>
|
|
<value>default</value>
|
|
<value>allow</value>
|
|
<value>deny</value>
|
|
</choice>
|
|
</attribute>
|
|
</define>
|
|
|
|
<!--
|
|
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>
|
|
|
|
<!--
|
|
Optional hypervisor extensions in their own namespace:
|
|
LXC
|
|
-->
|
|
<define name="lxcsharens">
|
|
<element name="namespace" ns="http://libvirt.org/schemas/domain/lxc/1.0">
|
|
<zeroOrMore>
|
|
<element name="sharenet">
|
|
<attribute name="type">
|
|
<choice>
|
|
<value>netns</value>
|
|
<value>name</value>
|
|
<value>pid</value>
|
|
</choice>
|
|
</attribute>
|
|
<attribute name='value'/>
|
|
</element>
|
|
<element name="shareipc">
|
|
<attribute name="type">
|
|
<choice>
|
|
<value>name</value>
|
|
<value>pid</value>
|
|
</choice>
|
|
</attribute>
|
|
<attribute name='value'/>
|
|
</element>
|
|
<element name="shareuts">
|
|
<attribute name="type">
|
|
<choice>
|
|
<value>name</value>
|
|
<value>pid</value>
|
|
</choice>
|
|
</attribute>
|
|
<attribute name='value'/>
|
|
</element>
|
|
</zeroOrMore>
|
|
</element>
|
|
</define>
|
|
|
|
<!--
|
|
Optional hypervisor extensions in their own namespace:
|
|
Bhyve
|
|
-->
|
|
<define name="bhyvecmdline">
|
|
<element name="commandline" ns="http://libvirt.org/schemas/domain/bhyve/1.0">
|
|
<zeroOrMore>
|
|
<element name="arg">
|
|
<attribute name='value'/>
|
|
</element>
|
|
</zeroOrMore>
|
|
</element>
|
|
</define>
|
|
|
|
<!--
|
|
Type library
|
|
-->
|
|
<define name="countCPU">
|
|
<data type="unsignedShort">
|
|
<param name="pattern">[0-9]+</param>
|
|
<param name="minInclusive">1</param>
|
|
</data>
|
|
</define>
|
|
<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>
|
|
</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>
|
|
<define name="rebootTimeoutDelay">
|
|
<data type="short">
|
|
<param name="minInclusive">-1</param>
|
|
</data>
|
|
</define>
|
|
<!-- weight currently is in range [100, 1000] -->
|
|
<define name="weight">
|
|
<data type="unsignedInt">
|
|
<param name="pattern">[0-9]+</param>
|
|
<param name="minInclusive">100</param>
|
|
<param name="maxInclusive">1000</param>
|
|
</data>
|
|
</define>
|
|
<define name="domainName">
|
|
<data type="string">
|
|
<!-- Use literal newline instead of \n for bug in libxml2 2.7.6 -->
|
|
<param name="pattern">[^
|
|
]+</param>
|
|
</data>
|
|
</define>
|
|
<define name="diskSerial">
|
|
<data type="string">
|
|
<param name="pattern">[A-Za-z0-9_\.\+\- ]+</param>
|
|
</data>
|
|
</define>
|
|
<define name="bridgeMode">
|
|
<data type="string">
|
|
<param name="pattern">(vepa|bridge|private|passthrough)</param>
|
|
</data>
|
|
</define>
|
|
<define name="addrIPorName">
|
|
<choice>
|
|
<ref name="ipAddr"/>
|
|
<ref name="dnsName"/>
|
|
</choice>
|
|
</define>
|
|
<define name="usbIdDefault">
|
|
<data type="string">
|
|
<param name="pattern">-1</param>
|
|
</data>
|
|
</define>
|
|
<define name="usbId">
|
|
<data type="string">
|
|
<param name="pattern">(0x)?[0-9a-fA-F]{1,4}</param>
|
|
</data>
|
|
</define>
|
|
<define name="usbVersion">
|
|
<data type="string">
|
|
<param name="pattern">[0-9]{1,2}.[0-9]{1,2}</param>
|
|
</data>
|
|
</define>
|
|
<define name="usbAddr">
|
|
<data type="string">
|
|
<param name="pattern">(0x)?[0-9a-fA-F]{1,3}</param>
|
|
</data>
|
|
</define>
|
|
<define name="usbClass">
|
|
<data type="string">
|
|
<param name="pattern">(0x)?[0-9a-fA-F]{1,2}</param>
|
|
</data>
|
|
</define>
|
|
<define name="usbPort">
|
|
<data type="string">
|
|
<param name="pattern">((0x)?[0-9a-fA-F]{1,3}\.){0,3}(0x)?[0-9a-fA-F]{1,3}</param>
|
|
</data>
|
|
</define>
|
|
<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="driveTarget">
|
|
<data type="string">
|
|
<param name="pattern">[0-9]{1,2}</param>
|
|
</data>
|
|
</define>
|
|
<define name="driveSCSITarget">
|
|
<data type="string">
|
|
<param name="pattern">[0-9]{1,10}</param>
|
|
</data>
|
|
</define>
|
|
<define name="driveUnit">
|
|
<data type="string">
|
|
<param name="pattern">[0-9]{1,2}</param>
|
|
</data>
|
|
</define>
|
|
<define name="driveSCSIUnit">
|
|
<data type="string">
|
|
<param name="pattern">[0-9]{1,20}</param>
|
|
</data>
|
|
</define>
|
|
<define name="timeDelta">
|
|
<data type="string">
|
|
<param name="pattern">(-|\+)?[0-9]+</param>
|
|
</data>
|
|
</define>
|
|
<define name="timeZone">
|
|
<data type="string">
|
|
<param name="pattern">[a-zA-Z0-9_\.\+\-/]+</param>
|
|
</data>
|
|
</define>
|
|
<define name="spaprvioReg">
|
|
<data type="string">
|
|
<param name="pattern">(0x)?[0-9a-fA-F]{1,16}</param>
|
|
</data>
|
|
</define>
|
|
<define name='aliasName'>
|
|
<data type="string">
|
|
<param name="pattern">[a-zA-Z0-9_\-.]+</param>
|
|
</data>
|
|
</define>
|
|
<define name='alias'>
|
|
<element name='alias'>
|
|
<attribute name='name'>
|
|
<ref name='aliasName'/>
|
|
</attribute>
|
|
</element>
|
|
<empty/>
|
|
</define>
|
|
<define name="panic">
|
|
<element name="panic">
|
|
<optional>
|
|
<attribute name="model">
|
|
<choice>
|
|
<value>isa</value>
|
|
<value>pseries</value>
|
|
<value>hyperv</value>
|
|
<value>s390</value>
|
|
</choice>
|
|
</attribute>
|
|
</optional>
|
|
<interleave>
|
|
<optional>
|
|
<ref name="alias"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="address"/>
|
|
</optional>
|
|
</interleave>
|
|
</element>
|
|
</define>
|
|
<define name="rawIO">
|
|
<attribute name="rawio">
|
|
<ref name="virYesNo"/>
|
|
</attribute>
|
|
</define>
|
|
<define name="sgIO">
|
|
<attribute name="sgio">
|
|
<choice>
|
|
<value>filtered</value>
|
|
<value>unfiltered</value>
|
|
</choice>
|
|
</attribute>
|
|
</define>
|
|
|
|
<define name="coalesce">
|
|
<element name="coalesce">
|
|
<interleave>
|
|
<optional>
|
|
<element name="rx">
|
|
<optional>
|
|
<element name="frames">
|
|
<optional>
|
|
<attribute name="max">
|
|
<ref name="unsignedInt"/>
|
|
</attribute>
|
|
</optional>
|
|
<!--
|
|
This is how we'd add more Rx-related settings for
|
|
frames, like irq, high, and low
|
|
|
|
<optional>
|
|
<attribute name="irq">
|
|
<ref name="unsignedInt"/>
|
|
</attribute>
|
|
</optional>
|
|
<optional>
|
|
<attribute name="high">
|
|
<ref name="unsignedInt"/>
|
|
</attribute>
|
|
</optional>
|
|
<optional>
|
|
<attribute name="low">
|
|
<ref name="unsignedInt"/>
|
|
</attribute>
|
|
</optional>
|
|
|
|
-->
|
|
</element>
|
|
</optional>
|
|
<!--
|
|
This is how we'd add more Rx-related settings, like
|
|
usecs
|
|
|
|
<optional>
|
|
<element name="usecs">
|
|
<optional>
|
|
<attribute name="max">
|
|
<ref name="unsignedInt"/>
|
|
</attribute>
|
|
</optional>
|
|
<optional>
|
|
<attribute name="irq">
|
|
<ref name="unsignedInt"/>
|
|
</attribute>
|
|
</optional>
|
|
<optional>
|
|
<attribute name="high">
|
|
<ref name="unsignedInt"/>
|
|
</attribute>
|
|
</optional>
|
|
<optional>
|
|
<attribute name="low">
|
|
<ref name="unsignedInt"/>
|
|
</attribute>
|
|
</optional>
|
|
</element>
|
|
</optional>
|
|
-->
|
|
</element>
|
|
</optional>
|
|
<!--
|
|
This is how you would add more coalesce settings, like
|
|
Tx-related ones
|
|
|
|
<optional>
|
|
<element name="tx">
|
|
<optional>
|
|
<element name="frames">
|
|
<optional>
|
|
<attribute name="max">
|
|
<ref name="unsignedInt"/>
|
|
</attribute>
|
|
</optional>
|
|
<optional>
|
|
<attribute name="irq">
|
|
<ref name="unsignedInt"/>
|
|
</attribute>
|
|
</optional>
|
|
<optional>
|
|
<attribute name="high">
|
|
<ref name="unsignedInt"/>
|
|
</attribute>
|
|
</optional>
|
|
<optional>
|
|
<attribute name="low">
|
|
<ref name="unsignedInt"/>
|
|
</attribute>
|
|
</optional>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name="usecs">
|
|
<optional>
|
|
<attribute name="max">
|
|
<ref name="unsignedInt"/>
|
|
</attribute>
|
|
</optional>
|
|
<optional>
|
|
<attribute name="irq">
|
|
<ref name="unsignedInt"/>
|
|
</attribute>
|
|
</optional>
|
|
<optional>
|
|
<attribute name="high">
|
|
<ref name="unsignedInt"/>
|
|
</attribute>
|
|
</optional>
|
|
<optional>
|
|
<attribute name="low">
|
|
<ref name="unsignedInt"/>
|
|
</attribute>
|
|
</optional>
|
|
</element>
|
|
</optional>
|
|
</element>
|
|
</optional>
|
|
-->
|
|
</interleave>
|
|
</element>
|
|
</define>
|
|
|
|
</grammar>
|