[netcf-devel] [PATCH] rng: bond: Make miimon/arpmon optional

Laine Stump laine at laine.org
Thu Jun 17 13:45:40 UTC 2010


On 06/15/2010 12:25 AM, Cole Robinson wrote:
> Initscripts have defaults for these values, so if mii or arp isn't
> explicitly specified, just defer to system defaults.
>
> Add test files for implicit bonding defaults.
>
> Caveat: I haven't actually tested that this works since I have never really
> dealt with bonding.
>
> Signed-off-by: Cole Robinson<crobinso at redhat.com>
> ---
>   data/xml/interface.rng              |   77 ++++++++++++++++++-----------------
>   tests/initscripts/bond-defaults.xml |   28 +++++++++++++
>   tests/interface/bond-defaults.xml   |   11 +++++
>   tests/test-initscripts.c            |    1 +
>   4 files changed, 80 insertions(+), 37 deletions(-)
>   create mode 100644 tests/initscripts/bond-defaults.xml
>   create mode 100644 tests/interface/bond-defaults.xml
>
> diff --git a/data/xml/interface.rng b/data/xml/interface.rng
> index a0df9ba..80d686e 100644
> --- a/data/xml/interface.rng
> +++ b/data/xml/interface.rng
> @@ -177,43 +177,46 @@
>                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>
> +<optional>
> +<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>
> +</optional>
> +
>         <oneOrMore>
>           <!-- The slave interfaces -->
>           <ref name="bare-ethernet-interface"/>
> diff --git a/tests/initscripts/bond-defaults.xml b/tests/initscripts/bond-defaults.xml
> new file mode 100644
> index 0000000..3e92d19
> --- /dev/null
> +++ b/tests/initscripts/bond-defaults.xml
> @@ -0,0 +1,28 @@
> +<!-- A sketch of how the ethernet-static.xml example would be
> +     turned into actual files.
> +
> +     The XML notation is close to what would turn up in a Augeas tree -->
> +
> +<forest>
> +<tree  path="/files/etc/sysconfig/network-scripts/ifcfg-bond0">
> +<node label="DEVICE" value="bond0"/>
> +<node label="ONBOOT" value="no"/>
> +<node label="BOOTPROTO" value="none"/>
> +<node label="IPADDR" value="192.168.50.7"/>
> +<node label="NETMASK" value="255.255.255.0"/>
> +<node label="GATEWAY" value="192.168.50.1"/>
> +<node label="BONDING_OPTS" value="''"/>
> +</tree>
> +<tree  path="/files/etc/sysconfig/network-scripts/ifcfg-eth1">
> +<node label="DEVICE" value="eth1"/>
> +<node label="ONBOOT" value="no"/>
> +<node label="MASTER" value="bond0"/>
> +<node label="SLAVE" value="yes"/>
> +</tree>
> +<tree path="/files/etc/sysconfig/network-scripts/ifcfg-eth0">
> +<node label="DEVICE" value="eth0"/>
> +<node label="ONBOOT" value="no"/>
> +<node label="MASTER" value="bond0"/>
> +<node label="SLAVE" value="yes"/>
> +</tree>
> +</forest>
> diff --git a/tests/interface/bond-defaults.xml b/tests/interface/bond-defaults.xml
> new file mode 100644
> index 0000000..38224c4
> --- /dev/null
> +++ b/tests/interface/bond-defaults.xml
> @@ -0,0 +1,11 @@
> +<interface type="bond" name="bond0">
> +<start mode="none"/>
> +<protocol family="ipv4">
> +<ip address="192.168.50.7" prefix="24"/>
> +<route gateway="192.168.50.1"/>
> +</protocol>
> +<bond>
> +<interface type="ethernet" name="eth1"/>
> +<interface type="ethernet" name="eth0"/>
> +</bond>
> +</interface>
> diff --git a/tests/test-initscripts.c b/tests/test-initscripts.c
> index 329bf19..404ec0a 100644
> --- a/tests/test-initscripts.c
> +++ b/tests/test-initscripts.c
> @@ -174,6 +174,7 @@ static void assert_transforms(CuTest *tc, const char *base) {
>   static void testTransforms(CuTest *tc) {
>       assert_transforms(tc, "bond");
>       assert_transforms(tc, "bond-arp");
> +    assert_transforms(tc, "bond-defaults");
>       assert_transforms(tc, "bridge");
>       assert_transforms(tc, "bridge-no-address");
>       assert_transforms(tc, "bridge-vlan");
>    

ACK. Pushed.


More information about the netcf-devel mailing list