diff options
author | Daniil Baturin <daniil@baturin.org> | 2017-10-23 15:49:31 +0200 |
---|---|---|
committer | Daniil Baturin <daniil@baturin.org> | 2017-10-23 15:49:31 +0200 |
commit | ddc07aacee3ad1ce8ab9db4354ff771c55697b24 (patch) | |
tree | 8581f18f5fea20240987316bdb3f14cf661e9316 | |
parent | 99d94d9e5ca8794d73e3cf70e089ce027b62ee46 (diff) | |
download | vyatta-cfg-quagga-ddc07aacee3ad1ce8ab9db4354ff771c55697b24.tar.gz vyatta-cfg-quagga-ddc07aacee3ad1ce8ab9db4354ff771c55697b24.zip |
Revert "Initial commit on T64. (Bgp extcommunity list)"
People report it doesn't work.
This reverts commit 973afef2f599538ccda19a2befcf16e6730eaad2.
17 files changed, 1 insertions, 179 deletions
diff --git a/scripts/policy/vyatta-policy.pl b/scripts/policy/vyatta-policy.pl index ca3f199d..2d88505f 100755 --- a/scripts/policy/vyatta-policy.pl +++ b/scripts/policy/vyatta-policy.pl @@ -8,7 +8,7 @@ use Getopt::Long; my $VTYSH = '/usr/bin/vtysh'; my $ACL_CONSUMERS_DIR = "/opt/vyatta/sbin/policy"; -my ( $accesslist, $accesslist6, $aspathlist, $communitylist, $extcommunitylist, $peer ); +my ( $accesslist, $accesslist6, $aspathlist, $communitylist, $peer ); my ( $routemap, $deleteroutemap, $listpolicy ); GetOptions( @@ -16,7 +16,6 @@ GetOptions( "update-access-list6=s" => \$accesslist6, "update-aspath-list=s" => \$aspathlist, "update-community-list=s" => \$communitylist, - "update-extcommunity-list=s" => \$extcommunitylist, "check-peer-syntax=s" => \$peer, "check-routemap-action=s" => \$routemap, "check-delete-routemap-action=s" => \$deleteroutemap, @@ -27,7 +26,6 @@ update_access_list($accesslist) if ($accesslist); update_access_list6($accesslist6) if ($accesslist6); update_as_path($aspathlist) if ($aspathlist); update_community_list($communitylist) if ($communitylist); -update_ext_community_list($extcommunitylist) if ($extcommunitylist); check_peer_syntax($peer) if ($peer); check_routemap_action($routemap) if ($routemap); check_delete_routemap_action($deleteroutemap) if ($deleteroutemap); @@ -58,72 +56,6 @@ sub is_community_list { } } -sub is_extcommunity_list { - my $list = shift; - - my $count = `$VTYSH -c \"show ip extcommunity-list $list\" | grep -c $list`; - if ( $count > 0 ) { - return 1; - } - else { - return 0; - } -} - - -sub update_ext_community_list { - my $variant= shift; - my $name = shift; - my $config = new Vyatta::Config; - my @rules = (); - - if($variant !~ /^standard|expanded$/ ) { - die -"set policy route extcommunity-list [ standard | expanded ] list-name rule rule-num action { deny | permit } - ^^^^^^^^^^^^^^^^^^^^^^^\n"; - }; - my $cmdline="$VTYSH -c \"configure terminal\" "; - # remove the old rule - if ( is_extcommunity_list($name) ) { - $cmdline.= " -c \"no ip extcommunity-list $name\" "; - ); - }; - - $config->setLevel("policy route extcommunity-list $variant $name "); - @rules = $config->listNodes(); - foreach my $rule ( sort numerically @rules ) { - - # set the action - my $action = $config->returnValue("$rule action"); - die - "policy route extcommunity-list $variant $name rule $rule: You must specify an action\n" - unless $action; - - # grab the regex - my $regex = $config->returnValue("$rule regex"); - die "policy route extcommunity-list $variant $name rule $rule: You must specify a regex\n" - unless $regex; - if($variant eq 'standard') { - unless (($regex =~ /(.*):(.*)/) and (isIpAddress($1)or($1=~/^\d+$/) ) and ($2=~/^\d+$/)) { - die "for standard extcommunity-list regex should be either: - -AS:VAL - - This is a format to define AS based Extended Community value. AS part is 2 octets Global Administrator subfield in Extended Community value. VAL part is 4 octets Local Administrator subfield. 7675:100 represents AS 7675 policy value 100. - -IP-Address:VAL - - This is a format to define IP address based Extended Community value. IP-Address part is 4 octets Global Administrator subfield. VAL part is 2 octets Local Administrator subfield. 10.0.0.1:100 represents IP 10.0.0.1 policy value 100. -"; - - }; - }; - $cmdline.="-c \"ip extcommunity-list $name $action $regex\" "; - }; - exit system($cmdline); -} - - sub update_community_list { my $num = shift; my $config = new Vyatta::Config; diff --git a/templates/policy/extcommunity-list/expanded/description/node.def b/templates/policy/extcommunity-list/expanded/description/node.def deleted file mode 100644 index 7a660be4..00000000 --- a/templates/policy/extcommunity-list/expanded/description/node.def +++ /dev/null @@ -1,2 +0,0 @@ -type: txt -help: Description for this community list diff --git a/templates/policy/extcommunity-list/expanded/node.def b/templates/policy/extcommunity-list/expanded/node.def deleted file mode 100644 index 95f6f003..00000000 --- a/templates/policy/extcommunity-list/expanded/node.def +++ /dev/null @@ -1,8 +0,0 @@ -tag: -priority: 490 -type: txt -help: Border Gateway Protocol (BGP) extended community-list filter - -syntax:expression: pattern $VAR(@) "^[a-zA-Z0-9]+$" ; "Should be alphanumeric name" - -end: /opt/vyatta/sbin/vyatta-policy.pl --update-community-list expanded $VAR(@) diff --git a/templates/policy/extcommunity-list/expanded/rule/node.def b/templates/policy/extcommunity-list/expanded/rule/node.def deleted file mode 100644 index 7826f33d..00000000 --- a/templates/policy/extcommunity-list/expanded/rule/node.def +++ /dev/null @@ -1,6 +0,0 @@ -tag: -type: u32 -help: create a rule for this BGP extended community list -val_help: u32:1-65535; Extended community-list rule number - -syntax:expression: $VAR(@) >= 1 && $VAR(@) <= 65535; "rule number must be between 1 and 65535" diff --git a/templates/policy/extcommunity-list/expanded/rule/node.tag/action/node.def b/templates/policy/extcommunity-list/expanded/rule/node.tag/action/node.def deleted file mode 100644 index db4bdbc6..00000000 --- a/templates/policy/extcommunity-list/expanded/rule/node.tag/action/node.def +++ /dev/null @@ -1,6 +0,0 @@ -type: txt -help: Action to take on routes matching this rule [REQUIRED] -val_help: permit; Permit matching routes -val_help: deny; Deny matching routes - -syntax:expression: $VAR(@) in "permit", "deny"; "action must be permit or deny" diff --git a/templates/policy/extcommunity-list/expanded/rule/node.tag/description/node.def b/templates/policy/extcommunity-list/expanded/rule/node.tag/description/node.def deleted file mode 100644 index b8e3095b..00000000 --- a/templates/policy/extcommunity-list/expanded/rule/node.tag/description/node.def +++ /dev/null @@ -1,2 +0,0 @@ -type: txt -help: Description for this rule diff --git a/templates/policy/extcommunity-list/expanded/rule/node.tag/regex/node.def b/templates/policy/extcommunity-list/expanded/rule/node.tag/regex/node.def deleted file mode 100644 index fae3784c..00000000 --- a/templates/policy/extcommunity-list/expanded/rule/node.tag/regex/node.def +++ /dev/null @@ -1,5 +0,0 @@ -type: txt -help: Extended community regexp. -val_help: Extended community list regular expression - -commit:expression: $VAR(../action/@) != ""; "You must specify an action" diff --git a/templates/policy/extcommunity-list/node.def b/templates/policy/extcommunity-list/node.def deleted file mode 100644 index 9676146c..00000000 --- a/templates/policy/extcommunity-list/node.def +++ /dev/null @@ -1,7 +0,0 @@ -tag: -priority: 480 -type: txt -help: Border Gateway Protocol (BGP) extended communities attribute. Usefull for implementing network policy for MPLS VPN/BGP by restricting routes according to their Route Target or Site of Origin. -val_help: Type of extended community. standard or expanded. - -syntax:expression: pattern $VAR(@) "^standard|expanded$" ; "Should be either standard or expanded" diff --git a/templates/policy/extcommunity-list/standard/description/node.def b/templates/policy/extcommunity-list/standard/description/node.def deleted file mode 100644 index 7a660be4..00000000 --- a/templates/policy/extcommunity-list/standard/description/node.def +++ /dev/null @@ -1,2 +0,0 @@ -type: txt -help: Description for this community list diff --git a/templates/policy/extcommunity-list/standard/node.def b/templates/policy/extcommunity-list/standard/node.def deleted file mode 100644 index aec1edcd..00000000 --- a/templates/policy/extcommunity-list/standard/node.def +++ /dev/null @@ -1,8 +0,0 @@ -tag: -priority: 485 -type: txt -help: Border Gateway Protocol (BGP) extended community-list filter - -syntax:expression: pattern $VAR(@) "^[a-zA-Z0-9]+$" ; "Should be alphanumeric name" - -end: /opt/vyatta/sbin/vyatta-policy.pl --update-community-list standard $VAR(@) diff --git a/templates/policy/extcommunity-list/standard/rule/node.def b/templates/policy/extcommunity-list/standard/rule/node.def deleted file mode 100644 index 7826f33d..00000000 --- a/templates/policy/extcommunity-list/standard/rule/node.def +++ /dev/null @@ -1,6 +0,0 @@ -tag: -type: u32 -help: create a rule for this BGP extended community list -val_help: u32:1-65535; Extended community-list rule number - -syntax:expression: $VAR(@) >= 1 && $VAR(@) <= 65535; "rule number must be between 1 and 65535" diff --git a/templates/policy/extcommunity-list/standard/rule/node.tag/action/node.def b/templates/policy/extcommunity-list/standard/rule/node.tag/action/node.def deleted file mode 100644 index db4bdbc6..00000000 --- a/templates/policy/extcommunity-list/standard/rule/node.tag/action/node.def +++ /dev/null @@ -1,6 +0,0 @@ -type: txt -help: Action to take on routes matching this rule [REQUIRED] -val_help: permit; Permit matching routes -val_help: deny; Deny matching routes - -syntax:expression: $VAR(@) in "permit", "deny"; "action must be permit or deny" diff --git a/templates/policy/extcommunity-list/standard/rule/node.tag/description/node.def b/templates/policy/extcommunity-list/standard/rule/node.tag/description/node.def deleted file mode 100644 index b8e3095b..00000000 --- a/templates/policy/extcommunity-list/standard/rule/node.tag/description/node.def +++ /dev/null @@ -1,2 +0,0 @@ -type: txt -help: Description for this rule diff --git a/templates/policy/extcommunity-list/standard/rule/node.tag/regex/node.def b/templates/policy/extcommunity-list/standard/rule/node.tag/regex/node.def deleted file mode 100644 index 36dd9954..00000000 --- a/templates/policy/extcommunity-list/standard/rule/node.tag/regex/node.def +++ /dev/null @@ -1,7 +0,0 @@ -type: txt -help: Extended community value. Should be either AS:VAL or IP-Address:VAL -val_help: Community list regular expression - -syntax:expression: pattern $VAR(@) "^([0-9]*)|([0-9]{1-3}\.[0-9]{1-3}\.[0-9]{1-3}\.[0-9]{1-3}):[0-9]*$" - -commit:expression: $VAR(../action/@) != ""; "You must specify an action" diff --git a/templates/policy/route-map/node.tag/rule/node.tag/match/extcommunity/node.def b/templates/policy/route-map/node.tag/rule/node.tag/match/extcommunity/node.def deleted file mode 100644 index 64325e14..00000000 --- a/templates/policy/route-map/node.tag/rule/node.tag/match/extcommunity/node.def +++ /dev/null @@ -1,15 +0,0 @@ -type: txt -help: BGP extended community to match -val_help: Extended community name - -commit:expression: $VAR(../../action/) != ""; "You must specify an action" -commit:expression: exec "/opt/vyatta/sbin/vyatta_quagga_utils.pl --exists \"policy extcommunity-list $VAR(@)\" ";"extended community list $VAR(@) doesn't exist" - - -update: vtysh -c "configure terminal" \ - -c "route-map $VAR(../../../@) $VAR(../../action/@) $VAR(../../@)" \ - -c "match extcommunity $VAR(@)" - -delete: vtysh -c "configure terminal" \ - -c "route-map $VAR(../../../@) $VAR(../../action/@) $VAR(../../@)" \ - -c "no match extcommunity $VAR(@)" diff --git a/templates/policy/route-map/node.tag/rule/node.tag/set/extcommunity-rt/node.def b/templates/policy/route-map/node.tag/rule/node.tag/set/extcommunity-rt/node.def deleted file mode 100644 index 6338ca50..00000000 --- a/templates/policy/route-map/node.tag/rule/node.tag/set/extcommunity-rt/node.def +++ /dev/null @@ -1,14 +0,0 @@ -type: txt -help: Set route target value -val_help: ASN:nn_or_IP_address:nn VPN extended community - -syntax:expression: pattern $VAR(@) "\d+:\d+(\.\d+\.\d+\.\d+):\d+" ; "Should be in form: ASN:nn_or_IP_address:nn where ASN is autonomous system number" -commit:expression: $VAR(../../action/) != ""; "you must specify an action" - -update: vtysh -c "configure terminal" \ - -c "route-map $VAR(../../../@) $VAR(../../action/@) $VAR(../../@)" \ - -c "set extcommunity rt $VAR(@)" - -delete: vtysh -c "configure terminal" \ - -c "route-map $VAR(../../../@) $VAR(../../action/@) $VAR(../../@)" \ - -c "no set extcommunity rt" diff --git a/templates/policy/route-map/node.tag/rule/node.tag/set/extcommunity-soo/node.def b/templates/policy/route-map/node.tag/rule/node.tag/set/extcommunity-soo/node.def deleted file mode 100644 index e76243dd..00000000 --- a/templates/policy/route-map/node.tag/rule/node.tag/set/extcommunity-soo/node.def +++ /dev/null @@ -1,14 +0,0 @@ -type: txt -help: Set Site of Origin value. -val_help: ASN:nn_or_IP_address:nn VPN extended community - -syntax:expression: pattern $VAR(@) "\d+:\d+(\.\d+\.\d+\.\d+):\d+" ; "Should be in form: ASN:nn_or_IP_address:nn where ASN is autonomous system number" -commit:expression: $VAR(../../action/) != ""; "you must specify an action" - -update: vtysh -c "configure terminal" \ - -c "route-map $VAR(../../../@) $VAR(../../action/@) $VAR(../../@)" \ - -c "set extcommunity soo $VAR(@)" - -delete: vtysh -c "configure terminal" \ - -c "route-map $VAR(../../../@) $VAR(../../action/@) $VAR(../../@)" \ - -c "no set extcommunity soo" |