[netcf-devel] [PATCH] rng: bond: Make miimon/arpmon optional
Cole Robinson
crobinso at redhat.com
Mon Jun 14 21:25:30 UTC 2010
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");
--
1.6.6.1
More information about the netcf-devel
mailing list