summaryrefslogtreecommitdiff
path: root/templates/protocols
diff options
context:
space:
mode:
authorRobert Bays <rbays@moresby.vyatta.com>2008-03-25 17:19:29 -0700
committerRobert Bays <rbays@moresby.vyatta.com>2008-03-25 17:19:29 -0700
commitf9989ab77bffc9fb336eb6c00677e6251b1bf618 (patch)
treee947a9d0ccf7de15adcd36caa84c3887f2ad4c4e /templates/protocols
parent43e606dd1afc29b551ddfb53f4d7a388121b3fbe (diff)
downloadvyatta-cfg-quagga-f9989ab77bffc9fb336eb6c00677e6251b1bf618.tar.gz
vyatta-cfg-quagga-f9989ab77bffc9fb336eb6c00677e6251b1bf618.zip
update help strings in BGP
add comp_help strings to BGP remove enforce-capability parameter since in quagga it's an alias remove interface parameter since it's ipv6 related remove password parameter as the md5 code isn't in the current release fixed a couple of parameter relationship bugs
Diffstat (limited to 'templates/protocols')
-rw-r--r--templates/protocols/bgp/node.def11
-rw-r--r--templates/protocols/bgp/node.tag/aggregate-address/node.def41
-rw-r--r--templates/protocols/bgp/node.tag/aggregate-address/node.tag/as-set/node.def2
-rw-r--r--templates/protocols/bgp/node.tag/aggregate-address/node.tag/summary-only/node.def2
-rw-r--r--templates/protocols/bgp/node.tag/neighbor/node.def13
-rw-r--r--templates/protocols/bgp/node.tag/neighbor/node.tag/advertisement-interval/node.def23
-rw-r--r--templates/protocols/bgp/node.tag/neighbor/node.tag/allowas-in/node.def32
-rw-r--r--templates/protocols/bgp/node.tag/neighbor/node.tag/allowas-in/number/node.def3
-rw-r--r--templates/protocols/bgp/node.tag/neighbor/node.tag/attribute-unchanged/as-path/node.def2
-rw-r--r--templates/protocols/bgp/node.tag/neighbor/node.tag/attribute-unchanged/med/node.def2
-rw-r--r--templates/protocols/bgp/node.tag/neighbor/node.tag/attribute-unchanged/next-hop/node.def2
-rw-r--r--templates/protocols/bgp/node.tag/neighbor/node.tag/attribute-unchanged/node.def52
-rw-r--r--templates/protocols/bgp/node.tag/neighbor/node.tag/capability/dynamic/node.def22
-rw-r--r--templates/protocols/bgp/node.tag/neighbor/node.tag/capability/node.def1
-rw-r--r--templates/protocols/bgp/node.tag/neighbor/node.tag/capability/orf/node.def2
-rw-r--r--templates/protocols/bgp/node.tag/neighbor/node.tag/capability/orf/prefix-list/receive/node.def22
-rw-r--r--templates/protocols/bgp/node.tag/neighbor/node.tag/capability/orf/prefix-list/send/node.def2
-rw-r--r--templates/protocols/bgp/node.tag/neighbor/node.tag/default-originate/node.def40
-rw-r--r--templates/protocols/bgp/node.tag/neighbor/node.tag/default-originate/route-map/node.def6
-rw-r--r--templates/protocols/bgp/node.tag/neighbor/node.tag/description/node.def2
-rw-r--r--templates/protocols/bgp/node.tag/neighbor/node.tag/disable-capability-negotiation/node.def22
-rw-r--r--templates/protocols/bgp/node.tag/neighbor/node.tag/disable-connected-check/node.def22
-rw-r--r--templates/protocols/bgp/node.tag/neighbor/node.tag/disable-send-community/extended/node.def24
-rw-r--r--templates/protocols/bgp/node.tag/neighbor/node.tag/disable-send-community/node.def4
-rw-r--r--templates/protocols/bgp/node.tag/neighbor/node.tag/disable-send-community/standard/node.def23
-rw-r--r--templates/protocols/bgp/node.tag/neighbor/node.tag/distribute-list/export/node.def28
-rw-r--r--templates/protocols/bgp/node.tag/neighbor/node.tag/distribute-list/import/node.def28
-rw-r--r--templates/protocols/bgp/node.tag/neighbor/node.tag/distribute-list/node.def2
-rw-r--r--templates/protocols/bgp/node.tag/neighbor/node.tag/ebgp-multihop/node.def23
-rw-r--r--templates/protocols/bgp/node.tag/neighbor/node.tag/enforce-multihop/node.def13
-rw-r--r--templates/protocols/bgp/node.tag/neighbor/node.tag/filter-list/export/node.def27
-rw-r--r--templates/protocols/bgp/node.tag/neighbor/node.tag/filter-list/import/node.def27
-rw-r--r--templates/protocols/bgp/node.tag/neighbor/node.tag/filter-list/node.def2
-rw-r--r--templates/protocols/bgp/node.tag/neighbor/node.tag/interface/node.def18
-rw-r--r--templates/protocols/bgp/node.tag/neighbor/node.tag/local-as/local-as/node.def7
-rw-r--r--templates/protocols/bgp/node.tag/neighbor/node.tag/local-as/no-prepend/node.def2
-rw-r--r--templates/protocols/bgp/node.tag/neighbor/node.tag/local-as/node.def55
-rw-r--r--templates/protocols/bgp/node.tag/neighbor/node.tag/maximum-prefix/node.def23
-rw-r--r--templates/protocols/bgp/node.tag/neighbor/node.tag/nexthop-self/node.def24
-rw-r--r--templates/protocols/bgp/node.tag/neighbor/node.tag/override-capability/node.def24
-rw-r--r--templates/protocols/bgp/node.tag/neighbor/node.tag/passive/node.def22
-rw-r--r--templates/protocols/bgp/node.tag/neighbor/node.tag/password/node.def13
-rw-r--r--templates/protocols/bgp/node.tag/neighbor/node.tag/peer-group/node.def10
-rw-r--r--templates/protocols/bgp/node.tag/neighbor/node.tag/port/node.def33
-rw-r--r--templates/protocols/bgp/node.tag/neighbor/node.tag/prefix-list/export/node.def28
-rw-r--r--templates/protocols/bgp/node.tag/neighbor/node.tag/prefix-list/import/node.def28
-rw-r--r--templates/protocols/bgp/node.tag/neighbor/node.tag/prefix-list/node.def2
-rw-r--r--templates/protocols/bgp/node.tag/neighbor/node.tag/remote-as/node.def11
-rw-r--r--templates/protocols/bgp/node.tag/neighbor/node.tag/remove-private-as/node.def24
-rw-r--r--templates/protocols/bgp/node.tag/neighbor/node.tag/route-map/export/node.def27
-rw-r--r--templates/protocols/bgp/node.tag/neighbor/node.tag/route-map/import/node.def27
-rw-r--r--templates/protocols/bgp/node.tag/neighbor/node.tag/route-map/node.def2
-rw-r--r--templates/protocols/bgp/node.tag/neighbor/node.tag/route-reflector-client/node.def26
-rw-r--r--templates/protocols/bgp/node.tag/neighbor/node.tag/route-server-client/node.def24
-rw-r--r--templates/protocols/bgp/node.tag/neighbor/node.tag/shutdown/node.def22
-rw-r--r--templates/protocols/bgp/node.tag/neighbor/node.tag/soft-reconfiguration/inbound/node.def23
-rw-r--r--templates/protocols/bgp/node.tag/neighbor/node.tag/soft-reconfiguration/node.def4
-rw-r--r--templates/protocols/bgp/node.tag/neighbor/node.tag/strict-capability-match/node.def24
-rw-r--r--templates/protocols/bgp/node.tag/neighbor/node.tag/timers/connect/node.def4
-rw-r--r--templates/protocols/bgp/node.tag/neighbor/node.tag/timers/holdtime/node.def4
-rw-r--r--templates/protocols/bgp/node.tag/neighbor/node.tag/timers/keepalive/node.def3
-rw-r--r--templates/protocols/bgp/node.tag/neighbor/node.tag/timers/node.def52
-rw-r--r--templates/protocols/bgp/node.tag/neighbor/node.tag/unsuppress-map/node.def27
-rw-r--r--templates/protocols/bgp/node.tag/neighbor/node.tag/update-source/node.def23
-rw-r--r--templates/protocols/bgp/node.tag/neighbor/node.tag/weight/node.def23
-rw-r--r--templates/protocols/bgp/node.tag/network/node.def6
-rw-r--r--templates/protocols/bgp/node.tag/network/node.tag/backdoor/node.def2
-rw-r--r--templates/protocols/bgp/node.tag/network/node.tag/route-map/node.def5
-rw-r--r--templates/protocols/bgp/node.tag/parameters/always-compare-med/node.def10
-rw-r--r--templates/protocols/bgp/node.tag/parameters/bestpath/as-path/confed/node.def10
-rw-r--r--templates/protocols/bgp/node.tag/parameters/bestpath/as-path/ignore/node.def10
-rw-r--r--templates/protocols/bgp/node.tag/parameters/bestpath/as-path/node.def2
-rw-r--r--templates/protocols/bgp/node.tag/parameters/bestpath/compare-routerid/node.def10
-rw-r--r--templates/protocols/bgp/node.tag/parameters/bestpath/med/confed/node.def10
-rw-r--r--templates/protocols/bgp/node.tag/parameters/bestpath/med/missing-as-worst/node.def10
-rw-r--r--templates/protocols/bgp/node.tag/parameters/bestpath/med/node.def2
-rw-r--r--templates/protocols/bgp/node.tag/parameters/bestpath/node.def2
-rw-r--r--templates/protocols/bgp/node.tag/parameters/cluster-id/node.def11
-rw-r--r--templates/protocols/bgp/node.tag/parameters/confederation/identifier/node.def11
-rw-r--r--templates/protocols/bgp/node.tag/parameters/confederation/node.def2
-rw-r--r--templates/protocols/bgp/node.tag/parameters/confederation/peers/node.def11
-rw-r--r--templates/protocols/bgp/node.tag/parameters/dampening/half-life/node.def3
-rw-r--r--templates/protocols/bgp/node.tag/parameters/dampening/max-suppress-time/node.def7
-rw-r--r--templates/protocols/bgp/node.tag/parameters/dampening/node.def21
-rw-r--r--templates/protocols/bgp/node.tag/parameters/dampening/re-use/node.def7
-rw-r--r--templates/protocols/bgp/node.tag/parameters/dampening/start-suppress-time/node.def7
-rw-r--r--templates/protocols/bgp/node.tag/parameters/default/local-pref/node.def11
-rw-r--r--templates/protocols/bgp/node.tag/parameters/default/no-ipv4-unicast/node.def10
-rw-r--r--templates/protocols/bgp/node.tag/parameters/default/node.def2
-rw-r--r--templates/protocols/bgp/node.tag/parameters/deterministic-med/node.def10
-rw-r--r--templates/protocols/bgp/node.tag/parameters/disable-network-import-check/node.def10
-rw-r--r--templates/protocols/bgp/node.tag/parameters/enforce-first-as/node.def10
-rw-r--r--templates/protocols/bgp/node.tag/parameters/graceful-restart/node.def2
-rw-r--r--templates/protocols/bgp/node.tag/parameters/graceful-restart/stalepath-time/node.def11
-rw-r--r--templates/protocols/bgp/node.tag/parameters/log-neighbor-changes/node.def10
-rw-r--r--templates/protocols/bgp/node.tag/parameters/no-client-to-client-reflection/node.def10
-rw-r--r--templates/protocols/bgp/node.tag/parameters/no-fast-external-failover/node.def10
-rw-r--r--templates/protocols/bgp/node.tag/parameters/node.def2
-rw-r--r--templates/protocols/bgp/node.tag/parameters/router-id/node.def11
-rw-r--r--templates/protocols/bgp/node.tag/parameters/scan-time/node.def11
-rw-r--r--templates/protocols/bgp/node.tag/redistribute/connected/metric/node.def3
-rw-r--r--templates/protocols/bgp/node.tag/redistribute/connected/node.def32
-rw-r--r--templates/protocols/bgp/node.tag/redistribute/connected/route-map/node.def5
-rw-r--r--templates/protocols/bgp/node.tag/redistribute/kernel/metric/node.def3
-rw-r--r--templates/protocols/bgp/node.tag/redistribute/kernel/node.def32
-rw-r--r--templates/protocols/bgp/node.tag/redistribute/kernel/route-map/node.def5
-rw-r--r--templates/protocols/bgp/node.tag/redistribute/node.def2
-rw-r--r--templates/protocols/bgp/node.tag/redistribute/ospf/metric/node.def3
-rw-r--r--templates/protocols/bgp/node.tag/redistribute/ospf/node.def32
-rw-r--r--templates/protocols/bgp/node.tag/redistribute/ospf/route-map/node.def5
-rw-r--r--templates/protocols/bgp/node.tag/redistribute/rip/metric/node.def3
-rw-r--r--templates/protocols/bgp/node.tag/redistribute/rip/node.def32
-rw-r--r--templates/protocols/bgp/node.tag/redistribute/rip/route-map/node.def5
-rw-r--r--templates/protocols/bgp/node.tag/redistribute/static/metric/node.def3
-rw-r--r--templates/protocols/bgp/node.tag/redistribute/static/node.def32
-rw-r--r--templates/protocols/bgp/node.tag/redistribute/static/route-map/node.def5
-rw-r--r--templates/protocols/bgp/node.tag/timers/holdtime/node.def9
-rw-r--r--templates/protocols/bgp/node.tag/timers/keepalive/node.def3
-rw-r--r--templates/protocols/bgp/node.tag/timers/node.def24
119 files changed, 843 insertions, 840 deletions
diff --git a/templates/protocols/bgp/node.def b/templates/protocols/bgp/node.def
index c1b84c57..c656ab50 100644
--- a/templates/protocols/bgp/node.def
+++ b/templates/protocols/bgp/node.def
@@ -1,9 +1,10 @@
tag:
type: u32
-help: Configure a BGP Autonomous System on this router
+help: Configure BGP protocol
+comp_help: \1 <1-4294967294>\tAS number
syntax:expression: $VAR(@) >= 1 && $VAR(@) <= 4294967294; "AS number must be between 1 and 4294967294"
-update:expression: "${vyatta_sbindir}/vyatta-vtysh.pl -c \"configure terminal\" -c \"router bgp $VAR(@)\" "
+update: ${vyatta_sbindir}/vyatta-vtysh.pl -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 because we don't know the AS number
-update:expression: "${vyatta_sbindir}/vyatta-vtysh.pl -c \"configure terminal\" -c \"router bgp $VAR(@)\" -c \"bgp network import-check\" "
-delete:expression: "${vyatta_sbindir}/vyatta-vtysh.pl -c \"configure terminal\" -c \"no router bgp $VAR(@)\" "
+# startup scripts as we don't know the AS number at that point
+update: ${vyatta_sbindir}/vyatta-vtysh.pl -c "configure terminal" -c "router bgp $VAR(@)" -c "bgp network import-check"
+delete: ${vyatta_sbindir}/vyatta-vtysh.pl -c "configure terminal" -c "no router bgp $VAR(@)"
diff --git a/templates/protocols/bgp/node.tag/aggregate-address/node.def b/templates/protocols/bgp/node.tag/aggregate-address/node.def
index 5a188842..e7b214fb 100644
--- a/templates/protocols/bgp/node.tag/aggregate-address/node.def
+++ b/templates/protocols/bgp/node.tag/aggregate-address/node.def
@@ -1,24 +1,23 @@
tag:
type: ipv4net
-help: Configure BGP aggregate entries
+help: configure a BGP aggregate network
+comp_help: \1 <x.x.x.x/x>\taggregate network
syntax:expression: exec "/opt/vyatta/sbin/vyatta_quagga_utils.pl --check-prefix-boundry $VAR(@)"
-
-delete:expression: "touch /tmp/`echo $VAR(@) | sed 's!/!!'`.$PPID"
-
-end:expression: "${vyatta_sbindir}/vyatta-vtysh.pl -noerr \
- -c \"configure terminal\" \
- -c \"router bgp $VAR(../@)\" \
- -c \"no aggregate-address $VAR(@)\"; \
- if [ -f \"/tmp/`echo $VAR(@) | sed 's!/!!'`.$PPID\" ]; then \
- rm -rf /tmp/`echo $VAR(@) | sed 's!/!!'`.$PPID; \
- else \
- if ${vyatta_sbindir}/vyatta_quagga_utils.pl --exists 'protocols bgp $VAR(../@) aggregate-address $VAR(@) as-set' ; then \
- COND=\"as-set\"; \
- fi; \
- if ${vyatta_sbindir}/vyatta_quagga_utils.pl --exists 'protocols bgp $VAR(../@) aggregate-address $VAR(@) summary-only' ; then \
- COND=\"$COND summary-only\"; \
- fi; \
- ${vyatta_sbindir}/vyatta-vtysh.pl -c \"configure terminal\" \
- -c \"router bgp $VAR(../@)\" \
- -c \"aggregate-address $VAR(@) $COND\"; \
- fi; "
+delete: touch /tmp/`echo $VAR(@) | sed 's!/!!'`.$PPID
+end: ${vyatta_sbindir}/vyatta-vtysh.pl -noerr \
+ -c "configure terminal" \
+ -c "router bgp $VAR(../@)" \
+ -c "no aggregate-address $VAR(@)";
+ if [ -f "/tmp/`echo $VAR(@) | sed 's!/!!'`.$PPID" ]; then
+ rm -rf /tmp/`echo $VAR(@) | sed 's!/!!'`.$PPID;
+ else
+ if ${vyatta_sbindir}/vyatta_quagga_utils.pl --exists 'protocols bgp $VAR(../@) aggregate-address $VAR(@) as-set' ; then
+ cond="as-set";
+ fi;
+ if ${vyatta_sbindir}/vyatta_quagga_utils.pl --exists 'protocols bgp $VAR(../@) aggregate-address $VAR(@) summary-only' ; then
+ cond="$cond summary-only";
+ fi;
+ ${vyatta_sbindir}/vyatta-vtysh.pl -c "configure terminal" \
+ -c "router bgp $VAR(../@)" \
+ -c "aggregate-address $VAR(@) $cond";
+ fi;
diff --git a/templates/protocols/bgp/node.tag/aggregate-address/node.tag/as-set/node.def b/templates/protocols/bgp/node.tag/aggregate-address/node.tag/as-set/node.def
index d4d7945f..ef6214f2 100644
--- a/templates/protocols/bgp/node.tag/aggregate-address/node.tag/as-set/node.def
+++ b/templates/protocols/bgp/node.tag/aggregate-address/node.tag/as-set/node.def
@@ -1 +1 @@
-help: Generate AS set path information
+help: generate AS-set path information for this aggregate
diff --git a/templates/protocols/bgp/node.tag/aggregate-address/node.tag/summary-only/node.def b/templates/protocols/bgp/node.tag/aggregate-address/node.tag/summary-only/node.def
index 4d8a96b2..f2e04595 100644
--- a/templates/protocols/bgp/node.tag/aggregate-address/node.tag/summary-only/node.def
+++ b/templates/protocols/bgp/node.tag/aggregate-address/node.tag/summary-only/node.def
@@ -1 +1 @@
-help: Filter more specific routes from updates
+help: announce the aggregate summary network only
diff --git a/templates/protocols/bgp/node.tag/neighbor/node.def b/templates/protocols/bgp/node.tag/neighbor/node.def
index 4950c664..6630aaf4 100644
--- a/templates/protocols/bgp/node.tag/neighbor/node.def
+++ b/templates/protocols/bgp/node.tag/neighbor/node.def
@@ -1,9 +1,10 @@
tag:
type: txt
-help: Specify neighbor router
+help: configure a BGP neighbor
+comp_help: \1 <x.x.x.x>\tBGP neighbor IP address
syntax:expression: exec "/opt/vyatta/sbin/vyatta-bgp.pl --check-peer-name $VAR(@)"
-update:expression: "if [ -n \"`echo $VAR(@) | sed 's/[0-9]\\{1,3\\}.[0-9]\\{1,3\\}.[0-9]\\{1,3\\}.[0-9]\\{1,3\\}//'`\" ]; then \
- ${vyatta_sbindir}/vyatta-vtysh.pl -c \"configure terminal\" -c \"router bgp $VAR(../@)\" -c \"neighbor $VAR(@) peer-group\" ; \
- fi ; "
-delete:expression: "/opt/vyatta/sbin/vyatta-bgp.pl --check-peer-groups --peergroup $VAR(@) --as $VAR(../@); \
- ${vyatta_sbindir}/vyatta-vtysh.pl -c \"configure terminal\" -c \"router bgp $VAR(../@)\" -c \"no neighbor $VAR(@) \" "
+update: if [ -n "`echo $VAR(@) | sed 's/[0-9]\{1,3\}.[0-9]\{1,3\}.[0-9]\{1,3\}.[0-9]\{1,3\}//'`" ]; then
+ ${vyatta_sbindir}/vyatta-vtysh.pl -c "configure terminal" -c "router bgp $VAR(../@)" -c "neighbor $VAR(@) peer-group" ;
+ fi ;
+delete: /opt/vyatta/sbin/vyatta-bgp.pl --check-peer-groups --peergroup $VAR(@) --as $VAR(../@);
+ ${vyatta_sbindir}/vyatta-vtysh.pl -c "configure terminal" -c "router bgp $VAR(../@)" -c "no neighbor $VAR(@)"
diff --git a/templates/protocols/bgp/node.tag/neighbor/node.tag/advertisement-interval/node.def b/templates/protocols/bgp/node.tag/neighbor/node.tag/advertisement-interval/node.def
index fdce27db..da1edd2e 100644
--- a/templates/protocols/bgp/node.tag/neighbor/node.tag/advertisement-interval/node.def
+++ b/templates/protocols/bgp/node.tag/neighbor/node.tag/advertisement-interval/node.def
@@ -1,14 +1,15 @@
type: u32
-help: Minimum interval between sending BGP routing updates
+help: set the minimum interval between sending BGP routing updates
+comp_help: \1 <0-600>\tadvertisement interval in seconds
syntax:expression: $VAR(@) >= 0 && $VAR(@) <= 600; "must be between 0 and 600"
commit:expression: exec "/opt/vyatta/sbin/vyatta-bgp.pl --check-as --as $VAR(../../@) --neighbor $VAR(../@)"
-update:expression: "if [ -n \"$VAR(../remote-as/@)\" ]; then \
- peer=\"remote-as $VAR(../remote-as/@)\"; \
- else \
- peer=\"peer-group $VAR(../peer-group/@)\"; \
- fi; \
- ${vyatta_sbindir}/vyatta-vtysh.pl -c \"configure terminal\" -c \"router bgp $VAR(../../@)\" \
- -c \"neighbor $VAR(../@) $peer\" \
- -c \"neighbor $VAR(../@) advertisement-interval $VAR(@)\" "
-delete:expression: "${vyatta_sbindir}/vyatta-vtysh.pl -noerr -c \"configure terminal\" -c \"router bgp $VAR(../../@)\" \
- -c \"no neighbor $VAR(../@) advertisement-interval\" "
+update: if [ -n "$VAR(../remote-as/@)" ]; then
+ peer="remote-as $VAR(../remote-as/@)";
+ else
+ peer="peer-group $VAR(../peer-group/@)";
+ fi;
+ ${vyatta_sbindir}/vyatta-vtysh.pl -c "configure terminal" -c "router bgp $VAR(../../@)" \
+ -c "neighbor $VAR(../@) $peer" \
+ -c "neighbor $VAR(../@) advertisement-interval $VAR(@)"
+delete: ${vyatta_sbindir}/vyatta-vtysh.pl -noerr -c "configure terminal" -c "router bgp $VAR(../../@)" \
+ -c "no neighbor $VAR(../@) advertisement-interval"
diff --git a/templates/protocols/bgp/node.tag/neighbor/node.tag/allowas-in/node.def b/templates/protocols/bgp/node.tag/neighbor/node.tag/allowas-in/node.def
index 6c1ab4a5..04a1b0fb 100644
--- a/templates/protocols/bgp/node.tag/neighbor/node.tag/allowas-in/node.def
+++ b/templates/protocols/bgp/node.tag/neighbor/node.tag/allowas-in/node.def
@@ -1,17 +1,17 @@
-help: Accept as-path with my AS present in it.
+help: accept a route that contains an as-path with the local AS present in it
commit:expression: exec "/opt/vyatta/sbin/vyatta-bgp.pl --check-as --as $VAR(../../@) --neighbor $VAR(../@)"
-delete:expression: "touch /tmp/bgp-neighbor-$VAR(../@)-allowas-in.$PPID"
-end:expression: "${vyatta_sbindir}/vyatta-vtysh.pl -noerr -c \"configure terminal\" -c \"router bgp $VAR(../../@)\" \
- -c \"no neighbor $VAR(../@) allowas-in \"; \
- if [ -f \"/tmp/bgp-neighbor-$VAR(../@)-allowas-in.$PPID\" ]; then \
- rm -rf /tmp/bgp-neighbor-$VAR(../@)-allowas-in.$PPID; \
- else \
- if [ -n \"$VAR(../remote-as/@)\" ]; then \
- peer=\"remote-as $VAR(../remote-as/@)\"; \
- else \
- peer=\"peer-group $VAR(../peer-group/@)\"; \
- fi; \
- ${vyatta_sbindir}/vyatta-vtysh.pl -c \"configure terminal\" -c \"router bgp $VAR(../../@)\" \
- -c \"neighbor $VAR(../@) $peer\" \
- -c \"neighbor $VAR(../@) allowas-in $VAR(./number/@)\"; \
- fi; "
+delete: touch /tmp/bgp-neighbor-$VAR(../@)-allowas-in.$PPID
+end: ${vyatta_sbindir}/vyatta-vtysh.pl -noerr -c "configure terminal" -c "router bgp $VAR(../../@)" \
+ -c "no neighbor $VAR(../@) allowas-in ";
+ if [ -f "/tmp/bgp-neighbor-$VAR(../@)-allowas-in.$PPID" ]; then
+ rm -rf /tmp/bgp-neighbor-$VAR(../@)-allowas-in.$PPID;
+ else
+ if [ -n "$VAR(../remote-as/@)" ]; then
+ peer="remote-as $VAR(../remote-as/@)";
+ else
+ peer="peer-group $VAR(../peer-group/@)";
+ fi;
+ ${vyatta_sbindir}/vyatta-vtysh.pl -c "configure terminal" -c "router bgp $VAR(../../@)" \
+ -c "neighbor $VAR(../@) $peer" \
+ -c "neighbor $VAR(../@) allowas-in $VAR(./number/@)";
+ fi;
diff --git a/templates/protocols/bgp/node.tag/neighbor/node.tag/allowas-in/number/node.def b/templates/protocols/bgp/node.tag/neighbor/node.tag/allowas-in/number/node.def
index 4efe3d54..30b3922a 100644
--- a/templates/protocols/bgp/node.tag/neighbor/node.tag/allowas-in/number/node.def
+++ b/templates/protocols/bgp/node.tag/neighbor/node.tag/allowas-in/number/node.def
@@ -1,4 +1,5 @@
type: u32
-help: Number of occurrences of AS number
+help: number of occurrences of AS number
+comp_help: \1 <1-10>\tnumber of times AS is allowed in path
syntax:expression: $VAR(@) >= 1 && $VAR(@) <= 10; "allowas-in number must be between 1 and 10"
commit:expression: exec "/opt/vyatta/sbin/vyatta-bgp.pl --check-as --as $VAR(../../../@) --neighbor $VAR(../../@)"
diff --git a/templates/protocols/bgp/node.tag/neighbor/node.tag/attribute-unchanged/as-path/node.def b/templates/protocols/bgp/node.tag/neighbor/node.tag/attribute-unchanged/as-path/node.def
index 19e19fcf..2967aec6 100644
--- a/templates/protocols/bgp/node.tag/neighbor/node.tag/attribute-unchanged/as-path/node.def
+++ b/templates/protocols/bgp/node.tag/neighbor/node.tag/attribute-unchanged/as-path/node.def
@@ -1 +1 @@
-help: AS path attribute
+help: send AS path unchanged
diff --git a/templates/protocols/bgp/node.tag/neighbor/node.tag/attribute-unchanged/med/node.def b/templates/protocols/bgp/node.tag/neighbor/node.tag/attribute-unchanged/med/node.def
index a5a7ae78..28997ace 100644
--- a/templates/protocols/bgp/node.tag/neighbor/node.tag/attribute-unchanged/med/node.def
+++ b/templates/protocols/bgp/node.tag/neighbor/node.tag/attribute-unchanged/med/node.def
@@ -1 +1 @@
-help: Multi-exit discriminator attribute
+help: send multi-exit discriminator unchanged
diff --git a/templates/protocols/bgp/node.tag/neighbor/node.tag/attribute-unchanged/next-hop/node.def b/templates/protocols/bgp/node.tag/neighbor/node.tag/attribute-unchanged/next-hop/node.def
index 7c6aa538..3d2429bc 100644
--- a/templates/protocols/bgp/node.tag/neighbor/node.tag/attribute-unchanged/next-hop/node.def
+++ b/templates/protocols/bgp/node.tag/neighbor/node.tag/attribute-unchanged/next-hop/node.def
@@ -1 +1 @@
-help: Nexthop attribute
+help: send nexthop unchanged
diff --git a/templates/protocols/bgp/node.tag/neighbor/node.tag/attribute-unchanged/node.def b/templates/protocols/bgp/node.tag/neighbor/node.tag/attribute-unchanged/node.def
index 936286c5..3bef572f 100644
--- a/templates/protocols/bgp/node.tag/neighbor/node.tag/attribute-unchanged/node.def
+++ b/templates/protocols/bgp/node.tag/neighbor/node.tag/attribute-unchanged/node.def
@@ -1,27 +1,27 @@
-help: BGP attribute is propagated unchanged to this neighbor
+help: set whether BGP attributes are sent unchanged to this neighbor
commit:expression: exec "/opt/vyatta/sbin/vyatta-bgp.pl --check-as --as $VAR(../../@) --neighbor $VAR(../@)"
-commit:expression: $VAR(../peer-group/) == ""; "You can't set attribute-unchanged for neighbor $VAR(../@) in peer-group $VAR(../peer-group/@)"
-delete:expression: "touch /tmp/bgp-neighbor-$VAR(../@)-attribute-unchanged.$PPID"
-end:expression: "${vyatta_sbindir}/vyatta-vtysh.pl -noerr -c \"configure terminal\" -c \"router bgp $VAR(../../@)\" \
- -c \"no neighbor $VAR(../@) attribute-unchanged \"; \
- if [ -f \"/tmp/bgp-neighbor-$VAR(../@)-attribute-unchanged.$PPID\" ]; then \
- rm -rf /tmp/bgp-neighbor-$VAR(../@)-attribute-unchanged.$PPID; \
- else \
- if [ -n \"$VAR(./as-path/@)\" ]; then \
- cond=\"as-path \" ; \
- fi ; \
- if [ -n \"$VAR(./med/@)\" ]; then \
- cond=\"$cond med \" ; \
- fi ; \
- if [ -n \"$VAR(./next-hop/@)\" ]; then \
- cond=\"$cond next-hop \" ; \
- fi ; \
- if [ -n \"$VAR(../remote-as/@)\" ]; then \
- peer=\"remote-as $VAR(../remote-as/@)\"; \
- else \
- peer=\"peer-group $VAR(../peer-group/@)\"; \
- fi; \
- ${vyatta_sbindir}/vyatta-vtysh.pl -c \"configure terminal\" -c \"router bgp $VAR(../../@)\" \
- -c \"neighbor $VAR(../@) $peer\" \
- -c \"neighbor $VAR(../@) attribute-unchanged $cond\"; \
- fi; "
+commit:expression: $VAR(../peer-group/) == ""; "protocols bgp $VAR(../../@) neighbor $VAR(../@): you can't set attribute-unchanged for a neighbor in a peer-group"
+delete: touch /tmp/bgp-neighbor-$VAR(../@)-attribute-unchanged.$PPID
+end: ${vyatta_sbindir}/vyatta-vtysh.pl -noerr -c "configure terminal" -c "router bgp $VAR(../../@)" \
+ -c "no neighbor $VAR(../@) attribute-unchanged ";
+ if [ -f "/tmp/bgp-neighbor-$VAR(../@)-attribute-unchanged.$PPID" ]; then
+ rm -rf /tmp/bgp-neighbor-$VAR(../@)-attribute-unchanged.$PPID;
+ else
+ if [ -n "$VAR(./as-path/@)" ]; then
+ cond="as-path " ;
+ fi ;
+ if [ -n "$VAR(./med/@)" ]; then
+ cond="$cond med " ;
+ fi ;
+ if [ -n "$VAR(./next-hop/@)" ]; then
+ cond="$cond next-hop " ;
+ fi ;
+ if [ -n "$VAR(../remote-as/@)" ]; then
+ peer="remote-as $VAR(../remote-as/@)";
+ else
+ peer="peer-group $VAR(../peer-group/@)";
+ fi;
+ ${vyatta_sbindir}/vyatta-vtysh.pl -c "configure terminal" -c "router bgp $VAR(../../@)" \
+ -c "neighbor $VAR(../@) $peer" \
+ -c "neighbor $VAR(../@) attribute-unchanged $cond";
+ fi;
diff --git a/templates/protocols/bgp/node.tag/neighbor/node.tag/capability/dynamic/node.def b/templates/protocols/bgp/node.tag/neighbor/node.tag/capability/dynamic/node.def
index 8c285c3d..d5dbb16f 100644
--- a/templates/protocols/bgp/node.tag/neighbor/node.tag/capability/dynamic/node.def
+++ b/templates/protocols/bgp/node.tag/neighbor/node.tag/capability/dynamic/node.def
@@ -1,13 +1,13 @@
-help: Advertise dynamic capability to this neighbor
+help: advertise dynamic capability to this neighbor
commit:expression: exec "/opt/vyatta/sbin/vyatta-bgp.pl --check-as --as $VAR(../../../@) --neighbor $VAR(../../@)"
-update:expression: "if [ -n \"$VAR(../../remote-as/@)\" ]; then \
- peer=\"remote-as $VAR(../../remote-as/@)\"; \
- else \
- peer=\"peer-group $VAR(../../peer-group/@)\"; \
- fi; \
- ${vyatta_sbindir}/vyatta-vtysh.pl -c \"configure terminal\" -c \"router bgp $VAR(../../../@)\" \
- -c \"neighbor $VAR(../../@) $peer\" \
- -c \"neighbor $VAR(../../@) capability dynamic\" "
-delete:expression: "${vyatta_sbindir}/vyatta-vtysh.pl -noerr -c \"configure terminal\" -c \"router bgp $VAR(../../../@)\" \
- -c \"no neighbor $VAR(../../@) capability dynamic\" "
+update: if [ -n "$VAR(../../remote-as/@)" ]; then
+ peer="remote-as $VAR(../../remote-as/@)";
+ else
+ peer="peer-group $VAR(../../peer-group/@)";
+ fi;
+ ${vyatta_sbindir}/vyatta-vtysh.pl -c "configure terminal" -c "router bgp $VAR(../../../@)" \
+ -c "neighbor $VAR(../../@) $peer" \
+ -c "neighbor $VAR(../../@) capability dynamic"
+delete: ${vyatta_sbindir}/vyatta-vtysh.pl -noerr -c "configure terminal" -c "router bgp $VAR(../../../@)" \
+ -c "no neighbor $VAR(../../@) capability dynamic"
diff --git a/templates/protocols/bgp/node.tag/neighbor/node.tag/capability/node.def b/templates/protocols/bgp/node.tag/neighbor/node.tag/capability/node.def
new file mode 100644
index 00000000..3d0947e6
--- /dev/null
+++ b/templates/protocols/bgp/node.tag/neighbor/node.tag/capability/node.def
@@ -0,0 +1 @@
+help: advertise capabilities to this neighbor
diff --git a/templates/protocols/bgp/node.tag/neighbor/node.tag/capability/orf/node.def b/templates/protocols/bgp/node.tag/neighbor/node.tag/capability/orf/node.def
index 9fb78194..9ddbf8e7 100644
--- a/templates/protocols/bgp/node.tag/neighbor/node.tag/capability/orf/node.def
+++ b/templates/protocols/bgp/node.tag/neighbor/node.tag/capability/orf/node.def
@@ -1 +1 @@
-help: Advertise ORF capability to the peer
+help: advertise ORF capability to this neighbor
diff --git a/templates/protocols/bgp/node.tag/neighbor/node.tag/capability/orf/prefix-list/receive/node.def b/templates/protocols/bgp/node.tag/neighbor/node.tag/capability/orf/prefix-list/receive/node.def
index 70f13129..f384b6a5 100644
--- a/templates/protocols/bgp/node.tag/neighbor/node.tag/capability/orf/prefix-list/receive/node.def
+++ b/templates/protocols/bgp/node.tag/neighbor/node.tag/capability/orf/prefix-list/receive/node.def
@@ -1,14 +1,14 @@
-help: Capability to RECEIVE the ORF to this neighbor
+help: configure the capability to receive the ORF
commit:expression: exec "/opt/vyatta/sbin/vyatta-bgp.pl --check-as --as $VAR(../../../../../@) --neighbor $VAR(../../../../@)"
commit:expression: $VAR(../../../../peer-group/) == ""; "You can't set orf capability receive for neighbor $VAR(../../../../@) in peer-group $VAR(../../../../peer-group/@)"
-update:expression: "if [ -n \"$VAR(../../../../remote-as/@)\" ]; then \
- peer=\"remote-as $VAR(../../../../remote-as/@)\"; \
- else \
- peer=\"peer-group $VAR(../../../../peer-group/@)\"; \
- fi; \
- ${vyatta_sbindir}/vyatta-vtysh.pl -c \"configure terminal\" -c \"router bgp $VAR(../../../../../@)\" \
- -c \"neighbor $VAR(../../../../@) $peer\" \
- -c \"neighbor $VAR(../../../../@) capability orf prefix-list receive\" "
-delete:expression: "${vyatta_sbindir}/vyatta-vtysh.pl -noerr -c \"configure terminal\" -c \"router bgp $VAR(../../../../../@)\" \
- -c \"no neighbor $VAR(../../../../@) capability orf prefix-list receive\" "
+update: if [ -n "$VAR(../../../../remote-as/@)" ]; then
+ peer="remote-as $VAR(../../../../remote-as/@)";
+ else
+ peer="peer-group $VAR(../../../../peer-group/@)\"; \
+ fi;
+ ${vyatta_sbindir}/vyatta-vtysh.pl -c "configure terminal" -c "router bgp $VAR(../../../../../@)" \
+ -c "neighbor $VAR(../../../../@) $peer" \
+ -c "neighbor $VAR(../../../../@) capability orf prefix-list receive"
+delete: ${vyatta_sbindir}/vyatta-vtysh.pl -noerr -c "configure terminal" -c "router bgp $VAR(../../../../../@)" \
+ -c "no neighbor $VAR(../../../../@) capability orf prefix-list receive"
diff --git a/templates/protocols/bgp/node.tag/neighbor/node.tag/capability/orf/prefix-list/send/node.def b/templates/protocols/bgp/node.tag/neighbor/node.tag/capability/orf/prefix-list/send/node.def
index 13b1cf40..91b9dbf7 100644
--- a/templates/protocols/bgp/node.tag/neighbor/node.tag/capability/orf/prefix-list/send/node.def
+++ b/templates/protocols/bgp/node.tag/neighbor/node.tag/capability/orf/prefix-list/send/node.def
@@ -1,4 +1,4 @@
-help: Capability to SEND the ORF to this neighbor
+help: configure the capability to send the ORF
commit:expression: exec "/opt/vyatta/sbin/vyatta-bgp.pl --check-as --as $VAR(../../../../../@) --neighbor $VAR(../../../../@)"
commit:expression: $VAR(../../../../peer-group/) == ""; "You can't set capability orf send for neighbor $VAR(../../../../@) in peer-group $VAR(../../../../peer-group/@)"
update:expression: "if [ -n \"$VAR(../../../../remote-as/@)\" ]; then \
diff --git a/templates/protocols/bgp/node.tag/neighbor/node.tag/default-originate/node.def b/templates/protocols/bgp/node.tag/neighbor/node.tag/default-originate/node.def
index 8ea71208..99398a94 100644
--- a/templates/protocols/bgp/node.tag/neighbor/node.tag/default-originate/node.def
+++ b/templates/protocols/bgp/node.tag/neighbor/node.tag/default-originate/node.def
@@ -1,22 +1,22 @@
-help: Originate default route to this neighbor
+help: send default route to this neighbor
commit:expression: exec "/opt/vyatta/sbin/vyatta-bgp.pl --check-as --as $VAR(../../@) --neighbor $VAR(../@)"
-commit:expression: $VAR(../peer-group/) == ""; "You can't set default-originate for neighbor $VAR(../@) in peer-group $VAR(../peer-group/@)"
-delete:expression: "touch /tmp/bgp-neighbor-$VAR(../@)-default-originate.$PPID"
-end:expression: "${vyatta_sbindir}/vyatta-vtysh.pl -noerr -c \"configure terminal\" -c \"router bgp $VAR(../../@)\" \
- -c \"no neighbor $VAR(../@) default-originate \"; \
- if [ -f \"/tmp/bgp-neighbor-$VAR(../@)-default-originate.$PPID\" ]; then \
- rm -rf /tmp/bgp-neighbor-$VAR(../@)-default-originate.$PPID; \
- else \
- if [ -n \"$VAR(./route-map/@)\" ]; then \
- cond=\"route-map $VAR(./route-map/@) \" ; \
- fi ; \
- if [ -n \"$VAR(../remote-as/@)\" ]; then \
- peer=\"remote-as $VAR(../remote-as/@)\"; \
- else \
- peer=\"peer-group $VAR(../peer-group/@)\"; \
- fi; \
- ${vyatta_sbindir}/vyatta-vtysh.pl -c \"configure terminal\" -c \"router bgp $VAR(../../@)\" \
- -c \"neighbor $VAR(../@) $peer\" \
- -c \"neighbor $VAR(../@) default-originate $cond\"; \
- fi; "
+commit:expression: $VAR(../peer-group/) == ""; "protocold bgp $VAR(../../@) neighbor $VAR(../@): you can't set default-originate for a neighbor in a peer-group"
+delete: touch /tmp/bgp-neighbor-$VAR(../@)-default-originate.$PPID
+end: ${vyatta_sbindir}/vyatta-vtysh.pl -noerr -c "configure terminal" -c "router bgp $VAR(../../@)" \
+ -c "no neighbor $VAR(../@) default-originate ";
+ if [ -f "/tmp/bgp-neighbor-$VAR(../@)-default-originate.$PPID" ]; then
+ rm -rf /tmp/bgp-neighbor-$VAR(../@)-default-originate.$PPID;
+ else
+ if [ -n "$VAR(./route-map/@)" ]; then
+ cond="route-map $VAR(./route-map/@) " ;
+ fi ;
+ if [ -n "$VAR(../remote-as/@)" ]; then
+ peer="remote-as $VAR(../remote-as/@)";
+ else
+ peer="peer-group $VAR(../peer-group/@)";
+ fi;
+ ${vyatta_sbindir}/vyatta-vtysh.pl -c "configure terminal" -c "router bgp $VAR(../../@)" \
+ -c "neighbor $VAR(../@) $peer" \
+ -c "neighbor $VAR(../@) default-originate $cond"; \
+ fi;
diff --git a/templates/protocols/bgp/node.tag/neighbor/node.tag/default-originate/route-map/node.def b/templates/protocols/bgp/node.tag/neighbor/node.tag/default-originate/route-map/node.def
index dd3cc34e..0379b4e4 100644
--- a/templates/protocols/bgp/node.tag/neighbor/node.tag/default-originate/route-map/node.def
+++ b/templates/protocols/bgp/node.tag/neighbor/node.tag/default-originate/route-map/node.def
@@ -1,4 +1,4 @@
type: txt
-help: Route-map to specify criteria to originate default
-commit:expression: exec "/opt/vyatta/sbin/vyatta_quagga_utils.pl --exists \"policy route-map $VAR(@)\" " ; "route-map $VAR(@) doesn't exist"
-commit:expression: $VAR(../../peer-group/) == ""; "You can't set a default-originate route-map for neighbor $VAR(../../@) in peer-group $VAR(../../peer-group/@)"
+help: set the route-map to specify criteria of the default
+commit:expression: exec "/opt/vyatta/sbin/vyatta_quagga_utils.pl --exists \"policy route-map $VAR(@)\" " ; "protocols bgp $VAR(../../../@) neighbor $VAR(../../@) default-originate: route-map $VAR(@) doesn't exist"
+commit:expression: $VAR(../../peer-group/) == ""; "protocols bgp $VAR(../../../@) neighbor $VAR(../../@): you can't set default-originate for a neighbor in a peer-group"
diff --git a/templates/protocols/bgp/node.tag/neighbor/node.tag/description/node.def b/templates/protocols/bgp/node.tag/neighbor/node.tag/description/node.def
index 7111130e..6ad2f3a0 100644
--- a/templates/protocols/bgp/node.tag/neighbor/node.tag/description/node.def
+++ b/templates/protocols/bgp/node.tag/neighbor/node.tag/description/node.def
@@ -1,2 +1,2 @@
type: txt
-help: Neighbor specific description
+help: set a description for this neighbor
diff --git a/templates/protocols/bgp/node.tag/neighbor/node.tag/disable-capability-negotiation/node.def b/templates/protocols/bgp/node.tag/neighbor/node.tag/disable-capability-negotiation/node.def
index 9f90c59e..37c1892e 100644
--- a/templates/protocols/bgp/node.tag/neighbor/node.tag/disable-capability-negotiation/node.def
+++ b/templates/protocols/bgp/node.tag/neighbor/node.tag/disable-capability-negotiation/node.def
@@ -1,13 +1,13 @@
-help: Do not perform capability negotiation
+help: do not perform capability negotiation with this neighbor
commit:expression: exec "/opt/vyatta/sbin/vyatta-bgp.pl --check-as --as $VAR(../../@) --neighbor $VAR(../@)"
-update:expression: "if [ -n \"$VAR(../remote-as/@)\" ]; then \
- peer=\"remote-as $VAR(../remote-as/@)\"; \
- else \
- peer=\"peer-group $VAR(../peer-group/@)\"; \
- fi; \
- ${vyatta_sbindir}/vyatta-vtysh.pl -c \"configure terminal\" -c \"router bgp $VAR(../../@)\" \
- -c \"neighbor $VAR(../@) $peer\" \
- -c \"neighbor $VAR(../@) dont-capability-negotiate \" "
-delete:expression: "${vyatta_sbindir}/vyatta-vtysh.pl -noerr -c \"configure terminal\" -c \"router bgp $VAR(../../@)\" \
- -c \"no neighbor $VAR(../@) dont-capability-negotiate \" "
+update: if [ -n "$VAR(../remote-as/@)" ]; then
+ peer="remote-as $VAR(../remote-as/@)";
+ else
+ peer="peer-group $VAR(../peer-group/@)";
+ fi;
+ ${vyatta_sbindir}/vyatta-vtysh.pl -c "configure terminal" -c "router bgp $VAR(../../@)" \
+ -c "neighbor $VAR(../@) $peer" \
+ -c "neighbor $VAR(../@) dont-capability-negotiate "
+delete: ${vyatta_sbindir}/vyatta-vtysh.pl -noerr -c "configure terminal" -c "router bgp $VAR(../../@)" \
+ -c "no neighbor $VAR(../@) dont-capability-negotiate"
diff --git a/templates/protocols/bgp/node.tag/neighbor/node.tag/disable-connected-check/node.def b/templates/protocols/bgp/node.tag/neighbor/node.tag/disable-connected-check/node.def
index a0df6de1..3afa5bff 100644
--- a/templates/protocols/bgp/node.tag/neighbor/node.tag/disable-connected-check/node.def
+++ b/templates/protocols/bgp/node.tag/neighbor/node.tag/disable-connected-check/node.def
@@ -1,13 +1,13 @@
-help: One hop distant EBGP peer using loopback address
+help: disable check to see if EBGP peer's address is a connected route
commit:expression: exec "/opt/vyatta/sbin/vyatta-bgp.pl --check-as --as $VAR(../../@) --neighbor $VAR(../@)"
-update:expression: "if [ -n \"$VAR(../remote-as/@)\" ]; then \
- peer=\"remote-as $VAR(../remote-as/@)\"; \
- else \
- peer=\"peer-group $VAR(../peer-group/@)\"; \
- fi; \
- ${vyatta_sbindir}/vyatta-vtysh.pl -c \"configure terminal\" -c \"router bgp $VAR(../../@)\" \
- -c \"neighbor $VAR(../@) $peer\" \
- -c \"neighbor $VAR(../@) disable-connected-check\" "
-delete:expression: "${vyatta_sbindir}/vyatta-vtysh.pl -noerr -c \"configure terminal\" -c \"router bgp $VAR(../../@)\" \
- -c \"no neighbor $VAR(../@) disable-connected-check \" "
+update: if [ -n "$VAR(../remote-as/@)" ]; then
+ peer="remote-as $VAR(../remote-as/@)";
+ else
+ peer="peer-group $VAR(../peer-group/@)";
+ fi;
+ ${vyatta_sbindir}/vyatta-vtysh.pl -c "configure terminal" -c "router bgp $VAR(../../@)" \
+ -c "neighbor $VAR(../@) $peer" \
+ -c "neighbor $VAR(../@) disable-connected-check"
+delete: ${vyatta_sbindir}/vyatta-vtysh.pl -noerr -c "configure terminal" -c "router bgp $VAR(../../@)" \
+ -c "no neighbor $VAR(../@) disable-connected-check"
diff --git a/templates/protocols/bgp/node.tag/neighbor/node.tag/disable-send-community/extended/node.def b/templates/protocols/bgp/node.tag/neighbor/node.tag/disable-send-community/extended/node.def
index 02414ea2..c960d316 100644
--- a/templates/protocols/bgp/node.tag/neighbor/node.tag/disable-send-community/extended/node.def
+++ b/templates/protocols/bgp/node.tag/neighbor/node.tag/disable-send-community/extended/node.def
@@ -1,14 +1,14 @@
-help: Do not send extended community attributes
+help: do not send extended community attributes to this neighbor
commit:expression: exec "/opt/vyatta/sbin/vyatta-bgp.pl --check-as --as $VAR(../../../@) --neighbor $VAR(../../@)"
-commit:expression: $VAR(../../peer-group/) == ""; "You can't set no-send-community for neighbor $VAR(../../@) in peer-group $VAR(../../peer-group/@)"
-update:expression: "if [ -n \"$VAR(../../remote-as/@)\" ]; then \
- peer=\"remote-as $VAR(../../remote-as/@)\"; \
- else \
- peer=\"peer-group $VAR(../../peer-group/@)\"; \
- fi; \
- ${vyatta_sbindir}/vyatta-vtysh.pl -c \"configure terminal\" -c \"router bgp $VAR(../../../@)\" \
- -c \"neighbor $VAR(../../@) $peer\" \
- -c \"no neighbor $VAR(../../@) send-community extended\" "
-delete:expression: "${vyatta_sbindir}/vyatta-vtysh.pl -noerr -c \"configure terminal\" -c \"router bgp $VAR(../../../@)\" \
- -c \"neighbor $VAR(../../@) send-community extended\" "
+commit:expression: $VAR(../../peer-group/) == ""; "protocols bgp $VAR(../../../@) neighbor $VAR(../../@): you can't set disable-send-community for a neighbor in a peer-group"
+update: if [ -n "$VAR(../../remote-as/@)" ]; then
+ peer="remote-as $VAR(../../remote-as/@)";
+ else
+ peer="peer-group $VAR(../../peer-group/@)";
+ fi;
+ ${vyatta_sbindir}/vyatta-vtysh.pl -c "configure terminal" -c "router bgp $VAR(../../../@)" \
+ -c "neighbor $VAR(../../@) $peer" \
+ -c "no neighbor $VAR(../../@) send-community extended"
+delete: ${vyatta_sbindir}/vyatta-vtysh.pl -noerr -c "configure terminal" -c "router bgp $VAR(../../../@)" \
+ -c "neighbor $VAR(../../@) send-community extended"
diff --git a/templates/protocols/bgp/node.tag/neighbor/node.tag/disable-send-community/node.def b/templates/protocols/bgp/node.tag/neighbor/node.tag/disable-send-community/node.def
index 563f3494..5fb559c0 100644
--- a/templates/protocols/bgp/node.tag/neighbor/node.tag/disable-send-community/node.def
+++ b/templates/protocols/bgp/node.tag/neighbor/node.tag/disable-send-community/node.def
@@ -1,2 +1,2 @@
-help: Do not send community attributes to this neighbor
-commit:expression: ($VAR(./extended/) != "") || ($VAR(./standard/) != ""); "You must specify the type of community."
+help: do not send community attributes to this neighbor
+commit:expression: ($VAR(./extended/) != "") || ($VAR(./standard/) != ""); "protocols bgp $(../../@) neighbor $(../@): you must specify the type of community"
diff --git a/templates/protocols/bgp/node.tag/neighbor/node.tag/disable-send-community/standard/node.def b/templates/protocols/bgp/node.tag/neighbor/node.tag/disable-send-community/standard/node.def
index 8d2c491b..7b9219b4 100644
--- a/templates/protocols/bgp/node.tag/neighbor/node.tag/disable-send-community/standard/node.def
+++ b/templates/protocols/bgp/node.tag/neighbor/node.tag/disable-send-community/standard/node.def
@@ -1,13 +1,14 @@
-help: Do not send standard community attributes
+help: do not send standard community attributes to this neighbor
commit:expression: exec "/opt/vyatta/sbin/vyatta-bgp.pl --check-as --as $VAR(../../../@) --neighbor $VAR(../../@)"
-update:expression: "if [ -n \"$VAR(../../remote-as/@)\" ]; then \
- peer=\"remote-as $VAR(../../remote-as/@)\"; \
- else \
- peer=\"peer-group $VAR(../../peer-group/@)\"; \
- fi; \
- ${vyatta_sbindir}/vyatta-vtysh.pl -c \"configure terminal\" -c \"router bgp $VAR(../../../@)\" \
- -c \"neighbor $VAR(../../@) $peer\" \
- -c \"no neighbor $VAR(../../@) send-community standard\" "
-delete:expression: "${vyatta_sbindir}/vyatta-vtysh.pl -noerr -c \"configure terminal\" -c \"router bgp $VAR(../../../@)\" \
- -c \"neighbor $VAR(../../@) send-community standard\" "
+commit:expression: $VAR(../../peer-group/) == ""; "protocols bgp $VAR(../../../@) neighbor $VAR(../../@): you can't set disable-send-community for a neighbor in a peer-group"
+update: if [ -n "$VAR(../../remote-as/@)" ]; then
+ peer="remote-as $VAR(../../remote-as/@)";
+ else
+ peer="peer-group $VAR(../../peer-group/@)";
+ fi;
+ ${vyatta_sbindir}/vyatta-vtysh.pl -c "configure terminal" -c "router bgp $VAR(../../../@)" \
+ -c "neighbor $VAR(../../@) $peer" \
+ -c "no neighbor $VAR(../../@) send-community standard"
+delete: ${vyatta_sbindir}/vyatta-vtysh.pl -noerr -c "configure terminal" -c "router bgp $VAR(../../../@)" \
+ -c "neighbor $VAR(../../@) send-community standard"
diff --git a/templates/protocols/bgp/node.tag/neighbor/node.tag/distribute-list/export/node.def b/templates/protocols/bgp/node.tag/neighbor/node.tag/distribute-list/export/node.def
index af849ee4..a85ca3f1 100644
--- a/templates/protocols/bgp/node.tag/neighbor/node.tag/distribute-list/export/node.def
+++ b/templates/protocols/bgp/node.tag/neighbor/node.tag/distribute-list/export/node.def
@@ -1,16 +1,18 @@
type: u32
-help: Filter outgoing updates
+help: set an access-list to filter outgoing route updates to this neighbor
+comp_help: \1 <1-65535>\taccess-list number
commit:expression: exec "/opt/vyatta/sbin/vyatta-bgp.pl --check-as --as $VAR(../../../@) --neighbor $VAR(../../@)"
-commit:expression: $VAR(../../peer-group/) == ""; "You can't set a distribute-list for neighbor $VAR(../../@) in peer-group $VAR(../../peer-group/@)"
-commit:expression: exec "/opt/vyatta/sbin/vyatta_quagga_utils.pl --exists \"policy access-list $VAR(@)\" ";"access-list $VAR(@) doesn't exist"
-update:expression: "if [ -n \"$VAR(../../remote-as/@)\" ]; then \
- peer=\"remote-as $VAR(../../remote-as/@)\"; \
- else \
- peer=\"peer-group $VAR(../../peer-group/@)\"; \
- fi; \
- ${vyatta_sbindir}/vyatta-vtysh.pl -c \"configure terminal\" -c \"router bgp $VAR(../../../@)\" \
- -c \"neighbor $VAR(../../@) $peer\" \
- -c \"neighbor $VAR(../../@) distribute-list $VAR(@) out\" "
-delete:expression: "${vyatta_sbindir}/vyatta-vtysh.pl -noerr -c \"configure terminal\" -c \"router bgp $VAR(../../../@)\" \
- -c \"no neighbor $VAR(../../@) distribute-list $VAR(@) out\" "
+commit:expression: $VAR(../../peer-group/) == ""; "protocols bgp $VAR(../../../@) neighbor $VAR(../../@): you can't set a distribute-list for a neighbor in a peer-group"
+commit:expression: exec "/opt/vyatta/sbin/vyatta_quagga_utils.pl --exists \"policy access-list $VAR(@)\" ";"protocols bgp $VAR(../../../@) neighbor $VAR(../../@) export: access-list $VAR(@) doesn't exist"
+commit:expression: $VAR(../../prefix-list/export/) == ""; "protocols bgp $VAR(../../../@) neighbor $VAR(../../@) distribute-list export: you can't set both a prefix-list and a distribute list"
+update: if [ -n "$VAR(../../remote-as/@)" ]; then
+ peer="remote-as $VAR(../../remote-as/@)";
+ else
+ peer="peer-group $VAR(../../peer-group/@)";
+ fi;
+ ${vyatta_sbindir}/vyatta-vtysh.pl -c "configure terminal" -c "router bgp $VAR(../../../@)" \
+ -c "neighbor $VAR(../../@) $peer" \
+ -c "neighbor $VAR(../../@) distribute-list $VAR(@) out"
+delete: ${vyatta_sbindir}/vyatta-vtysh.pl -noerr -c "configure terminal" -c "router bgp $VAR(../../../@)" \
+ -c "no neighbor $VAR(../../@) distribute-list $VAR(@) out"
diff --git a/templates/protocols/bgp/node.tag/neighbor/node.tag/distribute-list/import/node.def b/templates/protocols/bgp/node.tag/neighbor/node.tag/distribute-list/import/node.def
index 497830f6..dcd5c569 100644
--- a/templates/protocols/bgp/node.tag/neighbor/node.tag/distribute-list/import/node.def
+++ b/templates/protocols/bgp/node.tag/neighbor/node.tag/distribute-list/import/node.def
@@ -1,16 +1,18 @@
type: u32
-help: Filter incoming updates
+help: set an access-list to filter incoming route updates from this neighbor
+comp_help: \1 <1-65535>\taccess-list number
commit:expression: exec "/opt/vyatta/sbin/vyatta-bgp.pl --check-as --as $VAR(../../../@) --neighbor $VAR(../../@)"
-commit:expression: $VAR(../../peer-group/) == ""; "You can't set a distribute-list for neighbor $VAR(../../@) in peer-group $VAR(../../peer-group/@)"
-commit:expression: exec "/opt/vyatta/sbin/vyatta_quagga_utils.pl --exists \"policy access-list $VAR(@)\" ";"access-list $VAR(@) doesn't exist"
-update:expression: "if [ -n \"$VAR(../../remote-as/@)\" ]; then \
- peer=\"remote-as $VAR(../../remote-as/@)\"; \
- else \
- peer=\"peer-group $VAR(../../peer-group/@)\"; \
- fi; \
- ${vyatta_sbindir}/vyatta-vtysh.pl -c \"configure terminal\" -c \"router bgp $VAR(../../../@)\" \
- -c \"neighbor $VAR(../../@) $peer\" \
- -c \"neighbor $VAR(../../@) distribute-list $VAR(@) in\" "
-delete:expression: "${vyatta_sbindir}/vyatta-vtysh.pl -noerr -c \"configure terminal\" -c \"router bgp $VAR(../../../@)\" \
- -c \"no neighbor $VAR(../../@) distribute-list $VAR(@) in\" "
+commit:expression: $VAR(../../peer-group/) == ""; "protocols bgp $VAR(../../../@) neighbor $VAR(../../@): you can't set a distribute-list for a neighbor in a peer-group"
+commit:expression: exec "/opt/vyatta/sbin/vyatta_quagga_utils.pl --exists \"policy access-list $VAR(@)\" ";"protocols bgp $VAR(../../../@) neighbor $VAR(../../@) import: access-list $VAR(@) doesn't exist"
+commit:expression: $VAR(../../prefix-list/import/) == ""; "protocols bgp $VAR(../../../@) neighbor $VAR(../../@) distribute-list import: you can't set both a prefix-list and a distribute list"
+update: if [ -n "$VAR(../../remote-as/@)" ]; then
+ peer="remote-as $VAR(../../remote-as/@)";
+ else
+ peer="peer-group $VAR(../../peer-group/@)";
+ fi;
+ ${vyatta_sbindir}/vyatta-vtysh.pl -c "configure terminal" -c "router bgp $VAR(../../../@)" \
+ -c "neighbor $VAR(../../@) $peer" \
+ -c "neighbor $VAR(../../@) distribute-list $VAR(@) in"
+delete: ${vyatta_sbindir}/vyatta-vtysh.pl -noerr -c "configure terminal" -c "router bgp $VAR(../../../@)" \
+ -c "no neighbor $VAR(../../@) distribute-list $VAR(@) in"
diff --git a/templates/protocols/bgp/node.tag/neighbor/node.tag/distribute-list/node.def b/templates/protocols/bgp/node.tag/neighbor/node.tag/distribute-list/node.def
index 60273382..fbc92e31 100644
--- a/templates/protocols/bgp/node.tag/neighbor/node.tag/distribute-list/node.def
+++ b/templates/protocols/bgp/node.tag/neighbor/node.tag/distribute-list/node.def
@@ -1 +1 @@
-help: Filter updates to/from this neighbor
+help: configure an access-list to filter route updates to/from this neighbor
diff --git a/templates/protocols/bgp/node.tag/neighbor/node.tag/ebgp-multihop/node.def b/templates/protocols/bgp/node.tag/neighbor/node.tag/ebgp-multihop/node.def
index 74478188..9b7497b8 100644
--- a/templates/protocols/bgp/node.tag/neighbor/node.tag/ebgp-multihop/node.def
+++ b/templates/protocols/bgp/node.tag/neighbor/node.tag/ebgp-multihop/node.def
@@ -1,15 +1,16 @@
type: u32
-help: Allow EBGP neighbors not on directly connected networks
+help: allow this EBGP neighbor to not be on a directly connected network
+comp_help: \1 <1-255>\tnumber of hops
commit:expression: exec "/opt/vyatta/sbin/vyatta-bgp.pl --check-as --as $VAR(../../@) --neighbor $VAR(../@)"
syntax:expression: $VAR(@) >=1 && $VAR(@) <= 255; "ebgp-multihop must be between 1 and 255"
-update:expression: "if [ -n \"$VAR(../remote-as/@)\" ]; then \
- peer=\"remote-as $VAR(../remote-as/@)\"; \
- else \
- peer=\"peer-group $VAR(../peer-group/@)\"; \
- fi; \
- ${vyatta_sbindir}/vyatta-vtysh.pl -c \"configure terminal\" -c \"router bgp $VAR(../../@)\" \
- -c \"neighbor $VAR(../@) $peer\" \
- -c \"neighbor $VAR(../@) ebgp-multihop $VAR(@)\" "
-delete:expression: "${vyatta_sbindir}/vyatta-vtysh.pl -noerr -c \"configure terminal\" -c \"router bgp $VAR(../../@)\" \
- -c \"no neighbor $VAR(../@) ebgp-multihop \" "
+update: if [ -n "$VAR(../remote-as/@)" ]; then
+ peer="remote-as $VAR(../remote-as/@)";
+ else
+ peer="peer-group $VAR(../peer-group/@)";
+ fi;
+ ${vyatta_sbindir}/vyatta-vtysh.pl -c "configure terminal" -c "router bgp $VAR(../../@)" \
+ -c "neighbor $VAR(../@) $peer" \
+ -c "neighbor $VAR(../@) ebgp-multihop $VAR(@)"
+delete: ${vyatta_sbindir}/vyatta-vtysh.pl -noerr -c "configure terminal" -c "router bgp $VAR(../../@)" \
+ -c "no neighbor $VAR(../@) ebgp-multihop"
diff --git a/templates/protocols/bgp/node.tag/neighbor/node.tag/enforce-multihop/node.def b/templates/protocols/bgp/node.tag/neighbor/node.tag/enforce-multihop/node.def
deleted file mode 100644
index 63365ab1..00000000
--- a/templates/protocols/bgp/node.tag/neighbor/node.tag/enforce-multihop/node.def
+++ /dev/null
@@ -1,13 +0,0 @@
-help: Enforce EBGP neighbors perform multihop
-commit:expression: exec "/opt/vyatta/sbin/vyatta-bgp.pl --check-as --as $VAR(../../@) --neighbor $VAR(../@)"
-update:expression: "if [ -n \"$VAR(../remote-as/@)\" ]; then \
- peer=\"remote-as $VAR(../remote-as/@)\"; \
- else \
- peer=\"peer-group $VAR(../peer-group/@)\"; \
- fi; \
- ${vyatta_sbindir}/vyatta-vtysh.pl -c \"configure terminal\" -c \"router bgp $VAR(../../@)\" \
- -c \"neighbor $VAR(../@) $peer\" \
- -c \"neighbor $VAR(../@) enforce-multihop \" "
-delete:expression: "${vyatta_sbindir}/vyatta-vtysh.pl -noerr -c \"configure terminal\" -c \"router bgp $VAR(../../@)\" \
- -c \"no neighbor $VAR(../@) enforce-multihop \" "
-
diff --git a/templates/protocols/bgp/node.tag/neighbor/node.tag/filter-list/export/node.def b/templates/protocols/bgp/node.tag/neighbor/node.tag/filter-list/export/node.def
index 1848b34c..776c9fe5 100644
--- a/templates/protocols/bgp/node.tag/neighbor/node.tag/filter-list/export/node.def
+++ b/templates/protocols/bgp/node.tag/neighbor/node.tag/filter-list/export/node.def
@@ -1,16 +1,17 @@
type: txt
-help: Filter outgoing updates
+help: set an as-path-list to filter outgoing route updates to this neighbor
+comp_help: \1 <txt>\t\tas-path-list name
commit:expression: exec "/opt/vyatta/sbin/vyatta-bgp.pl --check-as --as $VAR(../../../@) --neighbor $VAR(../../@)"
-commit:expression: $VAR(../../peer-group/) == ""; "You can't set a filter-list for neighbor $VAR(../../@) in peer-group $VAR(../../peer-group/@)"
-commit:expression: exec "/opt/vyatta/sbin/vyatta_quagga_utils.pl --exists \"policy as-path-list $VAR(@)\" ";"as-path-list $VAR(@) doesn't exist"
-update:expression: "if [ -n \"$VAR(../../remote-as/@)\" ]; then \
- peer=\"remote-as $VAR(../../remote-as/@)\"; \
- else \
- peer=\"peer-group $VAR(../../peer-group/@)\"; \
- fi; \
- ${vyatta_sbindir}/vyatta-vtysh.pl -c \"configure terminal\" -c \"router bgp $VAR(../../../@)\" \
- -c \"neighbor $VAR(../../@) $peer\" \
- -c \"neighbor $VAR(../../@) filter-list $VAR(@) out\" "
-delete:expression: "${vyatta_sbindir}/vyatta-vtysh.pl -noerr -c \"configure terminal\" -c \"router bgp $VAR(../../../@)\" \
- -c \"no neighbor $VAR(../../@) filter-list $VAR(@) out\" "
+commit:expression: $VAR(../../peer-group/) == ""; "protocols bgp $VAR(../../../@) neighbor $VAR(../../@): you can't set a filter-list for a neighbor in peer-group"
+commit:expression: exec "/opt/vyatta/sbin/vyatta_quagga_utils.pl --exists \"policy as-path-list $VAR(@)\" ";"protocols bgp $VAR(../../../@) neighbor $VAR(../../@) filter-list export: as-path-list $VAR(@) doesn't exist"
+update: if [ -n "$VAR(../../remote-as/@)" ]; then
+ peer="remote-as $VAR(../../remote-as/@)";
+ else
+ peer="peer-group $VAR(../../peer-group/@)";
+ fi;
+ ${vyatta_sbindir}/vyatta-vtysh.pl -c "configure terminal" -c "router bgp $VAR(../../../@)" \
+ -c "neighbor $VAR(../../@) $peer" \
+ -c "neighbor $VAR(../../@) filter-list $VAR(@) out"
+delete: ${vyatta_sbindir}/vyatta-vtysh.pl -noerr -c "configure terminal" -c "router bgp $VAR(../../../@)" \
+ -c "no neighbor $VAR(../../@) filter-list $VAR(@) out"
diff --git a/templates/protocols/bgp/node.tag/neighbor/node.tag/filter-list/import/node.def b/templates/protocols/bgp/node.tag/neighbor/node.tag/filter-list/import/node.def
index 10f09440..b0575a87 100644
--- a/templates/protocols/bgp/node.tag/neighbor/node.tag/filter-list/import/node.def
+++ b/templates/protocols/bgp/node.tag/neighbor/node.tag/filter-list/import/node.def
@@ -1,16 +1,17 @@
type: txt
-help: Filter incoming updates based on AS path
+help: set an as-path-list to filter incoming route updates from this neighbor
+comp_help: \1 <txt>\t\tas-path-list name
commit:expression: exec "/opt/vyatta/sbin/vyatta-bgp.pl --check-as --as $VAR(../../../@) --neighbor $VAR(../../@)"
-commit:expression: $VAR(../../peer-group/) == ""; "You can't set a filter-list for neighbor $VAR(../../@) in peer-group $VAR(../../peer-group/@)"
-commit:expression: exec "/opt/vyatta/sbin/vyatta_quagga_utils.pl --exists \"policy as-path-list $VAR(@)\" ";"as-path-list $VAR(@) doesn't exist"
-update:expression: "if [ -n \"$VAR(../../remote-as/@)\" ]; then \
- peer=\"remote-as $VAR(../../remote-as/@)\"; \
- else \
- peer=\"peer-group $VAR(../../peer-group/@)\"; \
- fi; \
- ${vyatta_sbindir}/vyatta-vtysh.pl -c \"configure terminal\" -c \"router bgp $VAR(../../../@)\" \
- -c \"neighbor $VAR(../../@) $peer\" \
- -c \"neighbor $VAR(../../@) filter-list $VAR(@) in\" "
-delete:expression: "${vyatta_sbindir}/vyatta-vtysh.pl -noerr -c \"configure terminal\" -c \"router bgp $VAR(../../../@)\" \
- -c \"no neighbor $VAR(../../@) filter-list $VAR(@) in\" "
+commit:expression: $VAR(../../peer-group/) == ""; "protocols bgp $VAR(../../../@) neighbor $VAR(../../@): you can't set a filter-list for a neighbor in peer-group"
+commit:expression: exec "/opt/vyatta/sbin/vyatta_quagga_utils.pl --exists \"policy as-path-list $VAR(@)\" ";"protocols bgp $VAR(../../../@) neighbor $VAR(../../@) filter-list import: as-path-list $VAR(@) doesn't exist"
+update: if [ -n "$VAR(../../remote-as/@)" ]; then
+ peer="remote-as $VAR(../../remote-as/@)";
+ else
+ peer="peer-group $VAR(../../peer-group/@)";
+ fi;
+ ${vyatta_sbindir}/vyatta-vtysh.pl -c "configure terminal" -c "router bgp $VAR(../../../@)" \
+ -c "neighbor $VAR(../../@) $peer" \
+ -c "neighbor $VAR(../../@) filter-list $VAR(@) in"
+delete: ${vyatta_sbindir}/vyatta-vtysh.pl -noerr -c "configure terminal" -c "router bgp $VAR(../../../@)" \
+ -c "no neighbor $VAR(../../@) filter-list $VAR(@) in"
diff --git a/templates/protocols/bgp/node.tag/neighbor/node.tag/filter-list/node.def b/templates/protocols/bgp/node.tag/neighbor/node.tag/filter-list/node.def
index b0f70316..100d58fb 100644
--- a/templates/protocols/bgp/node.tag/neighbor/node.tag/filter-list/node.def
+++ b/templates/protocols/bgp/node.tag/neighbor/node.tag/filter-list/node.def
@@ -1 +1 @@
-help: Establish BGP filters
+help: configure an as-path-list to filter route updates to/from this neighbor
diff --git a/templates/protocols/bgp/node.tag/neighbor/node.tag/interface/node.def b/templates/protocols/bgp/node.tag/neighbor/node.tag/interface/node.def
deleted file mode 100644
index af446b72..00000000
--- a/templates/protocols/bgp/node.tag/neighbor/node.tag/interface/node.def
+++ /dev/null
@@ -1,18 +0,0 @@
-type: txt
-help: Interface name
-commit:expression: exec "/opt/vyatta/sbin/vyatta-bgp.pl --check-as --as $VAR(../../@) --neighbor $VAR(../@)"
-syntax:expression: exec " \
- if [ -z \"`ip addr | grep $VAR(@) `\" ]; then \
- echo $VAR(@) doesn\\'t exist on this system ; \
- exit 1 ; \
- fi ; "
-update:expression: "if [ -n \"$VAR(../remote-as/@)\" ]; then \
- peer=\"remote-as $VAR(../remote-as/@)\"; \
- else \
- peer=\"peer-group $VAR(../peer-group/@)\"; \
- fi; \
- ${vyatta_sbindir}/vyatta-vtysh.pl -c \"configure terminal\" -c \"router bgp $VAR(../../@)\" \
- -c \"neighbor $VAR(../@) $peer\" \
- -c \"neighbor $VAR(../@) interface $VAR(@)\" "
-delete:expression: "${vyatta_sbindir}/vyatta-vtysh.pl -noerr -c \"configure terminal\" -c \"router bgp $VAR(../../@)\" \
- -c \"no neighbor $VAR(../@) interface $VAR(@)\" "
diff --git a/templates/protocols/bgp/node.tag/neighbor/node.tag/local-as/local-as/node.def b/templates/protocols/bgp/node.tag/neighbor/node.tag/local-as/local-as/node.def
index ce97c629..6a7a1f87 100644
--- a/templates/protocols/bgp/node.tag/neighbor/node.tag/local-as/local-as/node.def
+++ b/templates/protocols/bgp/node.tag/neighbor/node.tag/local-as/local-as/node.def
@@ -1,6 +1,7 @@
type: u32
-help: Local AS number
-commit:expression: exec "/opt/vyatta/sbin/vyatta-bgp.pl --check-as --as $VAR(../../../@) --neighbor $VAR(../../@)"
-commit:expression: $VAR(../peer-group/) == ""; "You can't set a local-as for neighbor $VAR(../@) in peer-group $VAR(../peer-group/@)"
+help: set the local AS number
+comp_help: \1 <1-4294967294>\tlocal AS number
syntax:expression: $VAR(@) >=1 && $VAR(@) <= 4294967294; "local-as must be between 1 and 4294967294"
syntax:expression: $VAR(@) != $VAR(../../../@); "Cannot have local-as same as BGP AS number"
+commit:expression: exec "/opt/vyatta/sbin/vyatta-bgp.pl --check-as --as $VAR(../../../@) --neighbor $VAR(../../@)"
+commit:expression: $VAR(../peer-group/) == ""; "protocols bgp $VAR(../../../@) neighbor $VAR(../../@): you can't set local-as for a neighbor in a peer-group"
diff --git a/templates/protocols/bgp/node.tag/neighbor/node.tag/local-as/no-prepend/node.def b/templates/protocols/bgp/node.tag/neighbor/node.tag/local-as/no-prepend/node.def
index 5270b67f..8f03c17b 100644
--- a/templates/protocols/bgp/node.tag/neighbor/node.tag/local-as/no-prepend/node.def
+++ b/templates/protocols/bgp/node.tag/neighbor/node.tag/local-as/no-prepend/node.def
@@ -1 +1 @@
-help: Do not prepend local-as to updates from EBGP peers
+help: do not prepend local-as to updates from EBGP peers
diff --git a/templates/protocols/bgp/node.tag/neighbor/node.tag/local-as/node.def b/templates/protocols/bgp/node.tag/neighbor/node.tag/local-as/node.def
index 3ad21f8a..86ca9f5b 100644
--- a/templates/protocols/bgp/node.tag/neighbor/node.tag/local-as/node.def
+++ b/templates/protocols/bgp/node.tag/neighbor/node.tag/local-as/node.def
@@ -1,25 +1,32 @@
-help: Specify a local-as number
+help: set a different AS number to use with this neighbor
+syntax:expression: $VAR(./local-as/@) >= 1 && $VAR(./local-as/@) <= 4294967294; "AS number must be between 1 and 4294967294"
commit:expression: exec "/opt/vyatta/sbin/vyatta-bgp.pl --check-as --as $VAR(../../@) --neighbor $VAR(../@)"
-commit:expression: $VAR(../peer-group/) == ""; "You can't set a local-as for neighbor $VAR(../../@) in peer-group $VAR(../../peer-group/@)"
-delete:expression: "touch /tmp/bgp-neighbor-$VAR(../@)-local-as.$PPID"
-end:expression: "${vyatta_sbindir}/vyatta-vtysh.pl -noerr -c \"configure terminal\" -c \"router bgp $VAR(../../@)\" \
- -c \"no neighbor $VAR(../@) local-as \"; \
- if [ -f \"/tmp/bgp-neighbor-$VAR(../@)-local-as.$PPID\" ]; then \
- rm -rf /tmp/bgp-neighbor-$VAR(../@)-local-as.$PPID; \
- else \
- if [ -z \"$VAR(./local-as/@)\" ]; then \
- echo You must specify local-as local-as ; \
- exit 1 ; \
- fi ; \
- if [ -n \"$VAR(./no-prepend/@)\" ]; then \
- cond=\"no-prepend \" ; \
- fi ; \
- if [ -n \"$VAR(../remote-as/@)\" ]; then \
- peer=\"remote-as $VAR(../remote-as/@)\"; \
- else \
- peer=\"peer-group $VAR(../peer-group/@)\"; \
- fi; \
- ${vyatta_sbindir}/vyatta-vtysh.pl -c \"configure terminal\" -c \"router bgp $VAR(../../@)\" \
- -c \"neighbor $VAR(../@) $peer\" \
- -c \"neighbor $VAR(../@) local-as $VAR(./local-as/@) $cond \"; \
- fi; "
+commit:expression: $VAR(./local-as/@) != $VAR(../../@); "protocols bgp $VAR(../../@) neighbor $VAR(../@) local-as: you can't set a different local-as for iBGP neighbors"
+commit:expression: $VAR(../peer-group/) == ""; "protocols bgp $VAR(../../@) neighbor $VAR(../@) local-as: you can't set local-as for a neighbor in a peer-group"
+delete: touch /tmp/bgp-neighbor-$VAR(../@)-local-as.$PPID
+end: ${vyatta_sbindir}/vyatta-vtysh.pl -noerr -c "configure terminal" -c "router bgp $VAR(../../@)" \
+ -c "no neighbor $VAR(../@) local-as ";
+ if [ -f "/tmp/bgp-neighbor-$VAR(../@)-local-as.$PPID" ]; then
+ rm -rf /tmp/bgp-neighbor-$VAR(../@)-local-as.$PPID;
+ else
+ if [ -z "$VAR(./local-as/@)" ]; then
+ echo protocols bgp $VAR(../../@) neighbor $VAR(../@) local-as: you must specify local-as local-as ;
+ exit 1 ;
+ fi ;
+ ## uncomment when 2525 is fixed
+ #if [ -n "$VAR(./no-prepend/@)" ]; then
+ # cond="no-prepend " ;
+ #fi ;
+ ${vyatta_sbindir}/vyatta-check-typeless-node.pl "protocols bgp $VAR(../../@) neighbor $VAR(../@) local-as no-prepend";
+ if [ $? -eq 0 ]; then
+ cond="no-prepend ";
+ fi ;
+ if [ -n "$VAR(../remote-as/@)" ]; then
+ peer="remote-as $VAR(../remote-as/@)";
+ else
+ peer="peer-group $VAR(../peer-group/@)";
+ fi;
+ ${vyatta_sbindir}/vyatta-vtysh.pl -c "configure terminal" -c "router bgp $VAR(../../@)" \
+ -c "neighbor $VAR(../@) $peer" \
+ -c "neighbor $VAR(../@) local-as $VAR(./local-as/@) $cond ";
+ fi;
diff --git a/templates/protocols/bgp/node.tag/neighbor/node.tag/maximum-prefix/node.def b/templates/protocols/bgp/node.tag/neighbor/node.tag/maximum-prefix/node.def
index 0d3f920f..78815923 100644
--- a/templates/protocols/bgp/node.tag/neighbor/node.tag/maximum-prefix/node.def
+++ b/templates/protocols/bgp/node.tag/neighbor/node.tag/maximum-prefix/node.def
@@ -1,14 +1,15 @@
type: u32
-help: Maximum number of prefixes to accept from this neighbor
+help: set the maximum number of prefixes to accept from this neighbor
+comp_help: \1 <1-4294967295>\tprefix limit
commit:expression: exec "/opt/vyatta/sbin/vyatta-bgp.pl --check-as --as $VAR(../../@) --neighbor $VAR(../@)"
-update:expression: "if [ -n \"$VAR(../remote-as/@)\" ]; then \
- peer=\"remote-as $VAR(../remote-as/@)\"; \
- else \
- peer=\"peer-group $VAR(../peer-group/@)\"; \
- fi; \
- ${vyatta_sbindir}/vyatta-vtysh.pl -c \"configure terminal\" -c \"router bgp $VAR(../../@)\" \
- -c \"neighbor $VAR(../@) $peer\" \
- -c \"neighbor $VAR(../@) maximum-prefix $VAR(@)\" "
-delete:expression: "${vyatta_sbindir}/vyatta-vtysh.pl -noerr -c \"configure terminal\" -c \"router bgp $VAR(../../@)\" \
- -c \"no neighbor $VAR(../@) maximum-prefix \" "
+update: if [ -n "$VAR(../remote-as/@)" ]; then
+ peer="remote-as $VAR(../remote-as/@)";
+ else
+ peer="peer-group $VAR(../peer-group/@)";
+ fi;
+ ${vyatta_sbindir}/vyatta-vtysh.pl -c "configure terminal" -c "router bgp $VAR(../../@)" \
+ -c "neighbor $VAR(../@) $peer" \
+ -c "neighbor $VAR(../@) maximum-prefix $VAR(@)"
+delete: ${vyatta_sbindir}/vyatta-vtysh.pl -noerr -c "configure terminal" -c "router bgp $VAR(../../@)" \
+ -c "no neighbor $VAR(../@) maximum-prefix"
diff --git a/templates/protocols/bgp/node.tag/neighbor/node.tag/nexthop-self/node.def b/templates/protocols/bgp/node.tag/neighbor/node.tag/nexthop-self/node.def
index 4303ec1b..0eea04fb 100644
--- a/templates/protocols/bgp/node.tag/neighbor/node.tag/nexthop-self/node.def
+++ b/templates/protocols/bgp/node.tag/neighbor/node.tag/nexthop-self/node.def
@@ -1,14 +1,14 @@
-help: Disable the next hop calculation for this neighbor
+help: set the nexthop to this router for routes sent to this neighbor
commit:expression: exec "/opt/vyatta/sbin/vyatta-bgp.pl --check-as --as $VAR(../../@) --neighbor $VAR(../@)"
-commit:expression: $VAR(../peer-group/) == ""; "You can't set next-hop-self for neighbor $VAR(../@) in peer-group $VAR(../peer-group/@)"
-update:expression: "if [ -n \"$VAR(../remote-as/@)\" ]; then \
- peer=\"remote-as $VAR(../remote-as/@)\"; \
- else \
- peer=\"peer-group $VAR(../peer-group/@)\"; \
- fi; \
- ${vyatta_sbindir}/vyatta-vtysh.pl -c \"configure terminal\" -c \"router bgp $VAR(../../@)\" \
- -c \"neighbor $VAR(../@) $peer\" \
- -c \"neighbor $VAR(../@) next-hop-self\" "
-delete:expression: "${vyatta_sbindir}/vyatta-vtysh.pl -noerr -c \"configure terminal\" -c \"router bgp $VAR(../../@)\" \
- -c \"no neighbor $VAR(../@) next-hop-self \" "
+commit:expression: $VAR(../peer-group/) == ""; "protocols bgp $VAR(../../@) neighbor $VAR(../@) next-hop-self: you can't set next-hop-self for a neighbor in a peer-group"
+update: if [ -n "$VAR(../remote-as/@)" ]; then
+ peer="remote-as $VAR(../remote-as/@)";
+ else
+ peer="peer-group $VAR(../peer-group/@)";
+ fi;
+ ${vyatta_sbindir}/vyatta-vtysh.pl -c "configure terminal" -c "router bgp $VAR(../../@)" \
+ -c "neighbor $VAR(../@) $peer" \
+ -c "neighbor $VAR(../@) next-hop-self"
+delete: ${vyatta_sbindir}/vyatta-vtysh.pl -noerr -c "configure terminal" -c "router bgp $VAR(../../@)" \
+ -c "no neighbor $VAR(../@) next-hop-self "
diff --git a/templates/protocols/bgp/node.tag/neighbor/node.tag/override-capability/node.def b/templates/protocols/bgp/node.tag/neighbor/node.tag/override-capability/node.def
index 567441ec..82668b8a 100644
--- a/templates/protocols/bgp/node.tag/neighbor/node.tag/override-capability/node.def
+++ b/templates/protocols/bgp/node.tag/neighbor/node.tag/override-capability/node.def
@@ -1,14 +1,14 @@
-help: Override capability negotiation result
+help: ignore capability negotiation with this neighbor
commit:expression: exec "/opt/vyatta/sbin/vyatta-bgp.pl --check-as --as $VAR(../../@) --neighbor $VAR(../@)"
-commit:expression: $VAR(../strict-capability/) == ""; "You can't set strict-capability and override-capability for neighbor $VAR(../@)"
-update:expression: "if [ -n \"$VAR(../remote-as/@)\" ]; then \
- peer=\"remote-as $VAR(../remote-as/@)\"; \
- else \
- peer=\"peer-group $VAR(../peer-group/@)\"; \
- fi; \
- ${vyatta_sbindir}/vyatta-vtysh.pl -c \"configure terminal\" -c \"router bgp $VAR(../../@)\" \
- -c \"neighbor $VAR(../@) $peer\" \
- -c \"neighbor $VAR(../@) override-capability\" "
-delete:expression: "${vyatta_sbindir}/vyatta-vtysh.pl -noerr -c \"configure terminal\" -c \"router bgp $VAR(../../@)\" \
- -c \"no neighbor $VAR(../@) override-capability \" "
+commit:expression: $VAR(../strict-capability/) == ""; "protocols bgp $VAR(../../@) neighbor $VAR(../@) override-capability: you can't set both strict-capability and override-capability"
+update: if [ -n "$VAR(../remote-as/@)" ]; then
+ peer="remote-as $VAR(../remote-as/@)";
+ else
+ peer="peer-group $VAR(../peer-group/@)";
+ fi;
+ ${vyatta_sbindir}/vyatta-vtysh.pl -c "configure terminal" -c "router bgp $VAR(../../@)" \
+ -c "neighbor $VAR(../@) $peer" \
+ -c "neighbor $VAR(../@) override-capability"
+delete: ${vyatta_sbindir}/vyatta-vtysh.pl -noerr -c "configure terminal" -c "router bgp $VAR(../../@)" \
+ -c "no neighbor $VAR(../@) override-capability"
diff --git a/templates/protocols/bgp/node.tag/neighbor/node.tag/passive/node.def b/templates/protocols/bgp/node.tag/neighbor/node.tag/passive/node.def
index 128a7f70..46d787a8 100644
--- a/templates/protocols/bgp/node.tag/neighbor/node.tag/passive/node.def
+++ b/templates/protocols/bgp/node.tag/neighbor/node.tag/passive/node.def
@@ -1,13 +1,13 @@
-help: Don't send open messages to this neighbor
+help: don't try to initiate a session with this neighbor
commit:expression: exec "/opt/vyatta/sbin/vyatta-bgp.pl --check-as --as $VAR(../../@) --neighbor $VAR(../@)"
-update:expression: "if [ -n \"$VAR(../remote-as/@)\" ]; then \
- peer=\"remote-as $VAR(../remote-as/@)\"; \
- else \
- peer=\"peer-group $VAR(../peer-group/@)\"; \
- fi; \
- ${vyatta_sbindir}/vyatta-vtysh.pl -c \"configure terminal\" -c \"router bgp $VAR(../../@)\" \
- -c \"neighbor $VAR(../@) $peer\" \
- -c \"neighbor $VAR(../@) passive\" "
-delete:expression: "${vyatta_sbindir}/vyatta-vtysh.pl -noerr -c \"configure terminal\" -c \"router bgp $VAR(../../@)\" \
- -c \"no neighbor $VAR(../@) passive \" "
+update: if [ -n "$VAR(../remote-as/@)" ]; then
+ peer="remote-as $VAR(../remote-as/@)";
+ else
+ peer="peer-group $VAR(../peer-group/@)";
+ fi;
+ ${vyatta_sbindir}/vyatta-vtysh.pl -c "configure terminal" -c "router bgp $VAR(../../@)" \
+ -c "neighbor $VAR(../@) $peer" \
+ -c "neighbor $VAR(../@) passive"
+delete: ${vyatta_sbindir}/vyatta-vtysh.pl -noerr -c "configure terminal" -c "router bgp $VAR(../../@)" \
+ -c "no neighbor $VAR(../@) passive"
diff --git a/templates/protocols/bgp/node.tag/neighbor/node.tag/password/node.def b/templates/protocols/bgp/node.tag/neighbor/node.tag/password/node.def
deleted file mode 100644
index a45f7294..00000000
--- a/templates/protocols/bgp/node.tag/neighbor/node.tag/password/node.def
+++ /dev/null
@@ -1,13 +0,0 @@
-type: txt
-help: Specify BGP neighbor password
-commit:expression: exec "/opt/vyatta/sbin/vyatta-bgp.pl --check-as --as $VAR(../../@) --neighbor $VAR(../@)"
-update:expression: "if [ -n \"$VAR(../remote-as/@)\" ]; then \
- peer=\"remote-as $VAR(../remote-as/@)\"; \
- else \
- peer=\"peer-group $VAR(../peer-group/@)\"; \
- fi; \
- ${vyatta_sbindir}/vyatta-vtysh.pl -c \"configure terminal\" -c \"router bgp $VAR(../../@)\" \
- -c \"neighbor $VAR(../@) $peer\" \
- -c \"neighbor $VAR(../@) password $VAR(@)\" "
-delete:expression: "${vyatta_sbindir}/vyatta-vtysh.pl -noerr -c \"configure terminal\" -c \"router bgp $VAR(../../@)\" \
- -c \"no neighbor $VAR(../@) password\" "
diff --git a/templates/protocols/bgp/node.tag/neighbor/node.tag/peer-group/node.def b/templates/protocols/bgp/node.tag/neighbor/node.tag/peer-group/node.def
index c1b51fd8..8201f8a0 100644
--- a/templates/protocols/bgp/node.tag/neighbor/node.tag/peer-group/node.def
+++ b/templates/protocols/bgp/node.tag/neighbor/node.tag/peer-group/node.def
@@ -4,8 +4,8 @@ syntax:expression: exec "if [ -n \"`echo $VAR(../@) | sed 's/[0-9]\\{1,3\\}.[0-9
exit 1; \
fi; "; "peer-group token may not be specified for a peer-group"
commit:expression: exec "/opt/vyatta/sbin/vyatta-bgp.pl --check-as --peergroup=$VAR(@) --as $VAR(../../@) --neighbor $VAR(../@)"
-commit:expression: exec "/opt/vyatta/sbin/vyatta_quagga_utils.pl --exists \"protocols bgp $VAR(../../@) neighbor $VAR(@)\" "; "peer-group $VAR(@) doesn't exist"
-update:expression: "${vyatta_sbindir}/vyatta-vtysh.pl -c \"configure terminal\" -c \"router bgp $VAR(../../@)\" \
- -c \"neighbor $VAR(../@) peer-group $VAR(@)\" "
-delete:expression: "${vyatta_sbindir}/vyatta-vtysh.pl -noerr -c \"configure terminal\" -c \"router bgp $VAR(../../@)\" \
- -c \"no neighbor $VAR(../@) peer-group $VAR(@)\" "
+commit:expression: exec "/opt/vyatta/sbin/vyatta_quagga_utils.pl --exists \"protocols bgp $VAR(../../@) neighbor $VAR(@)\" "; "protocols bgp $VAR(../../@) neighbor $VAR(../@) peer-group: peer-group $VAR(@) doesn't exist"
+update: ${vyatta_sbindir}/vyatta-vtysh.pl -c "configure terminal\" -c "router bgp $VAR(../../@)" \
+ -c "neighbor $VAR(../@) peer-group $VAR(@)"
+delete: ${vyatta_sbindir}/vyatta-vtysh.pl -noerr -c "configure terminal" -c "router bgp $VAR(../../@)" \
+ -c "no neighbor $VAR(../@) peer-group $VAR(@)"
diff --git a/templates/protocols/bgp/node.tag/neighbor/node.tag/port/node.def b/templates/protocols/bgp/node.tag/neighbor/node.tag/port/node.def
index 84e8be28..a738b3d4 100644
--- a/templates/protocols/bgp/node.tag/neighbor/node.tag/port/node.def
+++ b/templates/protocols/bgp/node.tag/neighbor/node.tag/port/node.def
@@ -1,23 +1,18 @@
type: u32
-help: Neighbor's BGP port
+help: set the neighbor's BGP port
+comp_help: \1 <1-65535>\tport number
syntax:expression: $VAR(@) >= 1 && $VAR(@) <= 65535; \
"port must be between 1 and 65535"
commit:expression: exec "/opt/vyatta/sbin/vyatta-bgp.pl --check-as --as $VAR(../../@) --neighbor $VAR(../@)"
-
-update:expression: "\
- if [ -n \"$VAR(../remote-as/@)\" ]; then \
- peer=\"remote-as $VAR(../remote-as/@)\"; \
- else \
- peer=\"peer-group $VAR(../peer-group/@)\"; \
- fi; \
- ${vyatta_sbindir}/vyatta-vtysh.pl -c \"configure terminal\" \
- -c \"router bgp $VAR(../../@)\" \
- -c \"neighbor $VAR(../@) $peer\" \
- -c \"neighbor $VAR(../@) port $VAR(@)\" "
-
-delete:expression: "${vyatta_sbindir}/vyatta-vtysh.pl -noerr \
- -c \"configure terminal\" -c \"router bgp $VAR(../../@)\" \
- -c \"no neighbor $VAR(../@) port \" "
-
-comp_help: possible completions:
- <1-65535> Set neighbor's BGP port
+update: if [ -n "$VAR(../remote-as/@)" ]; then
+ peer="remote-as $VAR(../remote-as/@)";
+ else
+ peer="peer-group $VAR(../peer-group/@)";
+ fi;
+ ${vyatta_sbindir}/vyatta-vtysh.pl -c "configure terminal" \
+ -c "router bgp $VAR(../../@)" \
+ -c "neighbor $VAR(../@) $peer" \
+ -c "neighbor $VAR(../@) port $VAR(@)"
+delete: ${vyatta_sbindir}/vyatta-vtysh.pl -noerr \
+ -c "configure terminal" -c "router bgp $VAR(../../@)" \
+ -c "no neighbor $VAR(../@) port"
diff --git a/templates/protocols/bgp/node.tag/neighbor/node.tag/prefix-list/export/node.def b/templates/protocols/bgp/node.tag/neighbor/node.tag/prefix-list/export/node.def
index 062a6312..e74140f1 100644
--- a/templates/protocols/bgp/node.tag/neighbor/node.tag/prefix-list/export/node.def
+++ b/templates/protocols/bgp/node.tag/neighbor/node.tag/prefix-list/export/node.def
@@ -1,16 +1,18 @@
type: txt
-help: Filter outgoing updates
+help: set a prefix-list to filter outgoing route updates to this neighbor
+comp_help: \1 <txt>\t\tprefix-list name
commit:expression: exec "/opt/vyatta/sbin/vyatta-bgp.pl --check-as --as $VAR(../../../@) --neighbor $VAR(../../@)"
-commit:expression: $VAR(../../peer-group/) == ""; "You can't set a prefix-list for neighbor $VAR(../../@) in peer-group $VAR(../../peer-group/@)"
-commit:expression: exec "/opt/vyatta/sbin/vyatta_quagga_utils.pl --exists \"policy prefix-list $VAR(@)\" ";"prefix-list $VAR(@) doesn't exist"
-update:expression: "if [ -n \"$VAR(../../remote-as/@)\" ]; then \
- peer=\"remote-as $VAR(../../remote-as/@)\"; \
- else \
- peer=\"peer-group $VAR(../../peer-group/@)\"; \
- fi; \
- ${vyatta_sbindir}/vyatta-vtysh.pl -c \"configure terminal\" -c \"router bgp $VAR(../../../@)\" \
- -c \"neighbor $VAR(../../@) $peer\" \
- -c \"neighbor $VAR(../../@) prefix-list $VAR(@) out\" "
-delete:expression: "${vyatta_sbindir}/vyatta-vtysh.pl -noerr -c \"configure terminal\" -c \"router bgp $VAR(../../../@)\" \
- -c \"no neighbor $VAR(../../@) prefix-list $VAR(@) out\" "
+commit:expression: $VAR(../../peer-group/) == ""; "protocols bgp $VAR(../../../@) neighbor $VAR(../../@): you can't set a prefix-list for a neighbor in a peer-group"
+commit:expression: exec "/opt/vyatta/sbin/vyatta_quagga_utils.pl --exists \"policy prefix-list $VAR(@)\" ";"protocols bgp $VAR(../../../@) neighbor $VAR(../../@) prefix-list export: prefix-list $VAR(@) doesn't exist"
+commit:expression: $VAR(../../distribute-list/export/) == ""; "protocols bgp $VAR(../../../@) neighbor $VAR(../../@) prefix-list export: you can't set both a prefix-list and a distribute list"
+update: if [ -n "$VAR(../../remote-as/@)" ]; then
+ peer="remote-as $VAR(../../remote-as/@)";
+ else
+ peer="peer-group $VAR(../../peer-group/@)";
+ fi;
+ ${vyatta_sbindir}/vyatta-vtysh.pl -c "configure terminal" -c "router bgp $VAR(../../../@)" \
+ -c "neighbor $VAR(../../@) $peer" \
+ -c "neighbor $VAR(../../@) prefix-list $VAR(@) out"
+delete: ${vyatta_sbindir}/vyatta-vtysh.pl -noerr -c "configure terminal" -c "router bgp $VAR(../../../@)" \
+ -c "no neighbor $VAR(../../@) prefix-list $VAR(@) out"
diff --git a/templates/protocols/bgp/node.tag/neighbor/node.tag/prefix-list/import/node.def b/templates/protocols/bgp/node.tag/neighbor/node.tag/prefix-list/import/node.def
index f744b9df..dc6231b9 100644
--- a/templates/protocols/bgp/node.tag/neighbor/node.tag/prefix-list/import/node.def
+++ b/templates/protocols/bgp/node.tag/neighbor/node.tag/prefix-list/import/node.def
@@ -1,16 +1,18 @@
type: txt
-help: Filter incoming updates
+help: set a prefix-list to filter incoming route updates from this neighbor
+comp_help: \1 <txt>\t\tprefix-list name
commit:expression: exec "/opt/vyatta/sbin/vyatta-bgp.pl --check-as --as $VAR(../../../@) --neighbor $VAR(../../@)"
-commit:expression: $VAR(../../peer-group/) == ""; "You can't set a prefix-list for neighbor $VAR(../../@) in peer-group $VAR(../../peer-group/@)"
-commit:expression: exec "/opt/vyatta/sbin/vyatta_quagga_utils.pl --exists \"policy prefix-list $VAR(@)\" ";"prefix-list $VAR(@) doesn't exist"
-update:expression: "if [ -n \"$VAR(../../remote-as/@)\" ]; then \
- peer=\"remote-as $VAR(../../remote-as/@)\"; \
- else \
- peer=\"peer-group $VAR(../../peer-group/@)\"; \
- fi; \
- ${vyatta_sbindir}/vyatta-vtysh.pl -c \"configure terminal\" -c \"router bgp $VAR(../../../@)\" \
- -c \"neighbor $VAR(../../@) $peer\" \
- -c \"neighbor $VAR(../../@) prefix-list $VAR(@) in\" "
-delete:expression: "${vyatta_sbindir}/vyatta-vtysh.pl -noerr -c \"configure terminal\" -c \"router bgp $VAR(../../../@)\" \
- -c \"no neighbor $VAR(../../@) prefix-list $VAR(@) in\" "
+commit:expression: $VAR(../../peer-group/) == ""; "protocols bgp $VAR(../../../@) neighbor $VAR(../../@): you can't set a prefix-list for a neighbor in a peer-group"
+commit:expression: exec "/opt/vyatta/sbin/vyatta_quagga_utils.pl --exists \"policy prefix-list $VAR(@)\" ";"protocols bgp $VAR(../../../@) neighbor $VAR(../../@) prefix-list import: prefix-list $VAR(@) doesn't exist"
+commit:expression: $VAR(../../distribute-list/import/) == ""; "protocols bgp $VAR(../../../@) neighbor $VAR(../../@) prefix-list import: you can't set both a prefix-list and a distribute list"
+update: if [ -n "$VAR(../../remote-as/@)" ]; then
+ peer="remote-as $VAR(../../remote-as/@)";
+ else
+ peer="peer-group $VAR(../../peer-group/@)";
+ fi;
+ ${vyatta_sbindir}/vyatta-vtysh.pl -c "configure terminal" -c "router bgp $VAR(../../../@)" \
+ -c "neighbor $VAR(../../@) $peer" \
+ -c "neighbor $VAR(../../@) prefix-list $VAR(@) in"
+delete: ${vyatta_sbindir}/vyatta-vtysh.pl -noerr -c "configure terminal" -c "router bgp $VAR(../../../@)" \
+ -c "no neighbor $VAR(../../@) prefix-list $VAR(@) in"
diff --git a/templates/protocols/bgp/node.tag/neighbor/node.tag/prefix-list/node.def b/templates/protocols/bgp/node.tag/neighbor/node.tag/prefix-list/node.def
index 60273382..c5e93f61 100644
--- a/templates/protocols/bgp/node.tag/neighbor/node.tag/prefix-list/node.def
+++ b/templates/protocols/bgp/node.tag/neighbor/node.tag/prefix-list/node.def
@@ -1 +1 @@
-help: Filter updates to/from this neighbor
+help: configure a prefix-list to filter route updates to/from this neighbor
diff --git a/templates/protocols/bgp/node.tag/neighbor/node.tag/remote-as/node.def b/templates/protocols/bgp/node.tag/neighbor/node.tag/remote-as/node.def
index 9e7e7440..e668c22b 100644
--- a/templates/protocols/bgp/node.tag/neighbor/node.tag/remote-as/node.def
+++ b/templates/protocols/bgp/node.tag/neighbor/node.tag/remote-as/node.def
@@ -1,7 +1,8 @@
type: u32
-help: Specify BGP neighbor ASN
+help: set neighbor BGP AS number
+comp_help: \1 <1-4294967294>\tAS number
syntax:expression: $VAR(@) >= 1 && $VAR(@) <= 4294967294; "remote-as must be between 1 and 4294967294"
-update:expression: "${vyatta_sbindir}/vyatta-vtysh.pl -c \"configure terminal\" -c \"router bgp $VAR(../../@)\" \
- -c \"neighbor $VAR(../@) remote-as $VAR(@)\" "
-delete:expression: "${vyatta_sbindir}/vyatta-vtysh.pl -c \"configure terminal\" -c \"router bgp $VAR(../../@)\" \
- -c \"no neighbor $VAR(../@) remote-as $VAR(@)\" "
+update: ${vyatta_sbindir}/vyatta-vtysh.pl -c "configure terminal" -c "router bgp $VAR(../../@)" \
+ -c "neighbor $VAR(../@) remote-as $VAR(@)"
+delete: ${vyatta_sbindir}/vyatta-vtysh.pl -c "configure terminal" -c "router bgp $VAR(../../@)" \
+ -c "no neighbor $VAR(../@) remote-as $VAR(@)"
diff --git a/templates/protocols/bgp/node.tag/neighbor/node.tag/remove-private-as/node.def b/templates/protocols/bgp/node.tag/neighbor/node.tag/remove-private-as/node.def
index 70b5f223..81956352 100644
--- a/templates/protocols/bgp/node.tag/neighbor/node.tag/remove-private-as/node.def
+++ b/templates/protocols/bgp/node.tag/neighbor/node.tag/remove-private-as/node.def
@@ -1,14 +1,14 @@
-help: Remove private AS number from outbound updates
+help: remove private AS numbers from AS path in outbound route updates
commit:expression: exec "/opt/vyatta/sbin/vyatta-bgp.pl --check-as --as $VAR(../../@) --neighbor $VAR(../@)"
-commit:expression: $VAR(../peer-group/) == ""; "You can't set a remove-private-as for neighbor $VAR(../@) in peer-group $VAR(../peer-group/@)"
-update:expression: "if [ -n \"$VAR(../remote-as/@)\" ]; then \
- peer=\"remote-as $VAR(../remote-as/@)\"; \
- else \
- peer=\"peer-group $VAR(../peer-group/@)\"; \
- fi; \
- ${vyatta_sbindir}/vyatta-vtysh.pl -c \"configure terminal\" -c \"router bgp $VAR(../../@)\" \
- -c \"neighbor $VAR(../@) $peer\" \
- -c \"neighbor $VAR(../@) remove-private-AS \" "
-delete:expression: "${vyatta_sbindir}/vyatta-vtysh.pl -noerr -c \"configure terminal\" -c \"router bgp $VAR(../../@)\" \
- -c \"no neighbor $VAR(../@) remove-private-AS \" "
+commit:expression: $VAR(../peer-group/) == ""; "protocols bgp $VAR(../../@) neighbor $VAR(../../@): you can't set remove-private-as for a neighbor in a peer-group"
+update: if [ -n "$VAR(../remote-as/@)" ]; then
+ peer="remote-as $VAR(../remote-as/@)";
+ else
+ peer="peer-group $VAR(../peer-group/@)";
+ fi;
+ ${vyatta_sbindir}/vyatta-vtysh.pl -c "configure terminal" -c "router bgp $VAR(../../@)" \
+ -c "neighbor $VAR(../@) $peer" \
+ -c "neighbor $VAR(../@) remove-private-AS"
+delete: ${vyatta_sbindir}/vyatta-vtysh.pl -noerr -c "configure terminal" -c "router bgp $VAR(../../@)" \
+ -c "no neighbor $VAR(../@) remove-private-AS"
diff --git a/templates/protocols/bgp/node.tag/neighbor/node.tag/route-map/export/node.def b/templates/protocols/bgp/node.tag/neighbor/node.tag/route-map/export/node.def
index 51268770..7286f430 100644
--- a/templates/protocols/bgp/node.tag/neighbor/node.tag/route-map/export/node.def
+++ b/templates/protocols/bgp/node.tag/neighbor/node.tag/route-map/export/node.def
@@ -1,16 +1,17 @@
type: txt
-help: Route-map to apply to outgoing updates
+help: set a route-map to filter outgoing route updates to this neighbor
+comp_help: \1 <txt>\t\troute-map name
commit:expression: exec "/opt/vyatta/sbin/vyatta-bgp.pl --check-as --as $VAR(../../../@) --neighbor $VAR(../../@)"
-commit:expression: $VAR(../../peer-group/) == ""; "You can't set a route-map for neighbor $VAR(../../@) in peer-group $VAR(../../peer-group/@)"
-commit:expression: exec "/opt/vyatta/sbin/vyatta_quagga_utils.pl --exists \"policy route-map $VAR(@)\" ";"route-map $VAR(@) doesn't exist"
-update:expression: "if [ -n \"$VAR(../../remote-as/@)\" ]; then \
- peer=\"remote-as $VAR(../../remote-as/@)\"; \
- else \
- peer=\"peer-group $VAR(../../peer-group/@)\"; \
- fi; \
- ${vyatta_sbindir}/vyatta-vtysh.pl -c \"configure terminal\" -c \"router bgp $VAR(../../../@)\" \
- -c \"neighbor $VAR(../../@) $peer\" \
- -c \"neighbor $VAR(../../@) route-map $VAR(@) out\" "
-delete:expression: "${vyatta_sbindir}/vyatta-vtysh.pl -noerr -c \"configure terminal\" -c \"router bgp $VAR(../../../@)\" \
- -c \"no neighbor $VAR(../../@) route-map $VAR(@) out\" "
+commit:expression: $VAR(../../peer-group/) == ""; "protocols bgp $VAR(../../../@) neighbor $VAR(../../@): you can't set a route-map for a neighbor in a peer-group"
+commit:expression: exec "/opt/vyatta/sbin/vyatta_quagga_utils.pl --exists \"policy route-map $VAR(@)\" ";"protocols bgp $VAR(../../../@) neighbor $VAR(../../@) export: route-map $VAR(@) doesn't exist"
+update: if [ -n "$VAR(../../remote-as/@)" ]; then
+ peer="remote-as $VAR(../../remote-as/@)";
+ else
+ peer="peer-group $VAR(../../peer-group/@)";
+ fi;
+ ${vyatta_sbindir}/vyatta-vtysh.pl -c "configure terminal" -c "router bgp $VAR(../../../@)" \
+ -c "neighbor $VAR(../../@) $peer" \
+ -c "neighbor $VAR(../../@) route-map $VAR(@) out"
+delete: ${vyatta_sbindir}/vyatta-vtysh.pl -noerr -c "configure terminal" -c "router bgp $VAR(../../../@)" \
+ -c "no neighbor $VAR(../../@) route-map $VAR(@) out"
diff --git a/templates/protocols/bgp/node.tag/neighbor/node.tag/route-map/import/node.def b/templates/protocols/bgp/node.tag/neighbor/node.tag/route-map/import/node.def
index f59f5e69..d3e7d9f9 100644
--- a/templates/protocols/bgp/node.tag/neighbor/node.tag/route-map/import/node.def
+++ b/templates/protocols/bgp/node.tag/neighbor/node.tag/route-map/import/node.def
@@ -1,16 +1,17 @@
type: txt
-help: Route-map to apply to incoming updates
+help: set a route-map to filter incoming route updates from this neighbor
+comp_help: \1 <txt>\t\troute-map name
commit:expression: exec "/opt/vyatta/sbin/vyatta-bgp.pl --check-as --as $VAR(../../../@) --neighbor $VAR(../../@)"
-commit:expression: $VAR(../../peer-group/) == ""; "You can't set a route-map for neighbor $VAR(../../@) in peer-group $VAR(../../peer-group/@)"
-commit:expression: exec "/opt/vyatta/sbin/vyatta_quagga_utils.pl --exists \"policy route-map $VAR(@)\" ";"route-map $VAR(@) doesn't exist"
-update:expression: "if [ -n \"$VAR(../../remote-as/@)\" ]; then \
- peer=\"remote-as $VAR(../../remote-as/@)\"; \
- else \
- peer=\"peer-group $VAR(../../peer-group/@)\"; \
- fi; \
- ${vyatta_sbindir}/vyatta-vtysh.pl -c \"configure terminal\" -c \"router bgp $VAR(../../../@)\" \
- -c \"neighbor $VAR(../../@) $peer\" \
- -c \"neighbor $VAR(../../@) route-map $VAR(@) in\" "
-delete:expression: "${vyatta_sbindir}/vyatta-vtysh.pl -noerr -c \"configure terminal\" -c \"router bgp $VAR(../../../@)\" \
- -c \"no neighbor $VAR(../../@) route-map $VAR(@) in\" "
+commit:expression: $VAR(../../peer-group/) == ""; "protocols bgp $VAR(../../../@) neighbor $VAR(../../@): you can't set a route-map for a neighbor in a peer-group"
+commit:expression: exec "/opt/vyatta/sbin/vyatta_quagga_utils.pl --exists \"policy route-map $VAR(@)\" ";"protocols bgp $VAR(../../../@) neighbor $VAR(../../@) import: route-map $VAR(@) doesn't exist"
+update: if [ -n "$VAR(../../remote-as/@)" ]; then
+ peer="remote-as $VAR(../../remote-as/@)";
+ else
+ peer="peer-group $VAR(../../peer-group/@)";
+ fi;
+ ${vyatta_sbindir}/vyatta-vtysh.pl -c "configure terminal" -c "router bgp $VAR(../../../@)" \
+ -c "neighbor $VAR(../../@) $peer" \
+ -c "neighbor $VAR(../../@) route-map $VAR(@) in"
+delete: ${vyatta_sbindir}/vyatta-vtysh.pl -noerr -c "configure terminal" -c "router bgp $VAR(../../../@)" \
+ -c "no neighbor $VAR(../../@) route-map $VAR(@) in"
diff --git a/templates/protocols/bgp/node.tag/neighbor/node.tag/route-map/node.def b/templates/protocols/bgp/node.tag/neighbor/node.tag/route-map/node.def
index 3ad56222..3cfbe71f 100644
--- a/templates/protocols/bgp/node.tag/neighbor/node.tag/route-map/node.def
+++ b/templates/protocols/bgp/node.tag/neighbor/node.tag/route-map/node.def
@@ -1 +1 @@
-help: Route-map to apply on updates to/from this neighbor
+help: configure a route-map to filter route updates to/from this neighbor
diff --git a/templates/protocols/bgp/node.tag/neighbor/node.tag/route-reflector-client/node.def b/templates/protocols/bgp/node.tag/neighbor/node.tag/route-reflector-client/node.def
index 4079aa80..adf849ff 100644
--- a/templates/protocols/bgp/node.tag/neighbor/node.tag/route-reflector-client/node.def
+++ b/templates/protocols/bgp/node.tag/neighbor/node.tag/route-reflector-client/node.def
@@ -1,15 +1,15 @@
-help: Configure a neighbor as Route Reflector client
+help: configure neighbor as a route reflector client
commit:expression: exec "/opt/vyatta/sbin/vyatta-bgp.pl --check-as --as $VAR(../../@) --neighbor $VAR(../@)"
-commit:expression: $VAR(../peer-group/) == ""; "You can't set route-reflector-client for neighbor $VAR(../@) in peer-group $VAR(../peer-group/@)"
-commit:expression: $VAR(../../@) == $VAR(../remote-as/@); "remote-as must equal local-as to be a route-reflector client"
-update:expression: "if [ -n \"$VAR(../remote-as/@)\" ]; then \
- peer=\"remote-as $VAR(../remote-as/@)\"; \
- else \
- peer=\"peer-group $VAR(../peer-group/@)\"; \
- fi; \
- ${vyatta_sbindir}/vyatta-vtysh.pl -c \"configure terminal\" -c \"router bgp $VAR(../../@)\" \
- -c \"neighbor $VAR(../@) $peer\" \
- -c \"neighbor $VAR(../@) route-reflector-client \" "
-delete:expression: "${vyatta_sbindir}/vyatta-vtysh.pl -noerr -c \"configure terminal\" -c \"router bgp $VAR(../../@)\" \
- -c \"no neighbor $VAR(../@) route-reflector-client \" "
+commit:expression: $VAR(../peer-group/) == ""; "protocols bgp $VAR(../../@) neighbor $VAR(../@): you can't set route-reflector-client for a neighbor in a peer-group"
+commit:expression: $VAR(../../@) == $VAR(../remote-as/@); "protocols bgp $VAR(../../@) neighbor $VAR(../@) route-reflector-client: remote-as must equal local-as"
+update: if [ -n "$VAR(../remote-as/@)" ]; then
+ peer="remote-as $VAR(../remote-as/@)";
+ else
+ peer="peer-group $VAR(../peer-group/@)";
+ fi;
+ ${vyatta_sbindir}/vyatta-vtysh.pl -c "configure terminal" -c "router bgp $VAR(../../@)" \
+ -c "neighbor $VAR(../@) $peer" \
+ -c "neighbor $VAR(../@) route-reflector-client"
+delete: ${vyatta_sbindir}/vyatta-vtysh.pl -noerr -c "configure terminal" -c "router bgp $VAR(../../@)" \
+ -c "no neighbor $VAR(../@) route-reflector-client"
diff --git a/templates/protocols/bgp/node.tag/neighbor/node.tag/route-server-client/node.def b/templates/protocols/bgp/node.tag/neighbor/node.tag/route-server-client/node.def
index a1cf1c32..43c90168 100644
--- a/templates/protocols/bgp/node.tag/neighbor/node.tag/route-server-client/node.def
+++ b/templates/protocols/bgp/node.tag/neighbor/node.tag/route-server-client/node.def
@@ -1,14 +1,14 @@
-help: Configure a neighbor as Route Server client
+help: configure neighbor as route server client
commit:expression: exec "/opt/vyatta/sbin/vyatta-bgp.pl --check-as --as $VAR(../../@) --neighbor $VAR(../@)"
-commit:expression: $VAR(../peer-group/) == ""; "You can't set route-server-client for neighbor $VAR(../@) in peer-group $VAR(../peer-group/@)"
-update:expression: "if [ -n \"$VAR(../remote-as/@)\" ]; then \
- peer=\"remote-as $VAR(../remote-as/@)\"; \
- else \
- peer=\"peer-group $VAR(../peer-group/@)\"; \
- fi; \
- ${vyatta_sbindir}/vyatta-vtysh.pl -c \"configure terminal\" -c \"router bgp $VAR(../../@)\" \
- -c \"neighbor $VAR(../@) $peer\" \
- -c \"neighbor $VAR(../@) route-server-client \" "
-delete:expression: "${vyatta_sbindir}/vyatta-vtysh.pl -noerr -c \"configure terminal\" -c \"router bgp $VAR(../../@)\" \
- -c \"no neighbor $VAR(../@) route-server-client \" "
+commit:expression: $VAR(../peer-group/) == ""; "protocols bgp $VAR(../../@) neighbor $VAR(../@): you can't set route-server-client for a neighbor in a peer-group"
+update: if [ -n "$VAR(../remote-as/@)" ]; then
+ peer="remote-as $VAR(../remote-as/@)";
+ else
+ peer="peer-group $VAR(../peer-group/@)";
+ fi;
+ ${vyatta_sbindir}/vyatta-vtysh.pl -c "configure terminal" -c "router bgp $VAR(../../@)" \
+ -c "neighbor $VAR(../@) $peer" \
+ -c "neighbor $VAR(../@) route-server-client"
+delete: ${vyatta_sbindir}/vyatta-vtysh.pl -noerr -c "configure terminal" -c "router bgp $VAR(../../@)" \
+ -c "no neighbor $VAR(../@) route-server-client"
diff --git a/templates/protocols/bgp/node.tag/neighbor/node.tag/shutdown/node.def b/templates/protocols/bgp/node.tag/neighbor/node.tag/shutdown/node.def
index 8ddee2cf..fa35aede 100644
--- a/templates/protocols/bgp/node.tag/neighbor/node.tag/shutdown/node.def
+++ b/templates/protocols/bgp/node.tag/neighbor/node.tag/shutdown/node.def
@@ -1,12 +1,12 @@
-help: Administratively shut down this neighbor
+help: administratively shut down neighbor
commit:expression: exec "/opt/vyatta/sbin/vyatta-bgp.pl --check-as --as $VAR(../../@) --neighbor $VAR(../@)"
-update:expression: "if [ -n \"$VAR(../remote-as/@)\" ]; then \
- peer=\"remote-as $VAR(../remote-as/@)\"; \
- else \
- peer=\"peer-group $VAR(../peer-group/@)\"; \
- fi; \
- ${vyatta_sbindir}/vyatta-vtysh.pl -c \"configure terminal\" -c \"router bgp $VAR(../../@)\" \
- -c \"neighbor $VAR(../@) $peer\" \
- -c \"neighbor $VAR(../@) shutdown\" "
-delete:expression: "${vyatta_sbindir}/vyatta-vtysh.pl -c \"configure terminal\" -c \"router bgp $VAR(../../@)\" \
- -c \"no neighbor $VAR(../@) shutdown\" "
+update: if [ -n "$VAR(../remote-as/@)" ]; then
+ peer="remote-as $VAR(../remote-as/@)";
+ else
+ peer="peer-group $VAR(../peer-group/@)";
+ fi;
+ ${vyatta_sbindir}/vyatta-vtysh.pl -c "configure terminal" -c "router bgp $VAR(../../@)" \
+ -c "neighbor $VAR(../@) $peer" \
+ -c "neighbor $VAR(../@) shutdown"
+delete: ${vyatta_sbindir}/vyatta-vtysh.pl -c "configure terminal" -c "router bgp $VAR(../../@)" \
+ -c "no neighbor $VAR(../@) shutdown"
diff --git a/templates/protocols/bgp/node.tag/neighbor/node.tag/soft-reconfiguration/inbound/node.def b/templates/protocols/bgp/node.tag/neighbor/node.tag/soft-reconfiguration/inbound/node.def
index 1c4adbcf..2bbd6954 100644
--- a/templates/protocols/bgp/node.tag/neighbor/node.tag/soft-reconfiguration/inbound/node.def
+++ b/templates/protocols/bgp/node.tag/neighbor/node.tag/soft-reconfiguration/inbound/node.def
@@ -1,13 +1,12 @@
-help: Allow inbound soft reconfiguration for this neighbor
+help: configure inbound soft reconfiguration for this neighbor
commit:expression: exec "/opt/vyatta/sbin/vyatta-bgp.pl --check-as --as $VAR(../../@) --neighbor $VAR(../@)"
-update:expression: "if [ -n \"$VAR(../../remote-as/@)\" ]; then \
- peer=\"remote-as $VAR(../../remote-as/@)\"; \
- else \
- peer=\"peer-group $VAR(../../peer-group/@)\"; \
- fi; \
- ${vyatta_sbindir}/vyatta-vtysh.pl -c \"configure terminal\" -c \"router bgp $VAR(../../../@)\" \
- -c \"neighbor $VAR(../../@) $peer\" \
- -c \"neighbor $VAR(../../@) soft-reconfiguration inbound \" "
-delete:expression: "${vyatta_sbindir}/vyatta-vtysh.pl -noerr -c \"configure terminal\" -c \"router bgp $VAR(../../../@)\" \
- -c \"no neighbor $VAR(../../@) soft-reconfiguration inbound \" "
-
+update: if [ -n "$VAR(../../remote-as/@)" ]; then
+ peer="remote-as $VAR(../../remote-as/@)";
+ else
+ peer="peer-group $VAR(../../peer-group/@)";
+ fi;
+ ${vyatta_sbindir}/vyatta-vtysh.pl -c "configure terminal" -c "router bgp $VAR(../../../@)" \
+ -c "neighbor $VAR(../../@) $peer" \
+ -c "neighbor $VAR(../../@) soft-reconfiguration inbound"
+delete: ${vyatta_sbindir}/vyatta-vtysh.pl -noerr -c "configure terminal" -c "router bgp $VAR(../../../@)" \
+ -c "no neighbor $VAR(../../@) soft-reconfiguration inbound"
diff --git a/templates/protocols/bgp/node.tag/neighbor/node.tag/soft-reconfiguration/node.def b/templates/protocols/bgp/node.tag/neighbor/node.tag/soft-reconfiguration/node.def
index 8cf6600b..ae8fd30e 100644
--- a/templates/protocols/bgp/node.tag/neighbor/node.tag/soft-reconfiguration/node.def
+++ b/templates/protocols/bgp/node.tag/neighbor/node.tag/soft-reconfiguration/node.def
@@ -1,2 +1,2 @@
-help: Per neighbor soft reconfiguration
-commit:expression: $VAR(./inbound/) != ""; "You must specify the type of soft-reconfiguration"
+help: configure soft reconfiguration for neighbor
+commit:expression: $VAR(./inbound/) != ""; "protocols bgp $VAR(../../@) neighbor $VAR(../@) soft-reconfiguration: you must specify the type of soft-reconfiguration"
diff --git a/templates/protocols/bgp/node.tag/neighbor/node.tag/strict-capability-match/node.def b/templates/protocols/bgp/node.tag/neighbor/node.tag/strict-capability-match/node.def
index 695df262..bd0a211e 100644
--- a/templates/protocols/bgp/node.tag/neighbor/node.tag/strict-capability-match/node.def
+++ b/templates/protocols/bgp/node.tag/neighbor/node.tag/strict-capability-match/node.def
@@ -1,13 +1,13 @@
-help: Strict capability negotiation match
+help: enable strict capability negotiation
commit:expression: exec "/opt/vyatta/sbin/vyatta-bgp.pl --check-as --as $VAR(../../@) --neighbor $VAR(../@)"
-commit:expression: $VAR(../override-capability/) == ""; "You can't set strict-capability and override-capability for neighbor $VAR(../@)"
-update:expression: "if [ -n \"$VAR(../remote-as/@)\" ]; then \
- peer=\"remote-as $VAR(../remote-as/@)\"; \
- else \
- peer=\"peer-group $VAR(../peer-group/@)\"; \
- fi; \
- ${vyatta_sbindir}/vyatta-vtysh.pl -c \"configure terminal\" -c \"router bgp $VAR(../../@)\" \
- -c \"neighbor $VAR(../@) $peer\" \
- -c \"neighbor $VAR(../@) strict-capability-match \" "
-delete:expression: "${vyatta_sbindir}/vyatta-vtysh.pl -noerr -c \"configure terminal\" -c \"router bgp $VAR(../../@)\" \
- -c \"no neighbor $VAR(../@) strict-capability-match \" "
+commit:expression: $VAR(../override-capability/) == ""; "protocols bgp $VAR(../../@) neighbor $VAR(../@) strict-capability-match: you can't set both strict-capability and override-capability"
+update: if [ -n "$VAR(../remote-as/@)" ]; then
+ peer="remote-as $VAR(../remote-as/@)";
+ else
+ peer="peer-group $VAR(../peer-group/@)";
+ fi;
+ ${vyatta_sbindir}/vyatta-vtysh.pl -c "configure terminal" -c "router bgp $VAR(../../@)" \
+ -c "neighbor $VAR(../@) $peer" \
+ -c "neighbor $VAR(../@) strict-capability-match"
+delete: ${vyatta_sbindir}/vyatta-vtysh.pl -noerr -c "configure terminal" -c "router bgp $VAR(../../@)" \
+ -c "no neighbor $VAR(../@) strict-capability-match "
diff --git a/templates/protocols/bgp/node.tag/neighbor/node.tag/timers/connect/node.def b/templates/protocols/bgp/node.tag/neighbor/node.tag/timers/connect/node.def
index d2e2533d..3ccfdd4c 100644
--- a/templates/protocols/bgp/node.tag/neighbor/node.tag/timers/connect/node.def
+++ b/templates/protocols/bgp/node.tag/neighbor/node.tag/timers/connect/node.def
@@ -1,3 +1,5 @@
type: u32
-help: BGP connect timer
+help: set the BGP connect timer for this neighbor
+comp_help: \1 <1-65535>\tconnect timer in seconds
+ 0\t\tdisable connect timer
syntax:expression: $VAR(@) >=0 && $VAR(@) <= 65535; "BGP connect timer must be between 0 and 65535"
diff --git a/templates/protocols/bgp/node.tag/neighbor/node.tag/timers/holdtime/node.def b/templates/protocols/bgp/node.tag/neighbor/node.tag/timers/holdtime/node.def
index 06ebfd09..07c921af 100644
--- a/templates/protocols/bgp/node.tag/neighbor/node.tag/timers/holdtime/node.def
+++ b/templates/protocols/bgp/node.tag/neighbor/node.tag/timers/holdtime/node.def
@@ -1,3 +1,5 @@
type: u32
-help: Holdtime interval
+help: set the BGP hold timer for this neighbor
+comp_help: \1 <1-65535>\thold timer in seconds
+ 0\t\tdisable hold timer
syntax:expression: $VAR(@) == 0 || ($VAR(@) >= 4 && $VAR(@) <= 65535); "Holdtime interval must be 0 or between 4 and 65535"
diff --git a/templates/protocols/bgp/node.tag/neighbor/node.tag/timers/keepalive/node.def b/templates/protocols/bgp/node.tag/neighbor/node.tag/timers/keepalive/node.def
index 3d68ba94..33314049 100644
--- a/templates/protocols/bgp/node.tag/neighbor/node.tag/timers/keepalive/node.def
+++ b/templates/protocols/bgp/node.tag/neighbor/node.tag/timers/keepalive/node.def
@@ -1,3 +1,4 @@
type: u32
-help: Keepalive interval
+help: set the BGP keepalive interval for this neighbor
+comp_help: \1 <1-65535>\tkeepalive interval in seconds
syntax:expression: $VAR(@) >= 1 && $VAR(@) <= 65535; "Keepalive interval must be between 1 and 65535"
diff --git a/templates/protocols/bgp/node.tag/neighbor/node.tag/timers/node.def b/templates/protocols/bgp/node.tag/neighbor/node.tag/timers/node.def
index 8515b9dc..c9fbdca8 100644
--- a/templates/protocols/bgp/node.tag/neighbor/node.tag/timers/node.def
+++ b/templates/protocols/bgp/node.tag/neighbor/node.tag/timers/node.def
@@ -1,27 +1,27 @@
-help: BGP per neighbor timers
+help: configure neighbor timers
commit:expression: exec "/opt/vyatta/sbin/vyatta-bgp.pl --check-as --as $VAR(../../@) --neighbor $VAR(../@)"
-commit:expression: $VAR(../peer-group/) == ""; "You can't set timers for neighbor $VAR(../@) in peer-group $VAR(../peer-group/@)"
-delete:expression: "touch /tmp/bgp-neighbor-$VAR(../@)-timers.$PPID"
-end:expression: "${vyatta_sbindir}/vyatta-vtysh.pl -noerr -c \"configure terminal\" -c \"router bgp $VAR(../../@)\" \
- -c \"no neighbor $VAR(../@) timers \"; \
- ${vyatta_sbindir}/vyatta-vtysh.pl -c \"configure terminal\" -c \"router bgp $VAR(../../@)\" \
- -c \"no neighbor $VAR(../@) timers connect \"; \
- if [ -f \"/tmp/bgp-neighbor-$VAR(../@)-timers.$PPID\" ]; then \
- rm -rf /tmp/bgp-neighbor-$VAR(../@)-timers.$PPID; \
- else \
- if [ -n \"$VAR(../remote-as/@)\" ]; then \
- peer=\"remote-as $VAR(../remote-as/@)\"; \
- else \
- peer=\"peer-group $VAR(../peer-group/@)\"; \
- fi; \
- if [ -n \"$VAR(./connect/@)\" ]; then \
- ${vyatta_sbindir}/vyatta-vtysh.pl -c \"configure terminal\" -c \"router bgp $VAR(../../@)\" \
- -c \"neighbor $VAR(../@) $peer\" \
- -c \"neighbor $VAR(../@) timers connect $VAR(./connect/@)\" ; \
- fi ; \
- if [ -n \"$VAR(./keepalive/@)\" ] || [ -n \"$VAR(./holdtime/@)\" ]; then \
- ${vyatta_sbindir}/vyatta-vtysh.pl -c \"configure terminal\" -c \"router bgp $VAR(../../@)\" \
- -c \"neighbor $VAR(../@) $peer\" \
- -c \"neighbor $VAR(../@) timers $VAR(./keepalive/@) $VAR(./holdtime/@)\"; \
- fi ; \
- fi; "
+commit:expression: $VAR(../peer-group/) == ""; "protocols bgp $VAR(../../@) neighbor $VAR(../@): you can't set timers for a neighbor in a peer-group"
+delete: touch /tmp/bgp-neighbor-$VAR(../@)-timers.$PPID
+end: ${vyatta_sbindir}/vyatta-vtysh.pl -noerr -c "configure terminal" -c "router bgp $VAR(../../@)" \
+ -c "no neighbor $VAR(../@) timers";
+ ${vyatta_sbindir}/vyatta-vtysh.pl -c "configure terminal" -c "router bgp $VAR(../../@)" \
+ -c "no neighbor $VAR(../@) timers connect";
+ if [ -f "/tmp/bgp-neighbor-$VAR(../@)-timers.$PPID" ]; then
+ rm -rf /tmp/bgp-neighbor-$VAR(../@)-timers.$PPID;
+ else
+ if [ -n "$VAR(../remote-as/@)" ]; then
+ peer="remote-as $VAR(../remote-as/@)";
+ else
+ peer="peer-group $VAR(../peer-group/@)";
+ fi;
+ if [ -n "$VAR(./connect/@)" ]; then
+ ${vyatta_sbindir}/vyatta-vtysh.pl -c "configure terminal" -c "router bgp $VAR(../../@)" \
+ -c "neighbor $VAR(../@) $peer" \
+ -c "neighbor $VAR(../@) timers connect $VAR(./connect/@)";
+ fi;
+ if [ -n "$VAR(./keepalive/@)" ] || [ -n "$VAR(./holdtime/@)" ]; then
+ ${vyatta_sbindir}/vyatta-vtysh.pl -c "configure terminal" -c "router bgp $VAR(../../@)" \
+ -c "neighbor $VAR(../@) $peer" \
+ -c "neighbor $VAR(../@) timers $VAR(./keepalive/@) $VAR(./holdtime/@)";
+ fi;
+ fi;
diff --git a/templates/protocols/bgp/node.tag/neighbor/node.tag/unsuppress-map/node.def b/templates/protocols/bgp/node.tag/neighbor/node.tag/unsuppress-map/node.def
index 9251c28a..0c70489f 100644
--- a/templates/protocols/bgp/node.tag/neighbor/node.tag/unsuppress-map/node.def
+++ b/templates/protocols/bgp/node.tag/neighbor/node.tag/unsuppress-map/node.def
@@ -1,15 +1,16 @@
type: txt
-help: Route-map to selectively unsuppress suppressed routes
+help: set a route-map to selectively unsuppress suppressed routes
+comp_help: \1 <txt>\t\troute-map name
commit:expression: exec "/opt/vyatta/sbin/vyatta-bgp.pl --check-as --as $VAR(../../@) --neighbor $VAR(../@)"
-commit:expression: $VAR(../peer-group/) == ""; "You can't set an unsuppress-map for neighbor $VAR(../@) in peer-group $VAR(../peer-group/@)"
-commit:expression: exec "/opt/vyatta/sbin/vyatta_quagga_utils.pl --exists \"policy route-map $VAR(@)\" ";"route-map $VAR(@) doesn't exist"
-update:expression: "if [ -n \"$VAR(../remote-as/@)\" ]; then \
- peer=\"remote-as $VAR(../remote-as/@)\"; \
- else \
- peer=\"peer-group $VAR(../peer-group/@)\"; \
- fi; \
- ${vyatta_sbindir}/vyatta-vtysh.pl -c \"configure terminal\" -c \"router bgp $VAR(../../@)\" \
- -c \"neighbor $VAR(../@) $peer\" \
- -c \"neighbor $VAR(../@) unsuppress-map $VAR(@)\" "
-delete:expression: "${vyatta_sbindir}/vyatta-vtysh.pl -noerr -c \"configure terminal\" -c \"router bgp $VAR(../../@)\" \
- -c \"no neighbor $VAR(../@) unsuppress-map $VAR(@)\" "
+commit:expression: $VAR(../peer-group/) == ""; "protocols bgp $VAR(../../@) neighbor $VAR(../@): you can't set unsuppress-map for a neighbor in a peer-group"
+commit:expression: exec "/opt/vyatta/sbin/vyatta_quagga_utils.pl --exists \"policy route-map $VAR(@)\" ";"protocols bgp $VAR(../../@) neighbor $VAR(../@): route-map $VAR(@) doesn't exist"
+update: if [ -n "$VAR(../remote-as/@)" ]; then
+ peer="remote-as $VAR(../remote-as/@)";
+ else
+ peer="peer-group $VAR(../peer-group/@)";
+ fi;
+ ${vyatta_sbindir}/vyatta-vtysh.pl -c "configure terminal" -c "router bgp $VAR(../../@)" \
+ -c "neighbor $VAR(../@) $peer" \
+ -c "neighbor $VAR(../@) unsuppress-map $VAR(@)"
+delete: ${vyatta_sbindir}/vyatta-vtysh.pl -noerr -c "configure terminal" -c "router bgp $VAR(../../@)" \
+ -c "no neighbor $VAR(../@) unsuppress-map $VAR(@)"
diff --git a/templates/protocols/bgp/node.tag/neighbor/node.tag/update-source/node.def b/templates/protocols/bgp/node.tag/neighbor/node.tag/update-source/node.def
index 2738cc0f..d4476531 100644
--- a/templates/protocols/bgp/node.tag/neighbor/node.tag/update-source/node.def
+++ b/templates/protocols/bgp/node.tag/neighbor/node.tag/update-source/node.def
@@ -1,18 +1,19 @@
type: ipv4
-help: Source of routing updates
+help: set the source IP of routing updates
+comp_help: \1 <x.x.x.x>\tIP address of route source
syntax:expression: exec " \
if [ -z \"`ip addr | grep $VAR(@) `\" ]; then \
echo $VAR(@) doesn\\'t exist on this system ; \
exit 1 ; \
fi ; "
commit:expression: exec "/opt/vyatta/sbin/vyatta-bgp.pl --check-as --as $VAR(../../@) --neighbor $VAR(../@)"
-update:expression: "if [ -n \"$VAR(../remote-as/@)\" ]; then \
- peer=\"remote-as $VAR(../remote-as/@)\"; \
- else \
- peer=\"peer-group $VAR(../peer-group/@)\"; \
- fi; \
- ${vyatta_sbindir}/vyatta-vtysh.pl -c \"configure terminal\" -c \"router bgp $VAR(../../@)\" \
- -c \"neighbor $VAR(../@) $peer\" \
- -c \"neighbor $VAR(../@) update-source $VAR(@)\" "
-delete:expression: "${vyatta_sbindir}/vyatta-vtysh.pl -noerr -c \"configure terminal\" -c \"router bgp $VAR(../../@)\" \
- -c \"no neighbor $VAR(../@) update-source\" "
+update: if [ -n "$VAR(../remote-as/@)" ]; then
+ peer="remote-as $VAR(../remote-as/@)";
+ else
+ peer="peer-group $VAR(../peer-group/@)";
+ fi;
+ ${vyatta_sbindir}/vyatta-vtysh.pl -c "configure terminal" -c "router bgp $VAR(../../@)" \
+ -c "neighbor $VAR(../@) $peer" \
+ -c "neighbor $VAR(../@) update-source $VAR(@)"
+delete: ${vyatta_sbindir}/vyatta-vtysh.pl -noerr -c "configure terminal" -c "router bgp $VAR(../../@)" \
+ -c "no neighbor $VAR(../@) update-source"
diff --git a/templates/protocols/bgp/node.tag/neighbor/node.tag/weight/node.def b/templates/protocols/bgp/node.tag/neighbor/node.tag/weight/node.def
index 3ca1bd6c..1d42b0c1 100644
--- a/templates/protocols/bgp/node.tag/neighbor/node.tag/weight/node.def
+++ b/templates/protocols/bgp/node.tag/neighbor/node.tag/weight/node.def
@@ -1,14 +1,15 @@
type: u32
-help: Set default weight for routes from this neighbor
+help: set default weight for routes from this neighbor
+comp_help: \1 <1-65535>\tweight for routes from this neighbor
syntax:expression: $VAR(@) >= 1 && $VAR(@) <= 65535; "weight must be between 1 and 65535"
commit:expression: exec "/opt/vyatta/sbin/vyatta-bgp.pl --check-as --as $VAR(../../@) --neighbor $VAR(../@)"
-update:expression: "if [ -n \"$VAR(../remote-as/@)\" ]; then \
- peer=\"remote-as $VAR(../remote-as/@)\"; \
- else \
- peer=\"peer-group $VAR(../peer-group/@)\"; \
- fi; \
- ${vyatta_sbindir}/vyatta-vtysh.pl -c \"configure terminal\" -c \"router bgp $VAR(../../@)\" \
- -c \"neighbor $VAR(../@) $peer\" \
- -c \"neighbor $VAR(../@) weight $VAR(@)\" "
-delete:expression: "${vyatta_sbindir}/vyatta-vtysh.pl -noerr -c \"configure terminal\" -c \"router bgp $VAR(../../@)\" \
- -c \"no neighbor $VAR(../@) weight $VAR(@)\" "
+update: if [ -n "$VAR(../remote-as/@)" ]; then
+ peer="remote-as $VAR(../remote-as/@)";
+ else
+ peer="peer-group $VAR(../peer-group/@)";
+ fi;
+ ${vyatta_sbindir}/vyatta-vtysh.pl -c "configure terminal" -c "router bgp $VAR(../../@)" \
+ -c "neighbor $VAR(../@) $peer" \
+ -c "neighbor $VAR(../@) weight $VAR(@)"
+delete: ${vyatta_sbindir}/vyatta-vtysh.pl -noerr -c "configure terminal" -c "router bgp $VAR(../../@)" \
+ -c "no neighbor $VAR(../@) weight $VAR(@)"
diff --git a/templates/protocols/bgp/node.tag/network/node.def b/templates/protocols/bgp/node.tag/network/node.def
index 3d547a34..6b8a810d 100644
--- a/templates/protocols/bgp/node.tag/network/node.def
+++ b/templates/protocols/bgp/node.tag/network/node.def
@@ -1,14 +1,12 @@
tag:
type: ipv4net
-help: Specify a network to announce via BGP
+help: configure a BGP network
+comp_help: \1 <x.x.x.x/x>\tnetwork
syntax:expression: exec "/opt/vyatta/sbin/vyatta_quagga_utils.pl --check-prefix-boundry $VAR(@)";
"Prefix doesn't fall on a natural boundry"
-
commit:expression: !($VAR(./backdoor/) != "" && $VAR(./route-map/) != "");
"protocols bgp $VAR(../@) network $VAR(@): May specify route-map or backdoor but not both"
-
delete: touch /tmp/`echo $VAR(@) | sed 's!/!!'`.$PPID
-
end: ${vyatta_sbindir}/vyatta-vtysh.pl -noerr -c "configure terminal" -c "router bgp $VAR(../@)" -c "no network $VAR(@)";
if [ -f "/tmp/`echo $VAR(@) | sed 's!/!!'`.$PPID" ]; then
diff --git a/templates/protocols/bgp/node.tag/network/node.tag/backdoor/node.def b/templates/protocols/bgp/node.tag/network/node.tag/backdoor/node.def
index b7dc6950..5d4b5731 100644
--- a/templates/protocols/bgp/node.tag/network/node.tag/backdoor/node.def
+++ b/templates/protocols/bgp/node.tag/network/node.tag/backdoor/node.def
@@ -1 +1 @@
-help: Specify a BGP backdoor route
+help: set this network as a backdoor route
diff --git a/templates/protocols/bgp/node.tag/network/node.tag/route-map/node.def b/templates/protocols/bgp/node.tag/network/node.tag/route-map/node.def
index 7a19c2e4..16c2adc6 100644
--- a/templates/protocols/bgp/node.tag/network/node.tag/route-map/node.def
+++ b/templates/protocols/bgp/node.tag/network/node.tag/route-map/node.def
@@ -1,3 +1,4 @@
type: txt
-help: Route-map to modify the attributes
-commit:expression: exec "/opt/vyatta/sbin/vyatta_quagga_utils.pl --exists \"policy route-map $VAR(@)\" ";"route-map $VAR(@) doesn't exist"
+help: set a route-map to modify route attributes
+comp_help: \1 <txt>\t\troute-map name
+commit:expression: exec "/opt/vyatta/sbin/vyatta_quagga_utils.pl --exists \"policy route-map $VAR(@)\" ";"protocols bgp $VAR(../../@) network $VAR(../@): route-map $VAR(@) doesn't exist"
diff --git a/templates/protocols/bgp/node.tag/parameters/always-compare-med/node.def b/templates/protocols/bgp/node.tag/parameters/always-compare-med/node.def
index 37e251af..e397dc9c 100644
--- a/templates/protocols/bgp/node.tag/parameters/always-compare-med/node.def
+++ b/templates/protocols/bgp/node.tag/parameters/always-compare-med/node.def
@@ -1,5 +1,5 @@
-help: Allow comparing MED from different neighbors
-update:expression: "${vyatta_sbindir}/vyatta-vtysh.pl -c \"configure terminal\" -c \"router bgp $VAR(../../@)\" \
- -c \"bgp always-compare-med\" "
-delete:expression: "${vyatta_sbindir}/vyatta-vtysh.pl -c \"configure terminal\" -c \"router bgp $VAR(../../@)\" \
- -c \"no bgp always-compare-med\" "
+help: compare MEDs from different neighbors
+update: ${vyatta_sbindir}/vyatta-vtysh.pl -c "configure terminal" -c "router bgp $VAR(../../@)" \
+ -c "bgp always-compare-med"
+delete: ${vyatta_sbindir}/vyatta-vtysh.pl -c "configure terminal" -c "router bgp $VAR(../../@)" \
+ -c "no bgp always-compare-med"
diff --git a/templates/protocols/bgp/node.tag/parameters/bestpath/as-path/confed/node.def b/templates/protocols/bgp/node.tag/parameters/bestpath/as-path/confed/node.def
index c3ebac90..84dfe043 100644
--- a/templates/protocols/bgp/node.tag/parameters/bestpath/as-path/confed/node.def
+++ b/templates/protocols/bgp/node.tag/parameters/bestpath/as-path/confed/node.def
@@ -1,6 +1,6 @@
-help: Compare path lengths including confederation sets & sequences in selecting a route
-update:expression: "${vyatta_sbindir}/vyatta-vtysh.pl -c \"configure terminal\" -c \"router bgp $VAR(../../../../@)\" \
- -c \"bgp bestpath as-path confed \" "
-delete:expression: "${vyatta_sbindir}/vyatta-vtysh.pl -c \"configure terminal\" -c \"router bgp $VAR(../../../../@)\" \
- -c \"no bgp bestpath as-path confed \" "
+help: compare as-path lengths including confederation sets & sequences
+update: ${vyatta_sbindir}/vyatta-vtysh.pl -c "configure terminal" -c "router bgp $VAR(../../../../@)" \
+ -c "bgp bestpath as-path confed"
+delete: ${vyatta_sbindir}/vyatta-vtysh.pl -c "configure terminal" -c "router bgp $VAR(../../../../@)" \
+ -c "no bgp bestpath as-path confed "
diff --git a/templates/protocols/bgp/node.tag/parameters/bestpath/as-path/ignore/node.def b/templates/protocols/bgp/node.tag/parameters/bestpath/as-path/ignore/node.def
index 7959a950..69ada7a2 100644
--- a/templates/protocols/bgp/node.tag/parameters/bestpath/as-path/ignore/node.def
+++ b/templates/protocols/bgp/node.tag/parameters/bestpath/as-path/ignore/node.def
@@ -1,5 +1,5 @@
-help: Ignore as-path length in selecting a route
-update:expression: "${vyatta_sbindir}/vyatta-vtysh.pl -c \"configure terminal\" -c \"router bgp $VAR(../../../../@)\" \
- -c \"bgp bestpath as-path ignore \" "
-delete:expression: "${vyatta_sbindir}/vyatta-vtysh.pl -c \"configure terminal\" -c \"router bgp $VAR(../../../../@)\" \
- -c \"no bgp bestpath as-path ignore \" "
+help: ignore as-path length in selecting a route
+update: ${vyatta_sbindir}/vyatta-vtysh.pl -c "configure terminal" -c "router bgp $VAR(../../../../@)" \
+ -c "bgp bestpath as-path ignore"
+delete: ${vyatta_sbindir}/vyatta-vtysh.pl -c "configure terminal" -c "router bgp $VAR(../../../../@)" \
+ -c "no bgp bestpath as-path ignore"
diff --git a/templates/protocols/bgp/node.tag/parameters/bestpath/as-path/node.def b/templates/protocols/bgp/node.tag/parameters/bestpath/as-path/node.def
index dda0fc5f..2e84b475 100644
--- a/templates/protocols/bgp/node.tag/parameters/bestpath/as-path/node.def
+++ b/templates/protocols/bgp/node.tag/parameters/bestpath/as-path/node.def
@@ -1 +1 @@
-help: AS-path attribute
+help: set AS-path attribute comparison parameters
diff --git a/templates/protocols/bgp/node.tag/parameters/bestpath/compare-routerid/node.def b/templates/protocols/bgp/node.tag/parameters/bestpath/compare-routerid/node.def
index 2c34a4b6..ed50d705 100644
--- a/templates/protocols/bgp/node.tag/parameters/bestpath/compare-routerid/node.def
+++ b/templates/protocols/bgp/node.tag/parameters/bestpath/compare-routerid/node.def
@@ -1,6 +1,6 @@
-help: Compare router-id for identical EBGP paths
-update:expression: "${vyatta_sbindir}/vyatta-vtysh.pl -c \"configure terminal\" -c \"router bgp $VAR(../../../@)\" \
- -c \"bgp bestpath compare-routerid \" "
-delete:expression: "${vyatta_sbindir}/vyatta-vtysh.pl -c \"configure terminal\" -c \"router bgp $VAR(../../../@)\" \
- -c \"no bgp bestpath compare-routerid \" "
+help: compare the router-id for identical EBGP paths
+update: ${vyatta_sbindir}/vyatta-vtysh.pl -c "configure terminal" -c "router bgp $VAR(../../../@)" \
+ -c "bgp bestpath compare-routerid"
+delete: ${vyatta_sbindir}/vyatta-vtysh.pl -c "configure terminal" -c "router bgp $VAR(../../../@)" \
+ -c "no bgp bestpath compare-routerid"
diff --git a/templates/protocols/bgp/node.tag/parameters/bestpath/med/confed/node.def b/templates/protocols/bgp/node.tag/parameters/bestpath/med/confed/node.def
index ec31b51c..509ee095 100644
--- a/templates/protocols/bgp/node.tag/parameters/bestpath/med/confed/node.def
+++ b/templates/protocols/bgp/node.tag/parameters/bestpath/med/confed/node.def
@@ -1,6 +1,6 @@
-help: Compare MED among confederation paths
-update:expression: "${vyatta_sbindir}/vyatta-vtysh.pl -c \"configure terminal\" -c \"router bgp $VAR(../../../../@)\" \
- -c \"bgp bestpath med confed \" "
-delete:expression: "${vyatta_sbindir}/vyatta-vtysh.pl -c \"configure terminal\" -c \"router bgp $VAR(../../../../@)\" \
- -c \"no bgp bestpath med confed \" "
+help: compare MEDs among confederation paths
+update: ${vyatta_sbindir}/vyatta-vtysh.pl -c "configure terminal" -c "router bgp $VAR(../../../../@)" \
+ -c "bgp bestpath med confed"
+delete: ${vyatta_sbindir}/vyatta-vtysh.pl -c "configure terminal" -c "router bgp $VAR(../../../../@)" \
+ -c "no bgp bestpath med confed"
diff --git a/templates/protocols/bgp/node.tag/parameters/bestpath/med/missing-as-worst/node.def b/templates/protocols/bgp/node.tag/parameters/bestpath/med/missing-as-worst/node.def
index 9eb5b558..9ff63ae8 100644
--- a/templates/protocols/bgp/node.tag/parameters/bestpath/med/missing-as-worst/node.def
+++ b/templates/protocols/bgp/node.tag/parameters/bestpath/med/missing-as-worst/node.def
@@ -1,6 +1,6 @@
-help: Treat missing MED as the least preferred one
-update:expression: "${vyatta_sbindir}/vyatta-vtysh.pl -c \"configure terminal\" -c \"router bgp $VAR(../../../../@)\" \
- -c \"bgp bestpath med missing-as-worst \" "
-delete:expression: "${vyatta_sbindir}/vyatta-vtysh.pl -c \"configure terminal\" -c \"router bgp $VAR(../../../../@)\" \
- -c \"no bgp bestpath med missing-as-worst \" "
+help: treat a route missing a MED as the least preferred one
+update: ${vyatta_sbindir}/vyatta-vtysh.pl -c "configure terminal" -c "router bgp $VAR(../../../../@)" \
+ -c "bgp bestpath med missing-as-worst"
+delete: ${vyatta_sbindir}/vyatta-vtysh.pl -c "configure terminal" -c "router bgp $VAR(../../../../@)" \
+ -c "no bgp bestpath med missing-as-worst"
diff --git a/templates/protocols/bgp/node.tag/parameters/bestpath/med/node.def b/templates/protocols/bgp/node.tag/parameters/bestpath/med/node.def
index 088a9331..5784f034 100644
--- a/templates/protocols/bgp/node.tag/parameters/bestpath/med/node.def
+++ b/templates/protocols/bgp/node.tag/parameters/bestpath/med/node.def
@@ -1 +1 @@
-help: MED attribute
+help: set MED attribute comparison parameters
diff --git a/templates/protocols/bgp/node.tag/parameters/bestpath/node.def b/templates/protocols/bgp/node.tag/parameters/bestpath/node.def
index 178e4573..10e215df 100644
--- a/templates/protocols/bgp/node.tag/parameters/bestpath/node.def
+++ b/templates/protocols/bgp/node.tag/parameters/bestpath/node.def
@@ -1 +1 @@
-help: Change the default bestpath selection
+help: change the default bestpath selection mechanism
diff --git a/templates/protocols/bgp/node.tag/parameters/cluster-id/node.def b/templates/protocols/bgp/node.tag/parameters/cluster-id/node.def
index dcc764ed..319107d1 100644
--- a/templates/protocols/bgp/node.tag/parameters/cluster-id/node.def
+++ b/templates/protocols/bgp/node.tag/parameters/cluster-id/node.def
@@ -1,6 +1,7 @@
type: ipv4
-help: Configure route-reflector cluster-id\n
-update:expression: "${vyatta_sbindir}/vyatta-vtysh.pl -c \"configure terminal\" -c \"router bgp $VAR(../../@)\" \
- -c \"bgp cluster-id $VAR(@)\" "
-delete:expression: "${vyatta_sbindir}/vyatta-vtysh.pl -c \"configure terminal\" -c \"router bgp $VAR(../../@)\" \
- -c \"no bgp cluster-id \" "
+help: configure the route-reflector cluster-id
+comp_help: \1 <x.x.x.x>\tcluster-id IP
+update: ${vyatta_sbindir}/vyatta-vtysh.pl -c "configure terminal" -c "router bgp $VAR(../../@)" \
+ -c "bgp cluster-id $VAR(@)"
+delete: ${vyatta_sbindir}/vyatta-vtysh.pl -c "configure terminal" -c "router bgp $VAR(../../@)" \
+ -c "no bgp cluster-id"
diff --git a/templates/protocols/bgp/node.tag/parameters/confederation/identifier/node.def b/templates/protocols/bgp/node.tag/parameters/confederation/identifier/node.def
index 2d862c46..7798df99 100644
--- a/templates/protocols/bgp/node.tag/parameters/confederation/identifier/node.def
+++ b/templates/protocols/bgp/node.tag/parameters/confederation/identifier/node.def
@@ -1,7 +1,8 @@
type: u32
-help: Configure confederation AS id
+help: set confederation AS identifier
+comp_help: \1 <1-4294967294>\tconfederation AS id
syntax:expression: $VAR(@) >= 1 && $VAR(@) <= 4294967294; "confederation AS id must be between 1 and 4294967294"
-update:expression: "${vyatta_sbindir}/vyatta-vtysh.pl -c \"configure terminal\" -c \"router bgp $VAR(../../../@)\" \
- -c \"bgp confederation identifier $VAR(@)\" "
-delete:expression: "${vyatta_sbindir}/vyatta-vtysh.pl -c \"configure terminal\" -c \"router bgp $VAR(../../../@)\" \
- -c \"no bgp confederation identifier \" "
+update: ${vyatta_sbindir}/vyatta-vtysh.pl -c "configure terminal" -c "router bgp $VAR(../../../@)" \
+ -c "bgp confederation identifier $VAR(@)"
+delete: ${vyatta_sbindir}/vyatta-vtysh.pl -c "configure terminal" -c "router bgp $VAR(../../../@)" \
+ -c "no bgp confederation identifier"
diff --git a/templates/protocols/bgp/node.tag/parameters/confederation/node.def b/templates/protocols/bgp/node.tag/parameters/confederation/node.def
index 4933aeab..529569cf 100644
--- a/templates/protocols/bgp/node.tag/parameters/confederation/node.def
+++ b/templates/protocols/bgp/node.tag/parameters/confederation/node.def
@@ -1 +1 @@
-help: AS confederation parameters
+help: configure AS confederation parameters
diff --git a/templates/protocols/bgp/node.tag/parameters/confederation/peers/node.def b/templates/protocols/bgp/node.tag/parameters/confederation/peers/node.def
index c32b767f..c07a346d 100644
--- a/templates/protocols/bgp/node.tag/parameters/confederation/peers/node.def
+++ b/templates/protocols/bgp/node.tag/parameters/confederation/peers/node.def
@@ -1,8 +1,9 @@
multi:
type: u32
-help: Peer ASs in BGP confederation
+help: set the peer ASs in the BGP confederation
+comp_help: \1 <1-4294967294>\tpeer AS number numbers (ex: "435 234")
syntax:expression: $VAR(@) >= 1 && $VAR(@) <= 4294967294; "confederation AS id must be between 1 and 4294967294"
-update:expression: "${vyatta_sbindir}/vyatta-vtysh.pl -c \"configure terminal\" -c \"router bgp $VAR(../../../@)\" \
- -c \"bgp confederation peers $VAR(@)\" "
-delete:expression: "${vyatta_sbindir}/vyatta-vtysh.pl -c \"configure terminal\" -c \"router bgp $VAR(../../../@)\" \
- -c \"no bgp confederation peers $VAR(@)\" "
+update: ${vyatta_sbindir}/vyatta-vtysh.pl -c "configure terminal" -c "router bgp $VAR(../../../@)" \
+ -c "bgp confederation peers $VAR(@)"
+delete: ${vyatta_sbindir}/vyatta-vtysh.pl -c "configure terminal" -c "router bgp $VAR(../../../@)" \
+ -c "no bgp confederation peers $VAR(@)"
diff --git a/templates/protocols/bgp/node.tag/parameters/dampening/half-life/node.def b/templates/protocols/bgp/node.tag/parameters/dampening/half-life/node.def
index 43839b82..92143567 100644
--- a/templates/protocols/bgp/node.tag/parameters/dampening/half-life/node.def
+++ b/templates/protocols/bgp/node.tag/parameters/dampening/half-life/node.def
@@ -1,3 +1,4 @@
type: u32
-help: Half-life time for the penalty
+help: set half-life time for dampening
+comp_help: \1 <1-45>\thalf-life penalty in seconds
syntax:expression: $VAR(@) >= 1 && $VAR(@) <= 45; "Half-life penalty must be between 1 and 45"
diff --git a/templates/protocols/bgp/node.tag/parameters/dampening/max-suppress-time/node.def b/templates/protocols/bgp/node.tag/parameters/dampening/max-suppress-time/node.def
index 5c77e861..a26a6369 100644
--- a/templates/protocols/bgp/node.tag/parameters/dampening/max-suppress-time/node.def
+++ b/templates/protocols/bgp/node.tag/parameters/dampening/max-suppress-time/node.def
@@ -1,5 +1,6 @@
type: u32
-help: Maximum duration to suppress a stable route
+help: set the maximum duration to suppress a stable route
+comp_help: \1 <1-255>\tmaximum suppress duration in seconds
syntax:expression: $VAR(@) >= 1 && $VAR(@) <= 255; "Max-suppress-time must be between 1 and 255"
-commit:expression: $VAR(../re-use/) != ""; "Re-use value must be set"
-commit:expression: $VAR(../start-suppress-time/) != ""; "Start-suppress-time must be set"
+commit:expression: $VAR(../re-use/) != ""; "protocols bgp $VAR(../../../@) parameters dampening max-suppress-time: you must set a re-use time"
+commit:expression: $VAR(../start-suppress-time/) != ""; "protocols bgp $VAR(../../../@) parameters dampening max-suppress-time: you must set a start-suppress-time"
diff --git a/templates/protocols/bgp/node.tag/parameters/dampening/node.def b/templates/protocols/bgp/node.tag/parameters/dampening/node.def
index 8d15aadc..ed61e381 100644
--- a/templates/protocols/bgp/node.tag/parameters/dampening/node.def
+++ b/templates/protocols/bgp/node.tag/parameters/dampening/node.def
@@ -1,12 +1,11 @@
-help: Enable route-flap dampening
+help: enable route-flap dampening
delete:expression: "touch /tmp/bgp-dampening.$PPID"
-end:expression: "sh -c \"
- ${vyatta_sbindir}/vyatta-vtysh.pl -c \\\"configure terminal\\\" -c \\\"router bgp $VAR(../../@)\\\" \
- -c \\\"no bgp dampening\\\" ; \
- if [ -f \\\"/tmp/bgp-dampening.$PPID\\\" ]; then \
- rm -f \\\"/tmp/bgp-dampening.$PPID\\\" ; \
- else \
- ${vyatta_sbindir}/vyatta-vtysh.pl -c \\\"configure terminal\\\" -c \\\"router bgp $VAR(../../@)\\\" \
- -c \\\"bgp dampening $VAR(./half-life/@) $VAR(./re-use/@) $VAR(./start-suppress-time/@) $VAR(./max-suppress-time/@)\\\" ; \
- fi ; \
- \" "
+end: ${vyatta_sbindir}/vyatta-vtysh.pl -c "configure terminal" -c "router bgp $VAR(../../@)" \
+ -c "no bgp dampening" ;
+ if [ -f "/tmp/bgp-dampening.$PPID" ]; then
+ rm -f "/tmp/bgp-dampening.$PPID" ;
+ else
+ ${vyatta_sbindir}/vyatta-vtysh.pl -c "configure terminal" -c "router bgp $VAR(../../@)" \
+ -c "bgp dampening $VAR(./half-life/@) $VAR(./re-use/@) $VAR(./start-suppress-time/@) $VAR(./max-suppress-time/@)" ;
+ fi ;
+
diff --git a/templates/protocols/bgp/node.tag/parameters/dampening/re-use/node.def b/templates/protocols/bgp/node.tag/parameters/dampening/re-use/node.def
index e9e9af8f..0dd9c1b2 100644
--- a/templates/protocols/bgp/node.tag/parameters/dampening/re-use/node.def
+++ b/templates/protocols/bgp/node.tag/parameters/dampening/re-use/node.def
@@ -1,5 +1,6 @@
type: u32
-help: Value to start reusing a route
+help: set time to start reusing a route
+comp_help: \1 <1-20000>\tre-use time in seconds
syntax:expression: $VAR(@) >= 1 && $VAR(@) <= 20000; "Re-use value must be between 1 and 20000"
-commit:expression: $VAR(../start-suppress-time/) != ""; "Start-suppress-time must be set"
-commit:expression: $VAR(../max-suppress-time/) != ""; "Max-suppress-time must be set"
+commit:expression: $VAR(../start-suppress-time/) != ""; "protocols bgp $VAR(../../../@) parameters dampening re-use: you must set start-suppress-time"
+commit:expression: $VAR(../max-suppress-time/) != ""; "protocols bgp $VAR(../../../@) parameters dampening re-use: you must set max-suppress-time"
diff --git a/templates/protocols/bgp/node.tag/parameters/dampening/start-suppress-time/node.def b/templates/protocols/bgp/node.tag/parameters/dampening/start-suppress-time/node.def
index 4e79cf61..83e6ba76 100644
--- a/templates/protocols/bgp/node.tag/parameters/dampening/start-suppress-time/node.def
+++ b/templates/protocols/bgp/node.tag/parameters/dampening/start-suppress-time/node.def
@@ -1,5 +1,6 @@
type: u32
-help: Value to start suppressing a route
+help: set when to start suppressing a route
+comp_help: \1 <1-20000>\t\tstart-suppress-time
syntax:expression: $VAR(@) >= 1 && $VAR(@) <= 20000; "Start-suppress-time must be between 1 and 20000"
-commit:expression: $VAR(../re-use/) != ""; "Re-use value must be set"
-commit:expression: $VAR(../max-suppress-time/) != ""; "Max-suppress-time must be set"
+commit:expression: $VAR(../re-use/) != ""; "protocols bgp $VAR(../../../@) parameters dampening max-suppress-time: you must set re-use"
+commit:expression: $VAR(../max-suppress-time/) != ""; "protocols bgp $VAR(../../../@) parameters dampening max-suppress-time: you must set max-suppress-time"
diff --git a/templates/protocols/bgp/node.tag/parameters/default/local-pref/node.def b/templates/protocols/bgp/node.tag/parameters/default/local-pref/node.def
index e9e16e73..1956bc1f 100644
--- a/templates/protocols/bgp/node.tag/parameters/default/local-pref/node.def
+++ b/templates/protocols/bgp/node.tag/parameters/default/local-pref/node.def
@@ -1,6 +1,7 @@
type: u32
-help: Local preference (higher=more preferred)
-update:expression: "${vyatta_sbindir}/vyatta-vtysh.pl -c \"configure terminal\" -c \"router bgp $VAR(../../../@)\" \
- -c \"bgp default local-preference $VAR(@)\" "
-delete:expression: "${vyatta_sbindir}/vyatta-vtysh.pl -c \"configure terminal\" -c \"router bgp $VAR(../../../@)\" \
- -c \"no bgp default local-preference\" "
+help: configure the default local preference (higher=more preferred)
+comp_help: \1 <0-4294967295>\tlocal preference
+update: ${vyatta_sbindir}/vyatta-vtysh.pl -c "configure terminal" -c "router bgp $VAR(../../../@)" \
+ -c "bgp default local-preference $VAR(@)"
+delete: ${vyatta_sbindir}/vyatta-vtysh.pl -c "configure terminal" -c "router bgp $VAR(../../../@)" \
+ -c "no bgp default local-preference"
diff --git a/templates/protocols/bgp/node.tag/parameters/default/no-ipv4-unicast/node.def b/templates/protocols/bgp/node.tag/parameters/default/no-ipv4-unicast/node.def
index 184dfcb7..ff91d1ad 100644
--- a/templates/protocols/bgp/node.tag/parameters/default/no-ipv4-unicast/node.def
+++ b/templates/protocols/bgp/node.tag/parameters/default/no-ipv4-unicast/node.def
@@ -1,5 +1,5 @@
-help: Deactivate IPv4 unicast for a peer by default
-update:expression: "${vyatta_sbindir}/vyatta-vtysh.pl -c \"configure terminal\" -c \"router bgp $VAR(../../../@)\" \
- -c \"no bgp default ipv4-unicast\" "
-delete:expression: "${vyatta_sbindir}/vyatta-vtysh.pl -c \"configure terminal\" -c \"router bgp $VAR(../../../@)\" \
- -c \"bgp default ipv4-unicast\" "
+help: deactivate IPv4 unicast for a peer by default
+update: ${vyatta_sbindir}/vyatta-vtysh.pl -c "configure terminal" -c "router bgp $VAR(../../../@)" \
+ -c "no bgp default ipv4-unicast"
+delete: ${vyatta_sbindir}/vyatta-vtysh.pl -c "configure terminal" -c "router bgp $VAR(../../../@)" \
+ -c "bgp default ipv4-unicast "
diff --git a/templates/protocols/bgp/node.tag/parameters/default/node.def b/templates/protocols/bgp/node.tag/parameters/default/node.def
index 5f2ebba5..6aaafd5c 100644
--- a/templates/protocols/bgp/node.tag/parameters/default/node.def
+++ b/templates/protocols/bgp/node.tag/parameters/default/node.def
@@ -1 +1 @@
-help: Configure BGP defaults
+help: configure BGP defaults
diff --git a/templates/protocols/bgp/node.tag/parameters/deterministic-med/node.def b/templates/protocols/bgp/node.tag/parameters/deterministic-med/node.def
index e7b0e50f..2f9722fa 100644
--- a/templates/protocols/bgp/node.tag/parameters/deterministic-med/node.def
+++ b/templates/protocols/bgp/node.tag/parameters/deterministic-med/node.def
@@ -1,5 +1,5 @@
-help: Pick the best-MED path among paths advertised from the neighboring AS
-update:expression: "${vyatta_sbindir}/vyatta-vtysh.pl -c \"configure terminal\" -c \"router bgp $VAR(../../@)\" \
- -c \"bgp deterministic-med \" "
-delete:expression: "${vyatta_sbindir}/vyatta-vtysh.pl -c \"configure terminal\" -c \"router bgp $VAR(../../@)\" \
- -c \"no bgp deterministic-med \" "
+help: compare MEDs between different peers in the same AS
+update: ${vyatta_sbindir}/vyatta-vtysh.pl -c "configure terminal" -c "router bgp $VAR(../../@)" \
+ -c "bgp deterministic-med"
+delete: ${vyatta_sbindir}/vyatta-vtysh.pl -c "configure terminal" -c "router bgp $VAR(../../@)" \
+ -c "no bgp deterministic-med"
diff --git a/templates/protocols/bgp/node.tag/parameters/disable-network-import-check/node.def b/templates/protocols/bgp/node.tag/parameters/disable-network-import-check/node.def
index 19ccdec2..3a13f76c 100644
--- a/templates/protocols/bgp/node.tag/parameters/disable-network-import-check/node.def
+++ b/templates/protocols/bgp/node.tag/parameters/disable-network-import-check/node.def
@@ -1,5 +1,5 @@
-help: Disable checks to verify a route exists in IGP before importing with a network statement
-update:expression: "${vyatta_sbindir}/vyatta-vtysh.pl -c \"configure terminal\" -c \"router bgp $VAR(../../@)\" \
- -c \"no bgp network import-check \" "
-delete:expression: "${vyatta_sbindir}/vyatta-vtysh.pl -c \"configure terminal\" -c \"router bgp $VAR(../../@)\" \
- -c \"bgp network import-check \" "
+help: disable IGP route check for network statements
+update: ${vyatta_sbindir}/vyatta-vtysh.pl -c "configure terminal" -c "router bgp $VAR(../../@)" \
+ -c "no bgp network import-check"
+delete: ${vyatta_sbindir}/vyatta-vtysh.pl -c "configure terminal" -c "router bgp $VAR(../../@)" \
+ -c "bgp network import-check"
diff --git a/templates/protocols/bgp/node.tag/parameters/enforce-first-as/node.def b/templates/protocols/bgp/node.tag/parameters/enforce-first-as/node.def
index eff66372..7922bdf3 100644
--- a/templates/protocols/bgp/node.tag/parameters/enforce-first-as/node.def
+++ b/templates/protocols/bgp/node.tag/parameters/enforce-first-as/node.def
@@ -1,5 +1,5 @@
-help: Enforce the first AS for EBGP routes
-update:expression: "${vyatta_sbindir}/vyatta-vtysh.pl -c \"configure terminal\" -c \"router bgp $VAR(../../@)\" \
- -c \"bgp enforce-first-as \" "
-delete:expression: "${vyatta_sbindir}/vyatta-vtysh.pl -c \"configure terminal\" -c \"router bgp $VAR(../../@)\" \
- -c \"no bgp enforce-first-as \" "
+help: require first AS in the path to match peer's AS
+update: ${vyatta_sbindir}/vyatta-vtysh.pl -c "configure terminal" -c "router bgp $VAR(../../@)" \
+ -c "bgp enforce-first-as "
+delete: ${vyatta_sbindir}/vyatta-vtysh.pl -c "configure terminal" -c "router bgp $VAR(../../@)" \
+ -c "no bgp enforce-first-as "
diff --git a/templates/protocols/bgp/node.tag/parameters/graceful-restart/node.def b/templates/protocols/bgp/node.tag/parameters/graceful-restart/node.def
index ef9d8f38..4586be73 100644
--- a/templates/protocols/bgp/node.tag/parameters/graceful-restart/node.def
+++ b/templates/protocols/bgp/node.tag/parameters/graceful-restart/node.def
@@ -1 +1 @@
-help: Graceful restart capability parameters
+help: configure graceful restart capability parameters
diff --git a/templates/protocols/bgp/node.tag/parameters/graceful-restart/stalepath-time/node.def b/templates/protocols/bgp/node.tag/parameters/graceful-restart/stalepath-time/node.def
index 763dc4a9..103941f1 100644
--- a/templates/protocols/bgp/node.tag/parameters/graceful-restart/stalepath-time/node.def
+++ b/templates/protocols/bgp/node.tag/parameters/graceful-restart/stalepath-time/node.def
@@ -1,7 +1,8 @@
type: u32
-help: Set the max time in seconds to hold onto restarting peer's stale paths
+help: set the maximum time to hold onto restarting peer's stale paths
+comp_help: \1 <1-3600>\thold time in seconds
syntax:expression: $VAR(@) >= 1 && $VAR(@) <= 3600; "stalepath-time must be between 1 and 3600"
-update:expression: "${vyatta_sbindir}/vyatta-vtysh.pl -c \"configure terminal\" -c \"router bgp $VAR(../../../@)\" \
- -c \"bgp graceful-restart stalepath-time $VAR(@) \" "
-delete:expression: "${vyatta_sbindir}/vyatta-vtysh.pl -c \"configure terminal\" -c \"router bgp $VAR(../../../@)\" \
- -c \"no bgp graceful-restart stalepath-time \" "
+update: ${vyatta_sbindir}/vyatta-vtysh.pl -c "configure terminal" -c "router bgp $VAR(../../../@)" \
+ -c "bgp graceful-restart stalepath-time $VAR(@)"
+delete: ${vyatta_sbindir}/vyatta-vtysh.pl -c "configure terminal" -c "router bgp $VAR(../../../@)" \
+ -c "no bgp graceful-restart stalepath-time"
diff --git a/templates/protocols/bgp/node.tag/parameters/log-neighbor-changes/node.def b/templates/protocols/bgp/node.tag/parameters/log-neighbor-changes/node.def
index d88b8de1..d81d0653 100644
--- a/templates/protocols/bgp/node.tag/parameters/log-neighbor-changes/node.def
+++ b/templates/protocols/bgp/node.tag/parameters/log-neighbor-changes/node.def
@@ -1,5 +1,5 @@
-help: Log neighbor up/down and reset reason
-update:expression: "${vyatta_sbindir}/vyatta-vtysh.pl -c \"configure terminal\" -c \"router bgp $VAR(../../@)\" \
- -c \"bgp log-neighbor-changes \" "
-delete:expression: "${vyatta_sbindir}/vyatta-vtysh.pl -c \"configure terminal\" -c \"router bgp $VAR(../../@)\" \
- -c \"no bgp log-neighbor-changes \" "
+help: log neighbor up/down changes and reset reason
+update: ${vyatta_sbindir}/vyatta-vtysh.pl -c "configure terminal" -c "router bgp $VAR(../../@)" \
+ -c "bgp log-neighbor-changes"
+delete: ${vyatta_sbindir}/vyatta-vtysh.pl -c "configure terminal" -c "router bgp $VAR(../../@)" \
+ -c "no bgp log-neighbor-changes"
diff --git a/templates/protocols/bgp/node.tag/parameters/no-client-to-client-reflection/node.def b/templates/protocols/bgp/node.tag/parameters/no-client-to-client-reflection/node.def
index 33ad9a29..1fa64426 100644
--- a/templates/protocols/bgp/node.tag/parameters/no-client-to-client-reflection/node.def
+++ b/templates/protocols/bgp/node.tag/parameters/no-client-to-client-reflection/node.def
@@ -1,5 +1,5 @@
-help: Disable client to client route reflection
-update:expression: "${vyatta_sbindir}/vyatta-vtysh.pl -c \"configure terminal\" -c \"router bgp $VAR(../../@)\" \
- -c \"no bgp client-to-client reflection \" "
-delete:expression: "${vyatta_sbindir}/vyatta-vtysh.pl -c \"configure terminal\" -c \"router bgp $VAR(../../@)\" \
- -c \"bgp client-to-client reflection \" "
+help: disable client to client route reflection
+update: ${vyatta_sbindir}/vyatta-vtysh.pl -c "configure terminal" -c "router bgp $VAR(../../@)" \
+ -c "no bgp client-to-client reflection"
+delete: ${vyatta_sbindir}/vyatta-vtysh.pl -c "configure terminal" -c "router bgp $VAR(../../@)" \
+ -c "bgp client-to-client reflection"
diff --git a/templates/protocols/bgp/node.tag/parameters/no-fast-external-failover/node.def b/templates/protocols/bgp/node.tag/parameters/no-fast-external-failover/node.def
index 88eef57c..4a221e60 100644
--- a/templates/protocols/bgp/node.tag/parameters/no-fast-external-failover/node.def
+++ b/templates/protocols/bgp/node.tag/parameters/no-fast-external-failover/node.def
@@ -1,5 +1,5 @@
-help: Immediately reset session if a link to a directly connected external peer goes down
-update:expression: "${vyatta_sbindir}/vyatta-vtysh.pl -c \"configure terminal\" -c \"router bgp $VAR(../../@)\" \
- -c \"no bgp fast-external-failover \" "
-delete:expression: "${vyatta_sbindir}/vyatta-vtysh.pl -c \"configure terminal\" -c \"router bgp $VAR(../../@)\" \
- -c \"bgp fast-external-failover \" "
+help: disable immediate sesison reset if peer's connected link goes down
+update: ${vyatta_sbindir}/vyatta-vtysh.pl -c "configure terminal" -c "router bgp $VAR(../../@)" \
+ -c "no bgp fast-external-failover"
+delete: ${vyatta_sbindir}/vyatta-vtysh.pl -c "configure terminal" -c "router bgp $VAR(../../@)" \
+ -c "bgp fast-external-failover"
diff --git a/templates/protocols/bgp/node.tag/parameters/node.def b/templates/protocols/bgp/node.tag/parameters/node.def
index cd6b28ce..513f8ebd 100644
--- a/templates/protocols/bgp/node.tag/parameters/node.def
+++ b/templates/protocols/bgp/node.tag/parameters/node.def
@@ -1 +1 @@
-help: Configure BGP parameters
+help: configure BGP parameters
diff --git a/templates/protocols/bgp/node.tag/parameters/router-id/node.def b/templates/protocols/bgp/node.tag/parameters/router-id/node.def
index 6e9de2dc..26b96b5e 100644
--- a/templates/protocols/bgp/node.tag/parameters/router-id/node.def
+++ b/templates/protocols/bgp/node.tag/parameters/router-id/node.def
@@ -1,6 +1,7 @@
type: ipv4
-help: Override configured router identifier
-update:expression: "${vyatta_sbindir}/vyatta-vtysh.pl -c \"configure terminal\" -c \"router bgp $VAR(../../@)\" \
- -c \"bgp router-id $VAR(@)\" "
-delete:expression: "${vyatta_sbindir}/vyatta-vtysh.pl -c \"configure terminal\" -c \"router bgp $VAR(../../@)\" \
- -c \"no bgp router-id \" "
+help: set BGP router id
+comp_help: \1 <x.x.x.x>\tBGP router-id IP
+update: ${vyatta_sbindir}/vyatta-vtysh.pl -c "configure terminal" -c "router bgp $VAR(../../@)" \
+ -c "bgp router-id $VAR(@)"
+delete: ${vyatta_sbindir}/vyatta-vtysh.pl -c "configure terminal" -c "router bgp $VAR(../../@)" \
+ -c "no bgp router-id"
diff --git a/templates/protocols/bgp/node.tag/parameters/scan-time/node.def b/templates/protocols/bgp/node.tag/parameters/scan-time/node.def
index 5fb71d57..66a1eae1 100644
--- a/templates/protocols/bgp/node.tag/parameters/scan-time/node.def
+++ b/templates/protocols/bgp/node.tag/parameters/scan-time/node.def
@@ -1,7 +1,8 @@
type: u32
+help: set BGP route scanner interval
+comp_help: \1 <5-60>\tscan interval in seconds
syntax:expression: $VAR(@) >= 5 && $VAR(@) <= 60; "scan-time must be between 5 and 60 seconds"
-help: Configure background scanner interval
-update:expression: "${vyatta_sbindir}/vyatta-vtysh.pl -c \"configure terminal\" -c \"router bgp $VAR(../../@)\" \
- -c \"bgp scan-time $VAR(@)\" "
-delete:expression: "${vyatta_sbindir}/vyatta-vtysh.pl -c \"configure terminal\" -c \"router bgp $VAR(../../@)\" \
- -c \"no bgp scan-time \" "
+update: ${vyatta_sbindir}/vyatta-vtysh.pl -c "configure terminal" -c "router bgp $VAR(../../@)" \
+ -c "bgp scan-time $VAR(@)"
+delete: ${vyatta_sbindir}/vyatta-vtysh.pl -c "configure terminal" -c "router bgp $VAR(../../@)" \
+ -c "no bgp scan-time"
diff --git a/templates/protocols/bgp/node.tag/redistribute/connected/metric/node.def b/templates/protocols/bgp/node.tag/redistribute/connected/metric/node.def
index 43f1ffff..740fbde8 100644
--- a/templates/protocols/bgp/node.tag/redistribute/connected/metric/node.def
+++ b/templates/protocols/bgp/node.tag/redistribute/connected/metric/node.def
@@ -1,2 +1,3 @@
type: u32
-help: Metric for redistributed routes
+help: set the metric for redistributed routes
+comp_help: \1 <0-4294967295>\tmetric
diff --git a/templates/protocols/bgp/node.tag/redistribute/connected/node.def b/templates/protocols/bgp/node.tag/redistribute/connected/node.def
index 5bdf3b2f..f7d15bfb 100644
--- a/templates/protocols/bgp/node.tag/redistribute/connected/node.def
+++ b/templates/protocols/bgp/node.tag/redistribute/connected/node.def
@@ -1,16 +1,16 @@
-help: Redistribute connected routes
-delete:expression: "touch /tmp/bgp-redist-connected.$PPID"
-end:expression: "${vyatta_sbindir}/vyatta-vtysh.pl -c \"configure terminal\" -c \"router bgp $VAR(../../@)\" \
- -c \"no redistribute connected \"; \
- if [ -f \"/tmp/bgp-redist-connected.$PPID\" ]; then \
- rm -rf /tmp/bgp-redist-connected.$PPID; \
- else \
- if [ -n \"$VAR(./metric/@)\" ]; then \
- COND=\"metric $VAR(./metric/@)\";
- fi; \
- if [ -n \"$VAR(./route-map/@)\" ]; then \
- COND=\"$COND route-map $VAR(./route-map/@)\"; \
- fi; \
- ${vyatta_sbindir}/vyatta-vtysh.pl -c \"configure terminal\" -c \"router bgp $VAR(../../@)\" \
- -c \"redistribute connected $COND\"; \
- fi; "
+help: redistribute connected routes into BGP
+delete: touch /tmp/bgp-redist-connected.$PPID
+end: ${vyatta_sbindir}/vyatta-vtysh.pl -c "configure terminal" -c "router bgp $VAR(../../@)" \
+ -c "no redistribute connected";
+ if [ -f "/tmp/bgp-redist-connected.$PPID" ]; then
+ rm -rf /tmp/bgp-redist-connected.$PPID;
+ else
+ if [ -n "$VAR(./metric/@)" ]; then
+ cond="metric $VAR(./metric/@)";
+ fi;
+ if [ -n "$VAR(./route-map/@)" ]; then
+ cond="$cond route-map $VAR(./route-map/@)";
+ fi;
+ ${vyatta_sbindir}/vyatta-vtysh.pl -c "configure terminal" -c "router bgp $VAR(../../@)" \
+ -c "redistribute connected $cond";
+ fi;
diff --git a/templates/protocols/bgp/node.tag/redistribute/connected/route-map/node.def b/templates/protocols/bgp/node.tag/redistribute/connected/route-map/node.def
index f2c6f7c2..17cb0c67 100644
--- a/templates/protocols/bgp/node.tag/redistribute/connected/route-map/node.def
+++ b/templates/protocols/bgp/node.tag/redistribute/connected/route-map/node.def
@@ -1,3 +1,4 @@
type: txt
-help: Route map reference
-commit:expression: exec "/opt/vyatta/sbin/vyatta_quagga_utils.pl --exists \"policy route-map $VAR(@)\" ";"route-map $VAR(@) doesn't exist"
+help: configure a route map to filter redistributed routes
+comp_help: \1 <txt>\t\troute-map name
+commit:expression: exec "/opt/vyatta/sbin/vyatta_quagga_utils.pl --exists \"policy route-map $VAR(@)\" ";"protocols bgp $VAR(../../../@) redistribute connected: route-map $VAR(@) doesn't exist"
diff --git a/templates/protocols/bgp/node.tag/redistribute/kernel/metric/node.def b/templates/protocols/bgp/node.tag/redistribute/kernel/metric/node.def
index 43f1ffff..740fbde8 100644
--- a/templates/protocols/bgp/node.tag/redistribute/kernel/metric/node.def
+++ b/templates/protocols/bgp/node.tag/redistribute/kernel/metric/node.def
@@ -1,2 +1,3 @@
type: u32
-help: Metric for redistributed routes
+help: set the metric for redistributed routes
+comp_help: \1 <0-4294967295>\tmetric
diff --git a/templates/protocols/bgp/node.tag/redistribute/kernel/node.def b/templates/protocols/bgp/node.tag/redistribute/kernel/node.def
index 479114fd..20708ed1 100644
--- a/templates/protocols/bgp/node.tag/redistribute/kernel/node.def
+++ b/templates/protocols/bgp/node.tag/redistribute/kernel/node.def
@@ -1,16 +1,16 @@
-help: Redistribute kernel routes
-delete:expression: "touch /tmp/bgp-redist-kernel.$PPID"
-end:expression: "${vyatta_sbindir}/vyatta-vtysh.pl -c \"configure terminal\" -c \"router bgp $VAR(../../@)\" \
- -c \"no redistribute kernel \"; \
- if [ -f \"/tmp/bgp-redist-kernel.$PPID\" ]; then \
- rm -rf /tmp/bgp-redist-kernel.$PPID; \
- else \
- if [ -n \"$VAR(./metric/@)\" ]; then \
- COND=\"metric $VAR(./metric/@)\";
- fi; \
- if [ -n \"$VAR(./route-map/@)\" ]; then \
- COND=\"$COND route-map $VAR(./route-map/@)\"; \
- fi; \
- ${vyatta_sbindir}/vyatta-vtysh.pl -c \"configure terminal\" -c \"router bgp $VAR(../../@)\" \
- -c \"redistribute kernel $COND\"; \
- fi; "
+help: redistribute kernel routes into BGP
+delete: touch /tmp/bgp-redist-kernel.$PPID
+end: ${vyatta_sbindir}/vyatta-vtysh.pl -c "configure terminal" -c "router bgp $VAR(../../@)" \
+ -c "no redistribute kernel ";
+ if [ -f "/tmp/bgp-redist-kernel.$PPID" ]; then
+ rm -rf /tmp/bgp-redist-kernel.$PPID;
+ else
+ if [ -n "$VAR(./metric/@)" ]; then
+ cond="metric $VAR(./metric/@)";
+ fi;
+ if [ -n "$VAR(./route-map/@)" ]; then
+ cond="$cond route-map $VAR(./route-map/@)";
+ fi;
+ ${vyatta_sbindir}/vyatta-vtysh.pl -c "configure terminal" -c "router bgp $VAR(../../@)" \
+ -c "redistribute kernel $cond";
+ fi;
diff --git a/templates/protocols/bgp/node.tag/redistribute/kernel/route-map/node.def b/templates/protocols/bgp/node.tag/redistribute/kernel/route-map/node.def
index f2c6f7c2..d7d0ff49 100644
--- a/templates/protocols/bgp/node.tag/redistribute/kernel/route-map/node.def
+++ b/templates/protocols/bgp/node.tag/redistribute/kernel/route-map/node.def
@@ -1,3 +1,4 @@
type: txt
-help: Route map reference
-commit:expression: exec "/opt/vyatta/sbin/vyatta_quagga_utils.pl --exists \"policy route-map $VAR(@)\" ";"route-map $VAR(@) doesn't exist"
+help: configure a route map to filter redistributed routes
+comp_help: \1 <txt>\t\troute-map name
+commit:expression: exec "/opt/vyatta/sbin/vyatta_quagga_utils.pl --exists \"policy route-map $VAR(@)\" ";"protocols bgp $VAR(../../../@) redistribute kernel: route-map $VAR(@) doesn't exist"
diff --git a/templates/protocols/bgp/node.tag/redistribute/node.def b/templates/protocols/bgp/node.tag/redistribute/node.def
index 00eefa88..6fe54125 100644
--- a/templates/protocols/bgp/node.tag/redistribute/node.def
+++ b/templates/protocols/bgp/node.tag/redistribute/node.def
@@ -1 +1 @@
-help: Redistribute information from another routing protocol
+help: configure redistribution of routes from other protocols into BGP
diff --git a/templates/protocols/bgp/node.tag/redistribute/ospf/metric/node.def b/templates/protocols/bgp/node.tag/redistribute/ospf/metric/node.def
index 43f1ffff..740fbde8 100644
--- a/templates/protocols/bgp/node.tag/redistribute/ospf/metric/node.def
+++ b/templates/protocols/bgp/node.tag/redistribute/ospf/metric/node.def
@@ -1,2 +1,3 @@
type: u32
-help: Metric for redistributed routes
+help: set the metric for redistributed routes
+comp_help: \1 <0-4294967295>\tmetric
diff --git a/templates/protocols/bgp/node.tag/redistribute/ospf/node.def b/templates/protocols/bgp/node.tag/redistribute/ospf/node.def
index f1a894a7..76b27d9c 100644
--- a/templates/protocols/bgp/node.tag/redistribute/ospf/node.def
+++ b/templates/protocols/bgp/node.tag/redistribute/ospf/node.def
@@ -1,16 +1,16 @@
-help: Redistribute OSPF routes
-delete:expression: "touch /tmp/bgp-redist-ospf.$PPID"
-end:expression: "${vyatta_sbindir}/vyatta-vtysh.pl -c \"configure terminal\" -c \"router bgp $VAR(../../@)\" \
- -c \"no redistribute ospf \"; \
- if [ -f \"/tmp/bgp-redist-ospf.$PPID\" ]; then \
- rm -rf /tmp/bgp-redist-ospf.$PPID; \
- else \
- if [ -n \"$VAR(./metric/@)\" ]; then \
- COND=\"metric $VAR(./metric/@)\";
- fi; \
- if [ -n \"$VAR(./route-map/@)\" ]; then \
- COND=\"$COND route-map $VAR(./route-map/@)\"; \
- fi; \
- ${vyatta_sbindir}/vyatta-vtysh.pl -c \"configure terminal\" -c \"router bgp $VAR(../../@)\" \
- -c \"redistribute ospf $COND\"; \
- fi; "
+help: redistribute OSPF routes into BGP
+delete: touch /tmp/bgp-redist-ospf.$PPID
+end: ${vyatta_sbindir}/vyatta-vtysh.pl -c "configure terminal" -c "router bgp $VAR(../../@)" \
+ -c "no redistribute ospf";
+ if [ -f "/tmp/bgp-redist-ospf.$PPID" ]; then
+ rm -rf /tmp/bgp-redist-ospf.$PPID;
+ else
+ if [ -n "$VAR(./metric/@)" ]; then
+ cond="metric $VAR(./metric/@)";
+ fi;
+ if [ -n "$VAR(./route-map/@)" ]; then
+ cond="$cond route-map $VAR(./route-map/@)";
+ fi;
+ ${vyatta_sbindir}/vyatta-vtysh.pl -c "configure terminal" -c "router bgp $VAR(../../@)" \
+ -c "redistribute ospf $cond";
+ fi;
diff --git a/templates/protocols/bgp/node.tag/redistribute/ospf/route-map/node.def b/templates/protocols/bgp/node.tag/redistribute/ospf/route-map/node.def
index f2c6f7c2..cbad8dc3 100644
--- a/templates/protocols/bgp/node.tag/redistribute/ospf/route-map/node.def
+++ b/templates/protocols/bgp/node.tag/redistribute/ospf/route-map/node.def
@@ -1,3 +1,4 @@
type: txt
-help: Route map reference
-commit:expression: exec "/opt/vyatta/sbin/vyatta_quagga_utils.pl --exists \"policy route-map $VAR(@)\" ";"route-map $VAR(@) doesn't exist"
+help: configure a route map to filter redistributed routes
+comp_help: \1 <txt>\t\troute-map name
+commit:expression: exec "/opt/vyatta/sbin/vyatta_quagga_utils.pl --exists \"policy route-map $VAR(@)\" ";"protocols bgp $VAR(../../../@) redistribute ospf: route-map $VAR(@) doesn't exist"
diff --git a/templates/protocols/bgp/node.tag/redistribute/rip/metric/node.def b/templates/protocols/bgp/node.tag/redistribute/rip/metric/node.def
index 43f1ffff..740fbde8 100644
--- a/templates/protocols/bgp/node.tag/redistribute/rip/metric/node.def
+++ b/templates/protocols/bgp/node.tag/redistribute/rip/metric/node.def
@@ -1,2 +1,3 @@
type: u32
-help: Metric for redistributed routes
+help: set the metric for redistributed routes
+comp_help: \1 <0-4294967295>\tmetric
diff --git a/templates/protocols/bgp/node.tag/redistribute/rip/node.def b/templates/protocols/bgp/node.tag/redistribute/rip/node.def
index f67cfdc6..2b0886e8 100644
--- a/templates/protocols/bgp/node.tag/redistribute/rip/node.def
+++ b/templates/protocols/bgp/node.tag/redistribute/rip/node.def
@@ -1,16 +1,16 @@
-help: Redistribute RIP routes
-delete:expression: "touch /tmp/bgp-redist-rip.$PPID"
-end:expression: "${vyatta_sbindir}/vyatta-vtysh.pl -c \"configure terminal\" -c \"router bgp $VAR(../../@)\" \
- -c \"no redistribute rip \"; \
- if [ -f \"/tmp/bgp-redist-rip.$PPID\" ]; then \
- rm -rf /tmp/bgp-redist-rip.$PPID; \
- else \
- if [ -n \"$VAR(./metric/@)\" ]; then \
- COND=\"metric $VAR(./metric/@)\";
- fi; \
- if [ -n \"$VAR(./route-map/@)\" ]; then \
- COND=\"$COND route-map $VAR(./route-map/@)\"; \
- fi; \
- ${vyatta_sbindir}/vyatta-vtysh.pl -c \"configure terminal\" -c \"router bgp $VAR(../../@)\" \
- -c \"redistribute rip $COND\"; \
- fi; "
+help: redistribute RIP routes into BGP
+delete: touch /tmp/bgp-redist-rip.$PPID
+end: ${vyatta_sbindir}/vyatta-vtysh.pl -c "configure terminal" -c "router bgp $VAR(../../@)" \
+ -c "no redistribute rip ";
+ if [ -f "/tmp/bgp-redist-rip.$PPID" ]; then
+ rm -rf /tmp/bgp-redist-rip.$PPID;
+ else
+ if [ -n "$VAR(./metric/@)" ]; then
+ cond="metric $VAR(./metric/@)";
+ fi;
+ if [ -n "$VAR(./route-map/@)" ]; then
+ cond="$cond route-map $VAR(./route-map/@)";
+ fi;
+ ${vyatta_sbindir}/vyatta-vtysh.pl -c "configure terminal" -c "router bgp $VAR(../../@)" \
+ -c "redistribute rip $cond";
+ fi;
diff --git a/templates/protocols/bgp/node.tag/redistribute/rip/route-map/node.def b/templates/protocols/bgp/node.tag/redistribute/rip/route-map/node.def
index f2c6f7c2..1665507b 100644
--- a/templates/protocols/bgp/node.tag/redistribute/rip/route-map/node.def
+++ b/templates/protocols/bgp/node.tag/redistribute/rip/route-map/node.def
@@ -1,3 +1,4 @@
type: txt
-help: Route map reference
-commit:expression: exec "/opt/vyatta/sbin/vyatta_quagga_utils.pl --exists \"policy route-map $VAR(@)\" ";"route-map $VAR(@) doesn't exist"
+help: configure a route map to filter redistributed routes
+comp_help: \1 <txt>\t\troute-map name
+commit:expression: exec "/opt/vyatta/sbin/vyatta_quagga_utils.pl --exists \"policy route-map $VAR(@)\" ";"protocols bgp $VAR(../../../@) redistribute rip: route-map $VAR(@) doesn't exist"
diff --git a/templates/protocols/bgp/node.tag/redistribute/static/metric/node.def b/templates/protocols/bgp/node.tag/redistribute/static/metric/node.def
index 43f1ffff..740fbde8 100644
--- a/templates/protocols/bgp/node.tag/redistribute/static/metric/node.def
+++ b/templates/protocols/bgp/node.tag/redistribute/static/metric/node.def
@@ -1,2 +1,3 @@
type: u32
-help: Metric for redistributed routes
+help: set the metric for redistributed routes
+comp_help: \1 <0-4294967295>\tmetric
diff --git a/templates/protocols/bgp/node.tag/redistribute/static/node.def b/templates/protocols/bgp/node.tag/redistribute/static/node.def
index d34e30ad..3dc1adaf 100644
--- a/templates/protocols/bgp/node.tag/redistribute/static/node.def
+++ b/templates/protocols/bgp/node.tag/redistribute/static/node.def
@@ -1,16 +1,16 @@
-help: Redistribute static routes
-delete:expression: "touch /tmp/bgp-redist-static.$PPID"
-end:expression: "${vyatta_sbindir}/vyatta-vtysh.pl -c \"configure terminal\" -c \"router bgp $VAR(../../@)\" \
- -c \"no redistribute static \"; \
- if [ -f \"/tmp/bgp-redist-static.$PPID\" ]; then \
- rm -rf /tmp/bgp-redist-static.$PPID; \
- else \
- if [ -n \"$VAR(./metric/@)\" ]; then \
- COND=\"metric $VAR(./metric/@)\";
- fi; \
- if [ -n \"$VAR(./route-map/@)\" ]; then \
- COND=\"$COND route-map $VAR(./route-map/@)\"; \
- fi; \
- ${vyatta_sbindir}/vyatta-vtysh.pl -c \"configure terminal\" -c \"router bgp $VAR(../../@)\" \
- -c \"redistribute static $COND\"; \
- fi; "
+help: redistribute static routes into BGP
+delete: touch /tmp/bgp-redist-static.$PPID
+end: ${vyatta_sbindir}/vyatta-vtysh.pl -c "configure terminal" -c "router bgp $VAR(../../@)" \
+ -c "no redistribute static";
+ if [ -f "/tmp/bgp-redist-static.$PPID" ]; then
+ rm -rf /tmp/bgp-redist-static.$PPID;
+ else
+ if [ -n "$VAR(./metric/@)" ]; then
+ cond="metric $VAR(./metric/@)";
+ fi;
+ if [ -n "$VAR(./route-map/@)" ]; then
+ cond="$cond route-map $VAR(./route-map/@)";
+ fi;
+ ${vyatta_sbindir}/vyatta-vtysh.pl -c "configure terminal" -c "router bgp $VAR(../../@)" \
+ -c "redistribute static $cond";
+ fi;
diff --git a/templates/protocols/bgp/node.tag/redistribute/static/route-map/node.def b/templates/protocols/bgp/node.tag/redistribute/static/route-map/node.def
index f2c6f7c2..cda1e460 100644
--- a/templates/protocols/bgp/node.tag/redistribute/static/route-map/node.def
+++ b/templates/protocols/bgp/node.tag/redistribute/static/route-map/node.def
@@ -1,3 +1,4 @@
type: txt
-help: Route map reference
-commit:expression: exec "/opt/vyatta/sbin/vyatta_quagga_utils.pl --exists \"policy route-map $VAR(@)\" ";"route-map $VAR(@) doesn't exist"
+help: configure a route map to filter redistributed routes
+comp_help: \1 <txt>\t\troute-map name
+commit:expression: exec "/opt/vyatta/sbin/vyatta_quagga_utils.pl --exists \"policy route-map $VAR(@)\" ";"protocols bgp $VAR(../../../@) redistribute static: route-map $VAR(@) doesn't exist"
diff --git a/templates/protocols/bgp/node.tag/timers/holdtime/node.def b/templates/protocols/bgp/node.tag/timers/holdtime/node.def
index cc9709e8..8ba97b62 100644
--- a/templates/protocols/bgp/node.tag/timers/holdtime/node.def
+++ b/templates/protocols/bgp/node.tag/timers/holdtime/node.def
@@ -1,8 +1,7 @@
type: u32
-help: Holdtime interval
+help: set the BGP holdtime interval
+comp_help: \1 <4-65535>\thold-time in seconds (default 180)
+ 0\t\tdon't hold routes
default: 180
syntax:expression: $VAR(@) == 0 || ($VAR(@) >= 4 && $VAR(@) <= 65535); \
- "Holdtime interval must be 0 or between 4 and 65535"
-comp_help: possible completions:
- 0
- <4-65535> Set holdtime interval (default 180)
+ "hold-time interval must be 0 or between 4 and 65535"
diff --git a/templates/protocols/bgp/node.tag/timers/keepalive/node.def b/templates/protocols/bgp/node.tag/timers/keepalive/node.def
index a734b860..4315f3ba 100644
--- a/templates/protocols/bgp/node.tag/timers/keepalive/node.def
+++ b/templates/protocols/bgp/node.tag/timers/keepalive/node.def
@@ -1,7 +1,6 @@
type: u32
help: Keepalive interval
+comp_help: \1 <1-65535>\tkeep-alive time in seconds (default 60)
default: 60
syntax:expression: $VAR(@) >= 1 && $VAR(@) <= 65535; \
"Keepalive interval must be between 1 and 65535"
-comp_help: possible completions:
- <1-65535> Set keepalive interval (default 60)
diff --git a/templates/protocols/bgp/node.tag/timers/node.def b/templates/protocols/bgp/node.tag/timers/node.def
index 9fcace77..cb62fe06 100644
--- a/templates/protocols/bgp/node.tag/timers/node.def
+++ b/templates/protocols/bgp/node.tag/timers/node.def
@@ -1,12 +1,12 @@
-help: Adjust routing timers
-commit:expression: $VAR(./keepalive/) != ""; "You must set a keepalive interval"
-commit:expression: $VAR(./holdtime/) != ""; "You must set a holdtime interval"
-delete:expression: "touch /tmp/bgp-timers.$PPID"
-end:expression: "${vyatta_sbindir}/vyatta-vtysh.pl -c \"configure terminal\" -c \"router bgp $VAR(../@)\" \
- -c \"no timers bgp\"; \
- if [ -f \"/tmp/bgp-timers.$PPID\" ]; then \
- rm -rf /tmp/bgp-timers.$PPID; \
- else \
- ${vyatta_sbindir}/vyatta-vtysh.pl -c \"configure terminal\" -c \"router bgp $VAR(../@)\" \
- -c \"timers bgp $VAR(./keepalive/@) $VAR(./holdtime/@)\"; \
- fi; "
+help: configure BGP protocol timers
+commit:expression: $VAR(./keepalive/) != ""; "protocols bgp $VAR(../@) timers: you must set a keepalive interval"
+commit:expression: $VAR(./holdtime/) != ""; "protocols bgp $VAR(../@) timers: you must set a holdtime interval"
+delete: touch /tmp/bgp-timers.$PPID
+end: ${vyatta_sbindir}/vyatta-vtysh.pl -c "configure terminal" -c "router bgp $VAR(../@)" \
+ -c "no timers bgp";
+ if [ -f "/tmp/bgp-timers.$PPID" ]; then
+ rm -rf /tmp/bgp-timers.$PPID;
+ else
+ ${vyatta_sbindir}/vyatta-vtysh.pl -c "configure terminal" -c "router bgp $VAR(../@)" \
+ -c "timers bgp $VAR(./keepalive/@) $VAR(./holdtime/@)";
+ fi;