mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-09-09 09:14:57 +00:00
We supported autostart of node devices via an xml element, but this is not consistent with other libvirt objects which use an explicit API for setting autostart status. So revert this and implement it as an official API in a future commit. The initial support was refactored after merging, so this commit reverts both of those previous commits. Revert "virNodeDevCapMdevParseXML: Use virXMLPropEnum() for ./start/@type" This reverts commit9d4cd1d1cd
. Revert "nodedev: support auto-start property for mdevs" This reverts commit42a5585499
. Signed-off-by: Jonathon Jongsma <jjongsma@redhat.com> Signed-off-by: Michal Privoznik <mprivozn@redhat.com> Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
773 lines
17 KiB
XML
773 lines
17 KiB
XML
<?xml version="1.0"?>
|
|
<!-- A Relax NG schema for the libvirt node device XML format -->
|
|
<grammar xmlns="http://relaxng.org/ns/structure/1.0"
|
|
datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
|
|
<include href="basictypes.rng"/>
|
|
<start>
|
|
<ref name="device"/>
|
|
</start>
|
|
|
|
<define name="device">
|
|
<element name="device">
|
|
<!-- The name of the network, used to refer to it through the API
|
|
and in virsh -->
|
|
<element name="name"><text/></element>
|
|
<optional>
|
|
<element name="path"><text/></element>
|
|
</optional>
|
|
<optional>
|
|
<element name="devnode">
|
|
<attribute name="type">
|
|
<value>dev</value>
|
|
</attribute>
|
|
<text/>
|
|
</element>
|
|
</optional>
|
|
<zeroOrMore>
|
|
<element name="devnode">
|
|
<attribute name="type">
|
|
<value>link</value>
|
|
</attribute>
|
|
<text/>
|
|
</element>
|
|
</zeroOrMore>
|
|
<optional>
|
|
<ref name="parent"/>
|
|
</optional>
|
|
|
|
<optional>
|
|
<element name="driver">
|
|
<element name="name"><text/></element>
|
|
</element>
|
|
</optional>
|
|
|
|
<zeroOrMore>
|
|
<ref name="capability"/>
|
|
</zeroOrMore>
|
|
</element>
|
|
</define>
|
|
|
|
<define name="parent">
|
|
<element name="parent">
|
|
<choice>
|
|
<group>
|
|
<attribute name="wwnn">
|
|
<ref name="wwn"/>
|
|
</attribute>
|
|
<attribute name="wwpn">
|
|
<ref name="wwn"/>
|
|
</attribute>
|
|
<empty/>
|
|
</group>
|
|
<group>
|
|
<attribute name="fabric_wwn">
|
|
<ref name="wwn"/>
|
|
</attribute>
|
|
<empty/>
|
|
</group>
|
|
<text/>
|
|
</choice>
|
|
</element>
|
|
</define>
|
|
|
|
<define name="capability">
|
|
<element name="capability">
|
|
<choice>
|
|
<ref name="capsystem"/>
|
|
<ref name="cappcidev"/>
|
|
<ref name="capusbdev"/>
|
|
<ref name="capusbinterface"/>
|
|
<ref name="capnet"/>
|
|
<ref name="capscsihost"/>
|
|
<ref name="capscsitarget"/>
|
|
<ref name="capscsi"/>
|
|
<ref name="capstorage"/>
|
|
<ref name="capdrm"/>
|
|
<ref name="capmdev"/>
|
|
<ref name="capccwdev"/>
|
|
<ref name="capcssdev"/>
|
|
<ref name="capvdpa"/>
|
|
<ref name="capapcard"/>
|
|
<ref name="capapqueue"/>
|
|
<ref name="capapmatrix"/>
|
|
</choice>
|
|
</element>
|
|
</define>
|
|
|
|
<define name="capsystem">
|
|
<attribute name="type">
|
|
<value>system</value>
|
|
</attribute>
|
|
|
|
<optional>
|
|
<element name="product"><text/></element>
|
|
</optional>
|
|
|
|
<element name="hardware">
|
|
<optional>
|
|
<element name="vendor"><text/></element>
|
|
</optional>
|
|
<optional>
|
|
<element name="version"><text/></element>
|
|
</optional>
|
|
<optional>
|
|
<element name="serial"><text/></element>
|
|
</optional>
|
|
|
|
<element name="uuid">
|
|
<ref name="UUID"/>
|
|
</element>
|
|
</element>
|
|
|
|
|
|
<element name="firmware">
|
|
<optional>
|
|
<element name="vendor"><text/></element>
|
|
</optional>
|
|
<optional>
|
|
<element name="version"><text/></element>
|
|
</optional>
|
|
<optional>
|
|
<element name="release_date"><text/></element>
|
|
</optional>
|
|
</element>
|
|
</define>
|
|
|
|
<define name="cappcidev">
|
|
<attribute name="type">
|
|
<value>pci</value>
|
|
</attribute>
|
|
|
|
<optional>
|
|
<element name="class">
|
|
<data type="string">
|
|
<param name="pattern">0x[0-9a-fA-F]{6}</param>
|
|
</data>
|
|
</element>
|
|
</optional>
|
|
<element name="domain">
|
|
<ref name="unsignedLong"/>
|
|
</element>
|
|
<element name="bus">
|
|
<ref name="unsignedLong"/>
|
|
</element>
|
|
<element name="slot">
|
|
<ref name="unsignedLong"/>
|
|
</element>
|
|
<element name="function">
|
|
<ref name="unsignedLong"/>
|
|
</element>
|
|
|
|
<element name="product">
|
|
<attribute name="id">
|
|
<ref name="hexuint"/>
|
|
</attribute>
|
|
|
|
<choice>
|
|
<text/>
|
|
<empty/>
|
|
</choice>
|
|
</element>
|
|
|
|
<element name="vendor">
|
|
<attribute name="id">
|
|
<ref name="hexuint"/>
|
|
</attribute>
|
|
|
|
<choice>
|
|
<text/>
|
|
<empty/>
|
|
</choice>
|
|
</element>
|
|
|
|
<optional>
|
|
<element name="capability">
|
|
<attribute name="type">
|
|
<value>phys_function</value>
|
|
</attribute>
|
|
<optional>
|
|
<ref name="address"/>
|
|
</optional>
|
|
</element>
|
|
</optional>
|
|
|
|
<optional>
|
|
<element name="capability">
|
|
<attribute name="type">
|
|
<value>virt_functions</value>
|
|
</attribute>
|
|
<optional>
|
|
<attribute name="maxCount">
|
|
<ref name="unsignedInt"/>
|
|
</attribute>
|
|
</optional>
|
|
<zeroOrMore>
|
|
<ref name="address"/>
|
|
</zeroOrMore>
|
|
</element>
|
|
</optional>
|
|
|
|
<optional>
|
|
<element name="capability">
|
|
<attribute name="type">
|
|
<choice>
|
|
<value>pci-bridge</value>
|
|
<value>cardbus-bridge</value>
|
|
</choice>
|
|
</attribute>
|
|
</element>
|
|
</optional>
|
|
|
|
<optional>
|
|
<ref name="mdev_types"/>
|
|
</optional>
|
|
|
|
<optional>
|
|
<element name="iommuGroup">
|
|
<attribute name="number">
|
|
<ref name="unsignedInt"/>
|
|
</attribute>
|
|
<oneOrMore>
|
|
<ref name="address"/>
|
|
</oneOrMore>
|
|
</element>
|
|
</optional>
|
|
|
|
<optional>
|
|
<element name="numa">
|
|
<optional>
|
|
<attribute name="node">
|
|
<data type="int"/>
|
|
</attribute>
|
|
</optional>
|
|
</element>
|
|
</optional>
|
|
|
|
<optional>
|
|
<element name="pci-express">
|
|
<zeroOrMore>
|
|
<element name="link">
|
|
<attribute name="validity">
|
|
<choice>
|
|
<value>cap</value>
|
|
<value>sta</value>
|
|
</choice>
|
|
</attribute>
|
|
<optional>
|
|
<attribute name="port">
|
|
<ref name="unsignedInt"/>
|
|
</attribute>
|
|
</optional>
|
|
<optional>
|
|
<attribute name="speed">
|
|
<data type="string">
|
|
<param name="pattern">[0-9]+(.[0-9]+)?</param>
|
|
</data>
|
|
</attribute>
|
|
</optional>
|
|
<attribute name="width">
|
|
<ref name="unsignedInt"/>
|
|
</attribute>
|
|
</element>
|
|
</zeroOrMore>
|
|
</element>
|
|
</optional>
|
|
</define>
|
|
|
|
<define name="capusbdev">
|
|
<attribute name="type">
|
|
<value>usb_device</value>
|
|
</attribute>
|
|
|
|
<element name="bus">
|
|
<ref name="unsignedLong"/>
|
|
</element>
|
|
<element name="device">
|
|
<ref name="unsignedLong"/>
|
|
</element>
|
|
|
|
<element name="product">
|
|
<attribute name="id">
|
|
<ref name="hexuint"/>
|
|
</attribute>
|
|
|
|
<choice>
|
|
<text/>
|
|
<empty/>
|
|
</choice>
|
|
</element>
|
|
|
|
<element name="vendor">
|
|
<attribute name="id">
|
|
<ref name="hexuint"/>
|
|
</attribute>
|
|
|
|
<choice>
|
|
<text/>
|
|
<empty/>
|
|
</choice>
|
|
</element>
|
|
</define>
|
|
|
|
<define name="capusbinterface">
|
|
<attribute name="type">
|
|
<value>usb</value>
|
|
</attribute>
|
|
|
|
<element name="number">
|
|
<ref name="unsignedLong"/>
|
|
</element>
|
|
<element name="class">
|
|
<ref name="unsignedLong"/>
|
|
</element>
|
|
<element name="subclass">
|
|
<ref name="unsignedLong"/>
|
|
</element>
|
|
<element name="protocol">
|
|
<ref name="unsignedLong"/>
|
|
</element>
|
|
|
|
<optional>
|
|
<element name="description">
|
|
<text/>
|
|
</element>
|
|
</optional>
|
|
</define>
|
|
|
|
<define name="capnet">
|
|
<attribute name="type">
|
|
<value>net</value>
|
|
</attribute>
|
|
|
|
<element name="interface">
|
|
<text/>
|
|
</element>
|
|
<optional>
|
|
<element name="address">
|
|
<ref name="mac"/>
|
|
</element>
|
|
</optional>
|
|
<ref name="link-speed-state"/>
|
|
|
|
<zeroOrMore>
|
|
<element name="feature">
|
|
<attribute name="name">
|
|
<ref name="netfeaturename"/>
|
|
</attribute>
|
|
</element>
|
|
</zeroOrMore>
|
|
|
|
<zeroOrMore>
|
|
<ref name="subcapnet"/>
|
|
</zeroOrMore>
|
|
</define>
|
|
|
|
<define name="netfeaturename">
|
|
<data type="string">
|
|
<param name="pattern">[a-zA-Z\-_]+</param>
|
|
</data>
|
|
</define>
|
|
|
|
<define name="subcapnet">
|
|
<element name="capability">
|
|
<choice>
|
|
<ref name="subcapnet80203"/>
|
|
<ref name="subcapnet80211"/>
|
|
</choice>
|
|
</element>
|
|
</define>
|
|
|
|
<define name="subcapnet80203">
|
|
<attribute name="type">
|
|
<value>80203</value>
|
|
</attribute>
|
|
</define>
|
|
|
|
<define name="subcapnet80211">
|
|
<attribute name="type">
|
|
<value>80211</value>
|
|
</attribute>
|
|
</define>
|
|
|
|
<define name="capsfchost">
|
|
<attribute name="type">
|
|
<value>fc_host</value>
|
|
</attribute>
|
|
|
|
<element name="wwnn">
|
|
<ref name="wwn"/>
|
|
</element>
|
|
|
|
<element name="wwpn">
|
|
<ref name="wwn"/>
|
|
</element>
|
|
|
|
<optional>
|
|
<element name="fabric_wwn">
|
|
<ref name="wwn"/>
|
|
</element>
|
|
</optional>
|
|
</define>
|
|
|
|
<define name="capsvports">
|
|
<attribute name="type">
|
|
<value>vports_ops</value>
|
|
</attribute>
|
|
<element name="max_vports">
|
|
<ref name="unsignedInt"/>
|
|
</element>
|
|
<element name="vports">
|
|
<ref name="unsignedInt"/>
|
|
</element>
|
|
</define>
|
|
|
|
<define name="capscsihost">
|
|
<attribute name="type">
|
|
<value>scsi_host</value>
|
|
</attribute>
|
|
|
|
<element name="host">
|
|
<ref name="unsignedLong"/>
|
|
</element>
|
|
|
|
<optional>
|
|
<element name="unique_id">
|
|
<ref name="positiveInteger"/>
|
|
</element>
|
|
</optional>
|
|
|
|
<optional>
|
|
<zeroOrMore>
|
|
<element name="capability">
|
|
<choice>
|
|
<ref name="capsfchost"/>
|
|
<ref name="capsvports"/>
|
|
</choice>
|
|
</element>
|
|
</zeroOrMore>
|
|
</optional>
|
|
</define>
|
|
|
|
<define name="capsfcrport">
|
|
<attribute name="type">
|
|
<value>fc_remote_port</value>
|
|
</attribute>
|
|
|
|
<element name="rport">
|
|
<text/>
|
|
</element>
|
|
|
|
<element name="wwpn">
|
|
<ref name="wwn"/>
|
|
</element>
|
|
</define>
|
|
|
|
<define name="capscsitarget">
|
|
<attribute name="type">
|
|
<value>scsi_target</value>
|
|
</attribute>
|
|
|
|
<element name="target">
|
|
<text/>
|
|
</element>
|
|
|
|
<optional>
|
|
<element name="capability">
|
|
<ref name="capsfcrport"/>
|
|
</element>
|
|
</optional>
|
|
</define>
|
|
|
|
<define name="capscsi">
|
|
<attribute name="type">
|
|
<value>scsi</value>
|
|
</attribute>
|
|
|
|
<element name="host">
|
|
<ref name="unsignedLong"/>
|
|
</element>
|
|
<element name="bus">
|
|
<ref name="unsignedLong"/>
|
|
</element>
|
|
<element name="target">
|
|
<ref name="unsignedLong"/>
|
|
</element>
|
|
<element name="lun">
|
|
<ref name="unsignedLong"/>
|
|
</element>
|
|
|
|
<element name="type">
|
|
<text/>
|
|
</element>
|
|
</define>
|
|
|
|
<define name="capstorage">
|
|
<attribute name="type">
|
|
<value>storage</value>
|
|
</attribute>
|
|
|
|
<element name="block">
|
|
<ref name="path"/>
|
|
</element>
|
|
|
|
<optional>
|
|
<element name="bus">
|
|
<text/>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name="drive_type">
|
|
<text/>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name="model">
|
|
<text/>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name="vendor">
|
|
<text/>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name="serial">
|
|
<text/>
|
|
</element>
|
|
</optional>
|
|
|
|
<choice>
|
|
<ref name="capstorageremoveable"/>
|
|
<ref name="capstoragefixed"/>
|
|
</choice>
|
|
|
|
<optional>
|
|
<element name="capability">
|
|
<attribute name="type">
|
|
<value>hotpluggable</value>
|
|
</attribute>
|
|
</element>
|
|
</optional>
|
|
</define>
|
|
|
|
<define name="capstorageremoveable">
|
|
<element name="capability">
|
|
<attribute name="type">
|
|
<value>removable</value>
|
|
</attribute>
|
|
<element name="media_available">
|
|
<choice>
|
|
<value>1</value>
|
|
<value>0</value>
|
|
</choice>
|
|
</element>
|
|
|
|
<element name="media_size">
|
|
<ref name="unsignedLong"/>
|
|
</element>
|
|
<optional>
|
|
<element name="media_label">
|
|
<text/>
|
|
</element>
|
|
</optional>
|
|
<ref name="blockData"/>
|
|
</element>
|
|
</define>
|
|
|
|
<define name="capstoragefixed">
|
|
<element name="size">
|
|
<ref name="unsignedLong"/>
|
|
</element>
|
|
<ref name="blockData"/>
|
|
</define>
|
|
|
|
<define name="blockData">
|
|
<optional>
|
|
<element name="logical_block_size">
|
|
<ref name="unsignedLong"/>
|
|
</element>
|
|
<element name="num_blocks">
|
|
<ref name="unsignedLong"/>
|
|
</element>
|
|
</optional>
|
|
</define>
|
|
|
|
<define name="capdrm">
|
|
<attribute name="type">
|
|
<value>drm</value>
|
|
</attribute>
|
|
<element name="type">
|
|
<choice>
|
|
<value>primary</value>
|
|
<value>control</value>
|
|
<value>render</value>
|
|
</choice>
|
|
</element>
|
|
</define>
|
|
|
|
<define name="capmdev">
|
|
<interleave>
|
|
<attribute name="type">
|
|
<value>mdev</value>
|
|
</attribute>
|
|
<element name="type">
|
|
<attribute name="id">
|
|
<data type="string"/>
|
|
</attribute>
|
|
</element>
|
|
<optional>
|
|
<element name="iommuGroup">
|
|
<attribute name="number">
|
|
<ref name="unsignedInt"/>
|
|
</attribute>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name="uuid">
|
|
<ref name="UUID"/>
|
|
</element>
|
|
</optional>
|
|
<zeroOrMore>
|
|
<element name="attr">
|
|
<attribute name="name"/>
|
|
<attribute name="value"/>
|
|
</element>
|
|
</zeroOrMore>
|
|
</interleave>
|
|
</define>
|
|
|
|
<define name="capccwdev">
|
|
<attribute name="type">
|
|
<value>ccw</value>
|
|
</attribute>
|
|
<element name="cssid">
|
|
<ref name="ccwCssidRange"/>
|
|
</element>
|
|
<element name="ssid">
|
|
<ref name="ccwSsidRange"/>
|
|
</element>
|
|
<element name="devno">
|
|
<ref name="ccwDevnoRange"/>
|
|
</element>
|
|
</define>
|
|
|
|
<define name="capcssdev">
|
|
<attribute name="type">
|
|
<value>css</value>
|
|
</attribute>
|
|
<element name="cssid">
|
|
<ref name="ccwCssidRange"/>
|
|
</element>
|
|
<element name="ssid">
|
|
<ref name="ccwSsidRange"/>
|
|
</element>
|
|
<element name="devno">
|
|
<ref name="ccwDevnoRange"/>
|
|
</element>
|
|
<optional>
|
|
<ref name="mdev_types"/>
|
|
</optional>
|
|
</define>
|
|
|
|
<define name="capvdpa">
|
|
<attribute name="type">
|
|
<value>vdpa</value>
|
|
</attribute>
|
|
<element name="chardev">
|
|
<ref name="path"/>
|
|
</element>
|
|
</define>
|
|
|
|
<define name="capapcard">
|
|
<attribute name="type">
|
|
<value>ap_card</value>
|
|
</attribute>
|
|
<element name="ap-adapter">
|
|
<ref name="uint8"/>
|
|
</element>
|
|
</define>
|
|
|
|
<define name="capapqueue">
|
|
<attribute name="type">
|
|
<value>ap_queue</value>
|
|
</attribute>
|
|
<element name="ap-adapter">
|
|
<ref name="uint8"/>
|
|
</element>
|
|
<element name="ap-domain">
|
|
<ref name="apDomainRange"/>
|
|
</element>
|
|
</define>
|
|
|
|
<define name='capapmatrix'>
|
|
<attribute name='type'>
|
|
<value>ap_matrix</value>
|
|
</attribute>
|
|
<optional>
|
|
<ref name="mdev_types"/>
|
|
</optional>
|
|
</define>
|
|
|
|
<define name="address">
|
|
<element name="address">
|
|
<attribute name="domain"><ref name="hexuint"/></attribute>
|
|
<attribute name="bus"><ref name="hexuint"/></attribute>
|
|
<attribute name="slot"><ref name="hexuint"/></attribute>
|
|
<attribute name="function"><ref name="hexuint"/></attribute>
|
|
</element>
|
|
</define>
|
|
|
|
<define name="mac">
|
|
<data type="string">
|
|
<param name="pattern">([a-fA-F0-9]{2}:){5}[a-fA-F0-9]{2}</param>
|
|
</data>
|
|
</define>
|
|
|
|
<define name="path">
|
|
<data type="string">
|
|
<param name="pattern">/[a-zA-Z0-9_\+\-/%]+</param>
|
|
</data>
|
|
</define>
|
|
|
|
<define name="mdev_types">
|
|
<element name="capability">
|
|
<attribute name="type">
|
|
<value>mdev_types</value>
|
|
</attribute>
|
|
<oneOrMore>
|
|
<element name="type">
|
|
<attribute name="id">
|
|
<data type="string"/>
|
|
</attribute>
|
|
<optional>
|
|
<element name="name"><text/></element>
|
|
</optional>
|
|
<element name="deviceAPI">
|
|
<choice>
|
|
<value>vfio-pci</value>
|
|
<value>vfio-ccw</value>
|
|
<value>vfio-ap</value>
|
|
</choice>
|
|
</element>
|
|
<element name="availableInstances">
|
|
<ref name="unsignedInt"/>
|
|
</element>
|
|
</element>
|
|
</oneOrMore>
|
|
</element>
|
|
</define>
|
|
|
|
<define name="apDomainRange">
|
|
<choice>
|
|
<data type="string">
|
|
<param name="pattern">0x[0-9a-fA-F]{1,4}</param>
|
|
</data>
|
|
<data type="int">
|
|
<param name="minInclusive">0</param>
|
|
<param name="maxInclusive">255</param>
|
|
</data>
|
|
</choice>
|
|
</define>
|
|
|
|
</grammar>
|