diff options
author | Robert Bays <rbays@moresby.vyatta.com> | 2008-03-25 17:19:29 -0700 |
---|---|---|
committer | Robert Bays <rbays@moresby.vyatta.com> | 2008-03-25 17:19:29 -0700 |
commit | f9989ab77bffc9fb336eb6c00677e6251b1bf618 (patch) | |
tree | e947a9d0ccf7de15adcd36caa84c3887f2ad4c4e /templates/protocols/bgp | |
parent | 43e606dd1afc29b551ddfb53f4d7a388121b3fbe (diff) | |
download | vyatta-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/bgp')
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; |