mirror of
				https://gitlab.com/libvirt/libvirt.git
				synced 2025-10-30 20:24:58 +03:00 
			
		
		
		
	This maps to XML like: <network xmlns:dnsmasq='http://libvirt.org/schemas/network/dnsmasq/1.0'> ... <dnsmasq:options> <dnsmasq:option value="foo=bar"/> <dnsmasq:option value="cname=*.foo.example.com,master.example.com"/> </dnsmasq:options> </network> To dnsmasq config options ... foo=bar cname=*.foo.example.com,master.example.com Reviewed-by: Laine Stump <laine@laine.org> Signed-off-by: Cole Robinson <crobinso@redhat.com>
		
			
				
	
	
		
			423 lines
		
	
	
		
			14 KiB
		
	
	
	
		
			XML
		
	
	
	
	
	
			
		
		
	
	
			423 lines
		
	
	
		
			14 KiB
		
	
	
	
		
			XML
		
	
	
	
	
	
| <?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'>
 | |
|                   <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>
 | |
| 
 | |
|         <!-- <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>
 | |
|                       </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>
 | |
|                       </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>
 |