cisco_node_utils 1.0.1 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.gitignore +4 -0
- data/.rubocop.yml +81 -1
- data/.travis.yml +9 -0
- data/CHANGELOG.md +72 -6
- data/CONTRIBUTING.md +32 -7
- data/README.md +70 -7
- data/Rakefile +17 -0
- data/bin/check_metric_limits.rb +109 -0
- data/bin/git/hooks/commit-msg/enforce_style +81 -0
- data/bin/git/hooks/hook_lib +108 -0
- data/bin/git/hooks/hooks-wrapper +38 -0
- data/bin/git/hooks/post-flow-hotfix-start/update-version +24 -0
- data/bin/git/hooks/post-flow-release-finish/update-version +29 -0
- data/bin/git/hooks/post-flow-release-start/update-version +19 -0
- data/bin/git/hooks/post-merge/update-hooks +6 -0
- data/bin/git/hooks/post-rewrite/update-hooks +6 -0
- data/bin/git/hooks/pre-commit/rubocop +20 -0
- data/bin/git/hooks/pre-commit/validate-diffs +31 -0
- data/bin/git/hooks/pre-push/check-changelog +24 -0
- data/bin/git/hooks/pre-push/rubocop +7 -0
- data/bin/git/update-hooks +65 -0
- data/cisco_node_utils.gemspec +9 -3
- data/docs/README-develop-best-practices.md +404 -0
- data/docs/README-develop-node-utils-APIs.md +215 -365
- data/docs/README-maintainers.md +33 -3
- data/docs/template-router.rb +89 -91
- data/docs/template-test_router.rb +52 -55
- data/lib/.rubocop.yml +18 -0
- data/lib/cisco_node_utils.rb +2 -19
- data/lib/cisco_node_utils/README_YAML.md +1 -9
- data/lib/cisco_node_utils/bgp.rb +664 -0
- data/lib/cisco_node_utils/bgp_af.rb +530 -0
- data/lib/cisco_node_utils/bgp_neighbor.rb +425 -0
- data/lib/cisco_node_utils/bgp_neighbor_af.rb +709 -0
- data/lib/cisco_node_utils/cisco_cmn_utils.rb +59 -25
- data/lib/cisco_node_utils/command_reference.rb +72 -74
- data/lib/cisco_node_utils/command_reference_common.yaml +174 -9
- data/lib/cisco_node_utils/command_reference_common_bgp.yaml +535 -0
- data/lib/cisco_node_utils/command_reference_n7k.yaml +4 -0
- data/lib/cisco_node_utils/command_reference_n9k.yaml +0 -9
- data/lib/cisco_node_utils/configparser_lib.rb +152 -147
- data/lib/cisco_node_utils/dns_domain.rb +79 -0
- data/lib/cisco_node_utils/domain_name.rb +71 -0
- data/lib/cisco_node_utils/interface.rb +167 -161
- data/lib/cisco_node_utils/interface_ospf.rb +78 -81
- data/lib/cisco_node_utils/name_server.rb +64 -0
- data/lib/cisco_node_utils/node.rb +154 -198
- data/lib/cisco_node_utils/node_util.rb +61 -0
- data/lib/cisco_node_utils/ntp_config.rb +65 -0
- data/lib/cisco_node_utils/ntp_server.rb +76 -0
- data/lib/cisco_node_utils/platform.rb +174 -165
- data/lib/cisco_node_utils/radius_global.rb +146 -0
- data/lib/cisco_node_utils/radius_server.rb +295 -0
- data/lib/cisco_node_utils/router_ospf.rb +59 -63
- data/lib/cisco_node_utils/router_ospf_vrf.rb +226 -210
- data/lib/cisco_node_utils/snmpcommunity.rb +52 -58
- data/lib/cisco_node_utils/snmpgroup.rb +22 -23
- data/lib/cisco_node_utils/snmpserver.rb +99 -103
- data/lib/cisco_node_utils/snmpuser.rb +294 -274
- data/lib/cisco_node_utils/syslog_server.rb +92 -0
- data/lib/cisco_node_utils/syslog_settings.rb +69 -0
- data/lib/cisco_node_utils/tacacs_server.rb +137 -133
- data/lib/cisco_node_utils/tacacs_server_host.rb +84 -87
- data/lib/cisco_node_utils/version.rb +2 -1
- data/lib/cisco_node_utils/vlan.rb +28 -31
- data/lib/cisco_node_utils/vrf.rb +80 -0
- data/lib/cisco_node_utils/vtp.rb +100 -97
- data/lib/cisco_node_utils/yum.rb +15 -17
- data/tests/.rubocop.yml +15 -0
- data/tests/basetest.rb +81 -36
- data/tests/ciscotest.rb +38 -78
- data/{lib/cisco_node_utils → tests}/platform_info.rb +12 -8
- data/{lib/cisco_node_utils → tests}/platform_info.yaml +1 -1
- data/tests/test_bgp_af.rb +920 -0
- data/tests/test_bgp_neighbor.rb +403 -0
- data/tests/test_bgp_neighbor_af.rb +589 -0
- data/tests/test_command_config.rb +65 -62
- data/tests/test_command_reference.rb +31 -45
- data/tests/test_dns_domain.rb +113 -0
- data/tests/test_domain_name.rb +86 -0
- data/tests/test_interface.rb +424 -548
- data/tests/test_interface_ospf.rb +248 -432
- data/tests/test_interface_svi.rb +56 -79
- data/tests/test_interface_switchport.rb +196 -272
- data/tests/test_name_server.rb +85 -0
- data/tests/test_node.rb +7 -6
- data/tests/test_node_ext.rb +133 -186
- data/tests/test_ntp_config.rb +49 -0
- data/tests/test_ntp_server.rb +74 -0
- data/tests/test_platform.rb +58 -37
- data/tests/test_radius_global.rb +78 -0
- data/tests/test_radius_server.rb +185 -0
- data/tests/test_router_bgp.rb +838 -0
- data/tests/test_router_ospf.rb +49 -80
- data/tests/test_router_ospf_vrf.rb +274 -392
- data/tests/test_snmpcommunity.rb +128 -172
- data/tests/test_snmpgroup.rb +12 -14
- data/tests/test_snmpserver.rb +160 -189
- data/tests/test_snmpuser.rb +568 -717
- data/tests/test_syslog_server.rb +88 -0
- data/tests/test_syslog_settings.rb +54 -0
- data/tests/test_tacacs_server.rb +113 -148
- data/tests/test_tacacs_server_host.rb +108 -161
- data/tests/test_vlan.rb +63 -79
- data/tests/test_vrf.rb +92 -0
- data/tests/test_vtp.rb +108 -126
- data/tests/test_yum.rb +47 -41
- metadata +92 -56
- data/.rubocop_todo.yml +0 -293
- data/docs/.rubocop.yml +0 -13
- data/docs/template-feature.rb +0 -45
- data/docs/template-test_feature.rb +0 -51
- data/tests/test_all_cisco.rb +0 -46
|
@@ -98,11 +98,36 @@ aaa_server_group:
|
|
|
98
98
|
vrf:
|
|
99
99
|
default_value: "default"
|
|
100
100
|
|
|
101
|
-
|
|
101
|
+
dnsclient:
|
|
102
|
+
domain_list:
|
|
103
|
+
config_get: "show running-config all"
|
|
104
|
+
config_get_token: '/^ip domain-list (\S+)$/'
|
|
105
|
+
config_set: '<state> ip domain-list <name>'
|
|
106
|
+
default_value: ''
|
|
107
|
+
|
|
108
|
+
domain_list_vrf:
|
|
109
|
+
config_get: "show running-config all"
|
|
110
|
+
config_get_token: ['/vrf context <vrf>/', '/ip domain-list (\S+)/']
|
|
111
|
+
config_set: ['vrf context <vrf>', '<state> ip domain-list <name>']
|
|
112
|
+
default_value: ''
|
|
113
|
+
|
|
102
114
|
domain_name:
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
115
|
+
config_get: 'show running-config all'
|
|
116
|
+
config_get_token: '/^ip domain-name (\S+)$/'
|
|
117
|
+
config_set: '<state> ip domain-name <name>'
|
|
118
|
+
default_value: ''
|
|
119
|
+
|
|
120
|
+
domain_name_vrf:
|
|
121
|
+
config_get: 'show running-config all'
|
|
122
|
+
config_get_token: ['/vrf context <vrf>/', '/ip domain-name (\S+)/']
|
|
123
|
+
config_set: ['vrf context <vrf>', '<state> ip domain-name <name>']
|
|
124
|
+
default_value: ''
|
|
125
|
+
|
|
126
|
+
name_server:
|
|
127
|
+
config_get: "show running-config all | include 'ip name-server' | exclude 'use-vrf'"
|
|
128
|
+
config_get_token: '/^ip name-server ([\s\d\.:]+)$/'
|
|
129
|
+
config_set: '<state> ip name-server <ip>'
|
|
130
|
+
default_value: ''
|
|
106
131
|
|
|
107
132
|
fex:
|
|
108
133
|
feature:
|
|
@@ -211,7 +236,7 @@ interface:
|
|
|
211
236
|
config_get: "show running interface all"
|
|
212
237
|
config_get_token: ['/^interface %s$/i', '/^mtu (.*)$/']
|
|
213
238
|
config_set: ["interface %s", "%s mtu %s"]
|
|
214
|
-
default_value:
|
|
239
|
+
default_value: 1500
|
|
215
240
|
|
|
216
241
|
negotiate_auto_ethernet:
|
|
217
242
|
config_get: "show running interface all"
|
|
@@ -233,7 +258,7 @@ interface:
|
|
|
233
258
|
'/^negotiate auto$/'
|
|
234
259
|
]
|
|
235
260
|
config_set: ["interface %s", "%s negotiate auto"]
|
|
236
|
-
default_value:
|
|
261
|
+
default_value: true
|
|
237
262
|
test_config_get_regex: [
|
|
238
263
|
!ruby/regexp '/^\s+no negotiate auto/',
|
|
239
264
|
!ruby/regexp '/^\s+negotiate auto/'
|
|
@@ -452,6 +477,25 @@ inventory:
|
|
|
452
477
|
config_get: "show inventory"
|
|
453
478
|
config_get_token: ["TABLE_inv", "ROW_inv", 0, "vendorid"]
|
|
454
479
|
|
|
480
|
+
ntp_config:
|
|
481
|
+
source_interface:
|
|
482
|
+
config_get: "show running-config ntp"
|
|
483
|
+
config_get_token: '/^ntp source-interface\s+(.*)$/'
|
|
484
|
+
config_set: '<state> ntp source-interface <source_interface>'
|
|
485
|
+
default_value: ''
|
|
486
|
+
|
|
487
|
+
ntp_server:
|
|
488
|
+
server:
|
|
489
|
+
config_get: "show running-config all | include 'ntp server'"
|
|
490
|
+
config_get_token: '/ntp server ((?:[0-9]{1,3}\.){3}[0-9]{1,3})/'
|
|
491
|
+
config_set: '<state> ntp server <ip> <prefer>'
|
|
492
|
+
default_value: ''
|
|
493
|
+
|
|
494
|
+
prefer:
|
|
495
|
+
config_get: "show running-config all | include 'ntp server(.*)(prefer)'"
|
|
496
|
+
config_get_token: '/ntp server ((?:[0-9]{1,3}\.){3}[0-9]{1,3})/'
|
|
497
|
+
default_value: ''
|
|
498
|
+
|
|
455
499
|
memory:
|
|
456
500
|
total:
|
|
457
501
|
config_get: 'show system resources'
|
|
@@ -535,6 +579,82 @@ ospf:
|
|
|
535
579
|
config_get_token: ['/^router ospf <name>$/i', '/^vrf\s+(\S+)$/']
|
|
536
580
|
config_set: ["router ospf <name>", "<state> vrf <vrf>", "end"]
|
|
537
581
|
|
|
582
|
+
radius_server:
|
|
583
|
+
hosts:
|
|
584
|
+
config_get: "show running-config radius"
|
|
585
|
+
config_get_token: '/^radius-server host ((?:[0-9]{1,3}\.){3}[0-9]{1,3})/'
|
|
586
|
+
config_set: '<state> radius-server host <ip>'
|
|
587
|
+
default_value: ''
|
|
588
|
+
|
|
589
|
+
auth-port:
|
|
590
|
+
config_get: "show running-config radius all"
|
|
591
|
+
config_get_token: '/^radius-server host %s.* auth-port (\d+).*$/'
|
|
592
|
+
config_set: '<state> radius-server host <ip> auth-port <port>'
|
|
593
|
+
default_value: 1812
|
|
594
|
+
|
|
595
|
+
acct-port:
|
|
596
|
+
config_get: "show running-config radius all"
|
|
597
|
+
config_get_token: '/^radius-server host %s.* acct-port (\d+).*$/'
|
|
598
|
+
config_set: '<state> radius-server host <ip> acct-port <port>'
|
|
599
|
+
default_value: 1813
|
|
600
|
+
|
|
601
|
+
timeout:
|
|
602
|
+
config_get: "show running-config radius all"
|
|
603
|
+
config_get_token: '/^radius-server host %s.* timeout (\d+).*$/'
|
|
604
|
+
config_set: '<state> radius-server host <ip> timeout <timeout>'
|
|
605
|
+
default_value: null
|
|
606
|
+
|
|
607
|
+
retransmit:
|
|
608
|
+
config_get: "show running-config radius all"
|
|
609
|
+
config_get_token: '/^radius-server host %s.* retransmit (\d+).*$/'
|
|
610
|
+
config_set: '<state> radius-server host <ip> retransmit <count>'
|
|
611
|
+
default_value: null
|
|
612
|
+
|
|
613
|
+
accounting:
|
|
614
|
+
config_get: "show running-config radius"
|
|
615
|
+
config_get_token: '/^radius-server host %s.* (accounting) .*$/'
|
|
616
|
+
config_set: '<state> radius-server host <ip> accounting'
|
|
617
|
+
default_value: true
|
|
618
|
+
|
|
619
|
+
authentication:
|
|
620
|
+
config_get: "show running-config radius"
|
|
621
|
+
config_get_token: '/^radius-server host %s.* (authentication) .*$/'
|
|
622
|
+
config_set: '<state> radius-server host <ip> authentication'
|
|
623
|
+
default_value: true
|
|
624
|
+
|
|
625
|
+
key_format:
|
|
626
|
+
config_get: "show running-config radius all"
|
|
627
|
+
config_get_token: '/^radius-server host %s.* key (\d).*$/'
|
|
628
|
+
default_value: null
|
|
629
|
+
|
|
630
|
+
key:
|
|
631
|
+
config_get: "show running-config radius all"
|
|
632
|
+
config_get_token: '/^radius-server host %s.* key \d+\s+(\S+)/'
|
|
633
|
+
config_set: '<state> radius-server host <ip> key <key>'
|
|
634
|
+
default_value: null
|
|
635
|
+
|
|
636
|
+
radius_global:
|
|
637
|
+
timeout:
|
|
638
|
+
config_get: "show running-config radius all"
|
|
639
|
+
config_get_token: '/^radius-server timeout (\d+).*/'
|
|
640
|
+
config_set: '<state> radius-server timeout <timeout>'
|
|
641
|
+
default_value: '5'
|
|
642
|
+
|
|
643
|
+
retransmit:
|
|
644
|
+
config_get: "show running-config radius all"
|
|
645
|
+
config_get_token: '/^radius-server retransmit (\d+).*/'
|
|
646
|
+
config_set: '<state> radius-server retransmit <count>'
|
|
647
|
+
default_value: '1'
|
|
648
|
+
|
|
649
|
+
key_format:
|
|
650
|
+
config_get: "show running-config radius all"
|
|
651
|
+
config_get_token: '/^radius-server key (\d).*/'
|
|
652
|
+
|
|
653
|
+
key:
|
|
654
|
+
config_get: "show running-config radius all"
|
|
655
|
+
config_get_token: '/^radius-server key \d+\s+(\S+)/'
|
|
656
|
+
config_set: '<state> radius-server key <key>'
|
|
657
|
+
|
|
538
658
|
show_system:
|
|
539
659
|
uptime:
|
|
540
660
|
config_get: 'show system uptime'
|
|
@@ -594,9 +714,9 @@ show_version:
|
|
|
594
714
|
|
|
595
715
|
system_image:
|
|
596
716
|
config_get: "sh version"
|
|
597
|
-
config_get_token: "
|
|
717
|
+
config_get_token: "kick_file_name"
|
|
598
718
|
test_config_get: "sh version | no-more"
|
|
599
|
-
test_config_get_regex: !ruby/regexp '/.*
|
|
719
|
+
test_config_get_regex: !ruby/regexp '/.*NXOS image file is: (.*)$.*/'
|
|
600
720
|
|
|
601
721
|
uptime:
|
|
602
722
|
config_get: 'show version'
|
|
@@ -656,7 +776,7 @@ snmp_server:
|
|
|
656
776
|
config_get: "show run snmp"
|
|
657
777
|
config_get_token: '/snmp-server globalEnforcePriv/'
|
|
658
778
|
config_set: "%s snmp-server globalEnforcePriv"
|
|
659
|
-
default_value:
|
|
779
|
+
default_value: false
|
|
660
780
|
|
|
661
781
|
location:
|
|
662
782
|
config_get: "show snmp"
|
|
@@ -726,6 +846,30 @@ snmp_user:
|
|
|
726
846
|
config_get_token: ["TABLE_snmp_users", "ROW_snmp_users"]
|
|
727
847
|
config_set: "%s snmp-server user %s %s %s %s %s %s"
|
|
728
848
|
|
|
849
|
+
syslog_settings:
|
|
850
|
+
timestamp:
|
|
851
|
+
config_get: "show running-config all | include '^logging timestamp'"
|
|
852
|
+
config_get_token: '/^logging timestamp (.*)$/'
|
|
853
|
+
config_set: '<state> logging timestamp <units>'
|
|
854
|
+
default_value: 'seconds'
|
|
855
|
+
|
|
856
|
+
syslog_server:
|
|
857
|
+
server:
|
|
858
|
+
config_get: "show running-config all | include '^logging server'"
|
|
859
|
+
config_get_token: '/^logging server ((?:[0-9]{1,3}\.){3}[0-9]{1,3}).*/'
|
|
860
|
+
config_set: '<state> logging server <ip> <level> <vrf>'
|
|
861
|
+
default_value: ''
|
|
862
|
+
|
|
863
|
+
level:
|
|
864
|
+
config_get: "show running-config all | include '^logging server'"
|
|
865
|
+
config_get_token: '/^logging server %s (\d).*/'
|
|
866
|
+
default_value: ''
|
|
867
|
+
|
|
868
|
+
vrf:
|
|
869
|
+
config_get: "show running-config all | include '^logging server(.*)(use-vrf)'"
|
|
870
|
+
config_get_token: '/^logging server %s.* use-vrf (.*)$/'
|
|
871
|
+
default_value: ''
|
|
872
|
+
|
|
729
873
|
system:
|
|
730
874
|
resources:
|
|
731
875
|
config_get: "show system resources"
|
|
@@ -843,6 +987,27 @@ vlan:
|
|
|
843
987
|
config_set: ["vlan %d", "%s shutdown", "end"]
|
|
844
988
|
default_value: false
|
|
845
989
|
|
|
990
|
+
vrf:
|
|
991
|
+
all_vrfs:
|
|
992
|
+
config_get: "show running | section 'vrf context'"
|
|
993
|
+
config_get_token: '/^vrf context (.*)/'
|
|
994
|
+
|
|
995
|
+
create:
|
|
996
|
+
config_set: "vrf context <vrf>"
|
|
997
|
+
|
|
998
|
+
description:
|
|
999
|
+
config_get: "show running | section 'vrf context'"
|
|
1000
|
+
config_get_token: ['/^vrf context <vrf>$/i', '/^description (.*)/']
|
|
1001
|
+
config_set: ["vrf context <vrf>", "<state> description <desc>"]
|
|
1002
|
+
|
|
1003
|
+
destroy:
|
|
1004
|
+
config_set: "no vrf context <vrf>"
|
|
1005
|
+
|
|
1006
|
+
shutdown:
|
|
1007
|
+
config_get: "show running | section 'vrf context'"
|
|
1008
|
+
config_get_token: ['/^vrf context <vrf>$/i', '/^shutdown$/']
|
|
1009
|
+
config_set: ["vrf context <vrf>", "<state> shutdown"]
|
|
1010
|
+
|
|
846
1011
|
vtp:
|
|
847
1012
|
domain:
|
|
848
1013
|
config_get: "show vtp status"
|
|
@@ -0,0 +1,535 @@
|
|
|
1
|
+
# Command Reference Common BGP
|
|
2
|
+
#
|
|
3
|
+
# For documentation please see:
|
|
4
|
+
# - README_YAML.md
|
|
5
|
+
#
|
|
6
|
+
---
|
|
7
|
+
bgp:
|
|
8
|
+
_template:
|
|
9
|
+
config_get: "show running bgp all"
|
|
10
|
+
config_get_token: '/^router bgp <asnum>$/'
|
|
11
|
+
config_get_token_append:
|
|
12
|
+
- '/^vrf <vrf>$/'
|
|
13
|
+
config_set: "router bgp <asnum>"
|
|
14
|
+
config_set_append:
|
|
15
|
+
- "vrf <vrf>"
|
|
16
|
+
|
|
17
|
+
address_family:
|
|
18
|
+
config_set_append: '<state> address-family <afi> <safi>'
|
|
19
|
+
|
|
20
|
+
bestpath_always_compare_med:
|
|
21
|
+
config_get_token_append: '/^bestpath always-compare-med$/'
|
|
22
|
+
config_set_append: '<state> bestpath always-compare-med'
|
|
23
|
+
default_value: false
|
|
24
|
+
|
|
25
|
+
bestpath_aspath_multipath_relax:
|
|
26
|
+
config_get_token_append: '/^bestpath as-path multipath-relax$/'
|
|
27
|
+
config_set_append: '<state> bestpath as-path multipath-relax'
|
|
28
|
+
default_value: false
|
|
29
|
+
|
|
30
|
+
bestpath_compare_routerid:
|
|
31
|
+
config_get_token_append: '/^bestpath compare-routerid$/'
|
|
32
|
+
config_set_append: '<state> bestpath compare-routerid'
|
|
33
|
+
default_value: false
|
|
34
|
+
|
|
35
|
+
bestpath_cost_community_ignore:
|
|
36
|
+
config_get_token_append: '/^bestpath cost-community ignore$/'
|
|
37
|
+
config_set_append: '<state> bestpath cost-community ignore'
|
|
38
|
+
default_value: false
|
|
39
|
+
|
|
40
|
+
bestpath_med_confed:
|
|
41
|
+
config_get_token_append: '/^bestpath med confed$/'
|
|
42
|
+
config_set_append: '<state> bestpath med confed'
|
|
43
|
+
default_value: false
|
|
44
|
+
|
|
45
|
+
bestpath_med_missing_as_worst:
|
|
46
|
+
config_get_token_append: '/^bestpath med missing-as-worst$/'
|
|
47
|
+
config_set_append: '<state> bestpath med missing-as-worst'
|
|
48
|
+
default_value: false
|
|
49
|
+
|
|
50
|
+
bestpath_med_non_deterministic:
|
|
51
|
+
config_get_token_append: '/^bestpath med non-deterministic$/'
|
|
52
|
+
config_set_append: '<state> bestpath med non-deterministic'
|
|
53
|
+
default_value: false
|
|
54
|
+
|
|
55
|
+
cluster_id:
|
|
56
|
+
config_get_token_append: '/^cluster-id (\S+)$/'
|
|
57
|
+
config_set_append: '<state> cluster-id <id>'
|
|
58
|
+
default_value: ""
|
|
59
|
+
|
|
60
|
+
confederation_id:
|
|
61
|
+
config_get_token_append: '/^confederation identifier (\d+|\d+.\d+)$/'
|
|
62
|
+
config_set_append: '<state> confederation identifier <id>'
|
|
63
|
+
default_value: ""
|
|
64
|
+
|
|
65
|
+
confederation_peers:
|
|
66
|
+
config_get_token_append: '/^confederation peers (.*)$/'
|
|
67
|
+
config_set_append: '<state> confederation peers <peer_list>'
|
|
68
|
+
default_value: ""
|
|
69
|
+
|
|
70
|
+
create_destroy_neighbor:
|
|
71
|
+
config_set_append: '<state> neighbor <nbr>'
|
|
72
|
+
|
|
73
|
+
enforce_first_as:
|
|
74
|
+
config_get_token_append: '/^enforce-first-as$/'
|
|
75
|
+
config_set_append: '<state> enforce-first-as'
|
|
76
|
+
default_value: true
|
|
77
|
+
|
|
78
|
+
feature:
|
|
79
|
+
config_get: "show running bgp"
|
|
80
|
+
config_get_token: '/^feature bgp$/'
|
|
81
|
+
config_set: "<state> feature bgp"
|
|
82
|
+
|
|
83
|
+
graceful_restart:
|
|
84
|
+
config_get_token_append: '/^graceful-restart$/'
|
|
85
|
+
config_set_append: '<state> graceful-restart'
|
|
86
|
+
default_value: true
|
|
87
|
+
|
|
88
|
+
graceful_restart_timers_restart:
|
|
89
|
+
config_get_token_append: '/^graceful-restart restart-time (\d+)$/'
|
|
90
|
+
config_set_append: '<state> graceful-restart restart-time <seconds>'
|
|
91
|
+
default_value: 120
|
|
92
|
+
|
|
93
|
+
graceful_restart_timers_stalepath_time:
|
|
94
|
+
config_get_token_append: '/^graceful-restart stalepath-time (\d+)$/'
|
|
95
|
+
config_set_append: '<state> graceful-restart stalepath-time <seconds>'
|
|
96
|
+
default_value: 300
|
|
97
|
+
|
|
98
|
+
graceful_restart_helper:
|
|
99
|
+
config_get_token_append: '/^graceful-restart-helper$/'
|
|
100
|
+
config_set_append: '<state> graceful-restart-helper'
|
|
101
|
+
default_value: false
|
|
102
|
+
|
|
103
|
+
log_neighbor_changes:
|
|
104
|
+
config_get_token_append: '/^log-neighbor-changes$/'
|
|
105
|
+
config_set_append: '<state> log-neighbor-changes'
|
|
106
|
+
default_value: false
|
|
107
|
+
|
|
108
|
+
maxas_limit:
|
|
109
|
+
config_get_token_append: '/^maxas-limit (\d+)$/'
|
|
110
|
+
config_set_append: '<state> maxas-limit <limit>'
|
|
111
|
+
default_value: false
|
|
112
|
+
|
|
113
|
+
neighbor_fib_down_accelerate:
|
|
114
|
+
config_get_token_append: '/^neighbor-down fib-accelerate$/'
|
|
115
|
+
config_set_append: '<state> neighbor-down fib-accelerate'
|
|
116
|
+
default_value: false
|
|
117
|
+
|
|
118
|
+
reconnect_interval:
|
|
119
|
+
config_get_token_append: '/^reconnect-interval (\d+)$/'
|
|
120
|
+
config_set_append: '<state> reconnect-interval <seconds>'
|
|
121
|
+
default_value: 60
|
|
122
|
+
|
|
123
|
+
router:
|
|
124
|
+
config_get: "show running bgp"
|
|
125
|
+
config_get_token: '/^router bgp (\d+)$/'
|
|
126
|
+
config_set: "<state> router bgp <asnum>"
|
|
127
|
+
|
|
128
|
+
router_id:
|
|
129
|
+
config_get_token_append: '/^router-id (\S+)$/'
|
|
130
|
+
config_set_append: '<state> router-id <id>'
|
|
131
|
+
default_value: ""
|
|
132
|
+
|
|
133
|
+
shutdown:
|
|
134
|
+
# Shutdown only applies to global bgp
|
|
135
|
+
config_get: "show running bgp"
|
|
136
|
+
config_get_token: ['/^router bgp %s$/i', '/^shutdown$/']
|
|
137
|
+
config_set: ["router bgp <asnum>", "<state> shutdown"]
|
|
138
|
+
default_value: false
|
|
139
|
+
|
|
140
|
+
suppress_fib_pending:
|
|
141
|
+
config_get_token_append: '/^suppress-fib-pending$/'
|
|
142
|
+
config_set_append: '<state> suppress-fib-pending'
|
|
143
|
+
default_value: false
|
|
144
|
+
|
|
145
|
+
timer_bgp_keepalive_hold:
|
|
146
|
+
config_get_token_append: '/^timers bgp (\d+) (\d+)$/'
|
|
147
|
+
config_set_append: '<state> timers bgp <keepalive> <hold>'
|
|
148
|
+
|
|
149
|
+
timer_bgp_keepalive:
|
|
150
|
+
default_value: 60
|
|
151
|
+
|
|
152
|
+
timer_bgp_hold:
|
|
153
|
+
default_value: 180
|
|
154
|
+
|
|
155
|
+
timer_bestpath_limit:
|
|
156
|
+
config_get_token_append: '/^timers bestpath-limit (\d+)(?: always)?$/'
|
|
157
|
+
config_set_append: '<state> timers bestpath-limit <seconds>'
|
|
158
|
+
default_value: 300
|
|
159
|
+
|
|
160
|
+
timer_bestpath_limit_always:
|
|
161
|
+
config_get_token_append: '/^timers bestpath-limit \d+ always$/'
|
|
162
|
+
config_set_append: '<state> timers bestpath-limit <seconds> always'
|
|
163
|
+
default_value: false
|
|
164
|
+
|
|
165
|
+
vrf:
|
|
166
|
+
config_get_token_append: '/^vrf\s+(\S+)$/'
|
|
167
|
+
config_set: ["router bgp <asnum>", "<state> vrf <vrf>", "end"]
|
|
168
|
+
|
|
169
|
+
bgp_af:
|
|
170
|
+
_template:
|
|
171
|
+
config_get: 'show running bgp all'
|
|
172
|
+
config_get_token: '/^router bgp <asnum>$/'
|
|
173
|
+
config_get_token_append:
|
|
174
|
+
- '/^vrf <vrf>$/'
|
|
175
|
+
- '/^address-family <afi> <safi>$/'
|
|
176
|
+
config_set: "router bgp <asnum>"
|
|
177
|
+
config_set_append:
|
|
178
|
+
- 'vrf <vrf>'
|
|
179
|
+
- 'address-family <afi> <safi>'
|
|
180
|
+
|
|
181
|
+
all_afs:
|
|
182
|
+
config_get_token_append: '/^address-family (\S+) (\S+)$/'
|
|
183
|
+
|
|
184
|
+
additional_paths_send:
|
|
185
|
+
config_get_token_append: '/^additional-paths send$/'
|
|
186
|
+
config_set_append: '<state> additional-paths send'
|
|
187
|
+
default_value: false
|
|
188
|
+
|
|
189
|
+
additional_paths_receive:
|
|
190
|
+
config_get_token_append: '/^additional-paths receive$/'
|
|
191
|
+
config_set_append: '<state> additional-paths receive'
|
|
192
|
+
default_value: false
|
|
193
|
+
|
|
194
|
+
additional_paths_install:
|
|
195
|
+
config_get_token_append: '/^additional-paths install backup$/'
|
|
196
|
+
config_set_append: '<state> additional-paths install backup'
|
|
197
|
+
default_value: false
|
|
198
|
+
|
|
199
|
+
additional_paths_selection:
|
|
200
|
+
config_get_token_append: '/^additional-paths selection route-map (.*)$/'
|
|
201
|
+
config_set_append: '<state> additional-paths selection route-map <route_map>'
|
|
202
|
+
default_value: ""
|
|
203
|
+
|
|
204
|
+
client_to_client:
|
|
205
|
+
config_get_token_append: '/^client-to-client reflection$/'
|
|
206
|
+
config_set_append: '<state> client-to-client reflection'
|
|
207
|
+
default_value: true
|
|
208
|
+
|
|
209
|
+
dampen_igp_metric:
|
|
210
|
+
config_get_token_append: '/^dampen-igp-metric (\d+)$/'
|
|
211
|
+
config_set_append: '<state> dampen-igp-metric <num>'
|
|
212
|
+
default_value: 600
|
|
213
|
+
|
|
214
|
+
dampening:
|
|
215
|
+
config_get_token_append: '/^dampening(?: (?:(\d+) (\d+) (\d+) (\d+)|route-map (.*)))?$/'
|
|
216
|
+
config_set_append: '<state> dampening <route_map> <decay> <reuse> <suppress> <suppress_max>'
|
|
217
|
+
default_value: ""
|
|
218
|
+
|
|
219
|
+
dampening_state:
|
|
220
|
+
default_value: true
|
|
221
|
+
|
|
222
|
+
dampening_max_suppress_time:
|
|
223
|
+
default_value: 45
|
|
224
|
+
|
|
225
|
+
dampening_half_time:
|
|
226
|
+
default_value: 15
|
|
227
|
+
|
|
228
|
+
dampening_reuse_time:
|
|
229
|
+
default_value: 750
|
|
230
|
+
|
|
231
|
+
dampening_routemap:
|
|
232
|
+
default_value: ""
|
|
233
|
+
|
|
234
|
+
dampening_suppress_time:
|
|
235
|
+
default_value: 2000
|
|
236
|
+
|
|
237
|
+
default_information:
|
|
238
|
+
config_get_token_append: '/^default-information originate$/'
|
|
239
|
+
config_set_append: '<state> default-information originate'
|
|
240
|
+
default_value: false
|
|
241
|
+
|
|
242
|
+
maximum_paths:
|
|
243
|
+
config_get_token_append: '/^maximum-paths (\d+)$/'
|
|
244
|
+
config_set_append: '<state> maximum-paths <num>'
|
|
245
|
+
default_value: 1
|
|
246
|
+
|
|
247
|
+
maximum_paths_ibgp:
|
|
248
|
+
config_get_token_append: '/^maximum-paths ibgp (\d+)$/'
|
|
249
|
+
config_set_append: '<state> maximum-paths ibgp <num>'
|
|
250
|
+
default_value: 1
|
|
251
|
+
|
|
252
|
+
next_hop_route_map:
|
|
253
|
+
config_get_token_append: '/^nexthop route-map (.*)$/'
|
|
254
|
+
config_set_append: '<state> nexthop route-map <route_map>'
|
|
255
|
+
default_value: ""
|
|
256
|
+
|
|
257
|
+
network:
|
|
258
|
+
config_get_token_append: '/^network (\S+) ?(?:route-map )?(\S+)?$/'
|
|
259
|
+
config_set_append: '<state> network <network> <route_map>'
|
|
260
|
+
default_value: []
|
|
261
|
+
|
|
262
|
+
redistribute:
|
|
263
|
+
config_get_token_append: '/^redistribute (\S+ ?\S+?) ?(?:route-map (\S+))?$/'
|
|
264
|
+
config_set_append: '<state> redistribute <protocol>'
|
|
265
|
+
default_value: []
|
|
266
|
+
|
|
267
|
+
redistribute_policy:
|
|
268
|
+
# route-map/policy is optional on some platforms, required on others
|
|
269
|
+
config_set_append: '<state> redistribute <protocol> route-map <policy>'
|
|
270
|
+
|
|
271
|
+
bgp_neighbor:
|
|
272
|
+
_template:
|
|
273
|
+
config_get: "show running bgp all"
|
|
274
|
+
config_get_token: '/^router bgp <asnum>$/'
|
|
275
|
+
config_get_token_append:
|
|
276
|
+
- '/^vrf <vrf>$/'
|
|
277
|
+
- '/^neighbor <nbr>$/'
|
|
278
|
+
config_set: "router bgp <asnum>"
|
|
279
|
+
config_set_append:
|
|
280
|
+
- "vrf <vrf>"
|
|
281
|
+
- "neighbor <nbr>"
|
|
282
|
+
|
|
283
|
+
af:
|
|
284
|
+
config_set_append: '<state> address-family <afi> <safi>'
|
|
285
|
+
|
|
286
|
+
all_neighbors:
|
|
287
|
+
config_get_token_append: '/^neighbor (\S+)$/'
|
|
288
|
+
|
|
289
|
+
description:
|
|
290
|
+
config_get_token_append: '/^description (.*)/'
|
|
291
|
+
config_set_append: '<state> description <desc>'
|
|
292
|
+
default_value: ""
|
|
293
|
+
|
|
294
|
+
connected_check:
|
|
295
|
+
config_get_token_append: '/^disable-connected-check$/'
|
|
296
|
+
config_set_append: '<state> disable-connected-check'
|
|
297
|
+
default_value: true
|
|
298
|
+
|
|
299
|
+
capability_negotiation:
|
|
300
|
+
config_get_token_append: '/^dont-capability-negotiate$/'
|
|
301
|
+
config_set_append: '<state> dont-capability-negotiate'
|
|
302
|
+
default_value: true
|
|
303
|
+
|
|
304
|
+
dynamic_capability:
|
|
305
|
+
config_get_token_append: '/^dynamic-capability$/'
|
|
306
|
+
config_set_append: '<state> dynamic-capability'
|
|
307
|
+
default_value: true
|
|
308
|
+
|
|
309
|
+
ebgp_multihop:
|
|
310
|
+
config_get_token_append: '/^ebgp-multihop (\d+)$/'
|
|
311
|
+
config_set_append: '<state> ebgp-multihop <ttl>'
|
|
312
|
+
default_value: false
|
|
313
|
+
|
|
314
|
+
local_as:
|
|
315
|
+
config_get_token_append: '/^local-as (\d*?.?\d+?)$/'
|
|
316
|
+
config_set_append: '<state> local-as <local_as>'
|
|
317
|
+
default_value: 0
|
|
318
|
+
|
|
319
|
+
log_neighbor_changes:
|
|
320
|
+
config_get_token_append: '/^log-neighbor-changes\s+??(\S+)?\s+??$/'
|
|
321
|
+
config_set_append: '<state> log-neighbor-changes <disable>'
|
|
322
|
+
default_value: "inherit"
|
|
323
|
+
|
|
324
|
+
low_memory_exempt:
|
|
325
|
+
config_get_token_append: '/^low-memory exempt$/'
|
|
326
|
+
config_set_append: '<state> low-memory exempt'
|
|
327
|
+
default_value: false
|
|
328
|
+
|
|
329
|
+
maximum_peers:
|
|
330
|
+
config_get_token_append: '/^maximum-peers (\d+)$/'
|
|
331
|
+
config_set_append: '<state> maximum-peers <num>'
|
|
332
|
+
default_value: 0
|
|
333
|
+
|
|
334
|
+
password:
|
|
335
|
+
config_get_token_append: '/^password \d+ (\S+)$/'
|
|
336
|
+
config_set_append: '<state> password <type> <passwd>'
|
|
337
|
+
default_value: ""
|
|
338
|
+
|
|
339
|
+
password_type:
|
|
340
|
+
config_get_token_append: '/^password (\d+)/'
|
|
341
|
+
default_value: 0
|
|
342
|
+
|
|
343
|
+
remote_as:
|
|
344
|
+
config_get_token_append: '/^remote-as (\d*?.?\d+?)$/'
|
|
345
|
+
config_set_append: '<state> remote-as <remote_as>'
|
|
346
|
+
default_value: 0
|
|
347
|
+
|
|
348
|
+
remove_private_as:
|
|
349
|
+
config_get_token_append: '/^remove-private-as\s+??(\S+)?\s+??$/'
|
|
350
|
+
config_set_append: '<state> remove-private-as <option>'
|
|
351
|
+
default_value: "disable"
|
|
352
|
+
|
|
353
|
+
shutdown:
|
|
354
|
+
config_get_token_append: '/^shutdown$/'
|
|
355
|
+
config_set_append: '<state> shutdown'
|
|
356
|
+
default_value: false
|
|
357
|
+
|
|
358
|
+
suppress_4_byte_as:
|
|
359
|
+
config_get_token_append: '/^capability suppress 4-byte-as$/'
|
|
360
|
+
config_set_append: '<state> capability suppress 4-byte-as'
|
|
361
|
+
default_value: false
|
|
362
|
+
|
|
363
|
+
timers_keepalive_hold:
|
|
364
|
+
config_get_token_append: '/^timers (\d+) (\d+)$/'
|
|
365
|
+
config_set_append: '<state> timers <keepalive> <hold>'
|
|
366
|
+
|
|
367
|
+
timers_keepalive:
|
|
368
|
+
default_value: 60
|
|
369
|
+
|
|
370
|
+
timers_holdtime:
|
|
371
|
+
default_value: 180
|
|
372
|
+
|
|
373
|
+
transport_passive_only:
|
|
374
|
+
config_get_token_append: '/^transport connection-mode passive$/'
|
|
375
|
+
config_set_append: '<state> transport connection-mode passive'
|
|
376
|
+
default_value: false
|
|
377
|
+
|
|
378
|
+
update_source:
|
|
379
|
+
config_get_token_append: '/^update-source (\S+)$/'
|
|
380
|
+
config_set_append: '<state> update-source <interface>'
|
|
381
|
+
default_value: ""
|
|
382
|
+
|
|
383
|
+
bgp_neighbor_af:
|
|
384
|
+
_template:
|
|
385
|
+
config_get: 'show running bgp all'
|
|
386
|
+
config_get_token: '/^router bgp <asnum>$/'
|
|
387
|
+
config_get_token_append:
|
|
388
|
+
- '/^vrf <vrf>$/'
|
|
389
|
+
- '/^neighbor <nbr>$/'
|
|
390
|
+
- '/^address-family <afi> <safi>$/'
|
|
391
|
+
config_set: 'router bgp <asnum>'
|
|
392
|
+
config_set_append:
|
|
393
|
+
- 'vrf <vrf>'
|
|
394
|
+
- 'neighbor <nbr>'
|
|
395
|
+
- 'address-family <afi> <safi>'
|
|
396
|
+
|
|
397
|
+
all_afs:
|
|
398
|
+
config_get_token_append: '/^address-family (\S+) (\S+)$/'
|
|
399
|
+
|
|
400
|
+
advertise_map_exist:
|
|
401
|
+
config_get_token_append: '/^advertise-map (\S+) exist-map (\S+)$/'
|
|
402
|
+
config_set_append: '<state> advertise-map <map1> exist-map <map2>'
|
|
403
|
+
default_value: ''
|
|
404
|
+
|
|
405
|
+
advertise_map_non_exist:
|
|
406
|
+
config_get_token_append: '/^advertise-map (\S+) non-exist-map (\S+)$/'
|
|
407
|
+
config_set_append: '<state> advertise-map <map1> non-exist-map <map2>'
|
|
408
|
+
default_value: ''
|
|
409
|
+
|
|
410
|
+
allowas_in:
|
|
411
|
+
config_get_token_append: '/^allowas-in(?: \d+)?/'
|
|
412
|
+
config_set_append: '<state> allowas-in <max>'
|
|
413
|
+
default_value: false
|
|
414
|
+
|
|
415
|
+
allowas_in_max:
|
|
416
|
+
default_value: 3
|
|
417
|
+
|
|
418
|
+
as_override:
|
|
419
|
+
config_get_token_append: '/^as-override$/'
|
|
420
|
+
config_set_append: '<state> as-override'
|
|
421
|
+
default_value: false
|
|
422
|
+
|
|
423
|
+
additional_paths_receive:
|
|
424
|
+
config_get_token_append: '/^capability additional-paths receive(?: disable)?/'
|
|
425
|
+
config_set_append: '<state> capability additional-paths receive <disable>'
|
|
426
|
+
default_value: 'inherit'
|
|
427
|
+
|
|
428
|
+
additional_paths_send:
|
|
429
|
+
config_get_token_append: '/^capability additional-paths send(?: disable)?/'
|
|
430
|
+
config_set_append: '<state> capability additional-paths send <disable>'
|
|
431
|
+
default_value: 'inherit'
|
|
432
|
+
|
|
433
|
+
default_originate:
|
|
434
|
+
config_get_token_append: '/^default-originate(?: route-map .*)?/'
|
|
435
|
+
config_set_append: '<state> default-originate <map>'
|
|
436
|
+
default_value: false
|
|
437
|
+
|
|
438
|
+
default_originate_route_map:
|
|
439
|
+
default_value: ~
|
|
440
|
+
|
|
441
|
+
disable_peer_as_check:
|
|
442
|
+
config_get_token_append: '/^disable-peer-as-check$/'
|
|
443
|
+
config_set_append: '<state> disable-peer-as-check'
|
|
444
|
+
default_value: false
|
|
445
|
+
|
|
446
|
+
filter_list_in:
|
|
447
|
+
config_get_token_append: '/^filter-list (\S+) in$/'
|
|
448
|
+
config_set_append: '<state> filter-list <str> in'
|
|
449
|
+
default_value: ''
|
|
450
|
+
|
|
451
|
+
filter_list_out:
|
|
452
|
+
config_get_token_append: '/^filter-list (\S+) out$/'
|
|
453
|
+
config_set_append: '<state> filter-list <str> out'
|
|
454
|
+
default_value: ''
|
|
455
|
+
|
|
456
|
+
max_prefix:
|
|
457
|
+
config_get_token_append: '/^maximum-prefix .*$/'
|
|
458
|
+
config_set_append: '<state> maximum-prefix <limit> <threshold> <opt>'
|
|
459
|
+
|
|
460
|
+
max_prefix_limit:
|
|
461
|
+
default_value: ~
|
|
462
|
+
|
|
463
|
+
max_prefix_interval:
|
|
464
|
+
default_value: ~
|
|
465
|
+
|
|
466
|
+
max_prefix_threshold:
|
|
467
|
+
default_value: ~
|
|
468
|
+
|
|
469
|
+
max_prefix_warning:
|
|
470
|
+
default_value: ~
|
|
471
|
+
|
|
472
|
+
next_hop_self:
|
|
473
|
+
config_get_token_append: '/^next-hop-self$/'
|
|
474
|
+
config_set_append: '<state> next-hop-self'
|
|
475
|
+
default_value: false
|
|
476
|
+
|
|
477
|
+
next_hop_third_party:
|
|
478
|
+
config_get_token_append: '/^next-hop-third-party$/'
|
|
479
|
+
config_set_append: '<state> next-hop-third-party'
|
|
480
|
+
default_value: true
|
|
481
|
+
|
|
482
|
+
prefix_list_in:
|
|
483
|
+
config_get_token_append: '/^prefix-list (\S+) in$/'
|
|
484
|
+
config_set_append: '<state> prefix-list <str> in'
|
|
485
|
+
default_value: ''
|
|
486
|
+
|
|
487
|
+
prefix_list_out:
|
|
488
|
+
config_get_token_append: '/^prefix-list (\S+) out$/'
|
|
489
|
+
config_set_append: '<state> prefix-list <str> out'
|
|
490
|
+
default_value: ''
|
|
491
|
+
|
|
492
|
+
route_map_in:
|
|
493
|
+
config_get_token_append: '/^route-map (\S+) in$/'
|
|
494
|
+
config_set_append: '<state> route-map <str> in'
|
|
495
|
+
default_value: ''
|
|
496
|
+
|
|
497
|
+
route_map_out:
|
|
498
|
+
config_get_token_append: '/^route-map (\S+) out$/'
|
|
499
|
+
config_set_append: '<state> route-map <str> out'
|
|
500
|
+
default_value: ''
|
|
501
|
+
|
|
502
|
+
route_reflector_client:
|
|
503
|
+
config_get_token_append: '/^route-reflector-client$/'
|
|
504
|
+
config_set_append: '<state> route-reflector-client'
|
|
505
|
+
default_value: false
|
|
506
|
+
|
|
507
|
+
send_community:
|
|
508
|
+
config_get_token_append: '/^send-community(?: .*)?/'
|
|
509
|
+
config_set_append: '<state> send-community <attr>'
|
|
510
|
+
default_value: 'none'
|
|
511
|
+
|
|
512
|
+
soft_reconfiguration_in:
|
|
513
|
+
config_get_token_append: '/^soft-reconfiguration inbound(?: always)?/'
|
|
514
|
+
config_set_append: '<state> soft-reconfiguration inbound <always>'
|
|
515
|
+
default_value: 'inherit'
|
|
516
|
+
|
|
517
|
+
soo:
|
|
518
|
+
config_get_token_append: '/^soo (.*)$/'
|
|
519
|
+
config_set_append: '<state> soo <str>'
|
|
520
|
+
default_value: ''
|
|
521
|
+
|
|
522
|
+
suppress_inactive:
|
|
523
|
+
config_get_token_append: '/^suppress-inactive$/'
|
|
524
|
+
config_set_append: '<state> suppress-inactive'
|
|
525
|
+
default_value: false
|
|
526
|
+
|
|
527
|
+
unsuppress_map:
|
|
528
|
+
config_get_token_append: '/^unsuppress-map (.*)$/'
|
|
529
|
+
config_set_append: '<state> unsuppress-map <str>'
|
|
530
|
+
default_value: ''
|
|
531
|
+
|
|
532
|
+
weight:
|
|
533
|
+
config_get_token_append: '/^weight (\d+)$/'
|
|
534
|
+
config_set_append: '<state> weight <int>'
|
|
535
|
+
default_value: false
|