cisco_node_utils 1.1.0 → 1.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +2 -1
- data/CHANGELOG.md +126 -1
- data/README.md +19 -12
- data/Rakefile +1 -0
- data/bin/git/hooks/commit-msg/enforce_style +8 -0
- data/cisco_node_utils.gemspec +4 -3
- data/docs/README-develop-best-practices.md +127 -109
- data/docs/README-develop-node-utils-APIs.md +47 -39
- data/docs/template-router.rb +3 -7
- data/lib/.rubocop.yml +4 -4
- data/lib/cisco_node_utils.rb +1 -1
- data/lib/cisco_node_utils/aaa_authentication_login.rb +96 -0
- data/lib/cisco_node_utils/aaa_authentication_login_service.rb +133 -0
- data/lib/cisco_node_utils/aaa_authorization_service.rb +150 -0
- data/lib/cisco_node_utils/ace.rb +196 -0
- data/lib/cisco_node_utils/acl.rb +100 -0
- data/lib/cisco_node_utils/bgp.rb +301 -163
- data/lib/cisco_node_utils/bgp_af.rb +187 -19
- data/lib/cisco_node_utils/bgp_neighbor.rb +18 -33
- data/lib/cisco_node_utils/bgp_neighbor_af.rb +25 -48
- data/lib/cisco_node_utils/cisco_cmn_utils.rb +23 -4
- data/lib/cisco_node_utils/cmd_ref/README_YAML.md +593 -0
- data/lib/cisco_node_utils/cmd_ref/aaa_auth_login_service.yaml +22 -0
- data/lib/cisco_node_utils/cmd_ref/aaa_authentication_login.yaml +31 -0
- data/lib/cisco_node_utils/cmd_ref/aaa_authorization_service.yaml +22 -0
- data/lib/cisco_node_utils/cmd_ref/acl.yaml +43 -0
- data/lib/cisco_node_utils/cmd_ref/bgp.yaml +242 -0
- data/lib/cisco_node_utils/cmd_ref/bgp_af.yaml +164 -0
- data/lib/cisco_node_utils/cmd_ref/bgp_neighbor.yaml +131 -0
- data/lib/cisco_node_utils/cmd_ref/bgp_neighbor_af.yaml +179 -0
- data/lib/cisco_node_utils/cmd_ref/dnsclient.yaml +34 -0
- data/lib/cisco_node_utils/cmd_ref/evpn_vni.yaml +42 -0
- data/lib/cisco_node_utils/cmd_ref/fabricpath.yaml +172 -0
- data/lib/cisco_node_utils/cmd_ref/fabricpath_topology.yaml +35 -0
- data/lib/cisco_node_utils/cmd_ref/feature.yaml +42 -0
- data/lib/cisco_node_utils/cmd_ref/fex.yaml +9 -0
- data/lib/cisco_node_utils/cmd_ref/images.yaml +7 -0
- data/lib/cisco_node_utils/cmd_ref/interface.yaml +339 -0
- data/lib/cisco_node_utils/cmd_ref/interface_channel_group.yaml +28 -0
- data/lib/cisco_node_utils/cmd_ref/interface_ospf.yaml +61 -0
- data/lib/cisco_node_utils/cmd_ref/interface_portchannel.yaml +54 -0
- data/lib/cisco_node_utils/cmd_ref/interface_service_vni.yaml +32 -0
- data/lib/cisco_node_utils/cmd_ref/inventory.yaml +45 -0
- data/lib/cisco_node_utils/cmd_ref/memory.yaml +13 -0
- data/lib/cisco_node_utils/cmd_ref/ntp_config.yaml +7 -0
- data/lib/cisco_node_utils/cmd_ref/ntp_server.yaml +14 -0
- data/lib/cisco_node_utils/cmd_ref/ospf.yaml +74 -0
- data/lib/cisco_node_utils/cmd_ref/overlay_global.yaml +33 -0
- data/lib/cisco_node_utils/cmd_ref/pim.yaml +40 -0
- data/lib/cisco_node_utils/cmd_ref/portchannel_global.yaml +69 -0
- data/lib/cisco_node_utils/cmd_ref/radius_global.yaml +25 -0
- data/lib/cisco_node_utils/cmd_ref/radius_server.yaml +64 -0
- data/lib/cisco_node_utils/cmd_ref/radius_server_group.yaml +14 -0
- data/lib/cisco_node_utils/cmd_ref/show_system.yaml +5 -0
- data/lib/cisco_node_utils/cmd_ref/show_version.yaml +72 -0
- data/lib/cisco_node_utils/cmd_ref/snmp_community.yaml +23 -0
- data/lib/cisco_node_utils/cmd_ref/snmp_group.yaml +7 -0
- data/lib/cisco_node_utils/cmd_ref/snmp_notification_receiver.yaml +50 -0
- data/lib/cisco_node_utils/cmd_ref/snmp_server.yaml +51 -0
- data/lib/cisco_node_utils/cmd_ref/snmp_user.yaml +55 -0
- data/lib/cisco_node_utils/cmd_ref/snmpnotification.yaml +11 -0
- data/lib/cisco_node_utils/cmd_ref/syslog_server.yaml +18 -0
- data/lib/cisco_node_utils/cmd_ref/syslog_settings.yaml +7 -0
- data/lib/cisco_node_utils/cmd_ref/system.yaml +6 -0
- data/lib/cisco_node_utils/cmd_ref/tacacs_server.yaml +49 -0
- data/lib/cisco_node_utils/cmd_ref/tacacs_server_group.yaml +33 -0
- data/lib/cisco_node_utils/cmd_ref/tacacs_server_host.yaml +35 -0
- data/lib/cisco_node_utils/cmd_ref/vdc.yaml +38 -0
- data/lib/cisco_node_utils/cmd_ref/virtual_service.yaml +6 -0
- data/lib/cisco_node_utils/cmd_ref/vlan.yaml +56 -0
- data/lib/cisco_node_utils/cmd_ref/vni.yaml +76 -0
- data/lib/cisco_node_utils/cmd_ref/vpc.yaml +197 -0
- data/lib/cisco_node_utils/cmd_ref/vrf.yaml +88 -0
- data/lib/cisco_node_utils/cmd_ref/vtp.yaml +38 -0
- data/lib/cisco_node_utils/cmd_ref/vxlan_vtep.yaml +60 -0
- data/lib/cisco_node_utils/cmd_ref/vxlan_vtep_vni.yaml +39 -0
- data/lib/cisco_node_utils/cmd_ref/yum.yaml +13 -0
- data/lib/cisco_node_utils/command_reference.rb +359 -187
- data/lib/cisco_node_utils/configparser_lib.rb +1 -1
- data/lib/cisco_node_utils/dns_domain.rb +19 -5
- data/lib/cisco_node_utils/domain_name.rb +4 -8
- data/lib/cisco_node_utils/evpn_vni.rb +157 -0
- data/lib/cisco_node_utils/fabricpath_global.rb +388 -0
- data/lib/cisco_node_utils/fabricpath_topology.rb +150 -0
- data/lib/cisco_node_utils/feature.rb +111 -0
- data/lib/cisco_node_utils/interface.rb +390 -97
- data/lib/cisco_node_utils/interface_channel_group.rb +124 -0
- data/lib/cisco_node_utils/interface_ospf.rb +11 -34
- data/lib/cisco_node_utils/interface_portchannel.rb +157 -0
- data/lib/cisco_node_utils/interface_service_vni.rb +132 -0
- data/lib/cisco_node_utils/name_server.rb +1 -1
- data/lib/cisco_node_utils/node.rb +55 -249
- data/lib/cisco_node_utils/node_util.rb +5 -1
- data/lib/cisco_node_utils/ntp_config.rb +2 -2
- data/lib/cisco_node_utils/ntp_server.rb +14 -5
- data/lib/cisco_node_utils/overlay_global.rb +153 -0
- data/lib/cisco_node_utils/pim.rb +124 -0
- data/lib/cisco_node_utils/pim_group_list.rb +108 -0
- data/lib/cisco_node_utils/pim_rp_address.rb +102 -0
- data/lib/cisco_node_utils/platform.rb +8 -9
- data/lib/cisco_node_utils/portchannel_global.rb +277 -0
- data/lib/cisco_node_utils/radius_global.rb +9 -19
- data/lib/cisco_node_utils/radius_server.rb +31 -41
- data/lib/cisco_node_utils/radius_server_group.rb +117 -0
- data/lib/cisco_node_utils/router_ospf.rb +1 -1
- data/lib/cisco_node_utils/router_ospf_vrf.rb +14 -19
- data/lib/cisco_node_utils/snmp_notification_receiver.rb +158 -0
- data/lib/cisco_node_utils/snmpcommunity.rb +3 -5
- data/lib/cisco_node_utils/snmpgroup.rb +1 -1
- data/lib/cisco_node_utils/snmpnotification.rb +57 -0
- data/lib/cisco_node_utils/snmpserver.rb +8 -17
- data/lib/cisco_node_utils/snmpuser.rb +67 -28
- data/lib/cisco_node_utils/syslog_server.rb +3 -9
- data/lib/cisco_node_utils/syslog_settings.rb +2 -10
- data/lib/cisco_node_utils/tacacs_server.rb +9 -14
- data/lib/cisco_node_utils/tacacs_server_group.rb +145 -0
- data/lib/cisco_node_utils/tacacs_server_host.rb +5 -9
- data/lib/cisco_node_utils/vdc.rb +88 -0
- data/lib/cisco_node_utils/version.rb +5 -2
- data/lib/cisco_node_utils/vlan.rb +71 -8
- data/lib/cisco_node_utils/vni.rb +227 -0
- data/lib/cisco_node_utils/vpc.rb +377 -0
- data/lib/cisco_node_utils/vrf.rb +60 -9
- data/lib/cisco_node_utils/vrf_af.rb +191 -0
- data/lib/cisco_node_utils/vtp.rb +8 -6
- data/lib/cisco_node_utils/vxlan_vtep.rb +151 -0
- data/lib/cisco_node_utils/vxlan_vtep_vni.rb +234 -0
- data/lib/cisco_node_utils/yum.rb +1 -1
- data/tests/.rubocop.yml +1 -1
- data/tests/basetest.rb +16 -7
- data/tests/ciscotest.rb +55 -13
- data/tests/cmd_config.yaml +2 -2
- data/tests/platform_info.rb +3 -2
- data/tests/test_aaa_authentication_login.rb +219 -0
- data/tests/test_aaa_authentication_login_service.rb +759 -0
- data/tests/test_aaa_authorization_service.rb +1041 -0
- data/tests/test_ace.rb +160 -0
- data/tests/test_acl.rb +176 -0
- data/tests/test_bgp_af.rb +269 -13
- data/tests/test_bgp_neighbor.rb +38 -40
- data/tests/test_bgp_neighbor_af.rb +92 -32
- data/tests/test_command_config.rb +5 -5
- data/tests/test_command_reference.rb +284 -101
- data/tests/test_dns_domain.rb +1 -1
- data/tests/test_domain_name.rb +1 -1
- data/tests/test_evpn_vni.rb +106 -0
- data/tests/test_fabricpath_global.rb +243 -0
- data/tests/test_fabricpath_topology.rb +98 -0
- data/tests/test_interface.rb +292 -74
- data/tests/test_interface_channel_group.rb +74 -0
- data/tests/test_interface_ospf.rb +9 -4
- data/tests/test_interface_portchannel.rb +105 -0
- data/tests/test_interface_service_vni.rb +232 -0
- data/tests/test_interface_svi.rb +77 -62
- data/tests/test_interface_switchport.rb +17 -5
- data/tests/test_name_server.rb +1 -1
- data/tests/test_node.rb +1 -1
- data/tests/test_node_ext.rb +10 -20
- data/tests/test_ntp_config.rb +1 -1
- data/tests/test_ntp_server.rb +18 -6
- data/tests/test_overlay_global.rb +102 -0
- data/tests/test_pim.rb +177 -0
- data/tests/test_pim_group_list.rb +181 -0
- data/tests/test_pim_rp_address.rb +153 -0
- data/tests/test_platform.rb +3 -3
- data/tests/test_portchannel_global.rb +202 -0
- data/tests/test_radius_global.rb +1 -1
- data/tests/test_radius_server.rb +92 -57
- data/tests/test_radius_server_group.rb +149 -0
- data/tests/test_router_bgp.rb +283 -112
- data/tests/test_router_ospf.rb +2 -2
- data/tests/test_router_ospf_vrf.rb +4 -4
- data/tests/test_snmp_notification_receiver.rb +167 -0
- data/tests/test_snmpcommunity.rb +1 -1
- data/tests/test_snmpgroup.rb +1 -1
- data/tests/test_snmpnotification.rb +72 -0
- data/tests/test_snmpserver.rb +29 -105
- data/tests/test_snmpuser.rb +32 -30
- data/tests/test_syslog_server.rb +36 -10
- data/tests/test_syslog_settings.rb +1 -1
- data/tests/test_tacacs_server.rb +1 -1
- data/tests/test_tacacs_server_group.rb +405 -0
- data/tests/test_tacacs_server_host.rb +1 -1
- data/tests/test_vdc.rb +78 -0
- data/tests/test_vlan.rb +74 -19
- data/tests/test_vlan_mt_full.rb +95 -0
- data/tests/test_vni.rb +106 -0
- data/tests/test_vpc.rb +361 -0
- data/tests/test_vrf.rb +172 -29
- data/tests/test_vtp.rb +1 -1
- data/tests/test_vxlan_vtep.rb +214 -0
- data/tests/test_vxlan_vtep_vni.rb +201 -0
- data/tests/test_yum.rb +1 -1
- metadata +120 -11
- data/lib/cisco_node_utils/README_YAML.md +0 -325
- data/lib/cisco_node_utils/command_reference_common.yaml +0 -1051
- data/lib/cisco_node_utils/command_reference_common_bgp.yaml +0 -535
- data/lib/cisco_node_utils/command_reference_n3064.yaml +0 -13
- data/lib/cisco_node_utils/command_reference_n7k.yaml +0 -52
- data/lib/cisco_node_utils/command_reference_n9k.yaml +0 -26
- data/tests/platform_info.yaml +0 -10
@@ -0,0 +1,22 @@
|
|
1
|
+
# aaa_auth_login_service
|
2
|
+
---
|
3
|
+
groups:
|
4
|
+
config_get: "show aaa authentication"
|
5
|
+
config_get_token: ["TABLE_AuthenMethods", "ROW_AuthenMethods"]
|
6
|
+
# this set is only used when there are groups to configure
|
7
|
+
config_set: "%s aaa authentication login %s group %s %s"
|
8
|
+
default_value: []
|
9
|
+
multiple:
|
10
|
+
|
11
|
+
method:
|
12
|
+
auto_default: false
|
13
|
+
config_get: "show aaa authentication"
|
14
|
+
config_get_token: '/^\s*%s:.*(local|none)\s*$/'
|
15
|
+
# this set is only used when there are no groups to configure
|
16
|
+
config_set: "%s aaa authentication login %s %s"
|
17
|
+
default_value: :local
|
18
|
+
|
19
|
+
services:
|
20
|
+
config_get: "show run aaa all"
|
21
|
+
config_get_token: '/^aaa authentication login (\S+) (?:none|group|local)/'
|
22
|
+
multiple:
|
@@ -0,0 +1,31 @@
|
|
1
|
+
# aaa_authentication_login
|
2
|
+
---
|
3
|
+
ascii_authentication:
|
4
|
+
config_get: "show run aaa all"
|
5
|
+
config_get_token: '/^aaa authentication login ascii-authentication/'
|
6
|
+
config_set: "%s aaa authentication login ascii-authentication"
|
7
|
+
default_value: false
|
8
|
+
|
9
|
+
chap:
|
10
|
+
config_get: "show run aaa all"
|
11
|
+
config_get_token: '/^aaa authentication login chap enable/'
|
12
|
+
config_set: "%s aaa authentication login chap enable"
|
13
|
+
default_value: false
|
14
|
+
|
15
|
+
error_display:
|
16
|
+
config_get: "show run aaa all"
|
17
|
+
config_get_token: '/^aaa authentication login error-enable/'
|
18
|
+
config_set: "%s aaa authentication login error-enable"
|
19
|
+
default_value: false
|
20
|
+
|
21
|
+
mschap:
|
22
|
+
config_get: "show run aaa all"
|
23
|
+
config_get_token: '/^aaa authentication login mschap enable/'
|
24
|
+
config_set: "%s aaa authentication login mschap enable"
|
25
|
+
default_value: false
|
26
|
+
|
27
|
+
mschapv2:
|
28
|
+
config_get: "show run aaa all"
|
29
|
+
config_get_token: '/^aaa authentication login mschapv2 enable/'
|
30
|
+
config_set: "%s aaa authentication login mschapv2 enable"
|
31
|
+
default_value: false
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# aaa_authorization_service
|
2
|
+
---
|
3
|
+
groups:
|
4
|
+
config_get: "show aaa authorization all"
|
5
|
+
config_get_token: ["TABLE_cmd_methods", "ROW_cmd_methods"]
|
6
|
+
# this set is only used when there are groups to configure
|
7
|
+
config_set: "%s aaa authorization %s %s group %s %s"
|
8
|
+
default_value: []
|
9
|
+
multiple:
|
10
|
+
|
11
|
+
method:
|
12
|
+
auto_default: false
|
13
|
+
config_get: "show aaa authorization all"
|
14
|
+
config_get_token: '/^\s+%s authorization for %s:.*(local) ?$/'
|
15
|
+
# this set is only used when there are no groups to configure
|
16
|
+
config_set: "%s aaa authorization %s %s local"
|
17
|
+
default_value: :local
|
18
|
+
|
19
|
+
services:
|
20
|
+
config_get: "show run aaa all"
|
21
|
+
config_get_token: '/^aaa authorization (\S+) (\S+) .*(?:local)? ?$/'
|
22
|
+
multiple:
|
@@ -0,0 +1,43 @@
|
|
1
|
+
# Command Reference Common ACL
|
2
|
+
#
|
3
|
+
# For documentation please see:
|
4
|
+
# - README_YAML.md
|
5
|
+
#
|
6
|
+
---
|
7
|
+
_template:
|
8
|
+
config_get: 'show run aclmgr'
|
9
|
+
config_get_token: '/^<afi> access-list <acl_name>$/'
|
10
|
+
config_set: '<afi> access-list <acl_name>'
|
11
|
+
|
12
|
+
ace:
|
13
|
+
config_get_token_append: '/^<seqno> .+$/'
|
14
|
+
config_set_append: '<state> <seqno> <action> <proto> <src_addr> <src_port> <dst_addr> <dst_port>'
|
15
|
+
|
16
|
+
ace_destroy:
|
17
|
+
config_set_append: 'no <seqno>'
|
18
|
+
|
19
|
+
ace_remark:
|
20
|
+
config_set_append: '<state> <seqno> remark <remark>'
|
21
|
+
|
22
|
+
acl:
|
23
|
+
config_get_token: '/^<afi> access-list (\S+)$/'
|
24
|
+
config_set: '<state> <afi> access-list <acl_name>'
|
25
|
+
|
26
|
+
all_aces:
|
27
|
+
multiple:
|
28
|
+
config_get_token_append: '/^(\d+) .+$/'
|
29
|
+
|
30
|
+
all_acls:
|
31
|
+
multiple:
|
32
|
+
config_get_token: '/^<afi> access-list (\S+)$/'
|
33
|
+
|
34
|
+
fragments:
|
35
|
+
config_get_token_append: '/fragments (\S+)$/'
|
36
|
+
config_set_append: '<state> fragments <action>'
|
37
|
+
default_value: ~
|
38
|
+
|
39
|
+
stats_per_entry:
|
40
|
+
kind: boolean
|
41
|
+
config_get_token_append: '/statistics per-entry$/'
|
42
|
+
config_set_append: '<state> statistics per-entry'
|
43
|
+
default_value: false
|
@@ -0,0 +1,242 @@
|
|
1
|
+
# bgp.yaml
|
2
|
+
---
|
3
|
+
_template:
|
4
|
+
config_get: "show running bgp all"
|
5
|
+
config_get_token: '/^router bgp <asnum>$/'
|
6
|
+
config_get_token_append:
|
7
|
+
- '/^vrf <vrf>$/'
|
8
|
+
config_set: "router bgp <asnum>"
|
9
|
+
config_set_append:
|
10
|
+
- "vrf <vrf>"
|
11
|
+
|
12
|
+
address_family:
|
13
|
+
config_set_append: '<state> address-family <afi> <safi>'
|
14
|
+
|
15
|
+
bestpath_always_compare_med:
|
16
|
+
kind: boolean
|
17
|
+
config_get_token_append: '/^bestpath always-compare-med$/'
|
18
|
+
config_set_append: '<state> bestpath always-compare-med'
|
19
|
+
default_value: false
|
20
|
+
|
21
|
+
bestpath_aspath_multipath_relax:
|
22
|
+
kind: boolean
|
23
|
+
config_get_token_append: '/^bestpath as-path multipath-relax$/'
|
24
|
+
config_set_append: '<state> bestpath as-path multipath-relax'
|
25
|
+
default_value: false
|
26
|
+
|
27
|
+
bestpath_compare_routerid:
|
28
|
+
kind: boolean
|
29
|
+
config_get_token_append: '/^bestpath compare-routerid$/'
|
30
|
+
config_set_append: '<state> bestpath compare-routerid'
|
31
|
+
default_value: false
|
32
|
+
|
33
|
+
bestpath_cost_community_ignore:
|
34
|
+
kind: boolean
|
35
|
+
config_get_token_append: '/^bestpath cost-community ignore$/'
|
36
|
+
config_set_append: '<state> bestpath cost-community ignore'
|
37
|
+
default_value: false
|
38
|
+
|
39
|
+
bestpath_med_confed:
|
40
|
+
kind: boolean
|
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
|
+
kind: boolean
|
47
|
+
config_get_token_append: '/^bestpath med missing-as-worst$/'
|
48
|
+
config_set_append: '<state> bestpath med missing-as-worst'
|
49
|
+
default_value: false
|
50
|
+
|
51
|
+
bestpath_med_non_deterministic:
|
52
|
+
kind: boolean
|
53
|
+
config_get_token_append: '/^bestpath med non-deterministic$/'
|
54
|
+
config_set_append: '<state> bestpath med non-deterministic'
|
55
|
+
default_value: false
|
56
|
+
|
57
|
+
cluster_id:
|
58
|
+
config_get_token_append: '/^cluster-id (\S+)$/'
|
59
|
+
config_set_append: '<state> cluster-id <id>'
|
60
|
+
default_value: ""
|
61
|
+
|
62
|
+
confederation_id:
|
63
|
+
config_get_token_append: '/^confederation identifier (\d+|\d+.\d+)$/'
|
64
|
+
config_set_append: '<state> confederation identifier <id>'
|
65
|
+
default_value: ""
|
66
|
+
|
67
|
+
confederation_peers:
|
68
|
+
config_get_token_append: '/^confederation peers (.*)$/'
|
69
|
+
config_set_append: '<state> confederation peers <peer_list>'
|
70
|
+
default_value: ""
|
71
|
+
|
72
|
+
create_destroy_neighbor:
|
73
|
+
config_set_append: '<state> neighbor <nbr>'
|
74
|
+
|
75
|
+
disable_policy_batching:
|
76
|
+
config_get_token_append: '/^disable-policy-batching$/'
|
77
|
+
config_set_append: '<state> disable-policy-batching'
|
78
|
+
default_value: false
|
79
|
+
|
80
|
+
disable_policy_batching_ipv4:
|
81
|
+
_exclude: [/N(5|6|7)/]
|
82
|
+
config_get_token_append: '/^disable-policy-batching ipv4 prefix-list (\S+)$/'
|
83
|
+
config_set_append: '<state> disable-policy-batching ipv4 prefix-list <prefix_list>'
|
84
|
+
default_value: ""
|
85
|
+
|
86
|
+
disable_policy_batching_ipv6:
|
87
|
+
_exclude: [/N(5|6|7)/]
|
88
|
+
config_get_token_append: '/^disable-policy-batching ipv6 prefix-list (\S+)$/'
|
89
|
+
config_set_append: '<state> disable-policy-batching ipv6 prefix-list <prefix_list>'
|
90
|
+
default_value: ""
|
91
|
+
|
92
|
+
enforce_first_as:
|
93
|
+
kind: boolean
|
94
|
+
config_get_token_append: '/^(no )?enforce-first-as$/'
|
95
|
+
config_set_append: '<state> enforce-first-as'
|
96
|
+
default_value: true
|
97
|
+
|
98
|
+
event_history_cli:
|
99
|
+
config_get_token_append: '/^(no )?event-history cli(?: size (\S+))?$/'
|
100
|
+
config_set_append: '<state> event-history cli <size>'
|
101
|
+
default_value: 'size_small'
|
102
|
+
|
103
|
+
event_history_detail:
|
104
|
+
config_get_token_append: '/^(no )?event-history detail(?: size (\S+))?$/'
|
105
|
+
config_set_append: '<state> event-history detail <size>'
|
106
|
+
auto_default: false
|
107
|
+
default_value: 'size_disable'
|
108
|
+
|
109
|
+
event_history_events:
|
110
|
+
config_get_token_append: '/^(no )?event-history events(?: size (\S+))?$/'
|
111
|
+
config_set_append: '<state> event-history events <size>'
|
112
|
+
default_value: 'size_small'
|
113
|
+
|
114
|
+
event_history_periodic:
|
115
|
+
config_get_token_append: '/^(no )?event-history periodic(?: size (\S+))?$/'
|
116
|
+
config_set_append: '<state> event-history periodic <size>'
|
117
|
+
default_value: 'size_small'
|
118
|
+
|
119
|
+
fast_external_fallover:
|
120
|
+
kind: boolean
|
121
|
+
config_get_token_append: '/^(no )?fast-external-fallover$/'
|
122
|
+
config_set_append: '<state> fast-external-fallover'
|
123
|
+
default_value: true
|
124
|
+
|
125
|
+
flush_routes:
|
126
|
+
kind: boolean
|
127
|
+
config_get_token_append: '/^flush-routes$/'
|
128
|
+
config_set_append: '<state> flush-routes'
|
129
|
+
default_value: false
|
130
|
+
|
131
|
+
graceful_restart:
|
132
|
+
kind: boolean
|
133
|
+
config_get_token_append: '/^(no )?graceful-restart$/'
|
134
|
+
config_set_append: '<state> graceful-restart'
|
135
|
+
default_value: true
|
136
|
+
|
137
|
+
graceful_restart_helper:
|
138
|
+
kind: boolean
|
139
|
+
config_get_token_append: '/^graceful-restart-helper$/'
|
140
|
+
config_set_append: '<state> graceful-restart-helper'
|
141
|
+
default_value: false
|
142
|
+
|
143
|
+
graceful_restart_timers_restart:
|
144
|
+
kind: int
|
145
|
+
config_get_token_append: '/^graceful-restart restart-time (\d+)$/'
|
146
|
+
config_set_append: '<state> graceful-restart restart-time <seconds>'
|
147
|
+
default_value: 120
|
148
|
+
|
149
|
+
graceful_restart_timers_stalepath_time:
|
150
|
+
kind: int
|
151
|
+
config_get_token_append: '/^graceful-restart stalepath-time (\d+)$/'
|
152
|
+
config_set_append: '<state> graceful-restart stalepath-time <seconds>'
|
153
|
+
default_value: 300
|
154
|
+
|
155
|
+
isolate:
|
156
|
+
kind: boolean
|
157
|
+
config_get_token_append: '/^isolate$/'
|
158
|
+
config_set_append: '<state> isolate'
|
159
|
+
default_value: false
|
160
|
+
|
161
|
+
log_neighbor_changes:
|
162
|
+
kind: boolean
|
163
|
+
config_get_token_append: '/^log-neighbor-changes$/'
|
164
|
+
config_set_append: '<state> log-neighbor-changes'
|
165
|
+
default_value: false
|
166
|
+
|
167
|
+
maxas_limit:
|
168
|
+
kind: int
|
169
|
+
config_get_token_append: '/^maxas-limit (\d+)$/'
|
170
|
+
config_set_append: '<state> maxas-limit <limit>'
|
171
|
+
default_value: false
|
172
|
+
|
173
|
+
neighbor_down_fib_accelerate:
|
174
|
+
_exclude: [/N(5|6|7)/]
|
175
|
+
kind: boolean
|
176
|
+
config_get_token_append: '/^neighbor-down fib-accelerate$/'
|
177
|
+
config_set_append: '<state> neighbor-down fib-accelerate'
|
178
|
+
default_value: false
|
179
|
+
|
180
|
+
reconnect_interval:
|
181
|
+
_exclude: [/N(5|6|7)/]
|
182
|
+
kind: int
|
183
|
+
config_get_token_append: '/^reconnect-interval (\d+)$/'
|
184
|
+
config_set_append: '<state> reconnect-interval <seconds>'
|
185
|
+
default_value: 60
|
186
|
+
|
187
|
+
route_distinguisher:
|
188
|
+
# This property is also supported by vrf.yaml
|
189
|
+
config_get_token: ['/^vrf context <vrf>$/i', '/^rd (\S+)$/']
|
190
|
+
config_set: ["vrf context <vrf>", "<state> rd <rd>"]
|
191
|
+
default_value: ""
|
192
|
+
|
193
|
+
router:
|
194
|
+
config_get: "show running bgp"
|
195
|
+
config_get_token: '/^router bgp ([\d.]+)$/'
|
196
|
+
config_set: "<state> router bgp <asnum>"
|
197
|
+
|
198
|
+
router_id:
|
199
|
+
config_get_token_append: '/^router-id (\S+)$/'
|
200
|
+
config_set_append: '<state> router-id <id>'
|
201
|
+
default_value: ""
|
202
|
+
|
203
|
+
shutdown:
|
204
|
+
# Shutdown only applies to global bgp
|
205
|
+
kind: boolean
|
206
|
+
config_get: "show running bgp"
|
207
|
+
config_get_token: ['/^router bgp %s$/i', '/^shutdown$/']
|
208
|
+
config_set: ["router bgp <asnum>", "<state> shutdown"]
|
209
|
+
default_value: false
|
210
|
+
|
211
|
+
suppress_fib_pending:
|
212
|
+
kind: boolean
|
213
|
+
config_get_token_append: '/^suppress-fib-pending$/'
|
214
|
+
config_set_append: '<state> suppress-fib-pending'
|
215
|
+
default_value: false
|
216
|
+
|
217
|
+
timer_bestpath_limit:
|
218
|
+
kind: int
|
219
|
+
config_get_token_append: '/^timers bestpath-limit (\d+)(?: always)?$/'
|
220
|
+
config_set_append: '<state> timers bestpath-limit <seconds>'
|
221
|
+
default_value: 300
|
222
|
+
|
223
|
+
timer_bestpath_limit_always:
|
224
|
+
kind: boolean
|
225
|
+
config_get_token_append: '/^timers bestpath-limit \d+ always$/'
|
226
|
+
config_set_append: '<state> timers bestpath-limit <seconds> always'
|
227
|
+
default_value: false
|
228
|
+
|
229
|
+
timer_bgp_hold:
|
230
|
+
default_value: 180
|
231
|
+
|
232
|
+
timer_bgp_keepalive:
|
233
|
+
default_value: 60
|
234
|
+
|
235
|
+
timer_bgp_keepalive_hold:
|
236
|
+
config_get_token_append: '/^timers bgp (\d+) (\d+)$/'
|
237
|
+
config_set_append: '<state> timers bgp <keepalive> <hold>'
|
238
|
+
|
239
|
+
vrf:
|
240
|
+
multiple: true
|
241
|
+
config_get_token_append: '/^vrf\s+(\S+)$/'
|
242
|
+
config_set: ["router bgp <asnum>", "<state> vrf <vrf>", "end"]
|
@@ -0,0 +1,164 @@
|
|
1
|
+
# bgp_af.yaml
|
2
|
+
---
|
3
|
+
_template:
|
4
|
+
config_get: 'show running bgp all'
|
5
|
+
config_get_token: '/^router bgp <asnum>$/'
|
6
|
+
config_get_token_append:
|
7
|
+
- '/^vrf <vrf>$/'
|
8
|
+
- '/^address-family <afi> <safi>$/'
|
9
|
+
config_set: "router bgp <asnum>"
|
10
|
+
config_set_append:
|
11
|
+
- 'vrf <vrf>'
|
12
|
+
- 'address-family <afi> <safi>'
|
13
|
+
|
14
|
+
additional_paths_install:
|
15
|
+
kind: boolean
|
16
|
+
config_get_token_append: '/^additional-paths install backup$/'
|
17
|
+
config_set_append: '<state> additional-paths install backup'
|
18
|
+
default_value: false
|
19
|
+
|
20
|
+
additional_paths_receive:
|
21
|
+
kind: boolean
|
22
|
+
config_get_token_append: '/^additional-paths receive$/'
|
23
|
+
config_set_append: '<state> additional-paths receive'
|
24
|
+
default_value: false
|
25
|
+
|
26
|
+
additional_paths_selection:
|
27
|
+
kind: string
|
28
|
+
config_get_token_append: '/^additional-paths selection route-map (.*)$/'
|
29
|
+
config_set_append: '<state> additional-paths selection route-map <route_map>'
|
30
|
+
default_value: ""
|
31
|
+
|
32
|
+
additional_paths_send:
|
33
|
+
kind: boolean
|
34
|
+
config_get_token_append: '/^additional-paths send$/'
|
35
|
+
config_set_append: '<state> additional-paths send'
|
36
|
+
default_value: false
|
37
|
+
|
38
|
+
advertise_l2vpn_evpn:
|
39
|
+
_exclude: [/N(3|6)/]
|
40
|
+
kind: boolean
|
41
|
+
config_get_token_append: '/^advertise l2vpn evpn$/'
|
42
|
+
config_set_append: '<state> advertise l2vpn evpn'
|
43
|
+
default_value: false
|
44
|
+
|
45
|
+
all_afs:
|
46
|
+
multiple: true
|
47
|
+
config_get_token_append: '/^address-family (\S+) (\S+)$/'
|
48
|
+
|
49
|
+
client_to_client:
|
50
|
+
kind: boolean
|
51
|
+
config_get_token_append: '/^(no )?client-to-client reflection$/'
|
52
|
+
config_set_append: '<state> client-to-client reflection'
|
53
|
+
default_value: true
|
54
|
+
|
55
|
+
dampen_igp_metric:
|
56
|
+
config_get_token_append: '/^(no )?dampen-igp-metric *(\d+)?$/'
|
57
|
+
config_set_append: '<state> dampen-igp-metric <num>'
|
58
|
+
default_value: 600
|
59
|
+
|
60
|
+
dampening:
|
61
|
+
auto_default: false
|
62
|
+
config_get_token_append: '/^dampening(?: (?:(\d+) (\d+) (\d+) (\d+)|route-map (.*)))?$/'
|
63
|
+
config_set_append: '<state> dampening <route_map> <decay> <reuse> <suppress> <suppress_max>'
|
64
|
+
default_value: ""
|
65
|
+
|
66
|
+
dampening_half_time:
|
67
|
+
default_value: 15
|
68
|
+
|
69
|
+
dampening_max_suppress_time:
|
70
|
+
default_value: 45
|
71
|
+
|
72
|
+
dampening_reuse_time:
|
73
|
+
default_value: 750
|
74
|
+
|
75
|
+
dampening_routemap:
|
76
|
+
default_value: ""
|
77
|
+
|
78
|
+
dampening_state:
|
79
|
+
default_value: true
|
80
|
+
|
81
|
+
dampening_suppress_time:
|
82
|
+
default_value: 2000
|
83
|
+
|
84
|
+
default_information:
|
85
|
+
kind: boolean
|
86
|
+
config_get_token_append: '/^default-information originate$/'
|
87
|
+
config_set_append: '<state> default-information originate'
|
88
|
+
default_value: false
|
89
|
+
|
90
|
+
default_metric:
|
91
|
+
kind: int
|
92
|
+
config_get_token_append: '/^default-metric (\d+)$/'
|
93
|
+
config_set_append: '<state> default-metric <num>'
|
94
|
+
default_value: false
|
95
|
+
|
96
|
+
distance:
|
97
|
+
config_get_token_append: '/^distance (\d+) (\d+) (\d+)$/'
|
98
|
+
config_set_append: '<state> distance <ebgp> <ibgp> <local>'
|
99
|
+
|
100
|
+
distance_ebgp:
|
101
|
+
default_value: 20
|
102
|
+
|
103
|
+
distance_ibgp:
|
104
|
+
default_value: 200
|
105
|
+
|
106
|
+
distance_local:
|
107
|
+
default_value: 220
|
108
|
+
|
109
|
+
inject_map:
|
110
|
+
multiple: true
|
111
|
+
config_get_token_append: '/^inject-map (\S+) exist-map (\S+) *(copy-attributes)?$/'
|
112
|
+
config_set_append: '<state> inject-map <inject> exist-map <exist> <copy>'
|
113
|
+
default_value: []
|
114
|
+
|
115
|
+
maximum_paths:
|
116
|
+
kind: int
|
117
|
+
config_get_token_append: '/^maximum-paths (\d+)$/'
|
118
|
+
config_set_append: '<state> maximum-paths <num>'
|
119
|
+
default_value: 1
|
120
|
+
|
121
|
+
maximum_paths_ibgp:
|
122
|
+
kind: int
|
123
|
+
config_get_token_append: '/^maximum-paths ibgp (\d+)$/'
|
124
|
+
config_set_append: '<state> maximum-paths ibgp <num>'
|
125
|
+
default_value: 1
|
126
|
+
|
127
|
+
network:
|
128
|
+
multiple: true
|
129
|
+
config_get_token_append: '/^network (\S+) ?(?:route-map )?(\S+)?$/'
|
130
|
+
config_set_append: '<state> network <network> <route_map>'
|
131
|
+
default_value: []
|
132
|
+
|
133
|
+
next_hop_route_map:
|
134
|
+
config_get_token_append: '/^nexthop route-map (.*)$/'
|
135
|
+
config_set_append: '<state> nexthop route-map <route_map>'
|
136
|
+
default_value: ""
|
137
|
+
|
138
|
+
redistribute:
|
139
|
+
multiple: true
|
140
|
+
config_get_token_append: '/^redistribute (\S+ ?\S+?) ?(?:route-map (\S+))?$/'
|
141
|
+
config_set_append: '<state> redistribute <protocol>'
|
142
|
+
default_value: []
|
143
|
+
|
144
|
+
redistribute_policy:
|
145
|
+
# route-map/policy is optional on some platforms, required on others
|
146
|
+
config_set_append: '<state> redistribute <protocol> route-map <policy>'
|
147
|
+
|
148
|
+
suppress_inactive:
|
149
|
+
kind: boolean
|
150
|
+
config_get_token_append: '/^suppress-inactive$/'
|
151
|
+
config_set_append: '<state> suppress-inactive'
|
152
|
+
default_value: false
|
153
|
+
|
154
|
+
table_map:
|
155
|
+
kind: string
|
156
|
+
config_get_token_append: '/^table-map (\S+)(?: filter)?$/'
|
157
|
+
config_set_append: '<state> table-map <map>'
|
158
|
+
default_value: ""
|
159
|
+
|
160
|
+
table_map_filter:
|
161
|
+
kind: boolean
|
162
|
+
config_get_token_append: '/^table-map \S+ filter$/'
|
163
|
+
config_set_append: '<state> table-map <map> filter'
|
164
|
+
default_value: false
|