summaryrefslogtreecommitdiff
path: root/scripts/keepalived/VyattaKeepalived.pm
diff options
context:
space:
mode:
authorStig Thormodsrud <stig@vyatta.com>2007-12-18 09:53:24 -0800
committerStig Thormodsrud <stig@vyatta.com>2007-12-18 09:53:24 -0800
commit1802eb010fb9b382dde4d3e1574fd578027c7dc0 (patch)
treee4ca0eb10e1a7bb0dedcf5c5a145200f802436f0 /scripts/keepalived/VyattaKeepalived.pm
parent36af5914de982f2770fba137c4beea9077cc6adb (diff)
downloadvyatta-cfg-quagga-1802eb010fb9b382dde4d3e1574fd578027c7dc0.tar.gz
vyatta-cfg-quagga-1802eb010fb9b382dde4d3e1574fd578027c7dc0.zip
- Add support for multiple vrrp groups per interface.
- Add support for multiple VIPs per vrrp group.
Diffstat (limited to 'scripts/keepalived/VyattaKeepalived.pm')
-rwxr-xr-xscripts/keepalived/VyattaKeepalived.pm17
1 files changed, 14 insertions, 3 deletions
diff --git a/scripts/keepalived/VyattaKeepalived.pm b/scripts/keepalived/VyattaKeepalived.pm
index c2d446e4..e0e84af3 100755
--- a/scripts/keepalived/VyattaKeepalived.pm
+++ b/scripts/keepalived/VyattaKeepalived.pm
@@ -129,6 +129,17 @@ sub get_state_files {
return @state_files;
}
+sub get_vips_per_intf {
+ my ($intf) = @_;
+
+ my $config = new VyattaConfig;
+ my @groups = ();
+
+ $config->setLevel("interfaces ethernet $intf vrrp vrrp-group");
+ @groups = $config->listOrigNodes();
+ return scalar(@groups);
+}
+
sub vrrp_get_config {
my ($intf, $group) = @_;
@@ -144,8 +155,8 @@ sub vrrp_get_config {
$primary_addr = $1;
}
- $config->setLevel("interfaces ethernet $intf vrrp");
- my $vip = $config->returnOrigValue("virtual-address");
+ $config->setLevel("interfaces ethernet $intf vrrp vrrp-group $group");
+ my @vips = $config->returnOrigValues("virtual-address");
my $priority = $config->returnOrigValue("priority");
if (!defined $priority) {
$priority = 1;
@@ -165,7 +176,7 @@ sub vrrp_get_config {
} else {
$auth_type = uc($auth_type);
}
- return ($primary_addr, $vip, $priority, $preempt, $advert_int, $auth_type);
+ return ($primary_addr, $priority, $preempt, $advert_int, $auth_type, @vips);
}
sub vrrp_state_parse {