This patch reflects cases when <interface> element and its <source>
subelement for network type are formated based on actual type resolved
from referenced network instead of original one. networkAllocateActualDevice
and virDomainActualNetDefContentsFormat are taken as reference.
---
docs/schemas/domaincommon.rng | 40 +++++++++++++++++++++++++++++++---------
docs/schemas/network.rng | 5 +----
docs/schemas/networkcommon.rng | 6 ++++++
3 files changed, 38 insertions(+), 13 deletions(-)
diff --git a/docs/schemas/domaincommon.rng b/docs/schemas/domaincommon.rng
index eb78187..ac9fd21 100644
--- a/docs/schemas/domaincommon.rng
+++ b/docs/schemas/domaincommon.rng
@@ -2107,6 +2107,28 @@
</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
@@ -2123,9 +2145,10 @@
<interleave>
<optional>
<element name="source">
- <attribute name="bridge">
- <ref name="deviceName"/>
- </attribute>
+ <ref name="interface-bridge-attributes"/>
+ <optional>
+ <ref name="interface-network-attributes"/>
+ </optional>
<empty/>
</element>
</optional>
@@ -2179,13 +2202,9 @@
</attribute>
<interleave>
<element name="source">
- <attribute name="network">
- <text/>
- </attribute>
+ <ref name='interface-network-attributes'/>
<optional>
- <attribute name="portgroup">
- <ref name="deviceName"/>
- </attribute>
+ <ref name="interface-bridge-attributes"/>
</optional>
<empty/>
</element>
@@ -2209,6 +2228,9 @@
<ref name="bridgeMode"/>
</attribute>
</optional>
+ <optional>
+ <ref name='interface-network-attributes'/>
+ </optional>
<empty/>
</element>
<optional>
diff --git a/docs/schemas/network.rng b/docs/schemas/network.rng
index b67a5ea..c2c51ae 100644
--- a/docs/schemas/network.rng
+++ b/docs/schemas/network.rng
@@ -72,10 +72,7 @@
<optional>
<attribute name="macTableManager">
- <choice>
- <value>kernel</value>
- <value>libvirt</value>
- </choice>
+ <ref name="macTableManager"/>
</attribute>
</optional>
diff --git a/docs/schemas/networkcommon.rng b/docs/schemas/networkcommon.rng
index fb69f7c..a334b83 100644
--- a/docs/schemas/networkcommon.rng
+++ b/docs/schemas/networkcommon.rng
@@ -260,4 +260,10 @@
</optional>
</element>
</define>
+ <define name="macTableManager">
+ <choice>
+ <value>kernel</value>
+ <value>libvirt</value>
+ </choice>
+ </define>
</grammar>
--
1.8.3.1