diff options
author | Bob Gilligan <gilligan@vyatta.com> | 2011-11-08 16:02:06 -0800 |
---|---|---|
committer | Bob Gilligan <gilligan@vyatta.com> | 2011-11-08 16:02:06 -0800 |
commit | db9cc7f187ff8b2796bafd1f3b14472256385338 (patch) | |
tree | b1c5f72aca610e550f80726624ded986a0ffb0b3 | |
parent | 5d27f2ef302dc600ea737e9af4151041aa11a2e0 (diff) | |
download | vyatta-cfg-quagga-db9cc7f187ff8b2796bafd1f3b14472256385338.tar.gz vyatta-cfg-quagga-db9cc7f187ff8b2796bafd1f3b14472256385338.zip |
First pass implementation of support for virtual MAC address
This change introduces a new parameter named "interface" under the
vrrp-group configuration tree under ethernet interfaces and vlans. If
the "interface" parameter is set, keepalived will be configured to
bring up a macvlan interface, which will hold the virtual MAC address
that is specified in the VRRP spec.
3 files changed, 11 insertions, 0 deletions
diff --git a/scripts/keepalived/vyatta-keepalived.pl b/scripts/keepalived/vyatta-keepalived.pl index 7a113469..e834745b 100755 --- a/scripts/keepalived/vyatta-keepalived.pl +++ b/scripts/keepalived/vyatta-keepalived.pl @@ -144,6 +144,12 @@ sub keepalived_get_values { push @errs, $err; next; } + + my $use_vmac = 0; + if ( $config->exists("interface") ) { + $use_vmac = 1; + } + my $priority = $config->returnValue("priority"); if ( !defined $priority ) { $priority = 1; @@ -240,6 +246,9 @@ sub keepalived_get_values { $output .= "\tstate $init_state\n"; $output .= "\tinterface $intf\n"; $output .= "\tvirtual_router_id $group\n"; + if ($use_vmac) { + $output .= "\tuse_vmac\n"; + } $output .= "\tpriority $priority\n"; if ( $preempt eq "false" ) { $output .= "\tnopreempt\n"; diff --git a/templates/interfaces/ethernet/node.tag/vif/node.tag/vrrp/vrrp-group/node.tag/interface/node.def b/templates/interfaces/ethernet/node.tag/vif/node.tag/vrrp/vrrp-group/node.tag/interface/node.def new file mode 100644 index 00000000..03f22d28 --- /dev/null +++ b/templates/interfaces/ethernet/node.tag/vif/node.tag/vrrp/vrrp-group/node.tag/interface/node.def @@ -0,0 +1 @@ +help: Configure a virtual MAC interface diff --git a/templates/interfaces/ethernet/node.tag/vrrp/vrrp-group/node.tag/interface/node.def b/templates/interfaces/ethernet/node.tag/vrrp/vrrp-group/node.tag/interface/node.def new file mode 100644 index 00000000..03f22d28 --- /dev/null +++ b/templates/interfaces/ethernet/node.tag/vrrp/vrrp-group/node.tag/interface/node.def @@ -0,0 +1 @@ +help: Configure a virtual MAC interface |