[libvirt] [PATCH 4/4] Update interface.rng and xml test files to match netcf 0.1.5

Daniel P. Berrange berrange at redhat.com
Thu Jan 14 12:47:00 UTC 2010


On Fri, Jan 01, 2010 at 08:40:26PM -0500, Laine Stump wrote:
> The RNG now supports IPv6 and bonds attached to bridges, along with
> some other minor tweaks. All test files from netcf have been copied to
> the test directory and added to the xml2xml and schema tests (and they
> all pass, of course ;-)
> ---
>  docs/schemas/interface.rng                       |  316 ++++++++++++++--------
>  tests/interfaceschemadata/bond-arp.xml           |    6 +-
>  tests/interfaceschemadata/bond.xml               |    6 +-
>  tests/interfaceschemadata/bridge-bond.xml        |   17 ++
>  tests/interfaceschemadata/bridge-empty.xml       |    6 +
>  tests/interfaceschemadata/bridge-no-address.xml  |    3 +-
>  tests/interfaceschemadata/bridge-vlan.xml        |    2 +-
>  tests/interfaceschemadata/bridge.xml             |    5 +-
>  tests/interfaceschemadata/bridge42.xml           |    3 +-
>  tests/interfaceschemadata/ipv6-autoconf-dhcp.xml |    7 +
>  tests/interfaceschemadata/ipv6-autoconf.xml      |    6 +
>  tests/interfaceschemadata/ipv6-dhcp.xml          |    6 +
>  tests/interfaceschemadata/ipv6-local.xml         |    5 +
>  tests/interfaceschemadata/ipv6-static-multi.xml  |    8 +
>  tests/interfaceschemadata/ipv6-static.xml        |    7 +
>  tests/interfacexml2xmltest.c                     |    9 +
>  16 files changed, 288 insertions(+), 124 deletions(-)
>  create mode 100644 tests/interfaceschemadata/bridge-bond.xml
>  create mode 100644 tests/interfaceschemadata/bridge-empty.xml
>  create mode 100644 tests/interfaceschemadata/ipv6-autoconf-dhcp.xml
>  create mode 100644 tests/interfaceschemadata/ipv6-autoconf.xml
>  create mode 100644 tests/interfaceschemadata/ipv6-dhcp.xml
>  create mode 100644 tests/interfaceschemadata/ipv6-local.xml
>  create mode 100644 tests/interfaceschemadata/ipv6-static-multi.xml
>  create mode 100644 tests/interfaceschemadata/ipv6-static.xml
> 
> diff --git a/docs/schemas/interface.rng b/docs/schemas/interface.rng
> index bed2f0a..a0df9ba 100644
> --- a/docs/schemas/interface.rng
> +++ b/docs/schemas/interface.rng
> @@ -1,7 +1,13 @@
>  <!-- A Relax NG schema for network interfaces -->
>  <grammar xmlns="http://relaxng.org/ns/structure/1.0"
> +         xmlns:v="http://netcf.org/xml/version/1.0"
>           datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
> -  <start>
> +  <!-- Versions for this schema are simple integers that are incremented
> +       everytime a changed (but backwards compatible) version
> +       is released. The current version is indicated with the v:serial
> +       attribute on the start element.
> +  -->
> +  <start v:serial="4">
>      <choice>
>        <ref name="ethernet-interface"/>
>        <ref name="bridge-interface"/>
> @@ -109,12 +115,17 @@
>              <ref name="on-or-off"/>
>            </attribute>
>          </optional>
> -        <oneOrMore>
> +        <!-- Bridge forward delay (see 'brctl setfd') -->
> +        <optional v:since="2">
> +          <attribute name="delay"><ref name="timeval"/></attribute>
> +        </optional>
> +        <zeroOrMore>
>            <choice>
>              <ref name="bare-ethernet-interface"/>
>              <ref name="bare-vlan-interface"/>
> +            <ref v:since="2" name="bare-bond-interface"/>
>            </choice>
> -        </oneOrMore>
> +        </zeroOrMore>
>        </element>
>      </element>
>    </define>
> @@ -125,90 +136,105 @@
>    <!--
>        Bonds
>    -->
> -  <define name="bond-interface">
> -    <element name="interface">
> -      <attribute name="type">
> -        <value>bond</value>
> -      </attribute>
> -      <ref name="name-attr"/>
> -      <ref name="startmode"/>
> -      <ref name="mtu"/>
> -      <ref name="interface-addressing"/>
> -      <element name="bond">
> -        <optional>
> -          <attribute name="mode">
> -            <choice>
> -              <value>balance-rr</value>
> -              <!-- The primary interface is the first interface child
> -                   of the bond element -->
> -              <value>active-backup</value>
> -              <value>balance-xor</value>
> -              <value>broadcast</value>
> -              <value>802.3ad</value>
> -              <value>balance-tlb</value>
> -              <value>balance-alb</value>
> -            </choice>
> -          </attribute>
> -        </optional>
> +  <define name="bond-interface-common">
> +    <attribute name="type">
> +      <value>bond</value>
> +    </attribute>
> +    <ref name="name-attr"/>
> +  </define>
>  
> -        <!-- FIXME: add more attributes
> +  <define name="bond-element">
> +    <element name="bond">
> +      <optional>
> +        <attribute name="mode">
> +          <choice>
> +            <value>balance-rr</value>
> +            <!-- The primary interface is the first interface child
> +                 of the bond element -->
> +            <value>active-backup</value>
> +            <value>balance-xor</value>
> +            <value>broadcast</value>
> +            <value>802.3ad</value>
> +            <value>balance-tlb</value>
> +            <value>balance-alb</value>
> +          </choice>
> +        </attribute>
> +      </optional>
>  
> -             mode == 802.3ad
> -               ad_select
> -               lacp_rate
> -               xmit_hash_policy
> +      <!-- FIXME: add more attributes
>  
> -             mode == active-backup
> -               fail_over_mac
> -               num_grat_arp when mode == active-backup (since 3.3.0)
> -               num_unsol_na when mode == active-backup (ipv6, since 3.4.0)
> +           mode == 802.3ad
> +             ad_select
> +             lacp_rate
> +             xmit_hash_policy
>  
> -             mode == balance-xor
> -               xmit_hash_policy       (since 2.6.3/3.2.2)
> -        -->
> +           mode == active-backup
> +             fail_over_mac
> +             num_grat_arp when mode == active-backup (since 3.3.0)
> +             num_unsol_na when mode == active-backup (ipv6, since 3.4.0)
>  
> -        <choice>
> -          <element name="miimon">
> -            <!-- miimon frequency in ms -->
> -            <attribute name="freq"><ref name="uint"/></attribute>
> -            <optional>
> -              <attribute name="downdelay"><ref name="uint"/></attribute>
> -            </optional>
> -            <optional>
> -              <attribute name="updelay"><ref name="uint"/></attribute>
> -            </optional>
> -            <optional>
> -              <!-- use_carrier -->
> -              <attribute name="carrier">
> -                <choice>
> -                  <!-- use MII/ETHTOOL ioctl -->
> -                  <value>ioctl</value>
> -                  <!-- use netif_carrier_ok() -->
> -                  <value>netif</value>
> -                </choice>
> -              </attribute>
> -            </optional>
> -          </element>
> -          <element name="arpmon">
> -            <attribute name="interval"><ref name="uint"/></attribute>
> -            <attribute name="target"><ref name="ipv4-addr"/></attribute>
> -            <optional>
> -              <attribute name="validate">
> -                <choice>
> -                  <value>none</value>
> -                  <value>active</value>
> -                  <value>backup</value>
> -                  <value>all</value>
> -                </choice>
> -              </attribute>
> -            </optional>
> -          </element>
> -        </choice>
> -        <oneOrMore>
> -          <!-- The slave interfaces -->
> -          <ref name="bare-ethernet-interface"/>
> -        </oneOrMore>
> -      </element>
> +           mode == balance-xor
> +             xmit_hash_policy       (since 2.6.3/3.2.2)
> +      -->
> +
> +      <choice>
> +        <element name="miimon">
> +          <!-- miimon frequency in ms -->
> +          <attribute name="freq"><ref name="uint"/></attribute>
> +          <optional>
> +            <attribute name="downdelay"><ref name="uint"/></attribute>
> +          </optional>
> +          <optional>
> +            <attribute name="updelay"><ref name="uint"/></attribute>
> +          </optional>
> +          <optional>
> +            <!-- use_carrier -->
> +            <attribute name="carrier">
> +              <choice>
> +                <!-- use MII/ETHTOOL ioctl -->
> +                <value>ioctl</value>
> +                <!-- use netif_carrier_ok() -->
> +                <value>netif</value>
> +              </choice>
> +            </attribute>
> +          </optional>
> +        </element>
> +        <element name="arpmon">
> +          <attribute name="interval"><ref name="uint"/></attribute>
> +          <attribute name="target"><ref name="ipv4-addr"/></attribute>
> +          <optional>
> +            <attribute name="validate">
> +              <choice>
> +                <value>none</value>
> +                <value>active</value>
> +                <value>backup</value>
> +                <value>all</value>
> +              </choice>
> +            </attribute>
> +          </optional>
> +        </element>
> +      </choice>
> +      <oneOrMore>
> +        <!-- The slave interfaces -->
> +        <ref name="bare-ethernet-interface"/>
> +      </oneOrMore>
> +    </element>
> +  </define>
> +
> +  <define name="bare-bond-interface">
> +    <element name="interface">
> +      <ref name="bond-interface-common"/>
> +      <ref name="bond-element"/>
> +    </element>
> +  </define>
> +
> +  <define name="bond-interface">
> +    <element name="interface">
> +      <ref name="bond-interface-common"/>
> +      <ref name="startmode"/>
> +      <ref name="mtu"/>
> +      <ref name="interface-addressing"/>
> +      <ref name="bond-element"/>
>      </element>
>    </define>
>  
> @@ -245,47 +271,87 @@
>         different protocols
>    -->
>    <define name="interface-addressing">
> -    <optional>
> -      <element name="protocol">
> -        <ref name="protocol-ipv4"/>
> -      </element>
> -    </optional>
> -  </define>
> -
> -  <define name="protocol-ipv4">
> -    <attribute name="family">
> -      <value>ipv4</value>
> -    </attribute>
>      <choice>
> -      <element name="dhcp">
> +      <group>
>          <optional>
> -          <attribute name="peerdns">
> -            <ref name="yes-or-no"/>
> -          </attribute>
> +          <ref name="protocol-ipv4"/>
>          </optional>
> -      </element>
> -      <!-- FIXME: This format should be good enough for IPv4 and IPv6, i.e.
> +        <optional v:since="3">
> +          <ref name="protocol-ipv6"/>
> +        </optional>
> +      </group>
> +      <group>
> +        <optional v:since="3">
> +          <ref name="protocol-ipv6"/>
> +        </optional>
> +        <optional>
> +          <ref name="protocol-ipv4"/>
> +        </optional>
> +      </group>
> +    </choice>
> +  </define>
>  
> -           ipaddr="192.168.0.5/24"
> -           ipaddr="2001:DB8:ABCD::1/64"
> +  <define name="protocol-ipv4">
> +    <element name="protocol">
> +      <attribute name="family">
> +        <value>ipv4</value>
> +      </attribute>
> +      <choice>
> +        <ref name="dhcp-element"/>
> +        <group>
> +          <element name="ip">
> +            <attribute name="address"><ref name="ipv4-addr"/></attribute>
> +            <optional>
> +              <attribute name="prefix"><ref name="ipv4-prefix"/></attribute>
> +            </optional>
> +          </element>
> +          <optional>
> +            <element name="route">
> +              <attribute name="gateway"><ref name="ipv4-addr"/></attribute>
> +            </element>
> +          </optional>
> +        </group>
> +      </choice>
> +    </element>
> +  </define>
>  
> -           but will cause some backend pain
> -      -->
> -      <group>
> +  <define name="protocol-ipv6">
> +    <element name="protocol">
> +      <attribute name="family">
> +        <value>ipv6</value>
> +      </attribute>
> +      <optional>
> +        <element name="autoconf"><empty/></element>
> +      </optional>
> +      <optional>
> +        <ref name="dhcp-element"/>
> +      </optional>
> +      <zeroOrMore>
>          <element name="ip">
> -          <attribute name="address"><ref name="ipv4-addr"/></attribute>
> +          <attribute name="address"><ref name="ipv6-addr"/></attribute>
>            <optional>
> -            <attribute name="prefix"><ref name="ipv4-prefix"/></attribute>
> +            <attribute name="prefix"><ref name="ipv6-prefix"/></attribute>
>            </optional>
>          </element>
> -        <optional>
> -          <element name="route">
> -            <attribute name="gateway"><ref name="ipv4-addr"/></attribute>
> -          </element>
> -        </optional>
> -      </group>
> -    </choice>
> +      </zeroOrMore>
> +      <optional>
> +        <element name="route">
> +          <attribute name="gateway"><ref name="ipv6-addr"/></attribute>
> +        </element>
> +      </optional>
> +    </element>
>    </define>
> +
> +  <define name="dhcp-element">
> +    <element name="dhcp">
> +      <optional>
> +        <attribute name="peerdns">
> +          <ref name="yes-or-no"/>
> +        </attribute>
> +      </optional>
> +    </element>
> +  </define>
> +
>    <!-- Jim Fehlig (<jfehlig at novell.com>) suggest the
>         following additions to DHCP:
>  
> @@ -342,6 +408,12 @@
>      </data>
>    </define>
>  
> +  <define name="timeval">
> +    <data type="double">
> +      <param name="minInclusive">0</param>
> +    </data>
> +  </define>
> +
>    <define name='device-name'>
>      <data type='string'>
>        <param name="pattern">[a-zA-Z0-9_\.\-:/]+</param>
> @@ -367,13 +439,27 @@
>  
>    <define name='ipv4-addr'>
>      <data type='string'>
> -      <param name="pattern">([0-2]?[0-9]?[0-9]\.){3}[0-2]?[0-9]?[0-9]</param>
> +      <param name="pattern">(((25[0-5])|(1[0-9]{2})|(2[0-4][0-9])|([0-9]{1,2}))\.){3}((25[0-5])|(1[0-9]{2})|(2[0-4][0-9])|([0-9]{1,2}))</param>
>      </data>
>    </define>
>  
>    <define name='ipv4-prefix'>
> +    <data type='unsignedInt'>
> +      <param name="maxInclusive">32</param>
> +    </data>
> +  </define>
> +
> +  <!-- Based on http://blog.mes-stats.fr/2008/10/09/regex-ipv4-et-ipv6 -->
> +  <define name='ipv6-addr'>
>      <data type='string'>
> -      <param name="pattern">[1-9]|[12][0-9]|3[0-2]</param>
> +      <!-- To understand this better, take apart the toplevel '|'s -->
> +      <param name="pattern">(([0-9A-Fa-f]{1,4}:){7}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){6}:[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){5}:([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){4}:([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){3}:([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){2}:([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){6}((((25[0-5])|(1[0-9]{2})|(2[0-4][0-9])|([0-9]{1,2})))\.){3}(((25[0-5])|(1[0-9]{2})|(2[0-4][0-9])|([0-9]{1,2}))))|(([0-9A-Fa-f]{1,4}:){0,5}:((((25[0-5])|(1[0-9]{2})|(2[0-4][0-9])|([0-9]{1,2})))\.){3}(((25[0-5])|(1[0-9]{2})|(2[0-4][0-9])|([0-9]{1,2}))))|(::([0-9A-Fa-f]{1,4}:){0,5}((((25[0-5])|(1[0-9]{2})|(2[0-4][0-9])|([0-9]{1,2})))\.){3}(((25[0-5])|(1[0-9]{2})|(2[0-4][0-9])|([0-9]{1,2}))))|([0-9A-Fa-f]{1,4}::([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})|(::([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){1,7}:)</param>
> +    </data>
> +  </define>
> +
> +  <define name='ipv6-prefix'>
> +    <data type='unsignedInt'>
> +      <param name="maxInclusive">128</param>
>      </data>
>    </define>
>  
> diff --git a/tests/interfaceschemadata/bond-arp.xml b/tests/interfaceschemadata/bond-arp.xml
> index 7b4ed6f..69e1d98 100644
> --- a/tests/interfaceschemadata/bond-arp.xml
> +++ b/tests/interfaceschemadata/bond-arp.xml
> @@ -6,7 +6,9 @@
>    </protocol>
>    <bond mode='active-backup'>
>      <arpmon interval='100' target='192.168.50.1' validate='active'/>
> -    <interface type='ethernet' name='eth1'/>
> -    <interface type='ethernet' name='eth0'/>
> +    <interface type='ethernet' name='eth1'>
> +    </interface>
> +    <interface type='ethernet' name='eth0'>
> +    </interface>
>    </bond>
>  </interface>
> diff --git a/tests/interfaceschemadata/bond.xml b/tests/interfaceschemadata/bond.xml
> index 81b92e3..c4e6d40 100644
> --- a/tests/interfaceschemadata/bond.xml
> +++ b/tests/interfaceschemadata/bond.xml
> @@ -6,7 +6,9 @@
>    </protocol>
>    <bond mode='active-backup'>
>      <miimon freq='100' updelay='10' carrier='ioctl'/>
> -    <interface type='ethernet' name='eth1'/>
> -    <interface type='ethernet' name='eth0'/>
> +    <interface type='ethernet' name='eth1'>
> +    </interface>
> +    <interface type='ethernet' name='eth0'>
> +    </interface>
>    </bond>
>  </interface>
> diff --git a/tests/interfaceschemadata/bridge-bond.xml b/tests/interfaceschemadata/bridge-bond.xml
> new file mode 100644
> index 0000000..a8c30b9
> --- /dev/null
> +++ b/tests/interfaceschemadata/bridge-bond.xml
> @@ -0,0 +1,17 @@
> +<interface type='bridge' name='br0'>
> +  <start mode='onboot'/>
> +  <mtu size='1500'/>
> +  <bridge stp='off'>
> +    <interface type='ethernet' name='eth2'>
> +    </interface>
> +    <interface type='bond' name='bond0'>
> +      <bond mode='active-backup'>
> +        <miimon freq='100' updelay='10' carrier='ioctl'/>
> +        <interface type='ethernet' name='eth1'>
> +        </interface>
> +        <interface type='ethernet' name='eth0'>
> +        </interface>
> +      </bond>
> +    </interface>
> +  </bridge>
> +</interface>
> diff --git a/tests/interfaceschemadata/bridge-empty.xml b/tests/interfaceschemadata/bridge-empty.xml
> new file mode 100644
> index 0000000..72861e6
> --- /dev/null
> +++ b/tests/interfaceschemadata/bridge-empty.xml
> @@ -0,0 +1,6 @@
> +<interface type='bridge' name='br0'>
> +  <start mode='onboot'/>
> +  <mtu size='1500'/>
> +  <bridge stp='off'>
> +  </bridge>
> +</interface>
> diff --git a/tests/interfaceschemadata/bridge-no-address.xml b/tests/interfaceschemadata/bridge-no-address.xml
> index cddafb1..7757534 100644
> --- a/tests/interfaceschemadata/bridge-no-address.xml
> +++ b/tests/interfaceschemadata/bridge-no-address.xml
> @@ -5,6 +5,7 @@
>      <interface type='ethernet' name='eth0'>
>        <mac address='ab:bb:cc:dd:ee:ff'/>
>      </interface>
> -    <interface type='ethernet' name='eth1'/>
> +    <interface type='ethernet' name='eth1'>
> +    </interface>
>    </bridge>
>  </interface>
> diff --git a/tests/interfaceschemadata/bridge-vlan.xml b/tests/interfaceschemadata/bridge-vlan.xml
> index 77f992d..559ebc4 100644
> --- a/tests/interfaceschemadata/bridge-vlan.xml
> +++ b/tests/interfaceschemadata/bridge-vlan.xml
> @@ -6,7 +6,7 @@
>    <bridge stp='off'>
>      <interface type='vlan' name='eth0.42'>
>        <vlan tag='42'>
> -        <interface  name='eth0'/>
> +        <interface name='eth0'/>
>        </vlan>
>      </interface>
>    </bridge>
> diff --git a/tests/interfaceschemadata/bridge.xml b/tests/interfaceschemadata/bridge.xml
> index 1f17114..2535edf 100644
> --- a/tests/interfaceschemadata/bridge.xml
> +++ b/tests/interfaceschemadata/bridge.xml
> @@ -4,10 +4,11 @@
>    <protocol family='ipv4'>
>      <dhcp/>
>    </protocol>
> -  <bridge stp='off'>
> +  <bridge stp='off' delay='0.01'>
>      <interface type='ethernet' name='eth0'>
>        <mac address='ab:bb:cc:dd:ee:ff'/>
>      </interface>
> -    <interface type='ethernet' name='eth1'/>
> +    <interface type='ethernet' name='eth1'>
> +    </interface>
>    </bridge>
>  </interface>
> diff --git a/tests/interfaceschemadata/bridge42.xml b/tests/interfaceschemadata/bridge42.xml
> index c6639ab..199b62c 100644
> --- a/tests/interfaceschemadata/bridge42.xml
> +++ b/tests/interfaceschemadata/bridge42.xml
> @@ -2,6 +2,7 @@
>    <start mode='onboot'/>
>    <mtu size='1500'/>
>    <bridge stp='off'>
> -    <interface type='ethernet' name='eth42'/>
> +    <interface type='ethernet' name='eth42'>
> +    </interface>
>    </bridge>
>  </interface>
> diff --git a/tests/interfaceschemadata/ipv6-autoconf-dhcp.xml b/tests/interfaceschemadata/ipv6-autoconf-dhcp.xml
> new file mode 100644
> index 0000000..9ea716d
> --- /dev/null
> +++ b/tests/interfaceschemadata/ipv6-autoconf-dhcp.xml
> @@ -0,0 +1,7 @@
> +<interface type='ethernet' name='eth0'>
> +  <start mode='onboot'/>
> +  <protocol family='ipv6'>
> +    <autoconf/>
> +    <dhcp/>
> +  </protocol>
> +</interface>
> diff --git a/tests/interfaceschemadata/ipv6-autoconf.xml b/tests/interfaceschemadata/ipv6-autoconf.xml
> new file mode 100644
> index 0000000..eda0ea7
> --- /dev/null
> +++ b/tests/interfaceschemadata/ipv6-autoconf.xml
> @@ -0,0 +1,6 @@
> +<interface type='ethernet' name='eth0'>
> +  <start mode='onboot'/>
> +  <protocol family='ipv6'>
> +    <autoconf/>
> +  </protocol>
> +</interface>
> diff --git a/tests/interfaceschemadata/ipv6-dhcp.xml b/tests/interfaceschemadata/ipv6-dhcp.xml
> new file mode 100644
> index 0000000..7439539
> --- /dev/null
> +++ b/tests/interfaceschemadata/ipv6-dhcp.xml
> @@ -0,0 +1,6 @@
> +<interface type='ethernet' name='eth0'>
> +  <start mode='onboot'/>
> +  <protocol family='ipv6'>
> +    <dhcp/>
> +  </protocol>
> +</interface>
> diff --git a/tests/interfaceschemadata/ipv6-local.xml b/tests/interfaceschemadata/ipv6-local.xml
> new file mode 100644
> index 0000000..895d0f7
> --- /dev/null
> +++ b/tests/interfaceschemadata/ipv6-local.xml
> @@ -0,0 +1,5 @@
> +<interface type='ethernet' name='eth0'>
> +  <start mode='onboot'/>
> +  <protocol family='ipv6'>
> +  </protocol>
> +</interface>
> diff --git a/tests/interfaceschemadata/ipv6-static-multi.xml b/tests/interfaceschemadata/ipv6-static-multi.xml
> new file mode 100644
> index 0000000..f0cb00b
> --- /dev/null
> +++ b/tests/interfaceschemadata/ipv6-static-multi.xml
> @@ -0,0 +1,8 @@
> +<interface type='ethernet' name='eth0'>
> +  <start mode='onboot'/>
> +  <protocol family='ipv6'>
> +    <ip address='3ffe:ffff:0:5::1' prefix='128'/>
> +    <ip address='3ffe:ffff:0:5::3' prefix='128'/>
> +    <ip address='3ffe:ffff:0:5::5' prefix='128'/>
> +  </protocol>
> +</interface>
> diff --git a/tests/interfaceschemadata/ipv6-static.xml b/tests/interfaceschemadata/ipv6-static.xml
> new file mode 100644
> index 0000000..e43d2a2
> --- /dev/null
> +++ b/tests/interfaceschemadata/ipv6-static.xml
> @@ -0,0 +1,7 @@
> +<interface type='ethernet' name='eth0'>
> +  <start mode='onboot'/>
> +  <protocol family='ipv6'>
> +    <ip address='3ffe:ffff:0:5::1' prefix='128'/>
> +    <route gateway='3ffe:ffff:1234:5678::1'/>
> +  </protocol>
> +</interface>
> diff --git a/tests/interfacexml2xmltest.c b/tests/interfacexml2xmltest.c
> index ed3093c..d8f1b43 100644
> --- a/tests/interfacexml2xmltest.c
> +++ b/tests/interfacexml2xmltest.c
> @@ -83,11 +83,20 @@ mymain(int argc, char **argv)
>      DO_TEST("ethernet-static-no-prefix");
>      DO_TEST("bridge");
>      DO_TEST("bridge42");
> +    DO_TEST("bridge-bond");
> +    DO_TEST("bridge-empty");
> +    DO_TEST("bridge-no-address");
>      DO_TEST("bridge-vlan");
>      DO_TEST("bridge-no-address");
>      DO_TEST("vlan");
>      DO_TEST("bond");
>      DO_TEST("bond-arp");
> +    DO_TEST("ipv6-autoconf-dhcp");
> +    DO_TEST("ipv6-autoconf");
> +    DO_TEST("ipv6-dhcp");
> +    DO_TEST("ipv6-local");
> +    DO_TEST("ipv6-static-multi");
> +    DO_TEST("ipv6-static");
>  
>      return (ret==0 ? EXIT_SUCCESS : EXIT_FAILURE);
>  }

ACK

Daniel
-- 
|: Red Hat, Engineering, London   -o-   http://people.redhat.com/berrange/ :|
|: http://libvirt.org  -o-  http://virt-manager.org  -o-  http://ovirt.org :|
|: http://autobuild.org       -o-         http://search.cpan.org/~danberr/ :|
|: GnuPG: 7D3B9505  -o-  F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 :|




More information about the libvir-list mailing list