This adds <virtualportprofile> and <portgroup> (which itself can contain a <portgroup>) to <network>, adds several new options to forward mode, and adds an optional pool of interfaces to <forward>. Since virtualPortProfile is now used in both the domain and network RNG, its definition was moved into a separate file that is included by both. --- docs/schemas/Makefile.am | 1 + docs/schemas/domain.rng | 54 ++++++--------------------------------- docs/schemas/network.rng | 29 +++++++++++++++++++++ docs/schemas/networkcommon.rng | 50 +++++++++++++++++++++++++++++++++++++ libvirt.spec.in | 1 + 5 files changed, 90 insertions(+), 45 deletions(-) create mode 100644 docs/schemas/networkcommon.rng diff --git a/docs/schemas/Makefile.am b/docs/schemas/Makefile.am index 5ef7737..75a0e73 100644 --- a/docs/schemas/Makefile.am +++ b/docs/schemas/Makefile.am @@ -8,6 +8,7 @@ schema_DATA = \ domainsnapshot.rng \ interface.rng \ network.rng \ + networkcommon.rng \ nodedev.rng \ nwfilter.rng \ secret.rng \ diff --git a/docs/schemas/domain.rng b/docs/schemas/domain.rng index 3c8414e..65572df 100644 --- a/docs/schemas/domain.rng +++ b/docs/schemas/domain.rng @@ -7,7 +7,7 @@ <include href='basictypes.rng'/> <include href='storageencryption.rng'/> - + <include href='networkcommon.rng'/> <!-- description element, maybe placed anywhere under the root --> @@ -1022,6 +1022,14 @@ </attribute> <empty/> </element> + <optional> + <attribute name="portgroup"> + <ref name="deviceName"/> + </attribute> + </optional> + <optional> + <ref name="virtualPortProfile"/> + </optional> <ref name="interface-options"/> </interleave> </group> @@ -1167,45 +1175,6 @@ </optional> </interleave> </define> - <define name="virtualPortProfile"> - <choice> - <group> - <element name="virtualport"> - <attribute name="type"> - <value>802.1Qbg</value> - </attribute> - <element name="parameters"> - <attribute name="managerid"> - <ref name="uint8range"/> - </attribute> - <attribute name="typeid"> - <ref name="uint24range"/> - </attribute> - <attribute name="typeidversion"> - <ref name="uint8range"/> - </attribute> - <optional> - <attribute name="instanceid"> - <ref name="UUID"/> - </attribute> - </optional> - </element> - </element> - </group> - <group> - <element name="virtualport"> - <attribute name="type"> - <value>802.1Qbh</value> - </attribute> - <element name="parameters"> - <attribute name="profileid"> - <ref name="virtualPortProfileID"/> - </attribute> - </element> - </element> - </group> - </choice> - </define> <!-- An emulator description is just a path to the binary used for the task --> @@ -2483,9 +2452,4 @@ <param name="pattern">[a-zA-Z0-9_\.:]+</param> </data> </define> - <define name="virtualPortProfileID"> - <data type="string"> - <param name="maxLength">39</param> - </data> - </define> </grammar> diff --git a/docs/schemas/network.rng b/docs/schemas/network.rng index 6d9f06b..9e667e6 100644 --- a/docs/schemas/network.rng +++ b/docs/schemas/network.rng @@ -7,6 +7,7 @@ </start> <include href='basictypes.rng'/> + <include href='networkcommon.rng'/> <define name="network"> @@ -77,9 +78,37 @@ <choice> <value>nat</value> <value>route</value> + <value>bridge</value> + <value>passthrough</value> + <value>private</value> + <value>vepa</value> </choice> </attribute> </optional> + <zeroOrMore> + <element name='interface'> + <attribute name='dev'> + <ref name='deviceName'/> + </attribute> + </element> + </zeroOrMore> + </element> + </optional> + + <!-- <virtualport> element --> + <optional> + <ref name="virtualPortProfile"/> + </optional> + + <!-- <portgroup> elements --> + <optional> + <element name='portgroup'> + <attribute name='engineering'> + <ref name='deviceName'/> + </attribute> + <optional> + <ref name="virtualPortProfile"/> + </optional> </element> </optional> diff --git a/docs/schemas/networkcommon.rng b/docs/schemas/networkcommon.rng new file mode 100644 index 0000000..0251813 --- /dev/null +++ b/docs/schemas/networkcommon.rng @@ -0,0 +1,50 @@ +<?xml version="1.0"?> +<!-- network-related definitions used in multiple grammars --> +<grammar xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"> + + <define name="virtualPortProfileID"> + <data type="string"> + <param name="maxLength">39</param> + </data> + </define> + + <define name="virtualPortProfile"> + <choice> + <group> + <element name="virtualport"> + <attribute name="type"> + <value>802.1Qbg</value> + </attribute> + <element name="parameters"> + <attribute name="managerid"> + <ref name="uint8range"/> + </attribute> + <attribute name="typeid"> + <ref name="uint24range"/> + </attribute> + <attribute name="typeidversion"> + <ref name="uint8range"/> + </attribute> + <optional> + <attribute name="instanceid"> + <ref name="UUID"/> + </attribute> + </optional> + </element> + </element> + </group> + <group> + <element name="virtualport"> + <attribute name="type"> + <value>802.1Qbh</value> + </attribute> + <element name="parameters"> + <attribute name="profileid"> + <ref name="virtualPortProfileID"/> + </attribute> + </element> + </element> + </group> + </choice> + </define> +</grammar> diff --git a/libvirt.spec.in b/libvirt.spec.in index bf220f3..8c059f8 100644 --- a/libvirt.spec.in +++ b/libvirt.spec.in @@ -1066,6 +1066,7 @@ fi %{_datadir}/libvirt/schemas/storageencryption.rng %{_datadir}/libvirt/schemas/nwfilter.rng %{_datadir}/libvirt/schemas/basictypes.rng +%{_datadir}/libvirt/schemas/networkcommon.rng %{_datadir}/libvirt/cpu_map.xml -- 1.7.3.4 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list