From 64266c79c91583ed6a9704066e920a0270efdd81 Mon Sep 17 00:00:00 2001 From: Stig Thormodsrud Date: Thu, 3 Apr 2008 12:49:37 -0700 Subject: Fix 3086: VRRP only allows up to 20 virtual IPs --- scripts/keepalived/vyatta-keepalived.pl | 7 ++++++- .../vif/node.tag/vrrp/vrrp-group/node.tag/virtual-address/node.def | 3 +++ .../node.tag/vrrp/vrrp-group/node.tag/virtual-address/node.def | 3 +++ 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/scripts/keepalived/vyatta-keepalived.pl b/scripts/keepalived/vyatta-keepalived.pl index 1deeafe8..fff1acf1 100755 --- a/scripts/keepalived/vyatta-keepalived.pl +++ b/scripts/keepalived/vyatta-keepalived.pl @@ -47,10 +47,15 @@ sub keepalived_get_values { my $vrrp_instance = "vyatta-$intf-$group"; $config->setLevel("$path vrrp vrrp-group $group"); my @vips = $config->returnValues("virtual-address"); - if (scalar(@vips) == 0) { + my $num_vips = scalar(@vips); + if ($num_vips == 0) { print "must define a virtual-address for vrrp-group $group\n"; exit 1; } + if ($num_vips > 20) { + print "can not set more than 20 VIPs per group\n"; + exit 1; + } my $priority = $config->returnValue("priority"); if (!defined $priority) { $priority = 1; diff --git a/templates/interfaces/ethernet/node.tag/vif/node.tag/vrrp/vrrp-group/node.tag/virtual-address/node.def b/templates/interfaces/ethernet/node.tag/vif/node.tag/vrrp/vrrp-group/node.tag/virtual-address/node.def index 3b1cf6a6..c40c5f47 100644 --- a/templates/interfaces/ethernet/node.tag/vif/node.tag/vrrp/vrrp-group/node.tag/virtual-address/node.def +++ b/templates/interfaces/ethernet/node.tag/vif/node.tag/vrrp/vrrp-group/node.tag/virtual-address/node.def @@ -5,3 +5,6 @@ help: Configure virtual address create: sudo /opt/vyatta/sbin/vyatta-watchlink-exclude.pl --id=vrrp --action=add --intf="$VAR(../../../../@).$VAR(../../../@)" --ipadd=$VAR(@) --signal delete: sudo /opt/vyatta/sbin/vyatta-watchlink-exclude.pl --id=vrrp --action=remove --intf="$VAR(../../../../@).$VAR(../../../@)" --ipadd=$VAR(@) --signal + +comp_help: possible completions: + Virtual IP address (up to 20 per group) diff --git a/templates/interfaces/ethernet/node.tag/vrrp/vrrp-group/node.tag/virtual-address/node.def b/templates/interfaces/ethernet/node.tag/vrrp/vrrp-group/node.tag/virtual-address/node.def index d66d4d60..af8b4624 100644 --- a/templates/interfaces/ethernet/node.tag/vrrp/vrrp-group/node.tag/virtual-address/node.def +++ b/templates/interfaces/ethernet/node.tag/vrrp/vrrp-group/node.tag/virtual-address/node.def @@ -5,3 +5,6 @@ help: Configure virtual address create: sudo /opt/vyatta/sbin/vyatta-watchlink-exclude.pl --id=vrrp --action=add --intf=$VAR(../../../@) --ipadd=$VAR(@) --signal delete: sudo /opt/vyatta/sbin/vyatta-watchlink-exclude.pl --id=vrrp --action=remove --intf=$VAR(../../../@) --ipadd=$VAR(@) --signal + +comp_help: possible completions: + Virtual IP address (up to 20 per group) -- cgit v1.2.3