mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-01-11 15:27:47 +00:00
3f9274a524
The following config elements now support a <vlan> subelements: within a domain: <interface>, and the <actual> subelement of <interface> within a network: the toplevel, as well as any <portgroup> Each vlan element must have one or more <tag id='n'/> subelements. If there is more than one tag, it is assumed that vlan trunking is being requested. If trunking is required with only a single tag, the attribute "trunk='yes'" should be added to the toplevel <vlan> element. Some examples: <interface type='hostdev'/> <vlan> <tag id='42'/> </vlan> <mac address='52:54:00:12:34:56'/> ... </interface> <network> <name>vlan-net</name> <vlan trunk='yes'> <tag id='30'/> </vlan> <virtualport type='openvswitch'/> </network> <interface type='network'/> <source network='vlan-net'/> ... </interface> <network> <name>trunk-vlan</name> <vlan> <tag id='42'/> <tag id='43'/> </vlan> ... </network> <network> <name>multi</name> ... <portgroup name='production'/> <vlan> <tag id='42'/> </vlan> </portgroup> <portgroup name='test'/> <vlan> <tag id='666'/> </vlan> </portgroup> </network> <interface type='network'/> <source network='multi' portgroup='test'/> ... </interface> IMPORTANT NOTE: As of this patch there is no backend support for the vlan element for *any* network device type. When support is added in later patches, it will only be for those select network types that support setting up a vlan on the host side, without the guest's involvement. (For example, it will be possible to configure a vlan for a guest connected to an openvswitch bridge, but it won't be possible to do that for one that is connected to a standard Linux host bridge.)
263 lines
8.4 KiB
XML
263 lines
8.4 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>
|
|
<interleave>
|
|
|
|
<!-- The name of the network, used to refer to it through the API
|
|
and in virsh -->
|
|
<element name="name">
|
|
<text/>
|
|
</element>
|
|
|
|
<!-- <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="stp">
|
|
<choice>
|
|
<value>on</value>
|
|
<value>off</value>
|
|
</choice>
|
|
</attribute>
|
|
</optional>
|
|
|
|
<optional>
|
|
<attribute name="delay">
|
|
<data type="integer"/>
|
|
</attribute>
|
|
</optional>
|
|
|
|
</element>
|
|
</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>bridge</value>
|
|
<value>passthrough</value>
|
|
<value>private</value>
|
|
<value>vepa</value>
|
|
</choice>
|
|
</attribute>
|
|
</optional>
|
|
<interleave>
|
|
<zeroOrMore>
|
|
<element name='interface'>
|
|
<attribute name='dev'>
|
|
<ref name='deviceName'/>
|
|
</attribute>
|
|
<optional>
|
|
<attribute name="connections">
|
|
<data type="unsignedInt"/>
|
|
</attribute>
|
|
</optional>
|
|
</element>
|
|
</zeroOrMore>
|
|
<optional>
|
|
<element name='pf'>
|
|
<attribute name='dev'>
|
|
<ref name='deviceName'/>
|
|
</attribute>
|
|
</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">
|
|
<choice>
|
|
<value>yes</value>
|
|
<value>no</value>
|
|
</choice>
|
|
</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>
|
|
</element>
|
|
</optional>
|
|
|
|
<!-- Define the DNS related elements like TXT records
|
|
and other features in the <dns> element -->
|
|
<optional>
|
|
<element name="dns">
|
|
<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>
|
|
<attribute name="target"><text/></attribute>
|
|
<attribute name="port"><ref name="unsignedShort"/></attribute>
|
|
<attribute name="priority"><ref name="unsignedShort"/></attribute>
|
|
<attribute name="weight"><ref name="unsignedShort"/></attribute>
|
|
</optional>
|
|
</element>
|
|
</zeroOrMore>
|
|
<zeroOrMore>
|
|
<element name="host">
|
|
<attribute name="ip"><ref name="ipv4Addr"/></attribute>
|
|
<oneOrMore>
|
|
<element name="hostname"><ref name="dnsName"/></element>
|
|
</oneOrMore>
|
|
</element>
|
|
</zeroOrMore>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<ref name="bandwidth"/>
|
|
</optional>
|
|
<optional>
|
|
<ref name="vlan"/>
|
|
</optional>
|
|
<optional>
|
|
<element name="link">
|
|
<attribute name="state">
|
|
<choice>
|
|
<value>up</value>
|
|
<value>down</value>
|
|
</choice>
|
|
</attribute>
|
|
<empty/>
|
|
</element>
|
|
</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>
|
|
<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">
|
|
<zeroOrMore>
|
|
<element name="range">
|
|
<attribute name="start"><ref name="ipv4Addr"/></attribute>
|
|
<attribute name="end"><ref name="ipv4Addr"/></attribute>
|
|
</element>
|
|
</zeroOrMore>
|
|
<zeroOrMore>
|
|
<element name="host">
|
|
<attribute name="mac"><ref name="uniMacAddr"/></attribute>
|
|
<attribute name="name"><text/></attribute>
|
|
<attribute name="ip"><ref name="ipv4Addr"/></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>
|
|
</element>
|
|
</optional>
|
|
</element>
|
|
</zeroOrMore>
|
|
</interleave>
|
|
</element>
|
|
</define>
|
|
</grammar>
|