diff options
112 files changed, 1141 insertions, 15 deletions
diff --git a/debian/changelog b/debian/changelog index 185ac40b..e3f0b8f3 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,15 @@ +vyatta-cfg-quagga (0.16) unstable; urgency=low + + [ Stephen Hemminger ] + * force BGP on + + [ slioch ] + * changes to support bgp start/stop + * applied same changes to ospf and rip as to bgp re: start/stop router + daemon hooks + + -- slioch <slioch@eng-140.vyatta.com> Thu, 19 Feb 2009 20:34:15 -0800 + vyatta-cfg-quagga (0.15) unstable; urgency=low * Fix email in changlog diff --git a/templates/interfaces/bonding/node.tag/disable-link-detect/node.def b/templates/interfaces/bonding/node.tag/disable-link-detect/node.def new file mode 100644 index 00000000..83858ec1 --- /dev/null +++ b/templates/interfaces/bonding/node.tag/disable-link-detect/node.def @@ -0,0 +1,3 @@ +help: Set to ignore link state changes on this interface +update:/opt/vyatta/sbin/vyatta-link-detect $VAR(../@) on +delete:/opt/vyatta/sbin/vyatta-link-detect $VAR(../@) off diff --git a/templates/interfaces/bonding/node.tag/ip/node.def b/templates/interfaces/bonding/node.tag/ip/node.def new file mode 100644 index 00000000..92e252e1 --- /dev/null +++ b/templates/interfaces/bonding/node.tag/ip/node.def @@ -0,0 +1 @@ +help: Set IPv4 parameters for specified interface diff --git a/templates/interfaces/bonding/node.tag/ip/ospf/authentication/md5/key-id/node.def b/templates/interfaces/bonding/node.tag/ip/ospf/authentication/md5/key-id/node.def new file mode 100644 index 00000000..0d156a55 --- /dev/null +++ b/templates/interfaces/bonding/node.tag/ip/ospf/authentication/md5/key-id/node.def @@ -0,0 +1,23 @@ +tag: +type: u32 +help: Set MD5 key id +syntax:expression: $VAR(@) >= 1 && $VAR(@) <= 255; "ID must be between (1-255)" +commit:expression: $VAR(md5-key/) != ""; \ + "Must add the md5-key for key-id $VAR(@)" + +delete:expression: "touch /tmp/ospf-md5.$PPID" + +end:expression: "\ + if [ -f \"/tmp/ospf-md5.$PPID\" ]; then \ + vyatta-vtysh -c \"configure terminal\" \ + -c \"interface $VAR(../../../../../@) \" \ + -c \"no ip ospf message-digest-key $VAR(@)\"; \ + rm /tmp/ospf-md5.$PPID; \ + else \ + vyatta-vtysh -c \"configure terminal\" \ + -c \"interface $VAR(../../../../../@) \" \ + -c \"ip ospf message-digest-key $VAR(@) md5 $VAR(md5-key/@)\"; \ + fi; " + +comp_help: possible completions: + <1-255> Set the key id diff --git a/templates/interfaces/bonding/node.tag/ip/ospf/authentication/md5/key-id/node.tag/md5-key/node.def b/templates/interfaces/bonding/node.tag/ip/ospf/authentication/md5/key-id/node.tag/md5-key/node.def new file mode 100644 index 00000000..e007b689 --- /dev/null +++ b/templates/interfaces/bonding/node.tag/ip/ospf/authentication/md5/key-id/node.tag/md5-key/node.def @@ -0,0 +1,9 @@ +type: txt +help: Set md5 key +syntax:expression: exec " \ + if [ `echo -n $VAR(@) | wc -c` -gt 16 ]; then \ + echo MD5 key must be 16 characters or less ; \ + exit 1 ; \ + fi ; " +comp_help: possible completions: + <text> MD5 Key (16 characters or less) diff --git a/templates/interfaces/bonding/node.tag/ip/ospf/authentication/md5/key-id/node.tag/node.def b/templates/interfaces/bonding/node.tag/ip/ospf/authentication/md5/key-id/node.tag/node.def new file mode 100644 index 00000000..d14a2583 --- /dev/null +++ b/templates/interfaces/bonding/node.tag/ip/ospf/authentication/md5/key-id/node.tag/node.def @@ -0,0 +1 @@ +help: Set md5 key diff --git a/templates/interfaces/bonding/node.tag/ip/ospf/authentication/md5/node.def b/templates/interfaces/bonding/node.tag/ip/ospf/authentication/md5/node.def new file mode 100644 index 00000000..341af509 --- /dev/null +++ b/templates/interfaces/bonding/node.tag/ip/ospf/authentication/md5/node.def @@ -0,0 +1,11 @@ +help: Set MD5 key id +update:expression: "vyatta-vtysh \ + -c \"configure terminal\" \ + -c \"interface $VAR(../../../../@) \" \ + -c \"no ip ospf authentication \" \ + -c \"ip ospf authentication message-digest\"; " + +delete:expression: "vyatta-vtysh \ + -c \"configure terminal\" \ + -c \"interface $VAR(../../../../@) \" \ + -c \"no ip ospf authentication \"; " diff --git a/templates/interfaces/bonding/node.tag/ip/ospf/authentication/node.def b/templates/interfaces/bonding/node.tag/ip/ospf/authentication/node.def new file mode 100644 index 00000000..ff352a01 --- /dev/null +++ b/templates/interfaces/bonding/node.tag/ip/ospf/authentication/node.def @@ -0,0 +1,2 @@ +help: Set OSPF interface authentication + diff --git a/templates/interfaces/bonding/node.tag/ip/ospf/authentication/plaintext-password/node.def b/templates/interfaces/bonding/node.tag/ip/ospf/authentication/plaintext-password/node.def new file mode 100644 index 00000000..95215c89 --- /dev/null +++ b/templates/interfaces/bonding/node.tag/ip/ospf/authentication/plaintext-password/node.def @@ -0,0 +1,23 @@ +type: txt +help: Configure plain text password +syntax:expression: exec " \ + if [ `echo -n $VAR(@) | wc -c` -gt 8 ]; then \ + echo Password must be 8 characters or less ; \ + exit 1 ; \ + fi ; " + +update:expression: "vyatta-vtysh \ + -c \"configure terminal\" \ + -c \"interface $VAR(../../../../@) \" \ + -c \"no ip ospf authentication \" \ + -c \"ip ospf authentication \" \ + -c \"ip ospf authentication-key $VAR(@) \"; " + +delete:expression: "vyatta-vtysh \ + -c \"configure terminal\" \ + -c \"interface $VAR(../../../../@) \" \ + -c \"no ip ospf authentication \" \ + -c \"no ip ospf authentication-key \"; " + +comp_help: possible completions: + <text> Plain text password (8 characters or less) diff --git a/templates/interfaces/bonding/node.tag/ip/ospf/bandwidth/node.def b/templates/interfaces/bonding/node.tag/ip/ospf/bandwidth/node.def new file mode 100644 index 00000000..309d2f17 --- /dev/null +++ b/templates/interfaces/bonding/node.tag/ip/ospf/bandwidth/node.def @@ -0,0 +1,16 @@ +type: u32 +help: Set bandwidth for specified interface (kilobits/sec) +syntax:expression: $VAR(@) >= 1 && $VAR(@) <= 10000000; \ + "Must be between 1-10000000" +update:expression: "vyatta-vtysh \ + -c \"configure terminal \" \ + -c \"interface $VAR(../../../@) \" \ + -c \"bandwidth $VAR(@) \"; " + +delete:expression: "vyatta-vtysh \ + -c \"configure terminal \" \ + -c \"interface $VAR(../../../@) \" \ + -c \"no bandwidth $VAR(@) \"; " + +comp_help: possible completions: + <1-10000000> Set bandwidth in kilobits/sec (for calculating OSPF cost) diff --git a/templates/interfaces/bonding/node.tag/ip/ospf/cost/node.def b/templates/interfaces/bonding/node.tag/ip/ospf/cost/node.def new file mode 100644 index 00000000..d57876cd --- /dev/null +++ b/templates/interfaces/bonding/node.tag/ip/ospf/cost/node.def @@ -0,0 +1,11 @@ +type: u32 +help: Set interface cost +syntax:expression: $VAR(@) >= 1 && $VAR(@) <= 65535; "Must be between 1-65535" +update:expression: "vyatta-vtysh -c \"configure terminal\" \ + -c \"interface $VAR(../../../@)\" \ + -c \"ip ospf cost $VAR(@) \"; " +delete:expression: "vyatta-vtysh -c \"configure terminal\" \ + -c \"interface $VAR(../../../@)\" \ + -c \"no ip ospf cost \"; " +comp_help: possible completions: + <1-65535> Set Cost diff --git a/templates/interfaces/bonding/node.tag/ip/ospf/dead-interval/node.def b/templates/interfaces/bonding/node.tag/ip/ospf/dead-interval/node.def new file mode 100644 index 00000000..5e4170cb --- /dev/null +++ b/templates/interfaces/bonding/node.tag/ip/ospf/dead-interval/node.def @@ -0,0 +1,12 @@ +type: u32 +help: Set interval after which a neighbor is declared dead +default: 40 +syntax:expression: $VAR(@) >= 1 && $VAR(@) <= 65535; "Must be between 1-65535" +update:expression: "vyatta-vtysh \ + -c \"configure terminal\" -c \"interface $VAR(../../../@)\" \ + -c \"ip ospf dead-interval $VAR(@)\"; " +delete:expression: "vyatta-vtysh \ + -c \"configure terminal\" -c \"interface $VAR(../../../@)\" \ + -c \"no ip ospf dead-interval \"; " +comp_help: possible completions: + <1-65535> Seconds (default 40) diff --git a/templates/interfaces/bonding/node.tag/ip/ospf/hello-interval/node.def b/templates/interfaces/bonding/node.tag/ip/ospf/hello-interval/node.def new file mode 100644 index 00000000..885ccb43 --- /dev/null +++ b/templates/interfaces/bonding/node.tag/ip/ospf/hello-interval/node.def @@ -0,0 +1,12 @@ +type: u32 +help: Set interval between hello packets +default: 10 +syntax:expression: $VAR(@) >= 1 && $VAR(@) <= 65535; "Must be between 1-65535" +update:expression: "vyatta-vtysh \ + -c \"configure terminal\" -c \"interface $VAR(../../../@) \" \ + -c \"ip ospf hello-interval $VAR(@)\"; " +delete:expression: "vyatta-vtysh \ + -c \"configure terminal\" -c \"interface $VAR(../../../@) \" \ + -c \"no ip ospf hello-interval \"; " +comp_help: possible completions: + <1-65535> Seconds (default 10) diff --git a/templates/interfaces/bonding/node.tag/ip/ospf/mtu-ignore/node.def b/templates/interfaces/bonding/node.tag/ip/ospf/mtu-ignore/node.def new file mode 100644 index 00000000..1bce2ca9 --- /dev/null +++ b/templates/interfaces/bonding/node.tag/ip/ospf/mtu-ignore/node.def @@ -0,0 +1,10 @@ +help: Disable Maximum Transmission Unit (MTU) mismatch detection +create:expression: "vyatta-vtysh \ + -c \"configure terminal\" \ + -c \"interface $VAR(../../../@)\" \ + -c \"ip ospf mtu-ignore\"; " + +delete:expression: "vyatta-vtysh \ + -c \"configure terminal\" \ + -c \"interface $VAR(../../../@)\" \ + -c \"no ip ospf mtu-ignore\"; " diff --git a/templates/interfaces/bonding/node.tag/ip/ospf/network/node.def b/templates/interfaces/bonding/node.tag/ip/ospf/network/node.def new file mode 100644 index 00000000..347aee8a --- /dev/null +++ b/templates/interfaces/bonding/node.tag/ip/ospf/network/node.def @@ -0,0 +1,20 @@ +type: txt +help: Set network type +syntax:expression: $VAR(@) in "broadcast", "non-broadcast", "point-to-multipoint", "point-to-point"; \ + "Must be (broadcast|non-broadcast|point-to-multipoint|point-to-point)" + +update:expression: "vyatta-vtysh \ + -c \"configure terminal\" \ + -c \"interface $VAR(../../../@) \" \ + -c \"ip ospf network $VAR(@) \"; " + +delete:expression: "vyatta-vtysh \ + -c \"configure terminal \" \ + -c \"interface $VAR(../../../@) \" \ + -c \"no ip ospf network \"; " + +comp_help: possible completions: + broadcast Set broadcast network type + non-broadcast Set non-broadcast network type + point-to-multipoint Set point-to-multipoint network type + point-to-point Set point-to-point network type diff --git a/templates/interfaces/bonding/node.tag/ip/ospf/node.def b/templates/interfaces/bonding/node.tag/ip/ospf/node.def new file mode 100644 index 00000000..1702547a --- /dev/null +++ b/templates/interfaces/bonding/node.tag/ip/ospf/node.def @@ -0,0 +1 @@ +help: Set Open Shortest Path First (OSPF) parameters for specified interface diff --git a/templates/interfaces/bonding/node.tag/ip/ospf/priority/node.def b/templates/interfaces/bonding/node.tag/ip/ospf/priority/node.def new file mode 100644 index 00000000..32321e3b --- /dev/null +++ b/templates/interfaces/bonding/node.tag/ip/ospf/priority/node.def @@ -0,0 +1,12 @@ +type: u32 +help: Set router priority +default: 1 +syntax:expression: $VAR(@) >= 0 && $VAR(@) <= 255; "Must be between 0-255" +update:expression: "vyatta-vtysh \ + -c \"configure terminal\" -c \"interface $VAR(../../../@)\" \ + -c \"ip ospf priority $VAR(@)\"; " +delete:expression: "vyatta-vtysh \ + -c \"configure terminal\" -c \"interface $VAR(../../../@)\" \ + -c \"no ip ospf priority \"; " +comp_help: possible completions: + <0-255> Priority (default 1) diff --git a/templates/interfaces/bonding/node.tag/ip/ospf/retransmit-interval/node.def b/templates/interfaces/bonding/node.tag/ip/ospf/retransmit-interval/node.def new file mode 100644 index 00000000..a325fe38 --- /dev/null +++ b/templates/interfaces/bonding/node.tag/ip/ospf/retransmit-interval/node.def @@ -0,0 +1,12 @@ +type: u32 +help: Set interval between retransmitting lost link state advertisements +default: 5 +syntax:expression: $VAR(@) >= 3 && $VAR(@) <= 65535; "Must be between 3-65535" +update:expression: "vyatta-vtysh \ + -c \"configure terminal\" -c \"interface $VAR(../../../@)\" \ + -c \"ip ospf retransmit-interval $VAR(@)\"; " +delete:expression: "vyatta-vtysh \ + -c \"configure terminal\" -c \"interface $VAR(../../../@)\" \ + -c \"no ip ospf retransmit-interval \"; " +comp_help: possible completions: + <3-65535> Seconds (default 5) diff --git a/templates/interfaces/bonding/node.tag/ip/ospf/transmit-delay/node.def b/templates/interfaces/bonding/node.tag/ip/ospf/transmit-delay/node.def new file mode 100644 index 00000000..2c64ca30 --- /dev/null +++ b/templates/interfaces/bonding/node.tag/ip/ospf/transmit-delay/node.def @@ -0,0 +1,12 @@ +type: u32 +help: Set link state transmit delay +default: 1 +syntax:expression: $VAR(@) >= 1 && $VAR(@) <= 65535; "Must be between 1-65535" +update:expression: "vyatta-vtysh \ + -c \"configure terminal\" -c \"interface $VAR(../../../@)\" \ + -c \"ip ospf transmit-delay $VAR(@)\"; " +delete:expression: "vyatta-vtysh \ + -c \"configure terminal\" -c \"interface $VAR(../../../@)\" \ + -c \"no ip ospf transmit-delay \"; " +comp_help: possible completions: + <1-65535> Seconds (default 1) diff --git a/templates/interfaces/bonding/node.tag/ip/rip/authentication/md5/node.def b/templates/interfaces/bonding/node.tag/ip/rip/authentication/md5/node.def new file mode 100644 index 00000000..8d165fe6 --- /dev/null +++ b/templates/interfaces/bonding/node.tag/ip/rip/authentication/md5/node.def @@ -0,0 +1,8 @@ +tag: +type: u32 +help: Set MD5 authentication key ID +syntax:expression: $VAR(@) >= 1 && $VAR(@) <= 255; \ + "ID must be between 1 and 255" + +commit:expression: $VAR(../plaintext-password/) == "" ; \ + "plaintext-password already set" diff --git a/templates/interfaces/bonding/node.tag/ip/rip/authentication/md5/node.tag/node.def b/templates/interfaces/bonding/node.tag/ip/rip/authentication/md5/node.tag/node.def new file mode 100644 index 00000000..488acd8c --- /dev/null +++ b/templates/interfaces/bonding/node.tag/ip/rip/authentication/md5/node.tag/node.def @@ -0,0 +1 @@ +help: Set authentication password diff --git a/templates/interfaces/bonding/node.tag/ip/rip/authentication/md5/node.tag/password/node.def b/templates/interfaces/bonding/node.tag/ip/rip/authentication/md5/node.tag/password/node.def new file mode 100644 index 00000000..bcebd5ab --- /dev/null +++ b/templates/interfaces/bonding/node.tag/ip/rip/authentication/md5/node.tag/password/node.def @@ -0,0 +1,23 @@ +type: txt +help: Set authentication password +syntax:expression: exec " \ + if [ `echo -n $VAR(@) | wc -c` -gt 16 ]; then \ + echo MD5 key must be 16 characters or less ; \ + exit 1 ; \ + fi ; " + +update:expression: "vyatta-vtysh \ + -c \"configure terminal\" -c \"interface $VAR(../../../../../@)\" \ + -c \"ip rip authentication mode md5\" \ + -c \"ip rip authentication key-chain $VAR(../../../../../@)-rip\" \ + -c \"key chain $VAR(../../../../../@)-rip\" -c \"key $VAR(../@)\" \ + -c \"key-string $VAR(@)\" " + +delete:expression: "vyatta-vtysh --noerror \ + -c \"configure terminal\" -c \"interface $VAR(../../../../../@)\" \ + -c \"no ip rip authentication mode md5\" \ + -c \"no ip rip authentication key-chain $VAR(../../../../../@)-rip\" \ + -c \"no key chain $VAR(../../../../../@)-rip\" " + +comp_help: possible completions: + <text> MD5 Key (16 characters or less) diff --git a/templates/interfaces/bonding/node.tag/ip/rip/authentication/node.def b/templates/interfaces/bonding/node.tag/ip/rip/authentication/node.def new file mode 100644 index 00000000..8756de35 --- /dev/null +++ b/templates/interfaces/bonding/node.tag/ip/rip/authentication/node.def @@ -0,0 +1 @@ +help: Set authentication method diff --git a/templates/interfaces/bonding/node.tag/ip/rip/authentication/plaintext-password/node.def b/templates/interfaces/bonding/node.tag/ip/rip/authentication/plaintext-password/node.def new file mode 100644 index 00000000..e21e5878 --- /dev/null +++ b/templates/interfaces/bonding/node.tag/ip/rip/authentication/plaintext-password/node.def @@ -0,0 +1,22 @@ +type: txt +help: Set plain text password +syntax:expression: exec " \ + if [ `echo -n $VAR(@) | wc -c` -gt 16 ]; then \ + echo Password must be 16 characters or less ; \ + exit 1 ; \ + fi ; " + +commit:expression: $VAR(../md5/) == "" ; "md5 password already set" + +update: vyatta-vtysh \ + -c "configure terminal" -c "interface $VAR(../../../../@)" \ + -c "ip rip authentication mode text" \ + -c "ip rip authentication string $VAR(@)"; + +delete: vyatta-vtysh \ + -c "configure terminal" -c "interface $VAR(../../../../@)" \ + -c "no ip rip authentication mode" \ + -c "no ip rip authentication string $VAR(@)"; + +comp_help: possible completions: + <text> Password (16 characters or less) diff --git a/templates/interfaces/bonding/node.tag/ip/rip/node.def b/templates/interfaces/bonding/node.tag/ip/rip/node.def new file mode 100644 index 00000000..d1f72a5f --- /dev/null +++ b/templates/interfaces/bonding/node.tag/ip/rip/node.def @@ -0,0 +1 @@ +help: Set Routing Information Protocol (RIP) for specified interface diff --git a/templates/interfaces/bonding/node.tag/ip/rip/split-horizon/disable/node.def b/templates/interfaces/bonding/node.tag/ip/rip/split-horizon/disable/node.def new file mode 100644 index 00000000..f40e77d1 --- /dev/null +++ b/templates/interfaces/bonding/node.tag/ip/rip/split-horizon/disable/node.def @@ -0,0 +1,12 @@ +help: Disable split horizon on specified interface +create:expression: "vyatta-vtysh \ + -c \"configure terminal \" \ + -c \"interface $VAR(../../../../@) \" \ + -c \"no ip rip split-horizon \" " + +delete:expression: "vyatta-vtysh \ + -c \"configure terminal \" \ + -c \"interface $VAR(../../../../@) \" \ + -c \"ip rip split-horizon \" " + +commit:expression: ($VAR(../poison-reverse/) == ""); "You cannot have 'split-horizon poison-reverse' enabled with 'split-horizon' disabled for ethernet interface $VAR(../../../../@)" diff --git a/templates/interfaces/bonding/node.tag/ip/rip/split-horizon/node.def b/templates/interfaces/bonding/node.tag/ip/rip/split-horizon/node.def new file mode 100644 index 00000000..ba39b616 --- /dev/null +++ b/templates/interfaces/bonding/node.tag/ip/rip/split-horizon/node.def @@ -0,0 +1 @@ +help: Set to control split horizon parameters on this interface diff --git a/templates/interfaces/bonding/node.tag/ip/rip/split-horizon/poison-reverse/node.def b/templates/interfaces/bonding/node.tag/ip/rip/split-horizon/poison-reverse/node.def new file mode 100644 index 00000000..f608d9c3 --- /dev/null +++ b/templates/interfaces/bonding/node.tag/ip/rip/split-horizon/poison-reverse/node.def @@ -0,0 +1,14 @@ +help: Enable poison reverse for split-horizon +create:expression: "vyatta-vtysh \ + -c \"configure terminal \" \ + -c \"interface $VAR(../../../../@) \" \ + -c \"ip rip split-horizon poisoned-reverse \" " + +delete:expression: "vyatta-vtysh \ + -c \"configure terminal \" \ + -c \"interface $VAR(../../../../@) \" \ + -c \"no ip rip split-horizon \" \ + -c \"ip rip split-horizon \" " + +commit:expression: ($VAR(../disable/) == ""); "You cannot have 'split-horizon poison-reverse' enabled with 'split-horizon' disabled for ethernet interface $VAR(../../../../@)" + diff --git a/templates/interfaces/bonding/node.tag/vif/node.tag/disable-link-detect/node.def b/templates/interfaces/bonding/node.tag/vif/node.tag/disable-link-detect/node.def new file mode 100644 index 00000000..92222182 --- /dev/null +++ b/templates/interfaces/bonding/node.tag/vif/node.tag/disable-link-detect/node.def @@ -0,0 +1,3 @@ +help: Set to ignore link state changes on this interface +update:/opt/vyatta/sbin/vyatta-link-detect "$VAR(../../@).$VAR(../@)" on +delete:/opt/vyatta/sbin/vyatta-link-detect "$VAR(../../@).$VAR(../@)" off diff --git a/templates/interfaces/bonding/node.tag/vif/node.tag/ip/node.def b/templates/interfaces/bonding/node.tag/vif/node.tag/ip/node.def new file mode 100644 index 00000000..92e252e1 --- /dev/null +++ b/templates/interfaces/bonding/node.tag/vif/node.tag/ip/node.def @@ -0,0 +1 @@ +help: Set IPv4 parameters for specified interface diff --git a/templates/interfaces/bonding/node.tag/vif/node.tag/ip/ospf/authentication/md5/key-id/node.def b/templates/interfaces/bonding/node.tag/vif/node.tag/ip/ospf/authentication/md5/key-id/node.def new file mode 100644 index 00000000..54628133 --- /dev/null +++ b/templates/interfaces/bonding/node.tag/vif/node.tag/ip/ospf/authentication/md5/key-id/node.def @@ -0,0 +1,23 @@ +tag: +type: u32 +help: Set MD5 key id +syntax:expression: $VAR(@) >= 1 && $VAR(@) <= 255; "ID must be between (1-255)" +commit:expression: $VAR(md5-key/) != ""; \ + "Must add the md5-key for key-id $VAR(@)" + +delete:expression: "touch /tmp/ospf-md5.$PPID" + +end:expression: "\ + if [ -f \"/tmp/ospf-md5.$PPID\" ]; then \ + vyatta-vtysh -c \"configure terminal\" \ + -c \"interface $VAR(../../../../../../@).$VAR(../../../../../@) \" \ + -c \"no ip ospf message-digest-key $VAR(@)\"; \ + rm /tmp/ospf-md5.$PPID; \ + else \ + vyatta-vtysh -c \"configure terminal\" \ + -c \"interface $VAR(../../../../../../@).$VAR(../../../../../@) \" \ + -c \"ip ospf message-digest-key $VAR(@) md5 $VAR(md5-key/@)\"; \ + fi; " + +comp_help: possible completions: + <1-255> Set the key id diff --git a/templates/interfaces/bonding/node.tag/vif/node.tag/ip/ospf/authentication/md5/key-id/node.tag/md5-key/node.def b/templates/interfaces/bonding/node.tag/vif/node.tag/ip/ospf/authentication/md5/key-id/node.tag/md5-key/node.def new file mode 100644 index 00000000..ef35f7da --- /dev/null +++ b/templates/interfaces/bonding/node.tag/vif/node.tag/ip/ospf/authentication/md5/key-id/node.tag/md5-key/node.def @@ -0,0 +1,9 @@ +type: txt +help: Set MD5 key +syntax:expression: exec " \ + if [ `echo -n $VAR(@) | wc -c` -gt 16 ]; then \ + echo MD5 key must be 16 characters or less ; \ + exit 1 ; \ + fi ; " +comp_help: possible completions: + <text> MD5 Key (16 characters or less) diff --git a/templates/interfaces/bonding/node.tag/vif/node.tag/ip/ospf/authentication/md5/key-id/node.tag/node.def b/templates/interfaces/bonding/node.tag/vif/node.tag/ip/ospf/authentication/md5/key-id/node.tag/node.def new file mode 100644 index 00000000..3d83feec --- /dev/null +++ b/templates/interfaces/bonding/node.tag/vif/node.tag/ip/ospf/authentication/md5/key-id/node.tag/node.def @@ -0,0 +1 @@ +help: Set MD5 key diff --git a/templates/interfaces/bonding/node.tag/vif/node.tag/ip/ospf/authentication/md5/node.def b/templates/interfaces/bonding/node.tag/vif/node.tag/ip/ospf/authentication/md5/node.def new file mode 100644 index 00000000..8f0d87de --- /dev/null +++ b/templates/interfaces/bonding/node.tag/vif/node.tag/ip/ospf/authentication/md5/node.def @@ -0,0 +1,11 @@ +help: Set MD5 key id +update:expression: "vyatta-vtysh \ + -c \"configure terminal\" \ + -c \"interface $VAR(../../../../../@).$VAR(../../../../@) \" \ + -c \"no ip ospf authentication \" \ + -c \"ip ospf authentication message-digest\"; " + +delete:expression: "vyatta-vtysh \ + -c \"configure terminal\" \ + -c \"interface $VAR(../../../../../@).$VAR(../../../../@) \" \ + -c \"no ip ospf authentication \"; " diff --git a/templates/interfaces/bonding/node.tag/vif/node.tag/ip/ospf/authentication/node.def b/templates/interfaces/bonding/node.tag/vif/node.tag/ip/ospf/authentication/node.def new file mode 100644 index 00000000..ff352a01 --- /dev/null +++ b/templates/interfaces/bonding/node.tag/vif/node.tag/ip/ospf/authentication/node.def @@ -0,0 +1,2 @@ +help: Set OSPF interface authentication + diff --git a/templates/interfaces/bonding/node.tag/vif/node.tag/ip/ospf/authentication/plaintext-password/node.def b/templates/interfaces/bonding/node.tag/vif/node.tag/ip/ospf/authentication/plaintext-password/node.def new file mode 100644 index 00000000..0f10b991 --- /dev/null +++ b/templates/interfaces/bonding/node.tag/vif/node.tag/ip/ospf/authentication/plaintext-password/node.def @@ -0,0 +1,23 @@ +type: txt +help: Set plain text password +syntax:expression: exec " \ + if [ `echo -n $VAR(@) | wc -c` -gt 8 ]; then \ + echo Password must be 8 characters or less ; \ + exit 1 ; \ + fi ; " + +update:expression: "vyatta-vtysh \ + -c \"configure terminal\" \ + -c \"interface $VAR(../../../../../@).$VAR(../../../../@) \" \ + -c \"no ip ospf authentication \" \ + -c \"ip ospf authentication \" \ + -c \"ip ospf authentication-key $VAR(@) \"; " + +delete:expression: "vyatta-vtysh \ + -c \"configure terminal\" \ + -c \"interface $VAR(../../../../../@).$VAR(../../../../@) \" \ + -c \"no ip ospf authentication \" \ + -c \"no ip ospf authentication-key \"; " + +comp_help: possible completions: + <text> Plain text password (8 characters or less) diff --git a/templates/interfaces/bonding/node.tag/vif/node.tag/ip/ospf/bandwidth/node.def b/templates/interfaces/bonding/node.tag/vif/node.tag/ip/ospf/bandwidth/node.def new file mode 100644 index 00000000..25ef0e1e --- /dev/null +++ b/templates/interfaces/bonding/node.tag/vif/node.tag/ip/ospf/bandwidth/node.def @@ -0,0 +1,17 @@ +type: u32 +help: Set bandwidth (kilobits/sec) +syntax:expression: $VAR(@) >= 1 && $VAR(@) <= 10000000; \ + "Must be between 1-10000000" + +update:expression: "vyatta-vtysh \ + -c \"configure terminal\" \ + -c \"interface $VAR(../../../../@).$VAR(../../../@)\" \ + -c \"bandwidth $VAR(@) \"; " + +delete:expression: "vyatta-vtysh \ + -c \"configure terminal\" \ + -c \"interface $VAR(../../../../@).$VAR(../../../@)\" \ + -c \"no bandwidth $VAR(@) \"; " + +comp_help: possible completions: + <1-10000000> Set bandwidth in kilobits/sec (for calculating OSPF cost) diff --git a/templates/interfaces/bonding/node.tag/vif/node.tag/ip/ospf/cost/node.def b/templates/interfaces/bonding/node.tag/vif/node.tag/ip/ospf/cost/node.def new file mode 100644 index 00000000..bf48e818 --- /dev/null +++ b/templates/interfaces/bonding/node.tag/vif/node.tag/ip/ospf/cost/node.def @@ -0,0 +1,16 @@ +type: u32 +help: Set interface cost +syntax:expression: $VAR(@) >= 1 && $VAR(@) <= 65535; "Must be between 1-65535" + +update:expression: "vyatta-vtysh \ + -c \"configure terminal\" \ + -c \"interface $VAR(../../../../@).$VAR(../../../@)\" \ + -c \"ip ospf cost $VAR(@) \"; " + +delete:expression: "vyatta-vtysh \ + -c \"configure terminal\" \ + -c \"interface $VAR(../../../../@).$VAR(../../../@)\" \ + -c \"no ip ospf cost \"; " + +comp_help: possible completions: + <1-65535> Set Cost diff --git a/templates/interfaces/bonding/node.tag/vif/node.tag/ip/ospf/dead-interval/node.def b/templates/interfaces/bonding/node.tag/vif/node.tag/ip/ospf/dead-interval/node.def new file mode 100644 index 00000000..2ed57960 --- /dev/null +++ b/templates/interfaces/bonding/node.tag/vif/node.tag/ip/ospf/dead-interval/node.def @@ -0,0 +1,17 @@ +type: u32 +help: Set interval after which a neighbor is declared dead +default: 40 +syntax:expression: $VAR(@) >= 1 && $VAR(@) <= 65535; "Must be between 1-65535" + +update:expression: "vyatta-vtysh \ + -c \"configure terminal\" \ + -c \"interface $VAR(../../../../@).$VAR(../../../@)\" \ + -c \"ip ospf dead-interval $VAR(@)\"; " + +delete:expression: "vyatta-vtysh \ + -c \"configure terminal\" \ + -c \"interface $VAR(../../../../@).$VAR(../../../@)\" \ + -c \"no ip ospf dead-interval \"; " + +comp_help: possible completions: + <1-65535> Seconds (default 40) diff --git a/templates/interfaces/bonding/node.tag/vif/node.tag/ip/ospf/hello-interval/node.def b/templates/interfaces/bonding/node.tag/vif/node.tag/ip/ospf/hello-interval/node.def new file mode 100644 index 00000000..e5a0de68 --- /dev/null +++ b/templates/interfaces/bonding/node.tag/vif/node.tag/ip/ospf/hello-interval/node.def @@ -0,0 +1,17 @@ +type: u32 +help: Set interval between hello packets +default: 10 +syntax:expression: $VAR(@) >= 1 && $VAR(@) <= 65535; "Must be between 1-65535" + +update:expression: "vyatta-vtysh \ + -c \"configure terminal\" \ + -c \"interface $VAR(../../../../@).$VAR(../../../@) \" \ + -c \"ip ospf hello-interval $VAR(@)\"; " + +delete:expression: "vyatta-vtysh \ + -c \"configure terminal\" \ + -c \"interface $VAR(../../../../@).$VAR(../../../@) \" \ + -c \"no ip ospf hello-interval \"; " + +comp_help: possible completions: + <1-65535> Seconds (default 10) diff --git a/templates/interfaces/bonding/node.tag/vif/node.tag/ip/ospf/mtu-ignore/node.def b/templates/interfaces/bonding/node.tag/vif/node.tag/ip/ospf/mtu-ignore/node.def new file mode 100644 index 00000000..8636b767 --- /dev/null +++ b/templates/interfaces/bonding/node.tag/vif/node.tag/ip/ospf/mtu-ignore/node.def @@ -0,0 +1,10 @@ +help: Disable Maximum Transmission Unit (MTU) mismatch detection +create:expression: "vyatta-vtysh \ + -c \"configure terminal\" \ + -c \"interface $VAR(../../../../@).$VAR(../../../@) \" \ + -c \"ip ospf mtu-ignore\"; " + +delete:expression: "vyatta-vtysh \ + -c \"configure terminal\" \ + -c \"interface $VAR(../../../../@).$VAR(../../../@) \" \ + -c \"no ip ospf mtu-ignore\"; " diff --git a/templates/interfaces/bonding/node.tag/vif/node.tag/ip/ospf/network/node.def b/templates/interfaces/bonding/node.tag/vif/node.tag/ip/ospf/network/node.def new file mode 100644 index 00000000..92c0d77d --- /dev/null +++ b/templates/interfaces/bonding/node.tag/vif/node.tag/ip/ospf/network/node.def @@ -0,0 +1,20 @@ +type: txt +help: Set network type +syntax:expression: $VAR(@) in "broadcast", "non-broadcast", "point-to-multipoint", "point-to-point"; \ + "Must be (broadcast|non-broadcast|point-to-multipoint|point-to-point)" + +update:expression: "vyatta-vtysh \ + -c \"configure terminal\" \ + -c \"interface $VAR(../../../../@).$VAR(../../../@) \" \ + -c \"ip ospf network $VAR(@)\"; " + +delete:expression: "vyatta-vtysh \ + -c \"configure terminal\" \ + -c \"interface $VAR(../../../../@).$VAR(../../../@) \" \ + -c \"no ip ospf network \"; " + +comp_help: possible completions: + broadcast Set broadcast network type + non-broadcast Set non-broadcast network type + point-to-multipoint Set point-to-multipoint network type + point-to-point Set point-to-point network type diff --git a/templates/interfaces/bonding/node.tag/vif/node.tag/ip/ospf/node.def b/templates/interfaces/bonding/node.tag/vif/node.tag/ip/ospf/node.def new file mode 100644 index 00000000..1702547a --- /dev/null +++ b/templates/interfaces/bonding/node.tag/vif/node.tag/ip/ospf/node.def @@ -0,0 +1 @@ +help: Set Open Shortest Path First (OSPF) parameters for specified interface diff --git a/templates/interfaces/bonding/node.tag/vif/node.tag/ip/ospf/priority/node.def b/templates/interfaces/bonding/node.tag/vif/node.tag/ip/ospf/priority/node.def new file mode 100644 index 00000000..01db7f60 --- /dev/null +++ b/templates/interfaces/bonding/node.tag/vif/node.tag/ip/ospf/priority/node.def @@ -0,0 +1,17 @@ +type: u32 +help: Set router priority +default: 1 +syntax:expression: $VAR(@) >= 0 && $VAR(@) <= 255; "Must be between 0-255" + +update:expression: "vyatta-vtysh \ + -c \"configure terminal\" \ + -c \"interface $VAR(../../../../@).$VAR(../../../@) \" \ + -c \"ip ospf priority $VAR(@)\"; " + +delete:expression: "vyatta-vtysh \ + -c \"configure terminal\" \ + -c \"interface $VAR(../../../../@).$VAR(../../../@) \" \ + -c \"no ip ospf priority \"; " + +comp_help: possible completions: + <0-255> Priority (default 1) diff --git a/templates/interfaces/bonding/node.tag/vif/node.tag/ip/ospf/retransmit-interval/node.def b/templates/interfaces/bonding/node.tag/vif/node.tag/ip/ospf/retransmit-interval/node.def new file mode 100644 index 00000000..6b3c8e38 --- /dev/null +++ b/templates/interfaces/bonding/node.tag/vif/node.tag/ip/ospf/retransmit-interval/node.def @@ -0,0 +1,17 @@ +type: u32 +help: Set interval between retransmitting lost link state advertisements +default: 5 +syntax:expression: $VAR(@) >= 3 && $VAR(@) <= 65535; "Must be between 3-65535" + +update:expression: "vyatta-vtysh \ + -c \"configure terminal\" \ + -c \"interface $VAR(../../../../@).$VAR(../../../@) \" \ + -c \"ip ospf retransmit-interval $VAR(@) \"; " + +delete:expression: "vyatta-vtysh \ + -c \"configure terminal\" \ + -c \"interface $VAR(../../../../@).$VAR(../../../@) \" \ + -c \"no ip ospf retransmit-interval \"; " + +comp_help: possible completions: + <3-65535> Seconds (default 5) diff --git a/templates/interfaces/bonding/node.tag/vif/node.tag/ip/ospf/transmit-delay/node.def b/templates/interfaces/bonding/node.tag/vif/node.tag/ip/ospf/transmit-delay/node.def new file mode 100644 index 00000000..cbb93986 --- /dev/null +++ b/templates/interfaces/bonding/node.tag/vif/node.tag/ip/ospf/transmit-delay/node.def @@ -0,0 +1,17 @@ +type: u32 +help: Set link state transmit delay +default: 1 +syntax:expression: $VAR(@) >= 1 && $VAR(@) <= 65535; "Must be between 1-65535" + +update:expression: "vyatta-vtysh \ + -c \"configure terminal\" \ + -c \"interface $VAR(../../../../@).$VAR(../../../@) \" \ + -c \"ip ospf transmit-delay $VAR(@) \"; " + +delete:expression: "vyatta-vtysh \ + -c \"configure terminal\" \ + -c \"interface $VAR(../../../../@).$VAR(../../../@) \" \ + -c \"no ip ospf transmit-delay \"; " + +comp_help: possible completions: + <1-65535> Seconds (default 1) diff --git a/templates/interfaces/bonding/node.tag/vif/node.tag/ip/rip/authentication/md5/node.def b/templates/interfaces/bonding/node.tag/vif/node.tag/ip/rip/authentication/md5/node.def new file mode 100644 index 00000000..8d165fe6 --- /dev/null +++ b/templates/interfaces/bonding/node.tag/vif/node.tag/ip/rip/authentication/md5/node.def @@ -0,0 +1,8 @@ +tag: +type: u32 +help: Set MD5 authentication key ID +syntax:expression: $VAR(@) >= 1 && $VAR(@) <= 255; \ + "ID must be between 1 and 255" + +commit:expression: $VAR(../plaintext-password/) == "" ; \ + "plaintext-password already set" diff --git a/templates/interfaces/bonding/node.tag/vif/node.tag/ip/rip/authentication/md5/node.tag/node.def b/templates/interfaces/bonding/node.tag/vif/node.tag/ip/rip/authentication/md5/node.tag/node.def new file mode 100644 index 00000000..488acd8c --- /dev/null +++ b/templates/interfaces/bonding/node.tag/vif/node.tag/ip/rip/authentication/md5/node.tag/node.def @@ -0,0 +1 @@ +help: Set authentication password diff --git a/templates/interfaces/bonding/node.tag/vif/node.tag/ip/rip/authentication/md5/node.tag/password/node.def b/templates/interfaces/bonding/node.tag/vif/node.tag/ip/rip/authentication/md5/node.tag/password/node.def new file mode 100644 index 00000000..73aa92d2 --- /dev/null +++ b/templates/interfaces/bonding/node.tag/vif/node.tag/ip/rip/authentication/md5/node.tag/password/node.def @@ -0,0 +1,29 @@ +type: txt +help: Set authentication password +syntax:expression: exec " \ + if [ `echo -n $VAR(@) | wc -c` -gt 16 ]; then \ + echo MD5 key must be 16 characters or less ; \ + exit 1 ; \ + fi ; " + +update:expression: "vyatta-vtysh \ + -c \"configure terminal \" \ + -c \"interface $VAR(../../../../../../@).$VAR(../../../../../@) \" \ + -c \"ip rip authentication mode md5 \" \ + -c \"ip rip authentication \ + key-chain $VAR(../../../../../../@).$VAR(../../../../../@)-rip \" \ + -c \"key chain $VAR(../../../../../../@).$VAR(../../../../../@)-rip \" \ + -c \"key $VAR(../@) \" \ + -c \"key-string $VAR(@) \" " + +delete:expression: "vyatta-vtysh --noerror \ + -c \"configure terminal \" \ + -c \"interface $VAR(../../../../../../@).$VAR(../../../../../@) \" \ + -c \"no ip rip authentication mode md5 \" \ + -c \"no ip rip authentication key-chain \ + $VAR(../../../../../../@).$VAR(../../../../../@)-rip \" \ + -c \"no \ + key chain $VAR(../../../../../../@).$VAR(../../../../../@)-rip\" " + +comp_help: possible completions: + <text> MD5 Key (16 characters or less) diff --git a/templates/interfaces/bonding/node.tag/vif/node.tag/ip/rip/authentication/node.def b/templates/interfaces/bonding/node.tag/vif/node.tag/ip/rip/authentication/node.def new file mode 100644 index 00000000..8756de35 --- /dev/null +++ b/templates/interfaces/bonding/node.tag/vif/node.tag/ip/rip/authentication/node.def @@ -0,0 +1 @@ +help: Set authentication method diff --git a/templates/interfaces/bonding/node.tag/vif/node.tag/ip/rip/authentication/plaintext-password/node.def b/templates/interfaces/bonding/node.tag/vif/node.tag/ip/rip/authentication/plaintext-password/node.def new file mode 100644 index 00000000..acf34ef9 --- /dev/null +++ b/templates/interfaces/bonding/node.tag/vif/node.tag/ip/rip/authentication/plaintext-password/node.def @@ -0,0 +1,24 @@ +type: txt +help: Plain text password +syntax:expression: exec " \ + if [ `echo -n $VAR(@) | wc -c` -gt 16 ]; then \ + echo Password must be 16 characters or less ; \ + exit 1 ; \ + fi ; " + +commit:expression: $VAR(../md5/) == "" ; "md5 password already set" + +update: vyatta-vtysh \ + -c "configure terminal" \ + -c "interface $VAR(../../../../../@).$VAR(../../../../@)" \ + -c "ip rip authentication mode text" \ + -c "ip rip authentication string $VAR(@)" + +delete: vyatta-vtysh \ + -c "configure terminal" \ + -c "interface $VAR(../../../../../@).$VAR(../../../../@)" \ + -c "no ip rip authentication mode" \ + -c "no ip rip authentication string $VAR(@)" + +comp_help: possible completions: + <text> Plain text password (16 characters or less) diff --git a/templates/interfaces/bonding/node.tag/vif/node.tag/ip/rip/node.def b/templates/interfaces/bonding/node.tag/vif/node.tag/ip/rip/node.def new file mode 100644 index 00000000..793075b4 --- /dev/null +++ b/templates/interfaces/bonding/node.tag/vif/node.tag/ip/rip/node.def @@ -0,0 +1 @@ +help: Set Routing Inforamtion Protocol (RIP) parameters for specified interface diff --git a/templates/interfaces/bonding/node.tag/vif/node.tag/ip/rip/split-horizon/disable/node.def b/templates/interfaces/bonding/node.tag/vif/node.tag/ip/rip/split-horizon/disable/node.def new file mode 100644 index 00000000..d38e883e --- /dev/null +++ b/templates/interfaces/bonding/node.tag/vif/node.tag/ip/rip/split-horizon/disable/node.def @@ -0,0 +1,13 @@ +help: Disable split horizon on specified interface +create:expression: "vyatta-vtysh \ + -c \"configure terminal \" \ + -c \"interface $VAR(../../../../../@).$VAR(../../../../@) \" \ + -c \"no ip rip split-horizon \" " + +delete:expression: "vyatta-vtysh \ + -c \"configure terminal \" \ + -c \"interface $VAR(../../../../../@).$VAR(../../../../@) \" \ + -c \"ip rip split-horizon \" " + +commit:expression: ($VAR(../poison-reverse/) == ""); "You cannot have 'split-horizon poison-reverse' enabled with 'split-horizon' disabled for ethernet Virtual InterFace $VAR(../../../../@)" + diff --git a/templates/interfaces/bonding/node.tag/vif/node.tag/ip/rip/split-horizon/node.def b/templates/interfaces/bonding/node.tag/vif/node.tag/ip/rip/split-horizon/node.def new file mode 100644 index 00000000..ba39b616 --- /dev/null +++ b/templates/interfaces/bonding/node.tag/vif/node.tag/ip/rip/split-horizon/node.def @@ -0,0 +1 @@ +help: Set to control split horizon parameters on this interface diff --git a/templates/interfaces/bonding/node.tag/vif/node.tag/ip/rip/split-horizon/poison-reverse/node.def b/templates/interfaces/bonding/node.tag/vif/node.tag/ip/rip/split-horizon/poison-reverse/node.def new file mode 100644 index 00000000..24b76c23 --- /dev/null +++ b/templates/interfaces/bonding/node.tag/vif/node.tag/ip/rip/split-horizon/poison-reverse/node.def @@ -0,0 +1,12 @@ +help: Enable split-horizon with poison reverse +create:expression: "vyatta-vtysh \ + -c \"configure terminal \" \ + -c \"interface $VAR(../../../../../@).$VAR(../../../../@) \" \ + -c \"ip rip split-horizon poisoned-reverse \" " + +delete:expression: "vyatta-vtysh \ + -c \"configure terminal \" \ + -c \"interface $VAR(../../../../../@).$VAR(../../../../@) \" \ + -c \"no ip rip split-horizon\" -c \"ip rip split-horizon \" " +commit:expression: ($VAR(../disable/) == ""); "You cannot have 'split-horizon poison-reverse' enabled with 'split-horizon' disabled for ethernet Virtual InterFace $VAR(../../../../@)" + diff --git a/templates/interfaces/bonding/node.tag/vif/node.tag/pppoe/node.tag/ip/node.def b/templates/interfaces/bonding/node.tag/vif/node.tag/pppoe/node.tag/ip/node.def new file mode 100644 index 00000000..624c74dc --- /dev/null +++ b/templates/interfaces/bonding/node.tag/vif/node.tag/pppoe/node.tag/ip/node.def @@ -0,0 +1 @@ +help: Set interface IPv4 parameters diff --git a/templates/interfaces/bonding/node.tag/vif/node.tag/pppoe/node.tag/ip/ospf/authentication/md5/key-id/node.def b/templates/interfaces/bonding/node.tag/vif/node.tag/pppoe/node.tag/ip/ospf/authentication/md5/key-id/node.def new file mode 100644 index 00000000..1b70a938 --- /dev/null +++ b/templates/interfaces/bonding/node.tag/vif/node.tag/pppoe/node.tag/ip/ospf/authentication/md5/key-id/node.def @@ -0,0 +1,23 @@ +tag: +type: u32 +help: Set MD5 key id +syntax:expression: $VAR(@) >= 1 && $VAR(@) <= 255; "ID must be between (1-255)" +commit:expression: $VAR(md5-key/) != ""; \ + "Must add the md5-key for key-id $VAR(@)" + +delete:expression: "touch /tmp/ospf-md5.$PPID" + +end:expression: "\ + if [ -f \"/tmp/ospf-md5.$PPID\" ]; then \ + vyatta-vtysh -c \"configure terminal\" \ + -c \"interface pppoe$VAR(../../../../../@) \" \ + -c \"no ip ospf message-digest-key $VAR(@)\"; \ + rm /tmp/ospf-md5.$PPID; \ + else \ + vyatta-vtysh -c \"configure terminal\" \ + -c \"interface pppoe$VAR(../../../../../@) \" \ + -c \"ip ospf message-digest-key $VAR(@) md5 $VAR(md5-key/@)\"; \ + fi; " + +comp_help: possible completions: + <1-255> Set the key id diff --git a/templates/interfaces/bonding/node.tag/vif/node.tag/pppoe/node.tag/ip/ospf/authentication/md5/key-id/node.tag/md5-key/node.def b/templates/interfaces/bonding/node.tag/vif/node.tag/pppoe/node.tag/ip/ospf/authentication/md5/key-id/node.tag/md5-key/node.def new file mode 100644 index 00000000..ef35f7da --- /dev/null +++ b/templates/interfaces/bonding/node.tag/vif/node.tag/pppoe/node.tag/ip/ospf/authentication/md5/key-id/node.tag/md5-key/node.def @@ -0,0 +1,9 @@ +type: txt +help: Set MD5 key +syntax:expression: exec " \ + if [ `echo -n $VAR(@) | wc -c` -gt 16 ]; then \ + echo MD5 key must be 16 characters or less ; \ + exit 1 ; \ + fi ; " +comp_help: possible completions: + <text> MD5 Key (16 characters or less) diff --git a/templates/interfaces/bonding/node.tag/vif/node.tag/pppoe/node.tag/ip/ospf/authentication/md5/key-id/node.tag/node.def b/templates/interfaces/bonding/node.tag/vif/node.tag/pppoe/node.tag/ip/ospf/authentication/md5/key-id/node.tag/node.def new file mode 100644 index 00000000..d14a2583 --- /dev/null +++ b/templates/interfaces/bonding/node.tag/vif/node.tag/pppoe/node.tag/ip/ospf/authentication/md5/key-id/node.tag/node.def @@ -0,0 +1 @@ +help: Set md5 key diff --git a/templates/interfaces/bonding/node.tag/vif/node.tag/pppoe/node.tag/ip/ospf/authentication/md5/node.def b/templates/interfaces/bonding/node.tag/vif/node.tag/pppoe/node.tag/ip/ospf/authentication/md5/node.def new file mode 100644 index 00000000..2814e66b --- /dev/null +++ b/templates/interfaces/bonding/node.tag/vif/node.tag/pppoe/node.tag/ip/ospf/authentication/md5/node.def @@ -0,0 +1,11 @@ +help: Set MD5 key id +update:expression: "vyatta-vtysh \ + -c \"configure terminal\" \ + -c \"interface pppoe$VAR(../../../../@) \" \ + -c \"no ip ospf authentication \" \ + -c \"ip ospf authentication message-digest\"; " + +delete:expression: "vyatta-vtysh \ + -c \"configure terminal\" \ + -c \"interface pppoe$VAR(../../../../@) \" \ + -c \"no ip ospf authentication \"; " diff --git a/templates/interfaces/bonding/node.tag/vif/node.tag/pppoe/node.tag/ip/ospf/authentication/node.def b/templates/interfaces/bonding/node.tag/vif/node.tag/pppoe/node.tag/ip/ospf/authentication/node.def new file mode 100644 index 00000000..ff352a01 --- /dev/null +++ b/templates/interfaces/bonding/node.tag/vif/node.tag/pppoe/node.tag/ip/ospf/authentication/node.def @@ -0,0 +1,2 @@ +help: Set OSPF interface authentication + diff --git a/templates/interfaces/bonding/node.tag/vif/node.tag/pppoe/node.tag/ip/ospf/authentication/plaintext-password/node.def b/templates/interfaces/bonding/node.tag/vif/node.tag/pppoe/node.tag/ip/ospf/authentication/plaintext-password/node.def new file mode 100644 index 00000000..f8432137 --- /dev/null +++ b/templates/interfaces/bonding/node.tag/vif/node.tag/pppoe/node.tag/ip/ospf/authentication/plaintext-password/node.def @@ -0,0 +1,23 @@ +type: txt +help: Set plain text password +syntax:expression: exec " \ + if [ `echo -n $VAR(@) | wc -c` -gt 8 ]; then \ + echo Password must be 8 characters or less ; \ + exit 1 ; \ + fi ; " + +update:expression: "vyatta-vtysh \ + -c \"configure terminal\" \ + -c \"interface pppoe$VAR(../../../../@) \" \ + -c \"no ip ospf authentication \" \ + -c \"ip ospf authentication \" \ + -c \"ip ospf authentication-key $VAR(@) \"; " + +delete:expression: "vyatta-vtysh \ + -c \"configure terminal\" \ + -c \"interface pppoe$VAR(../../../../@) \" \ + -c \"no ip ospf authentication \" \ + -c \"no ip ospf authentication-key \"; " + +comp_help: possible completions: + <text> Plain text password (8 characters or less) diff --git a/templates/interfaces/bonding/node.tag/vif/node.tag/pppoe/node.tag/ip/ospf/bandwidth/node.def b/templates/interfaces/bonding/node.tag/vif/node.tag/pppoe/node.tag/ip/ospf/bandwidth/node.def new file mode 100644 index 00000000..c2660d09 --- /dev/null +++ b/templates/interfaces/bonding/node.tag/vif/node.tag/pppoe/node.tag/ip/ospf/bandwidth/node.def @@ -0,0 +1,16 @@ +type: u32 +help: Set bandwidth in kilobits/sec +syntax:expression: $VAR(@) >= 1 && $VAR(@) <= 10000000; \ + "Must be between 1-10000000" +update:expression: "vyatta-vtysh \ + -c \"configure terminal \" \ + -c \"interface pppoe$VAR(../../../@) \" \ + -c \"bandwidth $VAR(@) \"; " + +delete:expression: "vyatta-vtysh \ + -c \"configure terminal \" \ + -c \"interface pppoe$VAR(../../../@) \" \ + -c \"no bandwidth $VAR(@) \"; " + +comp_help: possible completions: + <1-10000000> Set bandwidth in kilobits/sec (for calculating OSPF cost) diff --git a/templates/interfaces/bonding/node.tag/vif/node.tag/pppoe/node.tag/ip/ospf/cost/node.def b/templates/interfaces/bonding/node.tag/vif/node.tag/pppoe/node.tag/ip/ospf/cost/node.def new file mode 100644 index 00000000..f9459d6a --- /dev/null +++ b/templates/interfaces/bonding/node.tag/vif/node.tag/pppoe/node.tag/ip/ospf/cost/node.def @@ -0,0 +1,11 @@ +type: u32 +help: Set interface cost +syntax:expression: $VAR(@) >= 1 && $VAR(@) <= 65535; "Must be between 1-65535" +update:expression: "vyatta-vtysh -c \"configure terminal\" \ + -c \"interface pppoe$VAR(../../../@)\" \ + -c \"ip ospf cost $VAR(@) \"; " +delete:expression: "vyatta-vtysh -c \"configure terminal\" \ + -c \"interface pppoe$VAR(../../../@)\" \ + -c \"no ip ospf cost \"; " +comp_help: possible completions: + <1-65535> Set Cost diff --git a/templates/interfaces/bonding/node.tag/vif/node.tag/pppoe/node.tag/ip/ospf/dead-interval/node.def b/templates/interfaces/bonding/node.tag/vif/node.tag/pppoe/node.tag/ip/ospf/dead-interval/node.def new file mode 100644 index 00000000..8edaca26 --- /dev/null +++ b/templates/interfaces/bonding/node.tag/vif/node.tag/pppoe/node.tag/ip/ospf/dead-interval/node.def @@ -0,0 +1,12 @@ +type: u32 +help: Set interval after which a neighbor is declared dead +default: 40 +syntax:expression: $VAR(@) >= 1 && $VAR(@) <= 65535; "Must be between 1-65535" +update:expression: "vyatta-vtysh \ + -c \"configure terminal\" -c \"interface pppoe$VAR(../../../@)\" \ + -c \"ip ospf dead-interval $VAR(@)\"; " +delete:expression: "vyatta-vtysh \ + -c \"configure terminal\" -c \"interface pppoe$VAR(../../../@)\" \ + -c \"no ip ospf dead-interval \"; " +comp_help: possible completions: + <1-65535> Seconds (default 40) diff --git a/templates/interfaces/bonding/node.tag/vif/node.tag/pppoe/node.tag/ip/ospf/hello-interval/node.def b/templates/interfaces/bonding/node.tag/vif/node.tag/pppoe/node.tag/ip/ospf/hello-interval/node.def new file mode 100644 index 00000000..93e2d7a1 --- /dev/null +++ b/templates/interfaces/bonding/node.tag/vif/node.tag/pppoe/node.tag/ip/ospf/hello-interval/node.def @@ -0,0 +1,12 @@ +type: u32 +help: Set interval between HELLO packets +default: 10 +syntax:expression: $VAR(@) >= 1 && $VAR(@) <= 65535; "Must be between 1-65535" +update:expression: "vyatta-vtysh \ + -c \"configure terminal\" -c \"interface pppoe$VAR(../../../@) \" \ + -c \"ip ospf hello-interval $VAR(@)\"; " +delete:expression: "vyatta-vtysh \ + -c \"configure terminal\" -c \"interface pppoe$VAR(../../../@) \" \ + -c \"no ip ospf hello-interval \"; " +comp_help: possible completions: + <1-65535> Seconds (default 10) diff --git a/templates/interfaces/bonding/node.tag/vif/node.tag/pppoe/node.tag/ip/ospf/mtu-ignore/node.def b/templates/interfaces/bonding/node.tag/vif/node.tag/pppoe/node.tag/ip/ospf/mtu-ignore/node.def new file mode 100644 index 00000000..966566a4 --- /dev/null +++ b/templates/interfaces/bonding/node.tag/vif/node.tag/pppoe/node.tag/ip/ospf/mtu-ignore/node.def @@ -0,0 +1,10 @@ +help: Disable Maximum Transmission Unit (MTU) mismatch detection +create:expression: "vyatta-vtysh \ + -c \"configure terminal\" \ + -c \"interface pppoe$VAR(../../../@)\" \ + -c \"ip ospf mtu-ignore\"; " + +delete:expression: "vyatta-vtysh \ + -c \"configure terminal\" \ + -c \"interface pppoe$VAR(../../../@)\" \ + -c \"no ip ospf mtu-ignore\"; " diff --git a/templates/interfaces/bonding/node.tag/vif/node.tag/pppoe/node.tag/ip/ospf/network/node.def b/templates/interfaces/bonding/node.tag/vif/node.tag/pppoe/node.tag/ip/ospf/network/node.def new file mode 100644 index 00000000..132c663a --- /dev/null +++ b/templates/interfaces/bonding/node.tag/vif/node.tag/pppoe/node.tag/ip/ospf/network/node.def @@ -0,0 +1,20 @@ +type: txt +help: Set network type +syntax:expression: $VAR(@) in "broadcast", "non-broadcast", "point-to-multipoint", "point-to-point"; \ + "Must be (broadcast|non-broadcast|point-to-multipoint|point-to-point)" + +update:expression: "vyatta-vtysh \ + -c \"configure terminal\" \ + -c \"interface pppoe$VAR(../../../@) \" \ + -c \"ip ospf network $VAR(@) \"; " + +delete:expression: "vyatta-vtysh \ + -c \"configure terminal \" \ + -c \"interface pppoe$VAR(../../../@) \" \ + -c \"no ip ospf network \"; " + +comp_help: possible completions: + broadcast Set broadcast network type + non-broadcast Set non-broadcast network type + point-to-multipoint Set point-to-multipoint network type + point-to-point Set point-to-point network type diff --git a/templates/interfaces/bonding/node.tag/vif/node.tag/pppoe/node.tag/ip/ospf/node.def b/templates/interfaces/bonding/node.tag/vif/node.tag/pppoe/node.tag/ip/ospf/node.def new file mode 100644 index 00000000..1702547a --- /dev/null +++ b/templates/interfaces/bonding/node.tag/vif/node.tag/pppoe/node.tag/ip/ospf/node.def @@ -0,0 +1 @@ +help: Set Open Shortest Path First (OSPF) parameters for specified interface diff --git a/templates/interfaces/bonding/node.tag/vif/node.tag/pppoe/node.tag/ip/ospf/priority/node.def b/templates/interfaces/bonding/node.tag/vif/node.tag/pppoe/node.tag/ip/ospf/priority/node.def new file mode 100644 index 00000000..acc84ac0 --- /dev/null +++ b/templates/interfaces/bonding/node.tag/vif/node.tag/pppoe/node.tag/ip/ospf/priority/node.def @@ -0,0 +1,12 @@ +type: u32 +help: Set router priority +default: 1 +syntax:expression: $VAR(@) >= 0 && $VAR(@) <= 255; "Must be between 0-255" +update:expression: "vyatta-vtysh \ + -c \"configure terminal\" -c \"interface pppoe$VAR(../../../@)\" \ + -c \"ip ospf priority $VAR(@)\"; " +delete:expression: "vyatta-vtysh \ + -c \"configure terminal\" -c \"interface pppoe$VAR(../../../@)\" \ + -c \"no ip ospf priority \"; " +comp_help: possible completions: + <0-255> Priority (default 1) diff --git a/templates/interfaces/bonding/node.tag/vif/node.tag/pppoe/node.tag/ip/ospf/retransmit-interval/node.def b/templates/interfaces/bonding/node.tag/vif/node.tag/pppoe/node.tag/ip/ospf/retransmit-interval/node.def new file mode 100644 index 00000000..92884596 --- /dev/null +++ b/templates/interfaces/bonding/node.tag/vif/node.tag/pppoe/node.tag/ip/ospf/retransmit-interval/node.def @@ -0,0 +1,12 @@ +type: u32 +help: Set interval between retransmitting lost link state advertisements +default: 5 +syntax:expression: $VAR(@) >= 3 && $VAR(@) <= 65535; "Must be between 3-65535" +update:expression: "vyatta-vtysh \ + -c \"configure terminal\" -c \"interface pppoe$VAR(../../../@)\" \ + -c \"ip ospf retransmit-interval $VAR(@)\"; " +delete:expression: "vyatta-vtysh \ + -c \"configure terminal\" -c \"interface pppoe$VAR(../../../@)\" \ + -c \"no ip ospf retransmit-interval \"; " +comp_help: possible completions: + <3-65535> Seconds (default 5) diff --git a/templates/interfaces/bonding/node.tag/vif/node.tag/pppoe/node.tag/ip/ospf/transmit-delay/node.def b/templates/interfaces/bonding/node.tag/vif/node.tag/pppoe/node.tag/ip/ospf/transmit-delay/node.def new file mode 100644 index 00000000..78fd0e10 --- /dev/null +++ b/templates/interfaces/bonding/node.tag/vif/node.tag/pppoe/node.tag/ip/ospf/transmit-delay/node.def @@ -0,0 +1,12 @@ +type: u32 +help: Set link state transmit delay +default: 1 +syntax:expression: $VAR(@) >= 1 && $VAR(@) <= 65535; "Must be between 1-65535" +update:expression: "vyatta-vtysh \ + -c \"configure terminal\" -c \"interface pppoe$VAR(../../../@)\" \ + -c \"ip ospf transmit-delay $VAR(@)\"; " +delete:expression: "vyatta-vtysh \ + -c \"configure terminal\" -c \"interface pppoe$VAR(../../../@)\" \ + -c \"no ip ospf transmit-delay \"; " +comp_help: possible completions: + <1-65535> Seconds (default 1) diff --git a/templates/interfaces/bonding/node.tag/vif/node.tag/pppoe/node.tag/ip/rip/authentication/md5/node.def b/templates/interfaces/bonding/node.tag/vif/node.tag/pppoe/node.tag/ip/rip/authentication/md5/node.def new file mode 100644 index 00000000..e1819c01 --- /dev/null +++ b/templates/interfaces/bonding/node.tag/vif/node.tag/pppoe/node.tag/ip/rip/authentication/md5/node.def @@ -0,0 +1,5 @@ +tag: +type: u32 +help: Set MD5 authentication key ID +syntax:expression: $VAR(@) >= 1 && $VAR(@) <= 255; "ID must be between 1 and 255" + diff --git a/templates/interfaces/bonding/node.tag/vif/node.tag/pppoe/node.tag/ip/rip/authentication/md5/node.tag/node.def b/templates/interfaces/bonding/node.tag/vif/node.tag/pppoe/node.tag/ip/rip/authentication/md5/node.tag/node.def new file mode 100644 index 00000000..488acd8c --- /dev/null +++ b/templates/interfaces/bonding/node.tag/vif/node.tag/pppoe/node.tag/ip/rip/authentication/md5/node.tag/node.def @@ -0,0 +1 @@ +help: Set authentication password diff --git a/templates/interfaces/bonding/node.tag/vif/node.tag/pppoe/node.tag/ip/rip/authentication/md5/node.tag/password/node.def b/templates/interfaces/bonding/node.tag/vif/node.tag/pppoe/node.tag/ip/rip/authentication/md5/node.tag/password/node.def new file mode 100644 index 00000000..c7b1cfe5 --- /dev/null +++ b/templates/interfaces/bonding/node.tag/vif/node.tag/pppoe/node.tag/ip/rip/authentication/md5/node.tag/password/node.def @@ -0,0 +1,23 @@ +type: txt +help: Set authentication password +syntax:expression: exec " \ + if [ `echo -n $VAR(@) | wc -c` -gt 16 ]; then \ + echo MD5 key must be 16 characters or less ; \ + exit 1 ; \ + fi ; " + +update:expression: "vyatta-vtysh \ + -c \"configure terminal\" -c \"interface pppoe$VAR(../../../../../@)\" \ + -c \"ip rip authentication mode md5\" \ + -c \"ip rip authentication key-chain pppoe$VAR(../../../../../@)-rip\" \ + -c \"key chain pppoe$VAR(../../../../../@)-rip\" -c \"key $VAR(../@)\" \ + -c \"key-string $VAR(@)\" " + +delete:expression: "vyatta-vtysh --noerror \ + -c \"configure terminal\" -c \"interface pppoe$VAR(../../../../../@)\" \ + -c \"no ip rip authentication mode md5\" \ + -c \"no ip rip authentication key-chain pppoe$VAR(../../../../../@)-rip\" \ + -c \"no key chain pppoe$VAR(../../../../../@)-rip\" " + +comp_help: possible completions: + <text> MD5 Key (16 characters or less) diff --git a/templates/interfaces/bonding/node.tag/vif/node.tag/pppoe/node.tag/ip/rip/authentication/node.def b/templates/interfaces/bonding/node.tag/vif/node.tag/pppoe/node.tag/ip/rip/authentication/node.def new file mode 100644 index 00000000..8756de35 --- /dev/null +++ b/templates/interfaces/bonding/node.tag/vif/node.tag/pppoe/node.tag/ip/rip/authentication/node.def @@ -0,0 +1 @@ +help: Set authentication method diff --git a/templates/interfaces/bonding/node.tag/vif/node.tag/pppoe/node.tag/ip/rip/authentication/plaintext-password/node.def b/templates/interfaces/bonding/node.tag/vif/node.tag/pppoe/node.tag/ip/rip/authentication/plaintext-password/node.def new file mode 100644 index 00000000..9d147205 --- /dev/null +++ b/templates/interfaces/bonding/node.tag/vif/node.tag/pppoe/node.tag/ip/rip/authentication/plaintext-password/node.def @@ -0,0 +1,20 @@ +type: txt +help: Set plain text password +syntax:expression: exec " \ + if [ `echo -n $VAR(@) | wc -c` -gt 16 ]; then \ + echo Password must be 16 characters or less ; \ + exit 1 ; \ + fi ; " + +update:expression: "vyatta-vtysh \ + -c \"configure terminal\" -c \"interface pppoe$VAR(../../../../@)\" \ + -c \"ip rip authentication mode text\" \ + -c \"ip rip authentication string $VAR(@)\"; " + +delete:expression: "vyatta-vtysh \ + -c \"configure terminal\" -c \"interface pppoe$VAR(../../../../@)\" \ + -c \"no ip rip authentication mode\" \ + -c \"no ip rip authentication string $VAR(@)\"; " + +comp_help: possible completions: + <text> Password (16 characters or less) diff --git a/templates/interfaces/bonding/node.tag/vif/node.tag/pppoe/node.tag/ip/rip/node.def b/templates/interfaces/bonding/node.tag/vif/node.tag/pppoe/node.tag/ip/rip/node.def new file mode 100644 index 00000000..3ec8041e --- /dev/null +++ b/templates/interfaces/bonding/node.tag/vif/node.tag/pppoe/node.tag/ip/rip/node.def @@ -0,0 +1 @@ +help: Set Routing Information Protocol (RIP) parameters for specified interface diff --git a/templates/interfaces/bonding/node.tag/vif/node.tag/pppoe/node.tag/ip/rip/split-horizon/disable/node.def b/templates/interfaces/bonding/node.tag/vif/node.tag/pppoe/node.tag/ip/rip/split-horizon/disable/node.def new file mode 100644 index 00000000..1ca1dd11 --- /dev/null +++ b/templates/interfaces/bonding/node.tag/vif/node.tag/pppoe/node.tag/ip/rip/split-horizon/disable/node.def @@ -0,0 +1,13 @@ +help: Disable split horizon on specified interface +create:expression: "vyatta-vtysh \ + -c \"configure terminal \" \ + -c \"interface $VAR(../../../../@) \" \ + -c \"no ip rip split-horizon \" " + +delete:expression: "vyatta-vtysh \ + -c \"configure terminal \" \ + -c \"interface $VAR(../../../../@) \" \ + -c \"ip rip split-horizon \" " + +commit:expression: ($VAR(../poison-reverse/) == ""); "You cannot have 'split-horizon poison-reverse' enabled with 'split-horizon' disabled for PPPoE interface $VAR(../../../../@)" + diff --git a/templates/interfaces/bonding/node.tag/vif/node.tag/pppoe/node.tag/ip/rip/split-horizon/node.def b/templates/interfaces/bonding/node.tag/vif/node.tag/pppoe/node.tag/ip/rip/split-horizon/node.def new file mode 100644 index 00000000..ba39b616 --- /dev/null +++ b/templates/interfaces/bonding/node.tag/vif/node.tag/pppoe/node.tag/ip/rip/split-horizon/node.def @@ -0,0 +1 @@ +help: Set to control split horizon parameters on this interface diff --git a/templates/interfaces/bonding/node.tag/vif/node.tag/pppoe/node.tag/ip/rip/split-horizon/poison-reverse/node.def b/templates/interfaces/bonding/node.tag/vif/node.tag/pppoe/node.tag/ip/rip/split-horizon/poison-reverse/node.def new file mode 100644 index 00000000..76b03e21 --- /dev/null +++ b/templates/interfaces/bonding/node.tag/vif/node.tag/pppoe/node.tag/ip/rip/split-horizon/poison-reverse/node.def @@ -0,0 +1,13 @@ +help: Enable split-horizon with poison reverse +create:expression: "vyatta-vtysh \ + -c \"configure terminal \" \ + -c \"interface pppoe$VAR(../../../../@) \" \ + -c \"ip rip split-horizon poisoned-reverse \" " + +delete:expression: "vyatta-vtysh \ + -c \"configure terminal \" \ + -c \"interface pppoe$VAR(../../../../@) \" \ + -c \"no ip rip split-horizon \" \ + -c \"ip rip split-horizon \" " +commit:expression: ($VAR(../disable/) == ""); "You cannot have 'split-horizon poison-reverse' enabled with 'split-horizon' disabled for PPPoE interface $VAR(../../../../@)" + diff --git a/templates/interfaces/bridge/node.tag/disable-link-detect/node.def b/templates/interfaces/bridge/node.tag/disable-link-detect/node.def new file mode 100644 index 00000000..83858ec1 --- /dev/null +++ b/templates/interfaces/bridge/node.tag/disable-link-detect/node.def @@ -0,0 +1,3 @@ +help: Set to ignore link state changes on this interface +update:/opt/vyatta/sbin/vyatta-link-detect $VAR(../@) on +delete:/opt/vyatta/sbin/vyatta-link-detect $VAR(../@) off diff --git a/templates/interfaces/bridge/node.tag/ip/node.def b/templates/interfaces/bridge/node.tag/ip/node.def new file mode 100644 index 00000000..92e252e1 --- /dev/null +++ b/templates/interfaces/bridge/node.tag/ip/node.def @@ -0,0 +1 @@ +help: Set IPv4 parameters for specified interface diff --git a/templates/interfaces/bridge/node.tag/ip/ospf/authentication/md5/key-id/node.def b/templates/interfaces/bridge/node.tag/ip/ospf/authentication/md5/key-id/node.def new file mode 100644 index 00000000..0d156a55 --- /dev/null +++ b/templates/interfaces/bridge/node.tag/ip/ospf/authentication/md5/key-id/node.def @@ -0,0 +1,23 @@ +tag: +type: u32 +help: Set MD5 key id +syntax:expression: $VAR(@) >= 1 && $VAR(@) <= 255; "ID must be between (1-255)" +commit:expression: $VAR(md5-key/) != ""; \ + "Must add the md5-key for key-id $VAR(@)" + +delete:expression: "touch /tmp/ospf-md5.$PPID" + +end:expression: "\ + if [ -f \"/tmp/ospf-md5.$PPID\" ]; then \ + vyatta-vtysh -c \"configure terminal\" \ + -c \"interface $VAR(../../../../../@) \" \ + -c \"no ip ospf message-digest-key $VAR(@)\"; \ + rm /tmp/ospf-md5.$PPID; \ + else \ + vyatta-vtysh -c \"configure terminal\" \ + -c \"interface $VAR(../../../../../@) \" \ + -c \"ip ospf message-digest-key $VAR(@) md5 $VAR(md5-key/@)\"; \ + fi; " + +comp_help: possible completions: + <1-255> Set the key id diff --git a/templates/interfaces/bridge/node.tag/ip/ospf/authentication/md5/key-id/node.tag/md5-key/node.def b/templates/interfaces/bridge/node.tag/ip/ospf/authentication/md5/key-id/node.tag/md5-key/node.def new file mode 100644 index 00000000..e007b689 --- /dev/null +++ b/templates/interfaces/bridge/node.tag/ip/ospf/authentication/md5/key-id/node.tag/md5-key/node.def @@ -0,0 +1,9 @@ +type: txt +help: Set md5 key +syntax:expression: exec " \ + if [ `echo -n $VAR(@) | wc -c` -gt 16 ]; then \ + echo MD5 key must be 16 characters or less ; \ + exit 1 ; \ + fi ; " +comp_help: possible completions: + <text> MD5 Key (16 characters or less) diff --git a/templates/interfaces/bridge/node.tag/ip/ospf/authentication/md5/key-id/node.tag/node.def b/templates/interfaces/bridge/node.tag/ip/ospf/authentication/md5/key-id/node.tag/node.def new file mode 100644 index 00000000..d14a2583 --- /dev/null +++ b/templates/interfaces/bridge/node.tag/ip/ospf/authentication/md5/key-id/node.tag/node.def @@ -0,0 +1 @@ +help: Set md5 key diff --git a/templates/interfaces/bridge/node.tag/ip/ospf/authentication/md5/node.def b/templates/interfaces/bridge/node.tag/ip/ospf/authentication/md5/node.def new file mode 100644 index 00000000..341af509 --- /dev/null +++ b/templates/interfaces/bridge/node.tag/ip/ospf/authentication/md5/node.def @@ -0,0 +1,11 @@ +help: Set MD5 key id +update:expression: "vyatta-vtysh \ + -c \"configure terminal\" \ + -c \"interface $VAR(../../../../@) \" \ + -c \"no ip ospf authentication \" \ + -c \"ip ospf authentication message-digest\"; " + +delete:expression: "vyatta-vtysh \ + -c \"configure terminal\" \ + -c \"interface $VAR(../../../../@) \" \ + -c \"no ip ospf authentication \"; " diff --git a/templates/interfaces/bridge/node.tag/ip/ospf/authentication/node.def b/templates/interfaces/bridge/node.tag/ip/ospf/authentication/node.def new file mode 100644 index 00000000..ff352a01 --- /dev/null +++ b/templates/interfaces/bridge/node.tag/ip/ospf/authentication/node.def @@ -0,0 +1,2 @@ +help: Set OSPF interface authentication + diff --git a/templates/interfaces/bridge/node.tag/ip/ospf/authentication/plaintext-password/node.def b/templates/interfaces/bridge/node.tag/ip/ospf/authentication/plaintext-password/node.def new file mode 100644 index 00000000..95215c89 --- /dev/null +++ b/templates/interfaces/bridge/node.tag/ip/ospf/authentication/plaintext-password/node.def @@ -0,0 +1,23 @@ +type: txt +help: Configure plain text password +syntax:expression: exec " \ + if [ `echo -n $VAR(@) | wc -c` -gt 8 ]; then \ + echo Password must be 8 characters or less ; \ + exit 1 ; \ + fi ; " + +update:expression: "vyatta-vtysh \ + -c \"configure terminal\" \ + -c \"interface $VAR(../../../../@) \" \ + -c \"no ip ospf authentication \" \ + -c \"ip ospf authentication \" \ + -c \"ip ospf authentication-key $VAR(@) \"; " + +delete:expression: "vyatta-vtysh \ + -c \"configure terminal\" \ + -c \"interface $VAR(../../../../@) \" \ + -c \"no ip ospf authentication \" \ + -c \"no ip ospf authentication-key \"; " + +comp_help: possible completions: + <text> Plain text password (8 characters or less) diff --git a/templates/interfaces/bridge/node.tag/ip/ospf/bandwidth/node.def b/templates/interfaces/bridge/node.tag/ip/ospf/bandwidth/node.def new file mode 100644 index 00000000..309d2f17 --- /dev/null +++ b/templates/interfaces/bridge/node.tag/ip/ospf/bandwidth/node.def @@ -0,0 +1,16 @@ +type: u32 +help: Set bandwidth for specified interface (kilobits/sec) +syntax:expression: $VAR(@) >= 1 && $VAR(@) <= 10000000; \ + "Must be between 1-10000000" +update:expression: "vyatta-vtysh \ + -c \"configure terminal \" \ + -c \"interface $VAR(../../../@) \" \ + -c \"bandwidth $VAR(@) \"; " + +delete:expression: "vyatta-vtysh \ + -c \"configure terminal \" \ + -c \"interface $VAR(../../../@) \" \ + -c \"no bandwidth $VAR(@) \"; " + +comp_help: possible completions: + <1-10000000> Set bandwidth in kilobits/sec (for calculating OSPF cost) diff --git a/templates/interfaces/bridge/node.tag/ip/ospf/cost/node.def b/templates/interfaces/bridge/node.tag/ip/ospf/cost/node.def new file mode 100644 index 00000000..d57876cd --- /dev/null +++ b/templates/interfaces/bridge/node.tag/ip/ospf/cost/node.def @@ -0,0 +1,11 @@ +type: u32 +help: Set interface cost +syntax:expression: $VAR(@) >= 1 && $VAR(@) <= 65535; "Must be between 1-65535" +update:expression: "vyatta-vtysh -c \"configure terminal\" \ + -c \"interface $VAR(../../../@)\" \ + -c \"ip ospf cost $VAR(@) \"; " +delete:expression: "vyatta-vtysh -c \"configure terminal\" \ + -c \"interface $VAR(../../../@)\" \ + -c \"no ip ospf cost \"; " +comp_help: possible completions: + <1-65535> Set Cost diff --git a/templates/interfaces/bridge/node.tag/ip/ospf/dead-interval/node.def b/templates/interfaces/bridge/node.tag/ip/ospf/dead-interval/node.def new file mode 100644 index 00000000..5e4170cb --- /dev/null +++ b/templates/interfaces/bridge/node.tag/ip/ospf/dead-interval/node.def @@ -0,0 +1,12 @@ +type: u32 +help: Set interval after which a neighbor is declared dead +default: 40 +syntax:expression: $VAR(@) >= 1 && $VAR(@) <= 65535; "Must be between 1-65535" +update:expression: "vyatta-vtysh \ + -c \"configure terminal\" -c \"interface $VAR(../../../@)\" \ + -c \"ip ospf dead-interval $VAR(@)\"; " +delete:expression: "vyatta-vtysh \ + -c \"configure terminal\" -c \"interface $VAR(../../../@)\" \ + -c \"no ip ospf dead-interval \"; " +comp_help: possible completions: + <1-65535> Seconds (default 40) diff --git a/templates/interfaces/bridge/node.tag/ip/ospf/hello-interval/node.def b/templates/interfaces/bridge/node.tag/ip/ospf/hello-interval/node.def new file mode 100644 index 00000000..885ccb43 --- /dev/null +++ b/templates/interfaces/bridge/node.tag/ip/ospf/hello-interval/node.def @@ -0,0 +1,12 @@ +type: u32 +help: Set interval between hello packets +default: 10 +syntax:expression: $VAR(@) >= 1 && $VAR(@) <= 65535; "Must be between 1-65535" +update:expression: "vyatta-vtysh \ + -c \"configure terminal\" -c \"interface $VAR(../../../@) \" \ + -c \"ip ospf hello-interval $VAR(@)\"; " +delete:expression: "vyatta-vtysh \ + -c \"configure terminal\" -c \"interface $VAR(../../../@) \" \ + -c \"no ip ospf hello-interval \"; " +comp_help: possible completions: + <1-65535> Seconds (default 10) diff --git a/templates/interfaces/bridge/node.tag/ip/ospf/mtu-ignore/node.def b/templates/interfaces/bridge/node.tag/ip/ospf/mtu-ignore/node.def new file mode 100644 index 00000000..1bce2ca9 --- /dev/null +++ b/templates/interfaces/bridge/node.tag/ip/ospf/mtu-ignore/node.def @@ -0,0 +1,10 @@ +help: Disable Maximum Transmission Unit (MTU) mismatch detection +create:expression: "vyatta-vtysh \ + -c \"configure terminal\" \ + -c \"interface $VAR(../../../@)\" \ + -c \"ip ospf mtu-ignore\"; " + +delete:expression: "vyatta-vtysh \ + -c \"configure terminal\" \ + -c \"interface $VAR(../../../@)\" \ + -c \"no ip ospf mtu-ignore\"; " diff --git a/templates/interfaces/bridge/node.tag/ip/ospf/network/node.def b/templates/interfaces/bridge/node.tag/ip/ospf/network/node.def new file mode 100644 index 00000000..347aee8a --- /dev/null +++ b/templates/interfaces/bridge/node.tag/ip/ospf/network/node.def @@ -0,0 +1,20 @@ +type: txt +help: Set network type +syntax:expression: $VAR(@) in "broadcast", "non-broadcast", "point-to-multipoint", "point-to-point"; \ + "Must be (broadcast|non-broadcast|point-to-multipoint|point-to-point)" + +update:expression: "vyatta-vtysh \ + -c \"configure terminal\" \ + -c \"interface $VAR(../../../@) \" \ + -c \"ip ospf network $VAR(@) \"; " + +delete:expression: "vyatta-vtysh \ + -c \"configure terminal \" \ + -c \"interface $VAR(../../../@) \" \ + -c \"no ip ospf network \"; " + +comp_help: possible completions: + broadcast Set broadcast network type + non-broadcast Set non-broadcast network type + point-to-multipoint Set point-to-multipoint network type + point-to-point Set point-to-point network type diff --git a/templates/interfaces/bridge/node.tag/ip/ospf/node.def b/templates/interfaces/bridge/node.tag/ip/ospf/node.def new file mode 100644 index 00000000..1702547a --- /dev/null +++ b/templates/interfaces/bridge/node.tag/ip/ospf/node.def @@ -0,0 +1 @@ +help: Set Open Shortest Path First (OSPF) parameters for specified interface diff --git a/templates/interfaces/bridge/node.tag/ip/ospf/priority/node.def b/templates/interfaces/bridge/node.tag/ip/ospf/priority/node.def new file mode 100644 index 00000000..32321e3b --- /dev/null +++ b/templates/interfaces/bridge/node.tag/ip/ospf/priority/node.def @@ -0,0 +1,12 @@ +type: u32 +help: Set router priority +default: 1 +syntax:expression: $VAR(@) >= 0 && $VAR(@) <= 255; "Must be between 0-255" +update:expression: "vyatta-vtysh \ + -c \"configure terminal\" -c \"interface $VAR(../../../@)\" \ + -c \"ip ospf priority $VAR(@)\"; " +delete:expression: "vyatta-vtysh \ + -c \"configure terminal\" -c \"interface $VAR(../../../@)\" \ + -c \"no ip ospf priority \"; " +comp_help: possible completions: + <0-255> Priority (default 1) diff --git a/templates/interfaces/bridge/node.tag/ip/ospf/retransmit-interval/node.def b/templates/interfaces/bridge/node.tag/ip/ospf/retransmit-interval/node.def new file mode 100644 index 00000000..a325fe38 --- /dev/null +++ b/templates/interfaces/bridge/node.tag/ip/ospf/retransmit-interval/node.def @@ -0,0 +1,12 @@ +type: u32 +help: Set interval between retransmitting lost link state advertisements +default: 5 +syntax:expression: $VAR(@) >= 3 && $VAR(@) <= 65535; "Must be between 3-65535" +update:expression: "vyatta-vtysh \ + -c \"configure terminal\" -c \"interface $VAR(../../../@)\" \ + -c \"ip ospf retransmit-interval $VAR(@)\"; " +delete:expression: "vyatta-vtysh \ + -c \"configure terminal\" -c \"interface $VAR(../../../@)\" \ + -c \"no ip ospf retransmit-interval \"; " +comp_help: possible completions: + <3-65535> Seconds (default 5) diff --git a/templates/interfaces/bridge/node.tag/ip/ospf/transmit-delay/node.def b/templates/interfaces/bridge/node.tag/ip/ospf/transmit-delay/node.def new file mode 100644 index 00000000..2c64ca30 --- /dev/null +++ b/templates/interfaces/bridge/node.tag/ip/ospf/transmit-delay/node.def @@ -0,0 +1,12 @@ +type: u32 +help: Set link state transmit delay +default: 1 +syntax:expression: $VAR(@) >= 1 && $VAR(@) <= 65535; "Must be between 1-65535" +update:expression: "vyatta-vtysh \ + -c \"configure terminal\" -c \"interface $VAR(../../../@)\" \ + -c \"ip ospf transmit-delay $VAR(@)\"; " +delete:expression: "vyatta-vtysh \ + -c \"configure terminal\" -c \"interface $VAR(../../../@)\" \ + -c \"no ip ospf transmit-delay \"; " +comp_help: possible completions: + <1-65535> Seconds (default 1) diff --git a/templates/interfaces/bridge/node.tag/ip/rip/authentication/md5/node.def b/templates/interfaces/bridge/node.tag/ip/rip/authentication/md5/node.def new file mode 100644 index 00000000..8d165fe6 --- /dev/null +++ b/templates/interfaces/bridge/node.tag/ip/rip/authentication/md5/node.def @@ -0,0 +1,8 @@ +tag: +type: u32 +help: Set MD5 authentication key ID +syntax:expression: $VAR(@) >= 1 && $VAR(@) <= 255; \ + "ID must be between 1 and 255" + +commit:expression: $VAR(../plaintext-password/) == "" ; \ + "plaintext-password already set" diff --git a/templates/interfaces/bridge/node.tag/ip/rip/authentication/md5/node.tag/node.def b/templates/interfaces/bridge/node.tag/ip/rip/authentication/md5/node.tag/node.def new file mode 100644 index 00000000..488acd8c --- /dev/null +++ b/templates/interfaces/bridge/node.tag/ip/rip/authentication/md5/node.tag/node.def @@ -0,0 +1 @@ +help: Set authentication password diff --git a/templates/interfaces/bridge/node.tag/ip/rip/authentication/md5/node.tag/password/node.def b/templates/interfaces/bridge/node.tag/ip/rip/authentication/md5/node.tag/password/node.def new file mode 100644 index 00000000..bcebd5ab --- /dev/null +++ b/templates/interfaces/bridge/node.tag/ip/rip/authentication/md5/node.tag/password/node.def @@ -0,0 +1,23 @@ +type: txt +help: Set authentication password +syntax:expression: exec " \ + if [ `echo -n $VAR(@) | wc -c` -gt 16 ]; then \ + echo MD5 key must be 16 characters or less ; \ + exit 1 ; \ + fi ; " + +update:expression: "vyatta-vtysh \ + -c \"configure terminal\" -c \"interface $VAR(../../../../../@)\" \ + -c \"ip rip authentication mode md5\" \ + -c \"ip rip authentication key-chain $VAR(../../../../../@)-rip\" \ + -c \"key chain $VAR(../../../../../@)-rip\" -c \"key $VAR(../@)\" \ + -c \"key-string $VAR(@)\" " + +delete:expression: "vyatta-vtysh --noerror \ + -c \"configure terminal\" -c \"interface $VAR(../../../../../@)\" \ + -c \"no ip rip authentication mode md5\" \ + -c \"no ip rip authentication key-chain $VAR(../../../../../@)-rip\" \ + -c \"no key chain $VAR(../../../../../@)-rip\" " + +comp_help: possible completions: + <text> MD5 Key (16 characters or less) diff --git a/templates/interfaces/bridge/node.tag/ip/rip/authentication/node.def b/templates/interfaces/bridge/node.tag/ip/rip/authentication/node.def new file mode 100644 index 00000000..8756de35 --- /dev/null +++ b/templates/interfaces/bridge/node.tag/ip/rip/authentication/node.def @@ -0,0 +1 @@ +help: Set authentication method diff --git a/templates/interfaces/bridge/node.tag/ip/rip/authentication/plaintext-password/node.def b/templates/interfaces/bridge/node.tag/ip/rip/authentication/plaintext-password/node.def new file mode 100644 index 00000000..e21e5878 --- /dev/null +++ b/templates/interfaces/bridge/node.tag/ip/rip/authentication/plaintext-password/node.def @@ -0,0 +1,22 @@ +type: txt +help: Set plain text password +syntax:expression: exec " \ + if [ `echo -n $VAR(@) | wc -c` -gt 16 ]; then \ + echo Password must be 16 characters or less ; \ + exit 1 ; \ + fi ; " + +commit:expression: $VAR(../md5/) == "" ; "md5 password already set" + +update: vyatta-vtysh \ + -c "configure terminal" -c "interface $VAR(../../../../@)" \ + -c "ip rip authentication mode text" \ + -c "ip rip authentication string $VAR(@)"; + +delete: vyatta-vtysh \ + -c "configure terminal" -c "interface $VAR(../../../../@)" \ + -c "no ip rip authentication mode" \ + -c "no ip rip authentication string $VAR(@)"; + +comp_help: possible completions: + <text> Password (16 characters or less) diff --git a/templates/interfaces/bridge/node.tag/ip/rip/node.def b/templates/interfaces/bridge/node.tag/ip/rip/node.def new file mode 100644 index 00000000..d1f72a5f --- /dev/null +++ b/templates/interfaces/bridge/node.tag/ip/rip/node.def @@ -0,0 +1 @@ +help: Set Routing Information Protocol (RIP) for specified interface diff --git a/templates/interfaces/bridge/node.tag/ip/rip/split-horizon/disable/node.def b/templates/interfaces/bridge/node.tag/ip/rip/split-horizon/disable/node.def new file mode 100644 index 00000000..f40e77d1 --- /dev/null +++ b/templates/interfaces/bridge/node.tag/ip/rip/split-horizon/disable/node.def @@ -0,0 +1,12 @@ +help: Disable split horizon on specified interface +create:expression: "vyatta-vtysh \ + -c \"configure terminal \" \ + -c \"interface $VAR(../../../../@) \" \ + -c \"no ip rip split-horizon \" " + +delete:expression: "vyatta-vtysh \ + -c \"configure terminal \" \ + -c \"interface $VAR(../../../../@) \" \ + -c \"ip rip split-horizon \" " + +commit:expression: ($VAR(../poison-reverse/) == ""); "You cannot have 'split-horizon poison-reverse' enabled with 'split-horizon' disabled for ethernet interface $VAR(../../../../@)" diff --git a/templates/interfaces/bridge/node.tag/ip/rip/split-horizon/node.def b/templates/interfaces/bridge/node.tag/ip/rip/split-horizon/node.def new file mode 100644 index 00000000..ba39b616 --- /dev/null +++ b/templates/interfaces/bridge/node.tag/ip/rip/split-horizon/node.def @@ -0,0 +1 @@ +help: Set to control split horizon parameters on this interface diff --git a/templates/interfaces/bridge/node.tag/ip/rip/split-horizon/poison-reverse/node.def b/templates/interfaces/bridge/node.tag/ip/rip/split-horizon/poison-reverse/node.def new file mode 100644 index 00000000..f608d9c3 --- /dev/null +++ b/templates/interfaces/bridge/node.tag/ip/rip/split-horizon/poison-reverse/node.def @@ -0,0 +1,14 @@ +help: Enable poison reverse for split-horizon +create:expression: "vyatta-vtysh \ + -c \"configure terminal \" \ + -c \"interface $VAR(../../../../@) \" \ + -c \"ip rip split-horizon poisoned-reverse \" " + +delete:expression: "vyatta-vtysh \ + -c \"configure terminal \" \ + -c \"interface $VAR(../../../../@) \" \ + -c \"no ip rip split-horizon \" \ + -c \"ip rip split-horizon \" " + +commit:expression: ($VAR(../disable/) == ""); "You cannot have 'split-horizon poison-reverse' enabled with 'split-horizon' disabled for ethernet interface $VAR(../../../../@)" + diff --git a/templates/protocols/bgp/disable/node.def b/templates/protocols/bgp/disable/node.def deleted file mode 100644 index 2795453f..00000000 --- a/templates/protocols/bgp/disable/node.def +++ /dev/null @@ -1,12 +0,0 @@ -type: bool -help: Disable BGP daemon -default: false -update: if [ $VAR(@) == "true" ]; - then sudo ${vyatta_sbindir}/vyatta-protocol stop bgpd - else sudo ${vyatta_sbindir}/vyatta-protocol start bgpd - fi -possible completions: - true Stop BGP daemon - false Start BGP daemon - -allowed: echo "true false" diff --git a/templates/protocols/bgp/node.def b/templates/protocols/bgp/node.def index 803362db..91d7261b 100644 --- a/templates/protocols/bgp/node.def +++ b/templates/protocols/bgp/node.def @@ -4,7 +4,7 @@ help: Configure Border Gateway Protocol (BGP) parameters comp_help: \1 <1-4294967294>\tAS number syntax:expression: $VAR(@) >= 1 && $VAR(@) <= 4294967294 ; \ "AS number must be between 1 and 4294967294" -begin: sudo /opt/vyatta/sbin/quagga-manager start bgpd +create: sudo /opt/vyatta/sbin/quagga-manager start bgpd update: vyatta-vtysh -c "configure terminal" -c "router bgp $VAR(@)" # we need to set default parameters in BGP here since we can't do it in # startup scripts as we don't know the AS number at that point diff --git a/templates/protocols/ospf/node.def b/templates/protocols/ospf/node.def index 731d39f1..1fd39bfe 100644 --- a/templates/protocols/ospf/node.def +++ b/templates/protocols/ospf/node.def @@ -1,5 +1,5 @@ help: Configure Open Shortest Path First protocol (OSPF) parameters -begin: sudo /opt/vyatta/sbin/quagga-manager start ospfd +create: sudo /opt/vyatta/sbin/quagga-manager start ospfd create: vyatta-vtysh -c "configure terminal" -c "router ospf" delete: vyatta-vtysh -c "configure terminal" -c "no router ospf" end: sudo /opt/vyatta/sbin/quagga-manager update diff --git a/templates/protocols/rip/node.def b/templates/protocols/rip/node.def index b7f085a5..648ecf49 100644 --- a/templates/protocols/rip/node.def +++ b/templates/protocols/rip/node.def @@ -1,5 +1,5 @@ help: Configure Routing Information Protocol (RIP) parameters -begin: sudo /opt/vyatta/sbin/quagga-manager start ripd +create: sudo /opt/vyatta/sbin/quagga-manager start ripd create: vyatta-vtysh -c "configure terminal" -c "router rip" delete: vyatta-vtysh -c "configure terminal" -c "no router rip" end: sudo /opt/vyatta/sbin/quagga-manager update |