summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--debian/changelog70
-rw-r--r--lib/Vyatta/Quagga/Config.pm28
-rwxr-xr-xscripts/bgp/vyatta-bgp.pl3
-rw-r--r--templates/protocols/bgp/node.tag/parameters/confederation/peers/node.def2
4 files changed, 97 insertions, 6 deletions
diff --git a/debian/changelog b/debian/changelog
index 7fcbd8a1..0e49c8a0 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -52,6 +52,76 @@ vyatta-cfg-quagga (0.18.101) unstable; urgency=low
-- An-Cheng Huang <ancheng@vyatta.com> Thu, 22 Jul 2010 17:23:30 -0700
+vyatta-cfg-quagga (0.18.100+larkspur11) unstable; urgency=low
+
+ * fix for bug 6054
+
+ -- Robert Bays <robert@vyatta.com> Mon, 16 Aug 2010 11:50:05 -0700
+
+vyatta-cfg-quagga (0.18.100+larkspur10) unstable; urgency=low
+
+ * fix for bug 6034
+ * fix for bug 6049
+
+ -- Robert Bays <robert@vyatta.com> Thu, 12 Aug 2010 18:31:11 -0700
+
+vyatta-cfg-quagga (0.18.100+larkspur9) unstable; urgency=low
+
+ * fix for bug 6041
+
+ -- Robert Bays <robert@vyatta.com> Thu, 12 Aug 2010 10:58:10 -0700
+
+vyatta-cfg-quagga (0.18.100+larkspur8) unstable; urgency=low
+
+ * Add missing step for peer group ttl-security
+
+ -- Stephen Hemminger <shemminger@lenny.localdomain> Thu, 12 Aug 2010 05:51:29 -0700
+
+vyatta-cfg-quagga (0.18.100+larkspur7) unstable; urgency=low
+
+ * fix for bug 6021
+ * fix for bug 4393
+
+ -- Robert Bays <robert@vyatta.com> Tue, 10 Aug 2010 17:47:04 -0700
+
+vyatta-cfg-quagga (0.18.100+larkspur6) unstable; urgency=low
+
+ * rename function to be more descriptive of the actual use
+ * fix for bug 5939
+
+ -- Robert Bays <robert@vyatta.com> Tue, 10 Aug 2010 15:55:22 -0700
+
+vyatta-cfg-quagga (0.18.100+larkspur5) unstable; urgency=low
+
+ * fix for bug 5973
+
+ -- Robert Bays <robert@vyatta.com> Fri, 06 Aug 2010 16:56:21 -0700
+
+vyatta-cfg-quagga (0.18.100+larkspur4) unstable; urgency=low
+
+ * larkspur specific fix for 5971
+
+ -- Robert Bays <robert@vyatta.com> Fri, 06 Aug 2010 16:43:26 -0700
+
+vyatta-cfg-quagga (0.18.100+larkspur3) unstable; urgency=low
+
+ * fix for bug 5925
+ * fix for bug 5937
+
+ -- Robert Bays <robert@vyatta.com> Fri, 06 Aug 2010 15:53:44 -0700
+
+vyatta-cfg-quagga (0.18.100+larkspur2) unstable; urgency=low
+
+ * fix for bug 5892
+
+ -- Robert Bays <robert@vyatta.com> Fri, 23 Jul 2010 13:08:15 -0700
+
+vyatta-cfg-quagga (0.18.100+larkspur1) unstable; urgency=low
+
+ * UNRELEASED
+
+ -- An-Cheng Huang <ancheng@vyatta.com> Thu, 22 Jul 2010 17:17:20 -0700
+
vyatta-cfg-quagga (0.18.100) unstable; urgency=low
* fix for bug 5893
diff --git a/lib/Vyatta/Quagga/Config.pm b/lib/Vyatta/Quagga/Config.pm
index 644024e5..8afc1bed 100644
--- a/lib/Vyatta/Quagga/Config.pm
+++ b/lib/Vyatta/Quagga/Config.pm
@@ -342,9 +342,8 @@ sub _qtree {
$qcom = $_qcomref;
- # It's ugly that I have to create a new Vyatta config object every time,
- # but something gets messed up on the stack if I don't. not sure
- # what yet. would love to reference a global config and just reset Level.
+ # Would love to reference a global config and just reset Levels,
+ # but Vyatta::Config isn't recursion safe.
my $config = new Vyatta::Config;
$config->setLevel($level);
@@ -356,7 +355,28 @@ sub _qtree {
else {
$vtysh = \%_vtyshdel;
@nodes = $config->listDeleted();
- }
+
+ # handle special case for multi-nodes values being deleted
+ # listDeleted() doesn't return the node as deleted if it is a multi
+ # unless all values are deleted.
+ # TODO: fix listDeleted() in Config.pm
+ # This is really, really fugly.
+ my @all_nodes = $config->listNodes();
+ foreach my $node (@all_nodes) {
+ my @array = split /\s+/, $level;
+ push @array, $node;
+ my ($multi, $text, $default) = $config->parseTmpl(\@array);
+ if ($multi) {
+ my @orig_values = $config->returnOrigValues("$node");
+ my @new_values = $config->returnValues("$node");
+ my %chash = $config->compareValueLists(\@orig_values, \@new_values);
+ if (${$chash{'deleted'}}[0]) {
+ push @nodes, $node;
+ }
+ }
+ }
+
+ } ## end else {
if ($_DEBUG) { print "DEBUG: _qtree - action: $action\tlevel: $level\n"; }
diff --git a/scripts/bgp/vyatta-bgp.pl b/scripts/bgp/vyatta-bgp.pl
index a26501e0..291113eb 100755
--- a/scripts/bgp/vyatta-bgp.pl
+++ b/scripts/bgp/vyatta-bgp.pl
@@ -1243,7 +1243,8 @@ sub bgp_type_change {
# check if changing from iBGP to eBGP
if ( (iBGP_peer(1, $neighbor, $as, $ntype)) && (! iBGP_peer(0, $neighbor, $as, $ntype)) ) {
- if ($config->exists("$as $ntype $neighbor route-reflector-client")) {
+ if ( $config->exists("$as $ntype $neighbor route-reflector-client") ||
+ $config->exists("$as $ntype $neighbor address-family ipv6-unicast route-reflector-client") ) {
return "can not set route-reflector-client and an eBGP remote-as at the same time\n";
}
}
diff --git a/templates/protocols/bgp/node.tag/parameters/confederation/peers/node.def b/templates/protocols/bgp/node.tag/parameters/confederation/peers/node.def
index e806b5d7..7e165489 100644
--- a/templates/protocols/bgp/node.tag/parameters/confederation/peers/node.def
+++ b/templates/protocols/bgp/node.tag/parameters/confederation/peers/node.def
@@ -1,6 +1,6 @@
multi:
type: u32
help: Peer ASs in the BGP confederation
-val_help: u32:1-4294967294; Peer AS number numbers (ex: "435 234")
+val_help: u32:1-4294967294; Peer AS number
syntax:expression: $VAR(@) >= 1 && $VAR(@) <= 4294967294; "confederation AS id must be between 1 and 4294967294"
commit:expression: exec "/opt/vyatta/sbin/vyatta-bgp.pl --confed-iBGP-ASN-check $VAR(@) --as $VAR(../../../@)"; "Can't set confederation peers ASN to $VAR(@). Delete any neighbors with remote-as $VAR(@) and/or change the local ASN first."