[PATCH 02/15] schema: domain: Allow interleaving of PCI controller config elements

Peter Krempa pkrempa at redhat.com
Mon Oct 17 12:37:45 UTC 2022


The 'model' and 'target' element can be freely moved around.

Signed-off-by: Peter Krempa <pkrempa at redhat.com>
---
 src/conf/schemas/domaincommon.rng | 190 +++++++++++++++---------------
 1 file changed, 96 insertions(+), 94 deletions(-)

diff --git a/src/conf/schemas/domaincommon.rng b/src/conf/schemas/domaincommon.rng
index 49a61d2748..ecc9cd41c4 100644
--- a/src/conf/schemas/domaincommon.rng
+++ b/src/conf/schemas/domaincommon.rng
@@ -2691,103 +2691,105 @@
             <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"/>
+            <interleave>
+              <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>
-                </optional>
-                <optional>
-                  <attribute name="index">
-                    <ref name="uint8"/>
+                  <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>
+                    <attribute name="hotplug">
+                      <ref name="virOnOff"/>
+                    </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>
-                <optional>
-                  <attribute name="hotplug">
-                    <ref name="virOnOff"/>
+                  <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>
-                </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>
+              </choice>
+            </interleave>
           </group>
           <!-- virtio-serial has optional "ports" and "vectors" -->
           <group>
-- 
2.37.3



More information about the libvir-list mailing list