cisco_node_utils 1.1.0 → 1.2.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.
Files changed (202) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +2 -1
  3. data/CHANGELOG.md +126 -1
  4. data/README.md +19 -12
  5. data/Rakefile +1 -0
  6. data/bin/git/hooks/commit-msg/enforce_style +8 -0
  7. data/cisco_node_utils.gemspec +4 -3
  8. data/docs/README-develop-best-practices.md +127 -109
  9. data/docs/README-develop-node-utils-APIs.md +47 -39
  10. data/docs/template-router.rb +3 -7
  11. data/lib/.rubocop.yml +4 -4
  12. data/lib/cisco_node_utils.rb +1 -1
  13. data/lib/cisco_node_utils/aaa_authentication_login.rb +96 -0
  14. data/lib/cisco_node_utils/aaa_authentication_login_service.rb +133 -0
  15. data/lib/cisco_node_utils/aaa_authorization_service.rb +150 -0
  16. data/lib/cisco_node_utils/ace.rb +196 -0
  17. data/lib/cisco_node_utils/acl.rb +100 -0
  18. data/lib/cisco_node_utils/bgp.rb +301 -163
  19. data/lib/cisco_node_utils/bgp_af.rb +187 -19
  20. data/lib/cisco_node_utils/bgp_neighbor.rb +18 -33
  21. data/lib/cisco_node_utils/bgp_neighbor_af.rb +25 -48
  22. data/lib/cisco_node_utils/cisco_cmn_utils.rb +23 -4
  23. data/lib/cisco_node_utils/cmd_ref/README_YAML.md +593 -0
  24. data/lib/cisco_node_utils/cmd_ref/aaa_auth_login_service.yaml +22 -0
  25. data/lib/cisco_node_utils/cmd_ref/aaa_authentication_login.yaml +31 -0
  26. data/lib/cisco_node_utils/cmd_ref/aaa_authorization_service.yaml +22 -0
  27. data/lib/cisco_node_utils/cmd_ref/acl.yaml +43 -0
  28. data/lib/cisco_node_utils/cmd_ref/bgp.yaml +242 -0
  29. data/lib/cisco_node_utils/cmd_ref/bgp_af.yaml +164 -0
  30. data/lib/cisco_node_utils/cmd_ref/bgp_neighbor.yaml +131 -0
  31. data/lib/cisco_node_utils/cmd_ref/bgp_neighbor_af.yaml +179 -0
  32. data/lib/cisco_node_utils/cmd_ref/dnsclient.yaml +34 -0
  33. data/lib/cisco_node_utils/cmd_ref/evpn_vni.yaml +42 -0
  34. data/lib/cisco_node_utils/cmd_ref/fabricpath.yaml +172 -0
  35. data/lib/cisco_node_utils/cmd_ref/fabricpath_topology.yaml +35 -0
  36. data/lib/cisco_node_utils/cmd_ref/feature.yaml +42 -0
  37. data/lib/cisco_node_utils/cmd_ref/fex.yaml +9 -0
  38. data/lib/cisco_node_utils/cmd_ref/images.yaml +7 -0
  39. data/lib/cisco_node_utils/cmd_ref/interface.yaml +339 -0
  40. data/lib/cisco_node_utils/cmd_ref/interface_channel_group.yaml +28 -0
  41. data/lib/cisco_node_utils/cmd_ref/interface_ospf.yaml +61 -0
  42. data/lib/cisco_node_utils/cmd_ref/interface_portchannel.yaml +54 -0
  43. data/lib/cisco_node_utils/cmd_ref/interface_service_vni.yaml +32 -0
  44. data/lib/cisco_node_utils/cmd_ref/inventory.yaml +45 -0
  45. data/lib/cisco_node_utils/cmd_ref/memory.yaml +13 -0
  46. data/lib/cisco_node_utils/cmd_ref/ntp_config.yaml +7 -0
  47. data/lib/cisco_node_utils/cmd_ref/ntp_server.yaml +14 -0
  48. data/lib/cisco_node_utils/cmd_ref/ospf.yaml +74 -0
  49. data/lib/cisco_node_utils/cmd_ref/overlay_global.yaml +33 -0
  50. data/lib/cisco_node_utils/cmd_ref/pim.yaml +40 -0
  51. data/lib/cisco_node_utils/cmd_ref/portchannel_global.yaml +69 -0
  52. data/lib/cisco_node_utils/cmd_ref/radius_global.yaml +25 -0
  53. data/lib/cisco_node_utils/cmd_ref/radius_server.yaml +64 -0
  54. data/lib/cisco_node_utils/cmd_ref/radius_server_group.yaml +14 -0
  55. data/lib/cisco_node_utils/cmd_ref/show_system.yaml +5 -0
  56. data/lib/cisco_node_utils/cmd_ref/show_version.yaml +72 -0
  57. data/lib/cisco_node_utils/cmd_ref/snmp_community.yaml +23 -0
  58. data/lib/cisco_node_utils/cmd_ref/snmp_group.yaml +7 -0
  59. data/lib/cisco_node_utils/cmd_ref/snmp_notification_receiver.yaml +50 -0
  60. data/lib/cisco_node_utils/cmd_ref/snmp_server.yaml +51 -0
  61. data/lib/cisco_node_utils/cmd_ref/snmp_user.yaml +55 -0
  62. data/lib/cisco_node_utils/cmd_ref/snmpnotification.yaml +11 -0
  63. data/lib/cisco_node_utils/cmd_ref/syslog_server.yaml +18 -0
  64. data/lib/cisco_node_utils/cmd_ref/syslog_settings.yaml +7 -0
  65. data/lib/cisco_node_utils/cmd_ref/system.yaml +6 -0
  66. data/lib/cisco_node_utils/cmd_ref/tacacs_server.yaml +49 -0
  67. data/lib/cisco_node_utils/cmd_ref/tacacs_server_group.yaml +33 -0
  68. data/lib/cisco_node_utils/cmd_ref/tacacs_server_host.yaml +35 -0
  69. data/lib/cisco_node_utils/cmd_ref/vdc.yaml +38 -0
  70. data/lib/cisco_node_utils/cmd_ref/virtual_service.yaml +6 -0
  71. data/lib/cisco_node_utils/cmd_ref/vlan.yaml +56 -0
  72. data/lib/cisco_node_utils/cmd_ref/vni.yaml +76 -0
  73. data/lib/cisco_node_utils/cmd_ref/vpc.yaml +197 -0
  74. data/lib/cisco_node_utils/cmd_ref/vrf.yaml +88 -0
  75. data/lib/cisco_node_utils/cmd_ref/vtp.yaml +38 -0
  76. data/lib/cisco_node_utils/cmd_ref/vxlan_vtep.yaml +60 -0
  77. data/lib/cisco_node_utils/cmd_ref/vxlan_vtep_vni.yaml +39 -0
  78. data/lib/cisco_node_utils/cmd_ref/yum.yaml +13 -0
  79. data/lib/cisco_node_utils/command_reference.rb +359 -187
  80. data/lib/cisco_node_utils/configparser_lib.rb +1 -1
  81. data/lib/cisco_node_utils/dns_domain.rb +19 -5
  82. data/lib/cisco_node_utils/domain_name.rb +4 -8
  83. data/lib/cisco_node_utils/evpn_vni.rb +157 -0
  84. data/lib/cisco_node_utils/fabricpath_global.rb +388 -0
  85. data/lib/cisco_node_utils/fabricpath_topology.rb +150 -0
  86. data/lib/cisco_node_utils/feature.rb +111 -0
  87. data/lib/cisco_node_utils/interface.rb +390 -97
  88. data/lib/cisco_node_utils/interface_channel_group.rb +124 -0
  89. data/lib/cisco_node_utils/interface_ospf.rb +11 -34
  90. data/lib/cisco_node_utils/interface_portchannel.rb +157 -0
  91. data/lib/cisco_node_utils/interface_service_vni.rb +132 -0
  92. data/lib/cisco_node_utils/name_server.rb +1 -1
  93. data/lib/cisco_node_utils/node.rb +55 -249
  94. data/lib/cisco_node_utils/node_util.rb +5 -1
  95. data/lib/cisco_node_utils/ntp_config.rb +2 -2
  96. data/lib/cisco_node_utils/ntp_server.rb +14 -5
  97. data/lib/cisco_node_utils/overlay_global.rb +153 -0
  98. data/lib/cisco_node_utils/pim.rb +124 -0
  99. data/lib/cisco_node_utils/pim_group_list.rb +108 -0
  100. data/lib/cisco_node_utils/pim_rp_address.rb +102 -0
  101. data/lib/cisco_node_utils/platform.rb +8 -9
  102. data/lib/cisco_node_utils/portchannel_global.rb +277 -0
  103. data/lib/cisco_node_utils/radius_global.rb +9 -19
  104. data/lib/cisco_node_utils/radius_server.rb +31 -41
  105. data/lib/cisco_node_utils/radius_server_group.rb +117 -0
  106. data/lib/cisco_node_utils/router_ospf.rb +1 -1
  107. data/lib/cisco_node_utils/router_ospf_vrf.rb +14 -19
  108. data/lib/cisco_node_utils/snmp_notification_receiver.rb +158 -0
  109. data/lib/cisco_node_utils/snmpcommunity.rb +3 -5
  110. data/lib/cisco_node_utils/snmpgroup.rb +1 -1
  111. data/lib/cisco_node_utils/snmpnotification.rb +57 -0
  112. data/lib/cisco_node_utils/snmpserver.rb +8 -17
  113. data/lib/cisco_node_utils/snmpuser.rb +67 -28
  114. data/lib/cisco_node_utils/syslog_server.rb +3 -9
  115. data/lib/cisco_node_utils/syslog_settings.rb +2 -10
  116. data/lib/cisco_node_utils/tacacs_server.rb +9 -14
  117. data/lib/cisco_node_utils/tacacs_server_group.rb +145 -0
  118. data/lib/cisco_node_utils/tacacs_server_host.rb +5 -9
  119. data/lib/cisco_node_utils/vdc.rb +88 -0
  120. data/lib/cisco_node_utils/version.rb +5 -2
  121. data/lib/cisco_node_utils/vlan.rb +71 -8
  122. data/lib/cisco_node_utils/vni.rb +227 -0
  123. data/lib/cisco_node_utils/vpc.rb +377 -0
  124. data/lib/cisco_node_utils/vrf.rb +60 -9
  125. data/lib/cisco_node_utils/vrf_af.rb +191 -0
  126. data/lib/cisco_node_utils/vtp.rb +8 -6
  127. data/lib/cisco_node_utils/vxlan_vtep.rb +151 -0
  128. data/lib/cisco_node_utils/vxlan_vtep_vni.rb +234 -0
  129. data/lib/cisco_node_utils/yum.rb +1 -1
  130. data/tests/.rubocop.yml +1 -1
  131. data/tests/basetest.rb +16 -7
  132. data/tests/ciscotest.rb +55 -13
  133. data/tests/cmd_config.yaml +2 -2
  134. data/tests/platform_info.rb +3 -2
  135. data/tests/test_aaa_authentication_login.rb +219 -0
  136. data/tests/test_aaa_authentication_login_service.rb +759 -0
  137. data/tests/test_aaa_authorization_service.rb +1041 -0
  138. data/tests/test_ace.rb +160 -0
  139. data/tests/test_acl.rb +176 -0
  140. data/tests/test_bgp_af.rb +269 -13
  141. data/tests/test_bgp_neighbor.rb +38 -40
  142. data/tests/test_bgp_neighbor_af.rb +92 -32
  143. data/tests/test_command_config.rb +5 -5
  144. data/tests/test_command_reference.rb +284 -101
  145. data/tests/test_dns_domain.rb +1 -1
  146. data/tests/test_domain_name.rb +1 -1
  147. data/tests/test_evpn_vni.rb +106 -0
  148. data/tests/test_fabricpath_global.rb +243 -0
  149. data/tests/test_fabricpath_topology.rb +98 -0
  150. data/tests/test_interface.rb +292 -74
  151. data/tests/test_interface_channel_group.rb +74 -0
  152. data/tests/test_interface_ospf.rb +9 -4
  153. data/tests/test_interface_portchannel.rb +105 -0
  154. data/tests/test_interface_service_vni.rb +232 -0
  155. data/tests/test_interface_svi.rb +77 -62
  156. data/tests/test_interface_switchport.rb +17 -5
  157. data/tests/test_name_server.rb +1 -1
  158. data/tests/test_node.rb +1 -1
  159. data/tests/test_node_ext.rb +10 -20
  160. data/tests/test_ntp_config.rb +1 -1
  161. data/tests/test_ntp_server.rb +18 -6
  162. data/tests/test_overlay_global.rb +102 -0
  163. data/tests/test_pim.rb +177 -0
  164. data/tests/test_pim_group_list.rb +181 -0
  165. data/tests/test_pim_rp_address.rb +153 -0
  166. data/tests/test_platform.rb +3 -3
  167. data/tests/test_portchannel_global.rb +202 -0
  168. data/tests/test_radius_global.rb +1 -1
  169. data/tests/test_radius_server.rb +92 -57
  170. data/tests/test_radius_server_group.rb +149 -0
  171. data/tests/test_router_bgp.rb +283 -112
  172. data/tests/test_router_ospf.rb +2 -2
  173. data/tests/test_router_ospf_vrf.rb +4 -4
  174. data/tests/test_snmp_notification_receiver.rb +167 -0
  175. data/tests/test_snmpcommunity.rb +1 -1
  176. data/tests/test_snmpgroup.rb +1 -1
  177. data/tests/test_snmpnotification.rb +72 -0
  178. data/tests/test_snmpserver.rb +29 -105
  179. data/tests/test_snmpuser.rb +32 -30
  180. data/tests/test_syslog_server.rb +36 -10
  181. data/tests/test_syslog_settings.rb +1 -1
  182. data/tests/test_tacacs_server.rb +1 -1
  183. data/tests/test_tacacs_server_group.rb +405 -0
  184. data/tests/test_tacacs_server_host.rb +1 -1
  185. data/tests/test_vdc.rb +78 -0
  186. data/tests/test_vlan.rb +74 -19
  187. data/tests/test_vlan_mt_full.rb +95 -0
  188. data/tests/test_vni.rb +106 -0
  189. data/tests/test_vpc.rb +361 -0
  190. data/tests/test_vrf.rb +172 -29
  191. data/tests/test_vtp.rb +1 -1
  192. data/tests/test_vxlan_vtep.rb +214 -0
  193. data/tests/test_vxlan_vtep_vni.rb +201 -0
  194. data/tests/test_yum.rb +1 -1
  195. metadata +120 -11
  196. data/lib/cisco_node_utils/README_YAML.md +0 -325
  197. data/lib/cisco_node_utils/command_reference_common.yaml +0 -1051
  198. data/lib/cisco_node_utils/command_reference_common_bgp.yaml +0 -535
  199. data/lib/cisco_node_utils/command_reference_n3064.yaml +0 -13
  200. data/lib/cisco_node_utils/command_reference_n7k.yaml +0 -52
  201. data/lib/cisco_node_utils/command_reference_n9k.yaml +0 -26
  202. 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