summaryrefslogtreecommitdiff
path: root/templates
diff options
context:
space:
mode:
authorStig Thormodsrud <stig@vyatta.com>2008-02-13 14:57:46 -0800
committerStig Thormodsrud <stig@vyatta.com>2008-02-13 14:57:46 -0800
commitf5f8f70341e08a3c972c90cd52a1f1ef8fdd0495 (patch)
tree0830ff9f7ad4d786e5753be1703f134648a0cfda /templates
parent026280d9c1dd53425fc43b8945700d92c6fc2f0c (diff)
downloadvyatta-cfg-quagga-f5f8f70341e08a3c972c90cd52a1f1ef8fdd0495.tar.gz
vyatta-cfg-quagga-f5f8f70341e08a3c972c90cd52a1f1ef8fdd0495.zip
Duplicate quagga "interface ip ospf" tree for tunnel and vif interfaces.
Need to figure out a better way of doing this...
Diffstat (limited to 'templates')
-rw-r--r--templates/interfaces/ethernet/node.tag/ip/ospf/authentication/md5/key-id/node.def6
-rw-r--r--templates/interfaces/ethernet/node.tag/ip/ospf/mtu-ignore/node.def11
-rw-r--r--templates/interfaces/ethernet/node.tag/ip/ospf/network/node.def18
-rw-r--r--templates/interfaces/ethernet/node.tag/ip/rip/split-horizon/node.def15
-rw-r--r--templates/interfaces/ethernet/node.tag/ip/rip/split-horizon/poison-reverse/node.def15
-rw-r--r--templates/interfaces/ethernet/node.tag/vif/node.tag/ip/node.def1
-rw-r--r--templates/interfaces/ethernet/node.tag/vif/node.tag/ip/ospf/authentication/md5/key-id/node.def23
-rw-r--r--templates/interfaces/ethernet/node.tag/vif/node.tag/ip/ospf/authentication/md5/key-id/node.tag/md5-key/node.def9
-rw-r--r--templates/interfaces/ethernet/node.tag/vif/node.tag/ip/ospf/authentication/md5/key-id/node.tag/node.def1
-rw-r--r--templates/interfaces/ethernet/node.tag/vif/node.tag/ip/ospf/authentication/md5/node.def11
-rw-r--r--templates/interfaces/ethernet/node.tag/vif/node.tag/ip/ospf/authentication/node.def2
-rw-r--r--templates/interfaces/ethernet/node.tag/vif/node.tag/ip/ospf/authentication/simple/node.def23
-rw-r--r--templates/interfaces/ethernet/node.tag/vif/node.tag/ip/ospf/bandwidth/node.def17
-rw-r--r--templates/interfaces/ethernet/node.tag/vif/node.tag/ip/ospf/cost/node.def16
-rw-r--r--templates/interfaces/ethernet/node.tag/vif/node.tag/ip/ospf/dead-interval/node.def17
-rw-r--r--templates/interfaces/ethernet/node.tag/vif/node.tag/ip/ospf/hello-interval/node.def17
-rw-r--r--templates/interfaces/ethernet/node.tag/vif/node.tag/ip/ospf/mtu-ignore/node.def10
-rw-r--r--templates/interfaces/ethernet/node.tag/vif/node.tag/ip/ospf/network/node.def20
-rw-r--r--templates/interfaces/ethernet/node.tag/vif/node.tag/ip/ospf/node.def1
-rw-r--r--templates/interfaces/ethernet/node.tag/vif/node.tag/ip/ospf/priority/node.def17
-rw-r--r--templates/interfaces/ethernet/node.tag/vif/node.tag/ip/ospf/retransmit-interval/node.def17
-rw-r--r--templates/interfaces/ethernet/node.tag/vif/node.tag/ip/ospf/transmit-delay/node.def17
-rw-r--r--templates/interfaces/ethernet/node.tag/vif/node.tag/ip/rip/authentication/md5/node.def5
-rw-r--r--templates/interfaces/ethernet/node.tag/vif/node.tag/ip/rip/authentication/md5/node.tag/node.def1
-rw-r--r--templates/interfaces/ethernet/node.tag/vif/node.tag/ip/rip/authentication/md5/node.tag/password/node.def29
-rw-r--r--templates/interfaces/ethernet/node.tag/vif/node.tag/ip/rip/authentication/node.def1
-rw-r--r--templates/interfaces/ethernet/node.tag/vif/node.tag/ip/rip/authentication/simple-password/node.def22
-rw-r--r--templates/interfaces/ethernet/node.tag/vif/node.tag/ip/rip/node.def1
-rw-r--r--templates/interfaces/ethernet/node.tag/vif/node.tag/ip/rip/split-horizon/node.def12
-rw-r--r--templates/interfaces/ethernet/node.tag/vif/node.tag/ip/rip/split-horizon/poison-reverse/node.def10
-rw-r--r--templates/interfaces/loopback/node.tag/ip/ospf/network/node.def22
-rw-r--r--templates/interfaces/tunnel/node.tag/ip/node.def1
-rw-r--r--templates/interfaces/tunnel/node.tag/ip/ospf/authentication/md5/key-id/node.def23
-rw-r--r--templates/interfaces/tunnel/node.tag/ip/ospf/authentication/md5/key-id/node.tag/md5-key/node.def9
-rw-r--r--templates/interfaces/tunnel/node.tag/ip/ospf/authentication/md5/key-id/node.tag/node.def1
-rw-r--r--templates/interfaces/tunnel/node.tag/ip/ospf/authentication/md5/node.def11
-rw-r--r--templates/interfaces/tunnel/node.tag/ip/ospf/authentication/node.def2
-rw-r--r--templates/interfaces/tunnel/node.tag/ip/ospf/authentication/simple/node.def20
-rw-r--r--templates/interfaces/tunnel/node.tag/ip/ospf/bandwidth/node.def16
-rw-r--r--templates/interfaces/tunnel/node.tag/ip/ospf/cost/node.def15
-rw-r--r--templates/interfaces/tunnel/node.tag/ip/ospf/dead-interval/node.def15
-rw-r--r--templates/interfaces/tunnel/node.tag/ip/ospf/hello-interval/node.def12
-rw-r--r--templates/interfaces/tunnel/node.tag/ip/ospf/mtu-ignore/node.def10
-rw-r--r--templates/interfaces/tunnel/node.tag/ip/ospf/network/node.def20
-rw-r--r--templates/interfaces/tunnel/node.tag/ip/ospf/node.def1
-rw-r--r--templates/interfaces/tunnel/node.tag/ip/ospf/priority/node.def15
-rw-r--r--templates/interfaces/tunnel/node.tag/ip/ospf/retransmit-interval/node.def15
-rw-r--r--templates/interfaces/tunnel/node.tag/ip/ospf/transmit-delay/node.def14
-rw-r--r--templates/interfaces/tunnel/node.tag/ip/rip/authentication/md5/node.def5
-rw-r--r--templates/interfaces/tunnel/node.tag/ip/rip/authentication/md5/node.tag/node.def1
-rw-r--r--templates/interfaces/tunnel/node.tag/ip/rip/authentication/md5/node.tag/password/node.def23
-rw-r--r--templates/interfaces/tunnel/node.tag/ip/rip/authentication/node.def1
-rw-r--r--templates/interfaces/tunnel/node.tag/ip/rip/authentication/simple-password/node.def19
-rw-r--r--templates/interfaces/tunnel/node.tag/ip/rip/node.def1
-rw-r--r--templates/interfaces/tunnel/node.tag/ip/rip/split-horizon/node.def10
-rw-r--r--templates/interfaces/tunnel/node.tag/ip/rip/split-horizon/poison-reverse/node.def11
56 files changed, 628 insertions, 30 deletions
diff --git a/templates/interfaces/ethernet/node.tag/ip/ospf/authentication/md5/key-id/node.def b/templates/interfaces/ethernet/node.tag/ip/ospf/authentication/md5/key-id/node.def
index 33ce3afd..9d1353a1 100644
--- a/templates/interfaces/ethernet/node.tag/ip/ospf/authentication/md5/key-id/node.def
+++ b/templates/interfaces/ethernet/node.tag/ip/ospf/authentication/md5/key-id/node.def
@@ -2,8 +2,11 @@ tag:
type: u32
help: Configure 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(@)"
+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_sbindir}/vyatta-vtysh.pl -c \"configure terminal\" \
@@ -15,5 +18,6 @@ end:expression: "\
-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/ethernet/node.tag/ip/ospf/mtu-ignore/node.def b/templates/interfaces/ethernet/node.tag/ip/ospf/mtu-ignore/node.def
index f2cc5a80..8179fb87 100644
--- a/templates/interfaces/ethernet/node.tag/ip/ospf/mtu-ignore/node.def
+++ b/templates/interfaces/ethernet/node.tag/ip/ospf/mtu-ignore/node.def
@@ -1,7 +1,10 @@
help: Disable mtu mismatch detection
-create:expression: "${vyatta_sbindir}/vyatta-vtysh.pl -c \"configure terminal\" \
- -c \"interface $VAR(../../../@)\" \
+create:expression: "${vyatta_sbindir}/vyatta-vtysh.pl \
+ -c \"configure terminal\" \
+ -c \"interface $VAR(../../../@)\" \
-c \"ip ospf mtu-ignore\"; "
-delete:expression: "${vyatta_sbindir}/vyatta-vtysh.pl -c \"configure terminal\" \
- -c \"interface $VAR(../../../@)\" \
+
+delete:expression: "${vyatta_sbindir}/vyatta-vtysh.pl \
+ -c \"configure terminal\" \
+ -c \"interface $VAR(../../../@)\" \
-c \"no ip ospf mtu-ignore\"; "
diff --git a/templates/interfaces/ethernet/node.tag/ip/ospf/network/node.def b/templates/interfaces/ethernet/node.tag/ip/ospf/network/node.def
index dc99a4b9..cff270e2 100644
--- a/templates/interfaces/ethernet/node.tag/ip/ospf/network/node.def
+++ b/templates/interfaces/ethernet/node.tag/ip/ospf/network/node.def
@@ -1,12 +1,18 @@
type: txt
help: 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_sbindir}/vyatta-vtysh.pl -c \"configure terminal\" \
- -c \"interface $VAR(../../../@)\" \
- -c \"ip ospf network $VAR(@)\"; "
-delete:expression: "${vyatta_sbindir}/vyatta-vtysh.pl -c \"configure terminal\" \
- -c \"interface $VAR(../../../@)\" \
+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_sbindir}/vyatta-vtysh.pl \
+ -c \"configure terminal\" \
+ -c \"interface $VAR(../../../@) \" \
+ -c \"ip ospf network $VAR(@) \"; "
+
+delete:expression: "${vyatta_sbindir}/vyatta-vtysh.pl \
+ -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
diff --git a/templates/interfaces/ethernet/node.tag/ip/rip/split-horizon/node.def b/templates/interfaces/ethernet/node.tag/ip/rip/split-horizon/node.def
index e2443995..3dfc4665 100644
--- a/templates/interfaces/ethernet/node.tag/ip/rip/split-horizon/node.def
+++ b/templates/interfaces/ethernet/node.tag/ip/rip/split-horizon/node.def
@@ -1,9 +1,10 @@
help: Enable split horizon on this interface
-update:expression: "${vyatta_sbindir}/vyatta-vtysh.pl -c \"configure terminal\" \
- -c \"interface $VAR(../../../@)\" \
- -c \"ip rip split-horizon\" "
-delete:expression: "${vyatta_sbindir}/vyatta-vtysh.pl -c \"configure terminal\" \
- -c \"interface $VAR(../../../@)\" \
- -c \"no ip rip split-horizon\" "
-
+update:expression: "${vyatta_sbindir}/vyatta-vtysh.pl \
+ -c \"configure terminal \" \
+ -c \"interface $VAR(../../../@) \" \
+ -c \"ip rip split-horizon \" "
+delete:expression: "${vyatta_sbindir}/vyatta-vtysh.pl \
+ -c \"configure terminal \" \
+ -c \"interface $VAR(../../../@) \" \
+ -c \"no ip rip split-horizon \" "
diff --git a/templates/interfaces/ethernet/node.tag/ip/rip/split-horizon/poison-reverse/node.def b/templates/interfaces/ethernet/node.tag/ip/rip/split-horizon/poison-reverse/node.def
index 49034827..9057a4cd 100644
--- a/templates/interfaces/ethernet/node.tag/ip/rip/split-horizon/poison-reverse/node.def
+++ b/templates/interfaces/ethernet/node.tag/ip/rip/split-horizon/poison-reverse/node.def
@@ -1,8 +1,11 @@
help: With poison reverse
-create:expression: "${vyatta_sbindir}/vyatta-vtysh.pl -c \"configure terminal\" \
- -c \"interface $VAR(../../../../@)\" \
- -c \"ip rip split-horizon poisoned-reverse\" "
-delete:expression: "${vyatta_sbindir}/vyatta-vtysh.pl -c \"configure terminal\" \
- -c \"interface $VAR(../../../../@)\" \
- -c \"no ip rip split-horizon\" -c \"ip rip split-horizon\" "
+create:expression: "${vyatta_sbindir}/vyatta-vtysh.pl \
+ -c \"configure terminal \" \
+ -c \"interface $VAR(../../../../@) \" \
+ -c \"ip rip split-horizon poisoned-reverse \" "
+delete:expression: "${vyatta_sbindir}/vyatta-vtysh.pl \
+ -c \"configure terminal \" \
+ -c \"interface $VAR(../../../../@) \" \
+ -c \"no ip rip split-horizon \" \
+ -c \"ip rip split-horizon \" "
diff --git a/templates/interfaces/ethernet/node.tag/vif/node.tag/ip/node.def b/templates/interfaces/ethernet/node.tag/vif/node.tag/ip/node.def
new file mode 100644
index 00000000..713cca47
--- /dev/null
+++ b/templates/interfaces/ethernet/node.tag/vif/node.tag/ip/node.def
@@ -0,0 +1 @@
+help: Interface IPv4 configuration commands
diff --git a/templates/interfaces/ethernet/node.tag/vif/node.tag/ip/ospf/authentication/md5/key-id/node.def b/templates/interfaces/ethernet/node.tag/vif/node.tag/ip/ospf/authentication/md5/key-id/node.def
new file mode 100644
index 00000000..c52ba9e6
--- /dev/null
+++ b/templates/interfaces/ethernet/node.tag/vif/node.tag/ip/ospf/authentication/md5/key-id/node.def
@@ -0,0 +1,23 @@
+tag:
+type: u32
+help: Configure 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_sbindir}/vyatta-vtysh.pl -c \"configure terminal\" \
+ -c \"interface $VAR(../../../../../../@).$VAR(../../../../../@) \" \
+ -c \"no ip ospf message-digest-key $VAR(@)\"; \
+ rm /tmp/ospf-md5.$PPID; \
+ else \
+ ${vyatta_sbindir}/vyatta-vtysh.pl -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/ethernet/node.tag/vif/node.tag/ip/ospf/authentication/md5/key-id/node.tag/md5-key/node.def b/templates/interfaces/ethernet/node.tag/vif/node.tag/ip/ospf/authentication/md5/key-id/node.tag/md5-key/node.def
new file mode 100644
index 00000000..7cbcad83
--- /dev/null
+++ b/templates/interfaces/ethernet/node.tag/vif/node.tag/ip/ospf/authentication/md5/key-id/node.tag/md5-key/node.def
@@ -0,0 +1,9 @@
+type: txt
+help: Configure 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/ethernet/node.tag/vif/node.tag/ip/ospf/authentication/md5/key-id/node.tag/node.def b/templates/interfaces/ethernet/node.tag/vif/node.tag/ip/ospf/authentication/md5/key-id/node.tag/node.def
new file mode 100644
index 00000000..c90f5cf9
--- /dev/null
+++ b/templates/interfaces/ethernet/node.tag/vif/node.tag/ip/ospf/authentication/md5/key-id/node.tag/node.def
@@ -0,0 +1 @@
+help: Configure md5 key
diff --git a/templates/interfaces/ethernet/node.tag/vif/node.tag/ip/ospf/authentication/md5/node.def b/templates/interfaces/ethernet/node.tag/vif/node.tag/ip/ospf/authentication/md5/node.def
new file mode 100644
index 00000000..4735009c
--- /dev/null
+++ b/templates/interfaces/ethernet/node.tag/vif/node.tag/ip/ospf/authentication/md5/node.def
@@ -0,0 +1,11 @@
+help: Configure MD5 key id
+update:expression: "${vyatta_sbindir}/vyatta-vtysh.pl \
+ -c \"configure terminal\" \
+ -c \"interface $VAR(../../../../../@).$VAR(../../../../@) \" \
+ -c \"no ip ospf authentication \" \
+ -c \"ip ospf authentication message-digest\"; "
+
+delete:expression: "${vyatta_sbindir}/vyatta-vtysh.pl \
+ -c \"configure terminal\" \
+ -c \"interface $VAR(../../../../../@).$VAR(../../../../@) \" \
+ -c \"no ip ospf authentication \"; "
diff --git a/templates/interfaces/ethernet/node.tag/vif/node.tag/ip/ospf/authentication/node.def b/templates/interfaces/ethernet/node.tag/vif/node.tag/ip/ospf/authentication/node.def
new file mode 100644
index 00000000..51ef9a4f
--- /dev/null
+++ b/templates/interfaces/ethernet/node.tag/vif/node.tag/ip/ospf/authentication/node.def
@@ -0,0 +1,2 @@
+help: Configure OSPF interface authentication
+
diff --git a/templates/interfaces/ethernet/node.tag/vif/node.tag/ip/ospf/authentication/simple/node.def b/templates/interfaces/ethernet/node.tag/vif/node.tag/ip/ospf/authentication/simple/node.def
new file mode 100644
index 00000000..987cdfe0
--- /dev/null
+++ b/templates/interfaces/ethernet/node.tag/vif/node.tag/ip/ospf/authentication/simple/node.def
@@ -0,0 +1,23 @@
+type: txt
+help: Configure simple 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_sbindir}/vyatta-vtysh.pl \
+ -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_sbindir}/vyatta-vtysh.pl \
+ -c \"configure terminal\" \
+ -c \"interface $VAR(../../../../../@).$VAR(../../../../@) \" \
+ -c \"no ip ospf authentication \" \
+ -c \"no ip ospf authentication-key \"; "
+
+comp_help: possible completions:
+ <text> Simple password (8 characters or less)
diff --git a/templates/interfaces/ethernet/node.tag/vif/node.tag/ip/ospf/bandwidth/node.def b/templates/interfaces/ethernet/node.tag/vif/node.tag/ip/ospf/bandwidth/node.def
new file mode 100644
index 00000000..a92ba393
--- /dev/null
+++ b/templates/interfaces/ethernet/node.tag/vif/node.tag/ip/ospf/bandwidth/node.def
@@ -0,0 +1,17 @@
+type: u32
+help: Bandwidth in kilobits/sec
+syntax:expression: $VAR(@) >= 1 && $VAR(@) <= 10000000; \
+ "Must be between 1-10000000"
+
+update:expression: "${vyatta_sbindir}/vyatta-vtysh.pl \
+ -c \"configure terminal\" \
+ -c \"interface $VAR(../../../../@).$VAR(../../../@)\" \
+ -c \"bandwidth $VAR(@) \"; "
+
+delete:expression: "${vyatta_sbindir}/vyatta-vtysh.pl \
+ -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/ethernet/node.tag/vif/node.tag/ip/ospf/cost/node.def b/templates/interfaces/ethernet/node.tag/vif/node.tag/ip/ospf/cost/node.def
new file mode 100644
index 00000000..32c9cee9
--- /dev/null
+++ b/templates/interfaces/ethernet/node.tag/vif/node.tag/ip/ospf/cost/node.def
@@ -0,0 +1,16 @@
+type: u32
+help: Interface cost
+syntax:expression: $VAR(@) >= 1 && $VAR(@) <= 65535; "Must be between 1-65535"
+
+update:expression: "${vyatta_sbindir}/vyatta-vtysh.pl \
+ -c \"configure terminal\" \
+ -c \"interface $VAR(../../../../@).$VAR(../../../@)\" \
+ -c \"ip ospf cost $VAR(@) \"; "
+
+delete:expression: "${vyatta_sbindir}/vyatta-vtysh.pl \
+ -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/ethernet/node.tag/vif/node.tag/ip/ospf/dead-interval/node.def b/templates/interfaces/ethernet/node.tag/vif/node.tag/ip/ospf/dead-interval/node.def
new file mode 100644
index 00000000..ccc1137b
--- /dev/null
+++ b/templates/interfaces/ethernet/node.tag/vif/node.tag/ip/ospf/dead-interval/node.def
@@ -0,0 +1,17 @@
+type: u32
+help: Interval after which a neighbor is declared dead
+default: 40
+syntax:expression: $VAR(@) >= 1 && $VAR(@) <= 65535; "Must be between 1-65535"
+
+update:expression: "${vyatta_sbindir}/vyatta-vtysh.pl \
+ -c \"configure terminal\" \
+ -c \"interface $VAR(../../../../@).$VAR(../../../@)\" \
+ -c \"ip ospf dead-interval $VAR(@)\"; "
+
+delete:expression: "${vyatta_sbindir}/vyatta-vtysh.pl \
+ -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/ethernet/node.tag/vif/node.tag/ip/ospf/hello-interval/node.def b/templates/interfaces/ethernet/node.tag/vif/node.tag/ip/ospf/hello-interval/node.def
new file mode 100644
index 00000000..f84b05f1
--- /dev/null
+++ b/templates/interfaces/ethernet/node.tag/vif/node.tag/ip/ospf/hello-interval/node.def
@@ -0,0 +1,17 @@
+type: u32
+help: Interval between HELLO packets
+default: 10
+syntax:expression: $VAR(@) >= 1 && $VAR(@) <= 65535; "Must be between 1-65535"
+
+update:expression: "${vyatta_sbindir}/vyatta-vtysh.pl \
+ -c \"configure terminal\" \
+ -c \"interface $VAR(../../../../@).$VAR(../../../@) \" \
+ -c \"ip ospf hello-interval $VAR(@)\"; "
+
+delete:expression: "${vyatta_sbindir}/vyatta-vtysh.pl \
+ -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/ethernet/node.tag/vif/node.tag/ip/ospf/mtu-ignore/node.def b/templates/interfaces/ethernet/node.tag/vif/node.tag/ip/ospf/mtu-ignore/node.def
new file mode 100644
index 00000000..82ca1be0
--- /dev/null
+++ b/templates/interfaces/ethernet/node.tag/vif/node.tag/ip/ospf/mtu-ignore/node.def
@@ -0,0 +1,10 @@
+help: Disable mtu mismatch detection
+create:expression: "${vyatta_sbindir}/vyatta-vtysh.pl \
+ -c \"configure terminal\" \
+ -c \"interface $VAR(../../../../@).$VAR(../../../@) \" \
+ -c \"ip ospf mtu-ignore\"; "
+
+delete:expression: "${vyatta_sbindir}/vyatta-vtysh.pl \
+ -c \"configure terminal\" \
+ -c \"interface $VAR(../../../../@).$VAR(../../../@) \" \
+ -c \"no ip ospf mtu-ignore\"; "
diff --git a/templates/interfaces/ethernet/node.tag/vif/node.tag/ip/ospf/network/node.def b/templates/interfaces/ethernet/node.tag/vif/node.tag/ip/ospf/network/node.def
new file mode 100644
index 00000000..767ee431
--- /dev/null
+++ b/templates/interfaces/ethernet/node.tag/vif/node.tag/ip/ospf/network/node.def
@@ -0,0 +1,20 @@
+type: txt
+help: 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_sbindir}/vyatta-vtysh.pl \
+ -c \"configure terminal\" \
+ -c \"interface $VAR(../../../../@).$VAR(../../../@) \" \
+ -c \"ip ospf network $VAR(@)\"; "
+
+delete:expression: "${vyatta_sbindir}/vyatta-vtysh.pl \
+ -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/ethernet/node.tag/vif/node.tag/ip/ospf/node.def b/templates/interfaces/ethernet/node.tag/vif/node.tag/ip/ospf/node.def
new file mode 100644
index 00000000..a01474ec
--- /dev/null
+++ b/templates/interfaces/ethernet/node.tag/vif/node.tag/ip/ospf/node.def
@@ -0,0 +1 @@
+help: OSPF interface commands
diff --git a/templates/interfaces/ethernet/node.tag/vif/node.tag/ip/ospf/priority/node.def b/templates/interfaces/ethernet/node.tag/vif/node.tag/ip/ospf/priority/node.def
new file mode 100644
index 00000000..3c4736ce
--- /dev/null
+++ b/templates/interfaces/ethernet/node.tag/vif/node.tag/ip/ospf/priority/node.def
@@ -0,0 +1,17 @@
+type: u32
+help: Router priority
+default: 1
+syntax:expression: $VAR(@) >= 0 && $VAR(@) <= 255; "Must be between 0-255"
+
+update:expression: "${vyatta_sbindir}/vyatta-vtysh.pl \
+ -c \"configure terminal\" \
+ -c \"interface $VAR(../../../../@).$VAR(../../../@) \" \
+ -c \"ip ospf priority $VAR(@)\"; "
+
+delete:expression: "${vyatta_sbindir}/vyatta-vtysh.pl \
+ -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/ethernet/node.tag/vif/node.tag/ip/ospf/retransmit-interval/node.def b/templates/interfaces/ethernet/node.tag/vif/node.tag/ip/ospf/retransmit-interval/node.def
new file mode 100644
index 00000000..bd1f4fc3
--- /dev/null
+++ b/templates/interfaces/ethernet/node.tag/vif/node.tag/ip/ospf/retransmit-interval/node.def
@@ -0,0 +1,17 @@
+type: u32
+help: Interval between retransmitting lost link state advertisements
+default: 5
+syntax:expression: $VAR(@) >= 3 && $VAR(@) <= 65535; "Must be between 3-65535"
+
+update:expression: "${vyatta_sbindir}/vyatta-vtysh.pl \
+ -c \"configure terminal\" \
+ -c \"interface $VAR(../../../../@).$VAR(../../../@) \" \
+ -c \"ip ospf retransmit-interval $VAR(@) \"; "
+
+delete:expression: "${vyatta_sbindir}/vyatta-vtysh.pl \
+ -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/ethernet/node.tag/vif/node.tag/ip/ospf/transmit-delay/node.def b/templates/interfaces/ethernet/node.tag/vif/node.tag/ip/ospf/transmit-delay/node.def
new file mode 100644
index 00000000..a7b815c0
--- /dev/null
+++ b/templates/interfaces/ethernet/node.tag/vif/node.tag/ip/ospf/transmit-delay/node.def
@@ -0,0 +1,17 @@
+type: u32
+help: Link state transmit delay
+default: 1
+syntax:expression: $VAR(@) >= 1 && $VAR(@) <= 65535; "Must be between 1-65535"
+
+update:expression: "${vyatta_sbindir}/vyatta-vtysh.pl \
+ -c \"configure terminal\" \
+ -c \"interface $VAR(../../../../@).$VAR(../../../@) \" \
+ -c \"ip ospf transmit-delay $VAR(@) \"; "
+
+delete:expression: "${vyatta_sbindir}/vyatta-vtysh.pl \
+ -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/ethernet/node.tag/vif/node.tag/ip/rip/authentication/md5/node.def b/templates/interfaces/ethernet/node.tag/vif/node.tag/ip/rip/authentication/md5/node.def
new file mode 100644
index 00000000..873a4370
--- /dev/null
+++ b/templates/interfaces/ethernet/node.tag/vif/node.tag/ip/rip/authentication/md5/node.def
@@ -0,0 +1,5 @@
+tag:
+type: u32
+help: MD5 authentication key ID
+syntax:expression: $VAR(@) >= 1 && $VAR(@) <= 255; "ID must be between 1 and 255"
+
diff --git a/templates/interfaces/ethernet/node.tag/vif/node.tag/ip/rip/authentication/md5/node.tag/node.def b/templates/interfaces/ethernet/node.tag/vif/node.tag/ip/rip/authentication/md5/node.tag/node.def
new file mode 100644
index 00000000..4306d008
--- /dev/null
+++ b/templates/interfaces/ethernet/node.tag/vif/node.tag/ip/rip/authentication/md5/node.tag/node.def
@@ -0,0 +1 @@
+help: Authentication password
diff --git a/templates/interfaces/ethernet/node.tag/vif/node.tag/ip/rip/authentication/md5/node.tag/password/node.def b/templates/interfaces/ethernet/node.tag/vif/node.tag/ip/rip/authentication/md5/node.tag/password/node.def
new file mode 100644
index 00000000..02abbc77
--- /dev/null
+++ b/templates/interfaces/ethernet/node.tag/vif/node.tag/ip/rip/authentication/md5/node.tag/password/node.def
@@ -0,0 +1,29 @@
+type: txt
+help: 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_sbindir}/vyatta-vtysh.pl \
+ -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_sbindir}/vyatta-vtysh.pl -noerr \
+ -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/ethernet/node.tag/vif/node.tag/ip/rip/authentication/node.def b/templates/interfaces/ethernet/node.tag/vif/node.tag/ip/rip/authentication/node.def
new file mode 100644
index 00000000..22039cf7
--- /dev/null
+++ b/templates/interfaces/ethernet/node.tag/vif/node.tag/ip/rip/authentication/node.def
@@ -0,0 +1 @@
+help: Authentication method
diff --git a/templates/interfaces/ethernet/node.tag/vif/node.tag/ip/rip/authentication/simple-password/node.def b/templates/interfaces/ethernet/node.tag/vif/node.tag/ip/rip/authentication/simple-password/node.def
new file mode 100644
index 00000000..fe3bbe16
--- /dev/null
+++ b/templates/interfaces/ethernet/node.tag/vif/node.tag/ip/rip/authentication/simple-password/node.def
@@ -0,0 +1,22 @@
+type: txt
+help: Simple password authentication key
+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_sbindir}/vyatta-vtysh.pl \
+ -c \"configure terminal \" \
+ -c \"interface $VAR(../../../../../@).$VAR(../../../../@) \" \
+ -c \"ip rip authentication mode text \" \
+ -c \"ip rip authentication string $VAR(@) \"; "
+
+delete:expression: "${vyatta_sbindir}/vyatta-vtysh.pl \
+ -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> Password (16 characters or less)
diff --git a/templates/interfaces/ethernet/node.tag/vif/node.tag/ip/rip/node.def b/templates/interfaces/ethernet/node.tag/vif/node.tag/ip/rip/node.def
new file mode 100644
index 00000000..4cf2a137
--- /dev/null
+++ b/templates/interfaces/ethernet/node.tag/vif/node.tag/ip/rip/node.def
@@ -0,0 +1 @@
+help: RIP interface commands
diff --git a/templates/interfaces/ethernet/node.tag/vif/node.tag/ip/rip/split-horizon/node.def b/templates/interfaces/ethernet/node.tag/vif/node.tag/ip/rip/split-horizon/node.def
new file mode 100644
index 00000000..74cd5bd3
--- /dev/null
+++ b/templates/interfaces/ethernet/node.tag/vif/node.tag/ip/rip/split-horizon/node.def
@@ -0,0 +1,12 @@
+help: Enable split horizon on this interface
+update:expression: "${vyatta_sbindir}/vyatta-vtysh.pl \
+ -c \"configure terminal \" \
+ -c \"interface $VAR(../../../../@).$VAR(../../../@) \" \
+ -c \"ip rip split-horizon \" "
+
+delete:expression: "${vyatta_sbindir}/vyatta-vtysh.pl \
+ -c \"configure terminal \" \
+ -c \"interface $VAR(../../../../@).$VAR(../../../@) \" \
+ -c \"no ip rip split-horizon \" "
+
+
diff --git a/templates/interfaces/ethernet/node.tag/vif/node.tag/ip/rip/split-horizon/poison-reverse/node.def b/templates/interfaces/ethernet/node.tag/vif/node.tag/ip/rip/split-horizon/poison-reverse/node.def
new file mode 100644
index 00000000..6f7844e0
--- /dev/null
+++ b/templates/interfaces/ethernet/node.tag/vif/node.tag/ip/rip/split-horizon/poison-reverse/node.def
@@ -0,0 +1,10 @@
+help: With poison reverse
+create:expression: "${vyatta_sbindir}/vyatta-vtysh.pl \
+ -c \"configure terminal \" \
+ -c \"interface $VAR(../../../../../@).$VAR(../../../../@) \" \
+ -c \"ip rip split-horizon poisoned-reverse \" "
+
+delete:expression: "${vyatta_sbindir}/vyatta-vtysh.pl \
+ -c \"configure terminal \" \
+ -c \"interface $VAR(../../../../../@).$VAR(../../../../@) \" \
+ -c \"no ip rip split-horizon\" -c \"ip rip split-horizon \" "
diff --git a/templates/interfaces/loopback/node.tag/ip/ospf/network/node.def b/templates/interfaces/loopback/node.tag/ip/ospf/network/node.def
index 4b31e756..7b8aacf2 100644
--- a/templates/interfaces/loopback/node.tag/ip/ospf/network/node.def
+++ b/templates/interfaces/loopback/node.tag/ip/ospf/network/node.def
@@ -1,8 +1,18 @@
type: txt
help: 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_sbindir}/vyatta-vtysh.pl -c \"configure terminal\" -c \"interface $VAR(../../../@)\" \
- -c \"ip ospf network $VAR(@)\"; "
-delete:expression: "${vyatta_sbindir}/vyatta-vtysh.pl -c \"configure terminal\" -c \"interface $VAR(../../../@)\" \
- -c \"no ip ospf network \"; "
-comp_help: Enter the network type (broadcast|non-broadcast|point-to-multipoint|point-to-point)
+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_sbindir}/vyatta-vtysh.pl \
+ -c \"configure terminal\" -c \"interface $VAR(../../../@)\" \
+ -c \"ip ospf network $VAR(@) \"; "
+
+delete:expression: "${vyatta_sbindir}/vyatta-vtysh.pl \
+ -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/tunnel/node.tag/ip/node.def b/templates/interfaces/tunnel/node.tag/ip/node.def
new file mode 100644
index 00000000..713cca47
--- /dev/null
+++ b/templates/interfaces/tunnel/node.tag/ip/node.def
@@ -0,0 +1 @@
+help: Interface IPv4 configuration commands
diff --git a/templates/interfaces/tunnel/node.tag/ip/ospf/authentication/md5/key-id/node.def b/templates/interfaces/tunnel/node.tag/ip/ospf/authentication/md5/key-id/node.def
new file mode 100644
index 00000000..e16eb0f4
--- /dev/null
+++ b/templates/interfaces/tunnel/node.tag/ip/ospf/authentication/md5/key-id/node.def
@@ -0,0 +1,23 @@
+tag:
+type: u32
+help: Configure 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_sbindir}/vyatta-vtysh.pl -c \"configure terminal\" \
+ -c \"interface $VAR(../../../../../@) \" \
+ -c \"no ip ospf message-digest-key $VAR(@) \"; \
+ rm /tmp/ospf-md5.$PPID; \
+ else \
+ ${vyatta_sbindir}/vyatta-vtysh.pl -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/tunnel/node.tag/ip/ospf/authentication/md5/key-id/node.tag/md5-key/node.def b/templates/interfaces/tunnel/node.tag/ip/ospf/authentication/md5/key-id/node.tag/md5-key/node.def
new file mode 100644
index 00000000..7cbcad83
--- /dev/null
+++ b/templates/interfaces/tunnel/node.tag/ip/ospf/authentication/md5/key-id/node.tag/md5-key/node.def
@@ -0,0 +1,9 @@
+type: txt
+help: Configure 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/tunnel/node.tag/ip/ospf/authentication/md5/key-id/node.tag/node.def b/templates/interfaces/tunnel/node.tag/ip/ospf/authentication/md5/key-id/node.tag/node.def
new file mode 100644
index 00000000..c90f5cf9
--- /dev/null
+++ b/templates/interfaces/tunnel/node.tag/ip/ospf/authentication/md5/key-id/node.tag/node.def
@@ -0,0 +1 @@
+help: Configure md5 key
diff --git a/templates/interfaces/tunnel/node.tag/ip/ospf/authentication/md5/node.def b/templates/interfaces/tunnel/node.tag/ip/ospf/authentication/md5/node.def
new file mode 100644
index 00000000..1c98c41a
--- /dev/null
+++ b/templates/interfaces/tunnel/node.tag/ip/ospf/authentication/md5/node.def
@@ -0,0 +1,11 @@
+help: Configure MD5 key id
+update:expression: "${vyatta_sbindir}/vyatta-vtysh.pl \
+ -c \"configure terminal \" \
+ -c \"interface $VAR(../../../../@) \" \
+ -c \"no ip ospf authentication \" \
+ -c \"ip ospf authentication message-digest \"; "
+
+delete:expression: "${vyatta_sbindir}/vyatta-vtysh.pl \
+ -c \"configure terminal \" \
+ -c \"interface $VAR(../../../../@) \" \
+ -c \"no ip ospf authentication \"; "
diff --git a/templates/interfaces/tunnel/node.tag/ip/ospf/authentication/node.def b/templates/interfaces/tunnel/node.tag/ip/ospf/authentication/node.def
new file mode 100644
index 00000000..51ef9a4f
--- /dev/null
+++ b/templates/interfaces/tunnel/node.tag/ip/ospf/authentication/node.def
@@ -0,0 +1,2 @@
+help: Configure OSPF interface authentication
+
diff --git a/templates/interfaces/tunnel/node.tag/ip/ospf/authentication/simple/node.def b/templates/interfaces/tunnel/node.tag/ip/ospf/authentication/simple/node.def
new file mode 100644
index 00000000..a2a1ef7a
--- /dev/null
+++ b/templates/interfaces/tunnel/node.tag/ip/ospf/authentication/simple/node.def
@@ -0,0 +1,20 @@
+type: txt
+help: Configure simple 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_sbindir}/vyatta-vtysh.pl \
+ -c \"configure terminal\" \
+ -c \"interface $VAR(../../../../@) \" \
+ -c \"no ip ospf authentication \" \
+ -c \"ip ospf authentication \" \
+ -c \"ip ospf authentication-key $VAR(@) \"; "
+delete:expression: "${vyatta_sbindir}/vyatta-vtysh.pl \
+ -c \"configure terminal\" \
+ -c \"interface $VAR(../../../../@) \" \
+ -c \"no ip ospf authentication \" \
+ -c \"no ip ospf authentication-key \"; "
+comp_help: possible completions:
+ <text> Simple password (8 characters or less)
diff --git a/templates/interfaces/tunnel/node.tag/ip/ospf/bandwidth/node.def b/templates/interfaces/tunnel/node.tag/ip/ospf/bandwidth/node.def
new file mode 100644
index 00000000..af429604
--- /dev/null
+++ b/templates/interfaces/tunnel/node.tag/ip/ospf/bandwidth/node.def
@@ -0,0 +1,16 @@
+type: u32
+help: Bandwidth in kilobits/sec
+syntax:expression: $VAR(@) >= 1 && $VAR(@) <= 10000000; \
+ "Must be between 1-10000000"
+update:expression: "${vyatta_sbindir}/vyatta-vtysh.pl \
+ -c \"configure terminal \" \
+ -c \"interface $VAR(../../../@) \" \
+ -c \"bandwidth $VAR(@) \"; "
+
+delete:expression: "${vyatta_sbindir}/vyatta-vtysh.pl \
+ -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/tunnel/node.tag/ip/ospf/cost/node.def b/templates/interfaces/tunnel/node.tag/ip/ospf/cost/node.def
new file mode 100644
index 00000000..d976ace6
--- /dev/null
+++ b/templates/interfaces/tunnel/node.tag/ip/ospf/cost/node.def
@@ -0,0 +1,15 @@
+type: u32
+help: Interface cost
+syntax:expression: $VAR(@) >= 1 && $VAR(@) <= 65535; "Must be between 1-65535"
+update:expression: "${vyatta_sbindir}/vyatta-vtysh.pl \
+ -c \"configure terminal\" \
+ -c \"interface $VAR(../../../@)\" \
+ -c \"ip ospf cost $VAR(@) \"; "
+
+delete:expression: "${vyatta_sbindir}/vyatta-vtysh.pl \
+ -c \"configure terminal\" \
+ -c \"interface $VAR(../../../@)\" \
+ -c \"no ip ospf cost \"; "
+
+comp_help: possible completions:
+ <1-65535> Set Cost
diff --git a/templates/interfaces/tunnel/node.tag/ip/ospf/dead-interval/node.def b/templates/interfaces/tunnel/node.tag/ip/ospf/dead-interval/node.def
new file mode 100644
index 00000000..e8b1501b
--- /dev/null
+++ b/templates/interfaces/tunnel/node.tag/ip/ospf/dead-interval/node.def
@@ -0,0 +1,15 @@
+type: u32
+help: Interval after which a neighbor is declared dead
+default: 40
+syntax:expression: $VAR(@) >= 1 && $VAR(@) <= 65535; "Must be between 1-65535"
+
+update:expression: "${vyatta_sbindir}/vyatta-vtysh.pl \
+ -c \"configure terminal\" -c \"interface $VAR(../../../@)\" \
+ -c \"ip ospf dead-interval $VAR(@)\"; "
+
+delete:expression: "${vyatta_sbindir}/vyatta-vtysh.pl \
+ -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/tunnel/node.tag/ip/ospf/hello-interval/node.def b/templates/interfaces/tunnel/node.tag/ip/ospf/hello-interval/node.def
new file mode 100644
index 00000000..3ae56a7f
--- /dev/null
+++ b/templates/interfaces/tunnel/node.tag/ip/ospf/hello-interval/node.def
@@ -0,0 +1,12 @@
+type: u32
+help: Interval between HELLO packets
+default: 10
+syntax:expression: $VAR(@) >= 1 && $VAR(@) <= 65535; "Must be between 1-65535"
+update:expression: "${vyatta_sbindir}/vyatta-vtysh.pl \
+ -c \"configure terminal\" -c \"interface $VAR(../../../@) \" \
+ -c \"ip ospf hello-interval $VAR(@)\"; "
+delete:expression: "${vyatta_sbindir}/vyatta-vtysh.pl \
+ -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/tunnel/node.tag/ip/ospf/mtu-ignore/node.def b/templates/interfaces/tunnel/node.tag/ip/ospf/mtu-ignore/node.def
new file mode 100644
index 00000000..8179fb87
--- /dev/null
+++ b/templates/interfaces/tunnel/node.tag/ip/ospf/mtu-ignore/node.def
@@ -0,0 +1,10 @@
+help: Disable mtu mismatch detection
+create:expression: "${vyatta_sbindir}/vyatta-vtysh.pl \
+ -c \"configure terminal\" \
+ -c \"interface $VAR(../../../@)\" \
+ -c \"ip ospf mtu-ignore\"; "
+
+delete:expression: "${vyatta_sbindir}/vyatta-vtysh.pl \
+ -c \"configure terminal\" \
+ -c \"interface $VAR(../../../@)\" \
+ -c \"no ip ospf mtu-ignore\"; "
diff --git a/templates/interfaces/tunnel/node.tag/ip/ospf/network/node.def b/templates/interfaces/tunnel/node.tag/ip/ospf/network/node.def
new file mode 100644
index 00000000..cff270e2
--- /dev/null
+++ b/templates/interfaces/tunnel/node.tag/ip/ospf/network/node.def
@@ -0,0 +1,20 @@
+type: txt
+help: 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_sbindir}/vyatta-vtysh.pl \
+ -c \"configure terminal\" \
+ -c \"interface $VAR(../../../@) \" \
+ -c \"ip ospf network $VAR(@) \"; "
+
+delete:expression: "${vyatta_sbindir}/vyatta-vtysh.pl \
+ -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/tunnel/node.tag/ip/ospf/node.def b/templates/interfaces/tunnel/node.tag/ip/ospf/node.def
new file mode 100644
index 00000000..a01474ec
--- /dev/null
+++ b/templates/interfaces/tunnel/node.tag/ip/ospf/node.def
@@ -0,0 +1 @@
+help: OSPF interface commands
diff --git a/templates/interfaces/tunnel/node.tag/ip/ospf/priority/node.def b/templates/interfaces/tunnel/node.tag/ip/ospf/priority/node.def
new file mode 100644
index 00000000..0ac174ef
--- /dev/null
+++ b/templates/interfaces/tunnel/node.tag/ip/ospf/priority/node.def
@@ -0,0 +1,15 @@
+type: u32
+help: Router priority
+default: 1
+syntax:expression: $VAR(@) >= 0 && $VAR(@) <= 255; "Must be between 0-255"
+
+update:expression: "${vyatta_sbindir}/vyatta-vtysh.pl \
+ -c \"configure terminal\" -c \"interface $VAR(../../../@)\" \
+ -c \"ip ospf priority $VAR(@)\"; "
+
+delete:expression: "${vyatta_sbindir}/vyatta-vtysh.pl \
+ -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/tunnel/node.tag/ip/ospf/retransmit-interval/node.def b/templates/interfaces/tunnel/node.tag/ip/ospf/retransmit-interval/node.def
new file mode 100644
index 00000000..671d05ea
--- /dev/null
+++ b/templates/interfaces/tunnel/node.tag/ip/ospf/retransmit-interval/node.def
@@ -0,0 +1,15 @@
+type: u32
+help: Interval between retransmitting lost link state advertisements
+default: 5
+syntax:expression: $VAR(@) >= 3 && $VAR(@) <= 65535; "Must be between 3-65535"
+
+update:expression: "${vyatta_sbindir}/vyatta-vtysh.pl \
+ -c \"configure terminal\" -c \"interface $VAR(../../../@)\" \
+ -c \"ip ospf retransmit-interval $VAR(@)\"; "
+
+delete:expression: "${vyatta_sbindir}/vyatta-vtysh.pl \
+ -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/tunnel/node.tag/ip/ospf/transmit-delay/node.def b/templates/interfaces/tunnel/node.tag/ip/ospf/transmit-delay/node.def
new file mode 100644
index 00000000..f124fca2
--- /dev/null
+++ b/templates/interfaces/tunnel/node.tag/ip/ospf/transmit-delay/node.def
@@ -0,0 +1,14 @@
+type: u32
+help: Link state transmit delay
+default: 1
+syntax:expression: $VAR(@) >= 1 && $VAR(@) <= 65535; "Must be between 1-65535"
+update:expression: "${vyatta_sbindir}/vyatta-vtysh.pl \
+ -c \"configure terminal\" -c \"interface $VAR(../../../@)\" \
+ -c \"ip ospf transmit-delay $VAR(@)\"; "
+
+delete:expression: "${vyatta_sbindir}/vyatta-vtysh.pl \
+ -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/tunnel/node.tag/ip/rip/authentication/md5/node.def b/templates/interfaces/tunnel/node.tag/ip/rip/authentication/md5/node.def
new file mode 100644
index 00000000..873a4370
--- /dev/null
+++ b/templates/interfaces/tunnel/node.tag/ip/rip/authentication/md5/node.def
@@ -0,0 +1,5 @@
+tag:
+type: u32
+help: MD5 authentication key ID
+syntax:expression: $VAR(@) >= 1 && $VAR(@) <= 255; "ID must be between 1 and 255"
+
diff --git a/templates/interfaces/tunnel/node.tag/ip/rip/authentication/md5/node.tag/node.def b/templates/interfaces/tunnel/node.tag/ip/rip/authentication/md5/node.tag/node.def
new file mode 100644
index 00000000..4306d008
--- /dev/null
+++ b/templates/interfaces/tunnel/node.tag/ip/rip/authentication/md5/node.tag/node.def
@@ -0,0 +1 @@
+help: Authentication password
diff --git a/templates/interfaces/tunnel/node.tag/ip/rip/authentication/md5/node.tag/password/node.def b/templates/interfaces/tunnel/node.tag/ip/rip/authentication/md5/node.tag/password/node.def
new file mode 100644
index 00000000..c07b459b
--- /dev/null
+++ b/templates/interfaces/tunnel/node.tag/ip/rip/authentication/md5/node.tag/password/node.def
@@ -0,0 +1,23 @@
+type: txt
+help: 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_sbindir}/vyatta-vtysh.pl \
+ -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_sbindir}/vyatta-vtysh.pl -noerr \
+ -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/tunnel/node.tag/ip/rip/authentication/node.def b/templates/interfaces/tunnel/node.tag/ip/rip/authentication/node.def
new file mode 100644
index 00000000..22039cf7
--- /dev/null
+++ b/templates/interfaces/tunnel/node.tag/ip/rip/authentication/node.def
@@ -0,0 +1 @@
+help: Authentication method
diff --git a/templates/interfaces/tunnel/node.tag/ip/rip/authentication/simple-password/node.def b/templates/interfaces/tunnel/node.tag/ip/rip/authentication/simple-password/node.def
new file mode 100644
index 00000000..af7a0a1f
--- /dev/null
+++ b/templates/interfaces/tunnel/node.tag/ip/rip/authentication/simple-password/node.def
@@ -0,0 +1,19 @@
+type: txt
+help: Simple password authentication key
+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_sbindir}/vyatta-vtysh.pl \
+ -c \"configure terminal\" -c \"interface $VAR(../../../../@)\" \
+ -c \"ip rip authentication mode text\" \
+ -c \"ip rip authentication string $VAR(@)\"; "
+
+delete:expression: "${vyatta_sbindir}/vyatta-vtysh.pl \
+ -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/tunnel/node.tag/ip/rip/node.def b/templates/interfaces/tunnel/node.tag/ip/rip/node.def
new file mode 100644
index 00000000..4cf2a137
--- /dev/null
+++ b/templates/interfaces/tunnel/node.tag/ip/rip/node.def
@@ -0,0 +1 @@
+help: RIP interface commands
diff --git a/templates/interfaces/tunnel/node.tag/ip/rip/split-horizon/node.def b/templates/interfaces/tunnel/node.tag/ip/rip/split-horizon/node.def
new file mode 100644
index 00000000..3dfc4665
--- /dev/null
+++ b/templates/interfaces/tunnel/node.tag/ip/rip/split-horizon/node.def
@@ -0,0 +1,10 @@
+help: Enable split horizon on this interface
+update:expression: "${vyatta_sbindir}/vyatta-vtysh.pl \
+ -c \"configure terminal \" \
+ -c \"interface $VAR(../../../@) \" \
+ -c \"ip rip split-horizon \" "
+
+delete:expression: "${vyatta_sbindir}/vyatta-vtysh.pl \
+ -c \"configure terminal \" \
+ -c \"interface $VAR(../../../@) \" \
+ -c \"no ip rip split-horizon \" "
diff --git a/templates/interfaces/tunnel/node.tag/ip/rip/split-horizon/poison-reverse/node.def b/templates/interfaces/tunnel/node.tag/ip/rip/split-horizon/poison-reverse/node.def
new file mode 100644
index 00000000..9057a4cd
--- /dev/null
+++ b/templates/interfaces/tunnel/node.tag/ip/rip/split-horizon/poison-reverse/node.def
@@ -0,0 +1,11 @@
+help: With poison reverse
+create:expression: "${vyatta_sbindir}/vyatta-vtysh.pl \
+ -c \"configure terminal \" \
+ -c \"interface $VAR(../../../../@) \" \
+ -c \"ip rip split-horizon poisoned-reverse \" "
+
+delete:expression: "${vyatta_sbindir}/vyatta-vtysh.pl \
+ -c \"configure terminal \" \
+ -c \"interface $VAR(../../../../@) \" \
+ -c \"no ip rip split-horizon \" \
+ -c \"ip rip split-horizon \" "