diff options
author | Stephan Schwär | 2021-02-19 00:09:54 +0100 |
---|---|---|
committer | Stephan Schwär | 2021-02-19 00:09:54 +0100 |
commit | 62dce8c2b4e519f689e89038ff2afe4496f60628 (patch) | |
tree | 7c6802a436e2beb943065b5a377b61eb77d93170 /src/main/resources/libvirt/rng/network.rng | |
parent | [docker] Check recieved content. (diff) | |
parent | Add automatic RelaxNG schema validation for Libvirt domain XML documents (diff) | |
download | master-sync-shared-62dce8c2b4e519f689e89038ff2afe4496f60628.tar.gz master-sync-shared-62dce8c2b4e519f689e89038ff2afe4496f60628.tar.xz master-sync-shared-62dce8c2b4e519f689e89038ff2afe4496f60628.zip |
Merge remote-tracking branch 'origin/feature/qemu-integration'
Diffstat (limited to 'src/main/resources/libvirt/rng/network.rng')
-rw-r--r-- | src/main/resources/libvirt/rng/network.rng | 450 |
1 files changed, 450 insertions, 0 deletions
diff --git a/src/main/resources/libvirt/rng/network.rng b/src/main/resources/libvirt/rng/network.rng new file mode 100644 index 0000000..4317572 --- /dev/null +++ b/src/main/resources/libvirt/rng/network.rng @@ -0,0 +1,450 @@ +<?xml version="1.0"?> +<!-- A Relax NG schema for the libvirt network XML format --> +<grammar xmlns="http://relaxng.org/ns/structure/1.0" + datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"> + <start> + <ref name="network"/> + </start> + + <include href="basictypes.rng"/> + <include href="networkcommon.rng"/> + + <define name="network"> + + <element name="network"> + <optional> + <attribute name="connections"> + <data type="unsignedInt"/> + </attribute> + </optional> + <!-- Enables IPv6 guest-to-guest communications on a network + with no gateways addresses specified --> + <optional> + <attribute name="ipv6"> + <ref name="virYesNo"/> + </attribute> + </optional> + <optional> + <attribute name="trustGuestRxFilters"> + <ref name="virYesNo"/> + </attribute> + </optional> + <interleave> + + <!-- The name of the network, used to refer to it through the API + and in virsh --> + <element name="name"> + <text/> + </element> + + <!-- <metadata> element --> + <optional> + <ref name="metadata"/> + </optional> + + <!-- <uuid> element --> + <optional> + <element name="uuid"><ref name="UUID"/></element> + </optional> + + <!-- <bridge> element --> + <optional> + <!-- The name of the network to be set up; this will back + the network on the host --> + <element name="bridge"> + <optional> + <attribute name="name"> + <ref name="deviceName"/> + </attribute> + </optional> + + <optional> + <attribute name="zone"> + <ref name="zoneName"/> + </attribute> + </optional> + + <optional> + <attribute name="stp"> + <ref name="virOnOff"/> + </attribute> + </optional> + + <optional> + <attribute name="delay"> + <data type="unsignedLong"/> + </attribute> + </optional> + + <optional> + <attribute name="macTableManager"> + <ref name="macTableManager"/> + </attribute> + </optional> + + </element> + </optional> + + <!-- <mtu> element --> + <optional> + <ref name="mtu"/> + </optional> + + <!-- <mac> element --> + <optional> + <element name="mac"> + <attribute name="address"><ref name="uniMacAddr"/></attribute> + <empty/> + </element> + </optional> + + <!-- <forward> element --> + <optional> + <!-- The device through which the bridge is connected to the + rest of the network --> + <element name="forward"> + <optional> + <attribute name="dev"> + <ref name="deviceName"/> + </attribute> + </optional> + + <optional> + <attribute name="mode"> + <choice> + <value>nat</value> + <value>route</value> + <value>open</value> + <value>bridge</value> + <value>passthrough</value> + <value>private</value> + <value>vepa</value> + <value>hostdev</value> + </choice> + </attribute> + </optional> + + <optional> + <attribute name="managed"> + <ref name="virYesNo"/> + </attribute> + </optional> + <interleave> + <choice> + <group> + <zeroOrMore> + <element name="interface"> + <attribute name="dev"> + <ref name="deviceName"/> + </attribute> + <optional> + <attribute name="connections"> + <data type="unsignedInt"/> + </attribute> + </optional> + </element> + </zeroOrMore> + </group> + <group> + <zeroOrMore> + <element name="address"> + <attribute name="type"> + <value>pci</value> + </attribute> + <ref name="pciaddress"/> + <optional> + <attribute name="connections"> + <data type="unsignedInt"/> + </attribute> + </optional> + </element> + </zeroOrMore> + </group> + </choice> + <optional> + <element name="pf"> + <attribute name="dev"> + <ref name="deviceName"/> + </attribute> + </element> + </optional> + <optional> + <element name="driver"> + <attribute name="name"> + <choice> + <value>kvm</value> + <value>vfio</value> + </choice> + </attribute> + <empty/> + </element> + </optional> + <optional> + <element name="nat"> + <optional> + <attribute name="ipv6"> + <ref name="virYesNo"/> + </attribute> + </optional> + <interleave> + <optional> + <element name="address"> + <attribute name="start"> + <ref name="ipv4Addr"/> + </attribute> + <attribute name="end"> + <ref name="ipv4Addr"/> + </attribute> + </element> + </optional> + <optional> + <element name="port"> + <attribute name="start"> + <ref name="port"/> + </attribute> + <attribute name="end"> + <ref name="port"/> + </attribute> + </element> + </optional> + </interleave> + </element> + </optional> + </interleave> + </element> + </optional> + + <!-- <virtualport> element --> + <optional> + <ref name="virtualPortProfile"/> + </optional> + + <!-- <portgroup> elements --> + <zeroOrMore> + <element name="portgroup"> + <attribute name="name"> + <ref name="deviceName"/> + </attribute> + <optional> + <attribute name="default"> + <ref name="virYesNo"/> + </attribute> + </optional> + <optional> + <attribute name="trustGuestRxFilters"> + <ref name="virYesNo"/> + </attribute> + </optional> + <interleave> + <optional> + <ref name="virtualPortProfile"/> + </optional> + <optional> + <ref name="bandwidth"/> + </optional> + <optional> + <ref name="vlan"/> + </optional> + </interleave> + </element> + </zeroOrMore> + + <!-- <domain> element --> + <optional> + <element name="domain"> + <attribute name="name"><ref name="dnsName"/></attribute> + <optional> + <attribute name="localOnly"><ref name="virYesNo"/></attribute> + </optional> + </element> + </optional> + + <!-- Define the DNS related elements like TXT records + and other features in the <dns> element --> + <optional> + <element name="dns"> + <optional> + <attribute name="enable"> + <ref name="virYesNo"/> + </attribute> + </optional> + <optional> + <attribute name="forwardPlainNames"> + <ref name="virYesNo"/> + </attribute> + </optional> + <interleave> + <zeroOrMore> + <element name="forwarder"> + <optional> + <attribute name="addr"><ref name="ipAddr"/></attribute> + </optional> + <optional> + <attribute name="domain"><ref name="dnsName"/></attribute> + </optional> + <empty/> + </element> + </zeroOrMore> + <zeroOrMore> + <element name="txt"> + <attribute name="name"><ref name="dnsName"/></attribute> + <attribute name="value"><text/></attribute> + </element> + </zeroOrMore> + <zeroOrMore> + <element name="srv"> + <attribute name="service"><text/></attribute> + <attribute name="protocol"> + <ref name="protocol"/> + </attribute> + <optional> + <attribute name="domain"><ref name="dnsName"/></attribute> + </optional> + <optional> + <attribute name="target"><text/></attribute> + </optional> + <optional> + <attribute name="port"> + <ref name="unsignedShort"/> + </attribute> + </optional> + <optional> + <attribute name="priority"> + <ref name="unsignedShort"/> + </attribute> + </optional> + <optional> + <attribute name="weight"> + <ref name="unsignedShort"/> + </attribute> + </optional> + </element> + </zeroOrMore> + <zeroOrMore> + <element name="host"> + <attribute name="ip"><ref name="ipAddr"/></attribute> + <oneOrMore> + <element name="hostname"><ref name="dnsName"/></element> + </oneOrMore> + </element> + </zeroOrMore> + </interleave> + </element> + </optional> + <optional> + <ref name="bandwidth"/> + </optional> + <optional> + <ref name="vlan"/> + </optional> + <optional> + <ref name="portOptions"/> + </optional> + + <!-- <ip> element --> + <zeroOrMore> + <!-- The IP element sets up NAT'ing and an optional DHCP server + local to the host. --> + <element name="ip"> + <optional> + <attribute name="address"><ref name="ipAddr"/></attribute> + </optional> + <optional> + <choice> + <attribute name="netmask"><ref name="ipv4Addr"/></attribute> + <attribute name="prefix"><ref name="ipPrefix"/></attribute> + </choice> + </optional> + <optional> + <attribute name="family"><ref name="addr-family"/></attribute> + </optional> + <optional> + <attribute name="localPtr"><ref name="virYesNo"/></attribute> + </optional> + <interleave> + <optional> + <element name="tftp"> + <attribute name="root"><text/></attribute> + </element> + </optional> + <optional> + <!-- Define the range(s) of IP addresses that the DHCP + server should hand out --> + <element name="dhcp"> + <interleave> + <zeroOrMore> + <element name="range"> + <attribute name="start"><ref name="ipAddr"/></attribute> + <attribute name="end"><ref name="ipAddr"/></attribute> + <interleave> + <optional> + <element name="lease"> + <attribute name="expiry"><ref name="unsignedLong"/></attribute> + <optional> + <attribute name="unit"><ref name="leaseUnit"/></attribute> + </optional> + </element> + </optional> + </interleave> + </element> + </zeroOrMore> + <zeroOrMore> + <element name="host"> + <choice> + <group> + <choice> + <attribute name="mac"><ref name="uniMacAddr"/></attribute> + <attribute name="id"><ref name="DUID"/></attribute> + </choice> + <optional> + <attribute name="name"><text/></attribute> + </optional> + </group> + <attribute name="name"><text/></attribute> + </choice> + <attribute name="ip"><ref name="ipAddr"/></attribute> + <interleave> + <optional> + <element name="lease"> + <attribute name="expiry"><ref name="unsignedLong"/></attribute> + <optional> + <attribute name="unit"><ref name="leaseUnit"/></attribute> + </optional> + </element> + </optional> + </interleave> + </element> + </zeroOrMore> + <optional> + <element name="bootp"> + <attribute name="file"><ref name="filePath"/></attribute> + <optional> + <attribute name="server"><ref name="dnsName"/></attribute> + </optional> + </element> + </optional> + </interleave> + </element> + </optional> + </interleave> + </element> + </zeroOrMore> + <!-- <route> element --> + <zeroOrMore> + <ref name="route"/> + </zeroOrMore> + + <!-- <dnsmasq:options> --> + <optional> + <element name="options" ns="http://libvirt.org/schemas/network/dnsmasq/1.0"> + <zeroOrMore> + <element name="option"> + <attribute name="value"/> + </element> + </zeroOrMore> + </element> + </optional> + </interleave> + </element> + </define> +</grammar> |