From ff86f6558462efe53904c89d60eea4300b4d17ee Mon Sep 17 00:00:00 2001 From: Bob Gilligan Date: Wed, 5 May 2010 17:52:11 -0700 Subject: Bugfix 5584: Fix completion and checking for prefix-list parameters This fixes the parameter validation of prefix-list parameters under "neighbor ADDR prefix-list" and under "neighbor ADDR address-family ipv6-unicast prefix-list". The former are validated against parameters configured under "policy prefix-list", while the latter are validated against parameters configured under "policy prefix-list6". --- .../ipv6-unicast/prefix-list/export/node.def | 13 +++++++++---- .../ipv6-unicast/prefix-list/import/node.def | 15 ++++++++++----- .../node.tag/neighbor/node.tag/address-family/node.def | 1 + .../neighbor/node.tag/prefix-list/export/node.def | 11 ++++++++--- .../neighbor/node.tag/prefix-list/import/node.def | 9 +++++++-- 5 files changed, 35 insertions(+), 14 deletions(-) create mode 100644 templates/protocols/bgp/node.tag/neighbor/node.tag/address-family/node.def diff --git a/templates/protocols/bgp/node.tag/neighbor/node.tag/address-family/ipv6-unicast/prefix-list/export/node.def b/templates/protocols/bgp/node.tag/neighbor/node.tag/address-family/ipv6-unicast/prefix-list/export/node.def index 905910f6..c98c20e9 100644 --- a/templates/protocols/bgp/node.tag/neighbor/node.tag/address-family/ipv6-unicast/prefix-list/export/node.def +++ b/templates/protocols/bgp/node.tag/neighbor/node.tag/address-family/ipv6-unicast/prefix-list/export/node.def @@ -1,12 +1,17 @@ type: txt + help: Set a prefix-list to filter outgoing route updates to this neighbor + allowed: local -a params - params=( /opt/vyatta/config/active/policy/prefix-list/* - /opt/vyatta/config/active/policy/prefix-list6/*) + params=( /opt/vyatta/config/active/policy/prefix-list6/*) echo -n ${params[@]##*/} + comp_help: possible completions: prefix-list name + commit:expression: exec "/opt/vyatta/sbin/vyatta-bgp.pl --check-as --as $VAR(../../../../../@) --neighbor $VAR(../../../../@)" -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: exec "/opt/vyatta/sbin/vyatta_quagga_utils.pl --exists \"policy prefix-list6 $VAR(@)\" "; \ +"protocols bgp $VAR(../../../../../@) neighbor $VAR(../../../../@) address-family ipv6-unicast 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" diff --git a/templates/protocols/bgp/node.tag/neighbor/node.tag/address-family/ipv6-unicast/prefix-list/import/node.def b/templates/protocols/bgp/node.tag/neighbor/node.tag/address-family/ipv6-unicast/prefix-list/import/node.def index ddb5f5d4..9ed5c7d9 100644 --- a/templates/protocols/bgp/node.tag/neighbor/node.tag/address-family/ipv6-unicast/prefix-list/import/node.def +++ b/templates/protocols/bgp/node.tag/neighbor/node.tag/address-family/ipv6-unicast/prefix-list/import/node.def @@ -1,13 +1,18 @@ type: txt + help: Set a prefix-list to filter incoming route updates from this neighbor + allowed: local -a params - params=( /opt/vyatta/config/active/policy/prefix-list/* - /opt/vyatta/config/active/policy/prefix-list6/*) + params=( /opt/vyatta/config/active/policy/prefix-list6/* ) echo -n ${params[@]##*/} + comp_help: possible completions: prefix-list name + commit:expression: exec "/opt/vyatta/sbin/vyatta-bgp.pl --check-as --as $VAR(../../../../../@) --neighbor $VAR(../../../../@)" -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" + +commit:expression: exec "/opt/vyatta/sbin/vyatta_quagga_utils.pl --exists \"policy prefix-list6 $VAR(@)\" "; \ +"protocols bgp $VAR(../../../../../@) neighbor $VAR(../../../../@) address-family ipv6-unicast prefix-list import: prefix-list $VAR(@) doesn't exist" + +commit:expression: $VAR(../../distribute-list/import/) == ""; "protocols bgp $VAR(../../../../../@) neighbor $VAR(../../../../@) address-family ipv6-unicast prefix-list import: you can't set both a prefix-list and a distribute list" diff --git a/templates/protocols/bgp/node.tag/neighbor/node.tag/address-family/node.def b/templates/protocols/bgp/node.tag/neighbor/node.tag/address-family/node.def new file mode 100644 index 00000000..ed278b7f --- /dev/null +++ b/templates/protocols/bgp/node.tag/neighbor/node.tag/address-family/node.def @@ -0,0 +1 @@ +help: Set parameters relating to IPv4 or IPv6 routes 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 c0844ab6..23fea874 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,12 +1,17 @@ type: txt + help: Set a prefix-list to filter outgoing route updates to this neighbor + allowed: local -a params - params=( /opt/vyatta/config/active/policy/prefix-list/* - /opt/vyatta/config/active/policy/prefix-list6/*) + params=( /opt/vyatta/config/active/policy/prefix-list/* ) echo -n ${params[@]##*/} + comp_help: possible completions: prefix-list name + commit:expression: exec "/opt/vyatta/sbin/vyatta-bgp.pl --check-as --as $VAR(../../../@) --neighbor $VAR(../../@)" + 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" +"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" 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 d4a1560e..46aea90e 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,13 +1,18 @@ type: txt + help: Set a prefix-list to filter incoming route updates from this neighbor + allowed: local -a params - params=( /opt/vyatta/config/active/policy/prefix-list/* - /opt/vyatta/config/active/policy/prefix-list6/*) + params=( /opt/vyatta/config/active/policy/prefix-list/* ) echo -n ${params[@]##*/} + comp_help: possible completions: prefix-list name + commit:expression: exec "/opt/vyatta/sbin/vyatta-bgp.pl --check-as --as $VAR(../../../@) --neighbor $VAR(../../@)" + 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" -- cgit v1.2.3