summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStephen Hemminger <shemminger@vyatta.com>2012-01-03 11:00:39 -0800
committerStephen Hemminger <shemminger@vyatta.com>2012-01-03 11:00:39 -0800
commita5fee35267cf7527a96d8042b31d7f6adf4a5646 (patch)
tree68c6989e8784be44ab1a967b9aff3b1e3264e89a
parent20ae65b9ed930519c2a1ea3c919ee02fed23eb42 (diff)
downloadvyatta-cfg-quagga-a5fee35267cf7527a96d8042b31d7f6adf4a5646.tar.gz
vyatta-cfg-quagga-a5fee35267cf7527a96d8042b31d7f6adf4a5646.zip
Check for conflict between pseudo-ethernet and bonding,bridging
Don't allow configuring bonding or bridging if pseudo-ethernet is in use.
-rwxr-xr-xscripts/vyatta-bonding.pl8
-rwxr-xr-xscripts/vyatta-bridge.pl8
2 files changed, 16 insertions, 0 deletions
diff --git a/scripts/vyatta-bonding.pl b/scripts/vyatta-bonding.pl
index 71707126..aa733b61 100755
--- a/scripts/vyatta-bonding.pl
+++ b/scripts/vyatta-bonding.pl
@@ -225,6 +225,14 @@ sub commit_check {
my @vrrp = $cfg->listNodes('vrrp vrrp-group');
die "Error: can not add interface $slave with VRRP to bond-group\n"
if (@vrrp);
+
+ $cfg->setLevel('interfaces pseudo-ethernet');
+ foreach my $peth ($cfg->listNodes()) {
+ my $link = $cfg->returnValue("$peth link");
+
+ die "Error: can not add interface $slave to bond-group already used by pseudo-ethernet $peth\n"
+ if ($link eq $slave);
+ }
}
# bonding requires interface to be down before enslaving
diff --git a/scripts/vyatta-bridge.pl b/scripts/vyatta-bridge.pl
index bb0d41c3..68d3e107 100755
--- a/scripts/vyatta-bridge.pl
+++ b/scripts/vyatta-bridge.pl
@@ -68,6 +68,14 @@ if ( $action eq 'SET' ) {
die "Error: Can not add interface $ifname with VRRP to bridge\n"
if (@vrrp);
+ $cfg->setLevel('interfaces pseudo-ethernet');
+ foreach my $peth ($cfg->listNodes()) {
+ my $link = $cfg->returnValue("$peth link");
+
+ die "Error: can not add interface $slave to bridge already used by pseudo-ethernet $peth\n"
+ if ($link eq $slave);
+ }
+
print "Adding interface $ifname to bridge $newbridge\n";
add_bridge_port($newbridge, $ifname, $cost, $priority);