2013-01-23 23:03:17 +08:00
<?xml version="1.0"?>
2009-01-27 15:29:53 +00:00
<!-- 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">
2020-09-30 13:54:58 +02:00
<include href="basictypes.rng"/>
2009-01-27 15:29:53 +00:00
<start>
2020-09-30 13:54:58 +02:00
<ref name="device"/>
2009-01-27 15:29:53 +00:00
</start>
2020-09-30 13:54:58 +02:00
<define name="device">
2009-01-27 15:29:53 +00:00
<element name="device">
<!-- The name of the network, used to refer to it through the API
and in virsh -->
<element name="name"><text/></element>
2013-10-03 17:11:57 -04:00
<optional>
<element name="path"><text/></element>
</optional>
2017-02-15 01:04:10 +04:00
<optional>
<element name="devnode">
2020-09-30 13:54:58 +02:00
<attribute name="type">
2017-02-15 01:04:10 +04:00
<value>dev</value>
</attribute>
<text/>
</element>
</optional>
<zeroOrMore>
<element name="devnode">
2020-09-30 13:54:58 +02:00
<attribute name="type">
2017-02-15 01:04:10 +04:00
<value>link</value>
</attribute>
<text/>
</element>
</zeroOrMore>
2009-01-27 15:29:53 +00:00
<optional>
2016-11-17 11:09:09 -05:00
<ref name="parent"/>
2009-01-27 15:29:53 +00:00
</optional>
2012-08-02 13:23:16 +02:00
<optional>
<element name="driver">
<element name="name"><text/></element>
</element>
</optional>
2009-01-27 15:29:53 +00:00
<zeroOrMore>
2010-03-01 20:09:26 +01:00
<ref name="capability"/>
2009-01-27 15:29:53 +00:00
</zeroOrMore>
</element>
</define>
2020-09-30 13:54:58 +02:00
<define name="parent">
<element name="parent">
2016-11-17 11:09:09 -05:00
<choice>
<group>
2020-09-30 13:54:58 +02:00
<attribute name="wwnn">
<ref name="wwn"/>
2016-11-17 11:09:09 -05:00
</attribute>
2020-09-30 13:54:58 +02:00
<attribute name="wwpn">
<ref name="wwn"/>
2016-11-17 11:09:09 -05:00
</attribute>
<empty/>
</group>
<group>
2020-09-30 13:54:58 +02:00
<attribute name="fabric_wwn">
<ref name="wwn"/>
2016-11-17 11:09:09 -05:00
</attribute>
<empty/>
</group>
<text/>
</choice>
</element>
</define>
2020-09-30 13:54:58 +02:00
<define name="capability">
2009-01-27 15:29:53 +00:00
<element name="capability">
<choice>
2010-03-01 20:09:26 +01:00
<ref name="capsystem"/>
<ref name="cappcidev"/>
<ref name="capusbdev"/>
<ref name="capusbinterface"/>
<ref name="capnet"/>
2021-09-16 11:18:01 +02:00
<ref name="capscsigeneric"/>
2010-03-01 20:09:26 +01:00
<ref name="capscsihost"/>
2016-03-21 15:49:29 +01:00
<ref name="capscsitarget"/>
2010-03-01 20:09:26 +01:00
<ref name="capscsi"/>
<ref name="capstorage"/>
2017-02-15 01:04:12 +04:00
<ref name="capdrm"/>
2017-03-06 17:18:48 +01:00
<ref name="capmdev"/>
2017-05-22 08:38:22 +02:00
<ref name="capccwdev"/>
2020-09-14 21:11:44 +02:00
<ref name="capcssdev"/>
2020-10-14 12:08:30 -05:00
<ref name="capvdpa"/>
2020-12-03 18:59:33 +01:00
<ref name="capapcard"/>
2020-12-03 18:59:35 +01:00
<ref name="capapqueue"/>
2020-12-03 18:59:38 +01:00
<ref name="capapmatrix"/>
2009-01-27 15:29:53 +00:00
</choice>
</element>
</define>
2020-09-30 13:54:58 +02:00
<define name="capsystem">
<attribute name="type">
2009-01-27 15:29:53 +00:00
<value>system</value>
</attribute>
<optional>
2020-09-30 13:54:58 +02:00
<element name="product"><text/></element>
2009-01-27 15:29:53 +00:00
</optional>
2020-09-30 13:54:58 +02:00
<element name="hardware">
2009-01-27 15:29:53 +00:00
<optional>
2020-09-30 13:54:58 +02:00
<element name="vendor"><text/></element>
2009-01-27 15:29:53 +00:00
</optional>
<optional>
2020-09-30 13:54:58 +02:00
<element name="version"><text/></element>
2009-01-27 15:29:53 +00:00
</optional>
<optional>
2020-09-30 13:54:58 +02:00
<element name="serial"><text/></element>
2009-01-27 15:29:53 +00:00
</optional>
2020-09-30 13:54:58 +02:00
<element name="uuid">
<ref name="UUID"/>
2009-01-27 15:29:53 +00:00
</element>
</element>
2020-09-30 13:54:58 +02:00
<element name="firmware">
2009-01-27 15:29:53 +00:00
<optional>
2020-09-30 13:54:58 +02:00
<element name="vendor"><text/></element>
2009-01-27 15:29:53 +00:00
</optional>
<optional>
2020-09-30 13:54:58 +02:00
<element name="version"><text/></element>
2009-01-27 15:29:53 +00:00
</optional>
<optional>
2020-09-30 13:54:58 +02:00
<element name="release_date"><text/></element>
2009-01-27 15:29:53 +00:00
</optional>
</element>
</define>
2020-09-30 13:54:58 +02:00
<define name="cappcidev">
<attribute name="type">
2009-01-27 15:29:53 +00:00
<value>pci</value>
</attribute>
2019-03-21 10:12:40 +03:00
<optional>
2020-09-30 13:54:58 +02:00
<element name="class">
2019-03-21 10:12:40 +03:00
<data type="string">
<param name="pattern">0x[0-9a-fA-F]{6}</param>
</data>
</element>
</optional>
2020-09-30 13:54:58 +02:00
<element name="domain">
<ref name="unsignedLong"/>
2009-01-27 15:29:53 +00:00
</element>
2020-09-30 13:54:58 +02:00
<element name="bus">
<ref name="unsignedLong"/>
2009-01-27 15:29:53 +00:00
</element>
2020-09-30 13:54:58 +02:00
<element name="slot">
<ref name="unsignedLong"/>
2009-01-27 15:29:53 +00:00
</element>
2020-09-30 13:54:58 +02:00
<element name="function">
<ref name="unsignedLong"/>
2009-01-27 15:29:53 +00:00
</element>
2020-09-30 13:54:58 +02:00
<element name="product">
<attribute name="id">
<ref name="hexuint"/>
2009-01-27 15:29:53 +00:00
</attribute>
<choice>
2010-03-01 20:09:26 +01:00
<text/>
<empty/>
2009-01-27 15:29:53 +00:00
</choice>
</element>
2020-09-30 13:54:58 +02:00
<element name="vendor">
<attribute name="id">
<ref name="hexuint"/>
2009-01-27 15:29:53 +00:00
</attribute>
<choice>
2010-03-01 20:09:26 +01:00
<text/>
<empty/>
2009-01-27 15:29:53 +00:00
</choice>
</element>
2012-08-02 13:23:16 +02:00
<optional>
2020-09-30 13:54:58 +02:00
<element name="capability">
<attribute name="type">
2012-08-02 13:23:16 +02:00
<value>phys_function</value>
</attribute>
<optional>
2020-09-30 13:54:58 +02:00
<ref name="address"/>
2012-08-02 13:23:16 +02:00
</optional>
</element>
</optional>
<optional>
2020-09-30 13:54:58 +02:00
<element name="capability">
<attribute name="type">
2012-08-02 13:23:16 +02:00
<value>virt_functions</value>
</attribute>
<optional>
2020-09-30 13:54:58 +02:00
<attribute name="maxCount">
<ref name="unsignedInt"/>
2016-04-03 20:57:58 +02:00
</attribute>
2012-08-02 13:23:16 +02:00
</optional>
2016-04-03 20:57:58 +02:00
<zeroOrMore>
2020-09-30 13:54:58 +02:00
<ref name="address"/>
2016-04-03 20:57:58 +02:00
</zeroOrMore>
2012-08-02 13:23:16 +02:00
</element>
</optional>
2016-04-03 20:36:40 +02:00
<optional>
2020-09-30 13:54:58 +02:00
<element name="capability">
<attribute name="type">
2016-04-03 20:36:40 +02:00
<choice>
<value>pci-bridge</value>
<value>cardbus-bridge</value>
</choice>
</attribute>
</element>
</optional>
2017-03-06 17:17:34 +01:00
<optional>
2020-10-23 19:31:50 +02:00
<ref name="mdev_types"/>
2017-09-07 12:16:04 +02:00
</optional>
2017-03-06 17:17:34 +01:00
2021-10-20 11:30:33 +03:00
<optional>
<ref name="vpd"/>
</optional>
2013-06-23 14:01:00 -04:00
<optional>
2020-09-30 13:54:58 +02:00
<element name="iommuGroup">
<attribute name="number">
<ref name="unsignedInt"/>
2013-06-23 14:01:00 -04:00
</attribute>
<oneOrMore>
2020-09-30 13:54:58 +02:00
<ref name="address"/>
2013-06-23 14:01:00 -04:00
</oneOrMore>
</element>
</optional>
2014-05-07 18:07:12 +02:00
<optional>
2020-09-30 13:54:58 +02:00
<element name="numa">
2014-05-07 18:07:12 +02:00
<optional>
2020-09-30 13:54:58 +02:00
<attribute name="node">
<data type="int"/>
2014-05-07 18:07:12 +02:00
</attribute>
</optional>
</element>
2016-03-15 12:22:03 +01:00
</optional>
2014-05-15 10:13:45 +02:00
<optional>
2020-09-30 13:54:58 +02:00
<element name="pci-express">
2014-05-15 10:13:45 +02:00
<zeroOrMore>
2020-09-30 13:54:58 +02:00
<element name="link">
<attribute name="validity">
2014-05-15 10:13:45 +02:00
<choice>
<value>cap</value>
<value>sta</value>
</choice>
</attribute>
<optional>
2020-09-30 13:54:58 +02:00
<attribute name="port">
<ref name="unsignedInt"/>
2014-05-15 10:13:45 +02:00
</attribute>
</optional>
<optional>
2020-09-30 13:54:58 +02:00
<attribute name="speed">
2014-05-15 10:13:45 +02:00
<data type="string">
<param name="pattern">[0-9]+(.[0-9]+)?</param>
</data>
</attribute>
</optional>
2020-09-30 13:54:58 +02:00
<attribute name="width">
<ref name="unsignedInt"/>
2014-05-15 10:13:45 +02:00
</attribute>
</element>
</zeroOrMore>
</element>
</optional>
2009-01-27 15:29:53 +00:00
</define>
2020-09-30 13:54:58 +02:00
<define name="capusbdev">
<attribute name="type">
2009-01-27 15:29:53 +00:00
<value>usb_device</value>
</attribute>
2020-09-30 13:54:58 +02:00
<element name="bus">
<ref name="unsignedLong"/>
2009-01-27 15:29:53 +00:00
</element>
2020-09-30 13:54:58 +02:00
<element name="device">
<ref name="unsignedLong"/>
2009-01-27 15:29:53 +00:00
</element>
2020-09-30 13:54:58 +02:00
<element name="product">
<attribute name="id">
<ref name="hexuint"/>
2009-01-27 15:29:53 +00:00
</attribute>
<choice>
2010-03-01 20:09:26 +01:00
<text/>
<empty/>
2009-01-27 15:29:53 +00:00
</choice>
</element>
2020-09-30 13:54:58 +02:00
<element name="vendor">
<attribute name="id">
<ref name="hexuint"/>
2009-01-27 15:29:53 +00:00
</attribute>
<choice>
2010-03-01 20:09:26 +01:00
<text/>
<empty/>
2009-01-27 15:29:53 +00:00
</choice>
</element>
</define>
2020-09-30 13:54:58 +02:00
<define name="capusbinterface">
<attribute name="type">
2009-01-27 15:29:53 +00:00
<value>usb</value>
</attribute>
2020-09-30 13:54:58 +02:00
<element name="number">
<ref name="unsignedLong"/>
2009-01-27 15:29:53 +00:00
</element>
2020-09-30 13:54:58 +02:00
<element name="class">
<ref name="unsignedLong"/>
2009-01-27 15:29:53 +00:00
</element>
2020-09-30 13:54:58 +02:00
<element name="subclass">
<ref name="unsignedLong"/>
2009-01-27 15:29:53 +00:00
</element>
2020-09-30 13:54:58 +02:00
<element name="protocol">
<ref name="unsignedLong"/>
2009-01-27 15:29:53 +00:00
</element>
<optional>
2020-09-30 13:54:58 +02:00
<element name="description">
2010-03-01 20:09:26 +01:00
<text/>
2009-01-27 15:29:53 +00:00
</element>
</optional>
</define>
2020-09-30 13:54:58 +02:00
<define name="capnet">
<attribute name="type">
2009-01-27 15:29:53 +00:00
<value>net</value>
</attribute>
2020-09-30 13:54:58 +02:00
<element name="interface">
2009-01-27 15:29:53 +00:00
<text/>
</element>
<optional>
2020-09-30 13:54:58 +02:00
<element name="address">
<ref name="mac"/>
2009-01-27 15:29:53 +00:00
</element>
</optional>
2014-06-05 17:36:31 +02:00
<ref name="link-speed-state"/>
2009-01-27 15:29:53 +00:00
2015-02-23 15:38:29 +00:00
<zeroOrMore>
2020-09-30 13:54:58 +02:00
<element name="feature">
<attribute name="name">
<ref name="netfeaturename"/>
2015-02-23 15:38:29 +00:00
</attribute>
</element>
</zeroOrMore>
2009-01-27 15:29:53 +00:00
<zeroOrMore>
2020-09-30 13:54:58 +02:00
<ref name="subcapnet"/>
2009-01-27 15:29:53 +00:00
</zeroOrMore>
</define>
2020-09-30 13:54:58 +02:00
<define name="netfeaturename">
<data type="string">
<param name="pattern">[a-zA-Z\-_]+</param>
2015-02-23 15:38:29 +00:00
</data>
</define>
2020-09-30 13:54:58 +02:00
<define name="subcapnet">
<element name="capability">
2009-01-27 15:29:53 +00:00
<choice>
2020-09-30 13:54:58 +02:00
<ref name="subcapnet80203"/>
<ref name="subcapnet80211"/>
2009-01-27 15:29:53 +00:00
</choice>
</element>
</define>
2020-09-30 13:54:58 +02:00
<define name="subcapnet80203">
<attribute name="type">
2009-01-27 15:29:53 +00:00
<value>80203</value>
</attribute>
</define>
2020-09-30 13:54:58 +02:00
<define name="subcapnet80211">
<attribute name="type">
2009-01-27 15:29:53 +00:00
<value>80211</value>
</attribute>
</define>
2020-09-30 13:54:58 +02:00
<define name="capsfchost">
<attribute name="type">
2011-12-06 07:09:03 -05:00
<value>fc_host</value>
</attribute>
2020-09-30 13:54:58 +02:00
<element name="wwnn">
<ref name="wwn"/>
2011-12-06 07:09:03 -05:00
</element>
2020-09-30 13:54:58 +02:00
<element name="wwpn">
<ref name="wwn"/>
2011-12-06 07:09:03 -05:00
</element>
2017-01-16 14:27:34 +01:00
<optional>
2020-09-30 13:54:58 +02:00
<element name="fabric_wwn">
<ref name="wwn"/>
2017-01-16 14:27:34 +01:00
</element>
</optional>
2011-12-06 07:09:03 -05:00
</define>
2020-09-30 13:54:58 +02:00
<define name="capsvports">
<attribute name="type">
2011-12-06 07:09:03 -05:00
<value>vports_ops</value>
</attribute>
2020-09-30 13:54:58 +02:00
<element name="max_vports">
<ref name="unsignedInt"/>
2013-01-08 01:05:32 +08:00
</element>
2020-09-30 13:54:58 +02:00
<element name="vports">
<ref name="unsignedInt"/>
2013-01-08 01:05:32 +08:00
</element>
2011-12-06 07:09:03 -05:00
</define>
2009-01-27 15:29:53 +00:00
2021-09-16 11:18:01 +02:00
<define name="capscsigeneric">
<attribute name="type">
<value>scsi_generic</value>
</attribute>
<element name='char'>
<text/>
</element>
</define>
2020-09-30 13:54:58 +02:00
<define name="capscsihost">
<attribute name="type">
2009-01-27 15:29:53 +00:00
<value>scsi_host</value>
</attribute>
2020-09-30 13:54:58 +02:00
<element name="host">
<ref name="unsignedLong"/>
2009-01-27 15:29:53 +00:00
</element>
2011-12-06 07:09:03 -05:00
2014-06-05 13:17:05 -04:00
<optional>
2020-09-30 13:54:58 +02:00
<element name="unique_id">
2021-09-16 13:21:33 +02:00
<ref name="unsignedInt"/>
2014-06-05 13:17:05 -04:00
</element>
</optional>
2011-12-06 07:09:03 -05:00
<optional>
<zeroOrMore>
2020-09-30 13:54:58 +02:00
<element name="capability">
2011-12-06 07:09:03 -05:00
<choice>
2020-09-30 13:54:58 +02:00
<ref name="capsfchost"/>
<ref name="capsvports"/>
2011-12-06 07:09:03 -05:00
</choice>
</element>
</zeroOrMore>
</optional>
2009-01-27 15:29:53 +00:00
</define>
2020-09-30 13:54:58 +02:00
<define name="capsfcrport">
<attribute name="type">
2017-05-22 08:38:25 +02:00
<value>fc_remote_port</value>
</attribute>
2020-09-30 13:54:58 +02:00
<element name="rport">
2017-05-22 08:38:25 +02:00
<text/>
</element>
2020-09-30 13:54:58 +02:00
<element name="wwpn">
<ref name="wwn"/>
2017-05-22 08:38:25 +02:00
</element>
</define>
2020-09-30 13:54:58 +02:00
<define name="capscsitarget">
<attribute name="type">
2016-03-21 15:49:29 +01:00
<value>scsi_target</value>
</attribute>
2020-09-30 13:54:58 +02:00
<element name="target">
2016-03-21 15:49:29 +01:00
<text/>
</element>
2017-05-22 08:38:25 +02:00
<optional>
2020-09-30 13:54:58 +02:00
<element name="capability">
<ref name="capsfcrport"/>
2017-05-22 08:38:25 +02:00
</element>
</optional>
2016-03-21 15:49:29 +01:00
</define>
2020-09-30 13:54:58 +02:00
<define name="capscsi">
<attribute name="type">
2009-01-27 15:29:53 +00:00
<value>scsi</value>
</attribute>
2020-09-30 13:54:58 +02:00
<element name="host">
<ref name="unsignedLong"/>
2009-01-27 15:29:53 +00:00
</element>
2020-09-30 13:54:58 +02:00
<element name="bus">
<ref name="unsignedLong"/>
2009-01-27 15:29:53 +00:00
</element>
2020-09-30 13:54:58 +02:00
<element name="target">
<ref name="unsignedLong"/>
2009-01-27 15:29:53 +00:00
</element>
2020-09-30 13:54:58 +02:00
<element name="lun">
<ref name="unsignedLong"/>
2009-01-27 15:29:53 +00:00
</element>
2021-09-16 10:29:21 +02:00
<optional>
<element name="type">
<text/>
</element>
</optional>
2009-01-27 15:29:53 +00:00
</define>
2020-09-30 13:54:58 +02:00
<define name="capstorage">
<attribute name="type">
2009-01-27 15:29:53 +00:00
<value>storage</value>
</attribute>
2020-09-30 13:54:58 +02:00
<element name="block">
<ref name="path"/>
2009-01-27 15:29:53 +00:00
</element>
<optional>
2020-09-30 13:54:58 +02:00
<element name="bus">
2010-03-01 20:09:26 +01:00
<text/>
2009-01-27 15:29:53 +00:00
</element>
</optional>
<optional>
2020-09-30 13:54:58 +02:00
<element name="drive_type">
2010-03-01 20:09:26 +01:00
<text/>
2009-01-27 15:29:53 +00:00
</element>
</optional>
<optional>
2020-09-30 13:54:58 +02:00
<element name="model">
2010-03-01 20:09:26 +01:00
<text/>
2017-09-07 12:16:04 +02:00
</element>
2009-01-27 15:29:53 +00:00
</optional>
<optional>
2020-09-30 13:54:58 +02:00
<element name="vendor">
2010-03-01 20:09:26 +01:00
<text/>
2009-01-27 15:29:53 +00:00
</element>
</optional>
2009-06-11 14:25:19 +00:00
<optional>
2020-09-30 13:54:58 +02:00
<element name="serial">
2010-03-01 20:09:26 +01:00
<text/>
2009-06-11 14:25:19 +00:00
</element>
</optional>
2009-01-27 15:29:53 +00:00
<choice>
2020-09-30 13:54:58 +02:00
<ref name="capstorageremoveable"/>
<ref name="capstoragefixed"/>
2009-01-27 15:29:53 +00:00
</choice>
<optional>
2020-09-30 13:54:58 +02:00
<element name="capability">
<attribute name="type">
2010-03-01 20:09:26 +01:00
<value>hotpluggable</value>
</attribute>
2009-01-27 15:29:53 +00:00
</element>
</optional>
</define>
2020-09-30 13:54:58 +02:00
<define name="capstorageremoveable">
<element name="capability">
<attribute name="type">
2010-03-01 20:09:26 +01:00
<value>removable</value>
2009-01-27 15:29:53 +00:00
</attribute>
2020-09-30 13:54:58 +02:00
<element name="media_available">
2010-03-01 20:09:26 +01:00
<choice>
<value>1</value>
<value>0</value>
</choice>
2009-01-27 15:29:53 +00:00
</element>
2020-09-30 13:54:58 +02:00
<element name="media_size">
<ref name="unsignedLong"/>
2009-01-27 15:29:53 +00:00
</element>
2009-12-14 14:58:23 +01:00
<optional>
2020-09-30 13:54:58 +02:00
<element name="media_label">
2009-12-14 14:58:23 +01:00
<text/>
</element>
</optional>
2020-09-30 13:54:58 +02:00
<ref name="blockData"/>
2009-01-27 15:29:53 +00:00
</element>
</define>
2020-09-30 13:54:58 +02:00
<define name="capstoragefixed">
<element name="size">
<ref name="unsignedLong"/>
2009-01-27 15:29:53 +00:00
</element>
2020-09-30 13:54:58 +02:00
<ref name="blockData"/>
2018-05-19 08:00:58 -04:00
</define>
2020-09-30 13:54:58 +02:00
<define name="blockData">
2018-05-19 08:00:58 -04:00
<optional>
2020-09-30 13:54:58 +02:00
<element name="logical_block_size">
<ref name="unsignedLong"/>
2018-05-19 08:00:58 -04:00
</element>
2020-09-30 13:54:58 +02:00
<element name="num_blocks">
<ref name="unsignedLong"/>
2018-05-19 08:00:58 -04:00
</element>
</optional>
2009-01-27 15:29:53 +00:00
</define>
2020-09-30 13:54:58 +02:00
<define name="capdrm">
<attribute name="type">
2017-02-15 01:04:12 +04:00
<value>drm</value>
</attribute>
2020-09-30 13:54:58 +02:00
<element name="type">
2017-02-15 01:04:12 +04:00
<choice>
<value>primary</value>
<value>control</value>
<value>render</value>
</choice>
</element>
</define>
2020-09-30 13:54:58 +02:00
<define name="capmdev">
2021-01-29 15:24:10 -06:00
<interleave>
<attribute name="type">
<value>mdev</value>
2017-03-06 17:18:48 +01:00
</attribute>
2021-01-29 15:24:10 -06:00
<element name="type">
<attribute name="id">
<data type="string"/>
2020-06-18 16:05:54 -05:00
</attribute>
</element>
2021-01-29 15:24:10 -06:00
<optional>
<element name="iommuGroup">
<attribute name="number">
<ref name="unsignedInt"/>
</attribute>
</element>
</optional>
<optional>
<element name="uuid">
<ref name="UUID"/>
</element>
</optional>
2022-02-04 16:32:18 +01:00
<optional>
<element name="parent_addr">
<data type="string"/>
</element>
</optional>
2021-01-29 15:24:10 -06:00
<zeroOrMore>
<element name="attr">
<attribute name="name"/>
<attribute name="value"/>
</element>
</zeroOrMore>
</interleave>
2017-03-06 17:18:48 +01:00
</define>
2020-09-30 13:54:58 +02:00
<define name="capccwdev">
<attribute name="type">
2017-05-22 08:38:22 +02:00
<value>ccw</value>
</attribute>
2020-09-30 13:54:58 +02:00
<element name="cssid">
<ref name="ccwCssidRange"/>
2017-05-22 08:38:22 +02:00
</element>
2020-09-30 13:54:58 +02:00
<element name="ssid">
<ref name="ccwSsidRange"/>
2017-05-22 08:38:22 +02:00
</element>
2020-09-30 13:54:58 +02:00
<element name="devno">
<ref name="ccwDevnoRange"/>
2017-05-22 08:38:22 +02:00
</element>
</define>
2020-09-30 13:54:58 +02:00
<define name="capcssdev">
<attribute name="type">
2020-09-14 21:11:44 +02:00
<value>css</value>
</attribute>
2020-09-30 13:54:58 +02:00
<element name="cssid">
<ref name="ccwCssidRange"/>
2020-09-14 21:11:44 +02:00
</element>
2020-09-30 13:54:58 +02:00
<element name="ssid">
<ref name="ccwSsidRange"/>
2020-09-14 21:11:44 +02:00
</element>
2020-09-30 13:54:58 +02:00
<element name="devno">
<ref name="ccwDevnoRange"/>
2020-09-14 21:11:44 +02:00
</element>
2020-11-11 13:45:22 +01:00
<optional>
<ref name="mdev_types"/>
</optional>
2020-09-14 21:11:44 +02:00
</define>
2020-10-14 12:08:30 -05:00
<define name="capvdpa">
<attribute name="type">
<value>vdpa</value>
</attribute>
<element name="chardev">
<ref name="path"/>
</element>
</define>
2020-12-03 18:59:33 +01:00
<define name="capapcard">
<attribute name="type">
<value>ap_card</value>
</attribute>
<element name="ap-adapter">
<ref name="uint8"/>
</element>
</define>
2020-12-03 18:59:35 +01:00
<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>
2020-12-03 18:59:38 +01:00
<define name='capapmatrix'>
<attribute name='type'>
<value>ap_matrix</value>
</attribute>
2020-12-03 18:59:43 +01:00
<optional>
<ref name="mdev_types"/>
</optional>
2020-12-03 18:59:38 +01:00
</define>
2020-09-30 13:54:58 +02:00
<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>
2012-08-02 13:23:16 +02:00
</element>
</define>
2020-09-30 13:54:58 +02:00
<define name="mac">
<data type="string">
2009-01-27 15:29:53 +00:00
<param name="pattern">([a-fA-F0-9]{2}:){5}[a-fA-F0-9]{2}</param>
</data>
</define>
2020-09-30 13:54:58 +02:00
<define name="path">
<data type="string">
2009-01-27 15:29:53 +00:00
<param name="pattern">/[a-zA-Z0-9_\+\-/%]+</param>
</data>
</define>
2020-10-23 19:31:50 +02:00
<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>
2020-11-11 13:45:22 +01:00
<value>vfio-ccw</value>
2020-12-03 18:59:43 +01:00
<value>vfio-ap</value>
2020-10-23 19:31:50 +02:00
</choice>
</element>
<element name="availableInstances">
<ref name="unsignedInt"/>
</element>
</element>
</oneOrMore>
</element>
</define>
2021-10-20 11:30:33 +03:00
<define name="vpd">
<element name="capability">
<attribute name="type">
<value>vpd</value>
</attribute>
<element name="name">
<ref name="vpdFieldValueFormat"/>
</element>
<optional>
<element name="fields">
<attribute name="access">
<value>readonly</value>
</attribute>
<optional>
<element name="change_level">
<ref name="vpdFieldValueFormat"/>
</element>
</optional>
<optional>
<element name="manufacture_id">
<ref name="vpdFieldValueFormat"/>
</element>
</optional>
<optional>
<element name="part_number">
<ref name="vpdFieldValueFormat"/>
</element>
</optional>
<optional>
<element name="serial_number">
<ref name="vpdFieldValueFormat"/>
</element>
</optional>
<zeroOrMore>
<element name="vendor_field">
<attribute name="index">
<ref name="vendorVPDFieldIndex"/>
</attribute>
<ref name="vpdFieldValueFormat"/>
</element>
</zeroOrMore>
</element>
</optional>
<optional>
<element name="fields">
<attribute name="access">
<value>readwrite</value>
</attribute>
<optional>
<element name="asset_tag">
<ref name="vpdFieldValueFormat"/>
</element>
</optional>
<zeroOrMore>
<element name="vendor_field">
<attribute name="index">
<ref name="vendorVPDFieldIndex"/>
</attribute>
<ref name="vpdFieldValueFormat"/>
</element>
</zeroOrMore>
<zeroOrMore>
<element name="system_field">
<attribute name="index">
<ref name="systemVPDFieldIndex"/>
</attribute>
<ref name="vpdFieldValueFormat"/>
</element>
</zeroOrMore>
</element>
</optional>
</element>
</define>
2020-12-03 18:59:35 +01:00
<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>
2021-10-20 11:30:33 +03:00
<define name="vpdFieldValueFormat">
<data type="string">
<param name="pattern">[0-9a-zA-F -_,.:;=]{0,255}</param>
</data>
</define>
<define name="vendorVPDFieldIndex">
<data type="string">
<param name="pattern">[0-9A-Z]{1}</param>
</data>
</define>
<define name="systemVPDFieldIndex">
<data type="string">
<param name="pattern">[0-9B-Z]{1}</param>
</data>
</define>
2009-01-27 15:29:53 +00:00
</grammar>