cisco_node_utils 1.2.0 → 1.3.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 +4 -4
- data/.gitignore +2 -0
- data/.rspec +2 -0
- data/.rubocop.yml +13 -0
- data/.travis.yml +4 -1
- data/CHANGELOG.md +81 -2
- data/CONTRIBUTING.md +2 -17
- data/Gemfile +5 -0
- data/README.md +92 -47
- data/Rakefile +23 -1
- data/bin/git/hooks/hook_lib +7 -0
- data/bin/git/hooks/pre-commit/check_unstaged_changes +18 -0
- data/bin/git/hooks/pre-commit/rubocop +7 -2
- data/bin/git/hooks/pre-commit/validate-diffs +18 -4
- data/bin/git/hooks/pre-commit/validate-yaml +18 -0
- data/bin/git/update-hooks +64 -6
- data/cisco_node_utils.gemspec +9 -6
- data/docs/README-develop-best-practices.md +149 -50
- data/docs/README-develop-node-utils-APIs.md +92 -42
- data/docs/README-maintainers.md +7 -4
- data/docs/README-test-execution.md +57 -0
- data/docs/cisco_node_utils.yaml.example +30 -0
- data/docs/template-router.rb +4 -0
- data/ext/mkrf_conf.rb +63 -0
- data/lib/.rubocop.yml +2 -2
- data/lib/cisco_node_utils.rb +5 -0
- data/lib/cisco_node_utils/aaa_authentication_login.rb +5 -6
- data/lib/cisco_node_utils/aaa_authorization_service.rb +1 -1
- data/lib/cisco_node_utils/ace.rb +165 -12
- data/lib/cisco_node_utils/acl.rb +2 -1
- data/lib/cisco_node_utils/bgp.rb +184 -21
- data/lib/cisco_node_utils/bgp_af.rb +94 -249
- data/lib/cisco_node_utils/bgp_neighbor.rb +94 -14
- data/lib/cisco_node_utils/bgp_neighbor_af.rb +75 -8
- data/lib/cisco_node_utils/bridge_domain.rb +183 -0
- data/lib/cisco_node_utils/bridge_domain_vni.rb +206 -0
- data/lib/cisco_node_utils/cisco_cmn_utils.rb +85 -2
- data/lib/cisco_node_utils/client.rb +35 -0
- data/lib/cisco_node_utils/client/client.rb +234 -0
- data/lib/cisco_node_utils/client/grpc.rb +33 -0
- data/lib/cisco_node_utils/client/grpc/client.rb +311 -0
- data/lib/cisco_node_utils/client/grpc/ems.proto +148 -0
- data/lib/cisco_node_utils/client/grpc/ems.rb +111 -0
- data/lib/cisco_node_utils/client/grpc/ems_services.rb +49 -0
- data/lib/cisco_node_utils/client/nxapi.rb +31 -0
- data/lib/cisco_node_utils/client/nxapi/client.rb +305 -0
- data/lib/cisco_node_utils/client/utils.rb +164 -0
- data/lib/cisco_node_utils/cmd_ref/README_YAML.md +222 -254
- data/lib/cisco_node_utils/cmd_ref/aaa_auth_login_service.yaml +11 -8
- data/lib/cisco_node_utils/cmd_ref/aaa_authentication_login.yaml +22 -15
- data/lib/cisco_node_utils/cmd_ref/aaa_authorization_service.yaml +11 -8
- data/lib/cisco_node_utils/cmd_ref/acl.yaml +21 -16
- data/lib/cisco_node_utils/cmd_ref/bgp.yaml +239 -109
- data/lib/cisco_node_utils/cmd_ref/bgp_af.yaml +114 -55
- data/lib/cisco_node_utils/cmd_ref/bgp_neighbor.yaml +76 -52
- data/lib/cisco_node_utils/cmd_ref/bgp_neighbor_af.yaml +106 -62
- data/lib/cisco_node_utils/cmd_ref/bridge_domain.yaml +71 -0
- data/lib/cisco_node_utils/cmd_ref/bridge_domain_vni.yaml +33 -0
- data/lib/cisco_node_utils/cmd_ref/dnsclient.yaml +35 -14
- data/lib/cisco_node_utils/cmd_ref/encapsulation.yaml +25 -0
- data/lib/cisco_node_utils/cmd_ref/evpn_vni.yaml +23 -17
- data/lib/cisco_node_utils/cmd_ref/fabricpath.yaml +94 -83
- data/lib/cisco_node_utils/cmd_ref/fabricpath_topology.yaml +22 -17
- data/lib/cisco_node_utils/cmd_ref/feature.yaml +76 -26
- data/lib/cisco_node_utils/cmd_ref/images.yaml +3 -2
- data/lib/cisco_node_utils/cmd_ref/interface.yaml +381 -153
- data/lib/cisco_node_utils/cmd_ref/interface_channel_group.yaml +21 -11
- data/lib/cisco_node_utils/cmd_ref/interface_ospf.yaml +21 -21
- data/lib/cisco_node_utils/cmd_ref/interface_portchannel.yaml +30 -21
- data/lib/cisco_node_utils/cmd_ref/interface_service_vni.yaml +18 -13
- data/lib/cisco_node_utils/cmd_ref/inventory.yaml +26 -31
- data/lib/cisco_node_utils/cmd_ref/itd_device_group.yaml +83 -0
- data/lib/cisco_node_utils/cmd_ref/itd_service.yaml +119 -0
- data/lib/cisco_node_utils/cmd_ref/memory.yaml +17 -6
- data/lib/cisco_node_utils/cmd_ref/ntp_config.yaml +10 -3
- data/lib/cisco_node_utils/cmd_ref/ntp_server.yaml +17 -5
- data/lib/cisco_node_utils/cmd_ref/ospf.yaml +33 -29
- data/lib/cisco_node_utils/cmd_ref/overlay_global.yaml +12 -10
- data/lib/cisco_node_utils/cmd_ref/pim.yaml +16 -19
- data/lib/cisco_node_utils/cmd_ref/portchannel_global.yaml +40 -25
- data/lib/cisco_node_utils/cmd_ref/radius_global.yaml +17 -12
- data/lib/cisco_node_utils/cmd_ref/radius_server.yaml +71 -35
- data/lib/cisco_node_utils/cmd_ref/radius_server_group.yaml +10 -5
- data/lib/cisco_node_utils/cmd_ref/show_system.yaml +6 -2
- data/lib/cisco_node_utils/cmd_ref/show_version.yaml +47 -43
- data/lib/cisco_node_utils/cmd_ref/snmp_community.yaml +13 -11
- data/lib/cisco_node_utils/cmd_ref/snmp_group.yaml +4 -2
- data/lib/cisco_node_utils/cmd_ref/snmp_notification_receiver.yaml +23 -21
- data/lib/cisco_node_utils/cmd_ref/snmp_server.yaml +26 -22
- data/lib/cisco_node_utils/cmd_ref/snmp_user.yaml +19 -17
- data/lib/cisco_node_utils/cmd_ref/snmpnotification.yaml +18 -6
- data/lib/cisco_node_utils/cmd_ref/stp_global.yaml +234 -0
- data/lib/cisco_node_utils/cmd_ref/syslog_server.yaml +24 -9
- data/lib/cisco_node_utils/cmd_ref/syslog_settings.yaml +5 -3
- data/lib/cisco_node_utils/cmd_ref/system.yaml +4 -3
- data/lib/cisco_node_utils/cmd_ref/tacacs_server.yaml +22 -20
- data/lib/cisco_node_utils/cmd_ref/tacacs_server_group.yaml +27 -15
- data/lib/cisco_node_utils/cmd_ref/tacacs_server_host.yaml +45 -16
- data/lib/cisco_node_utils/cmd_ref/vdc.yaml +21 -11
- data/lib/cisco_node_utils/cmd_ref/virtual_service.yaml +3 -2
- data/lib/cisco_node_utils/cmd_ref/vlan.yaml +60 -32
- data/lib/cisco_node_utils/cmd_ref/vpc.yaml +118 -101
- data/lib/cisco_node_utils/cmd_ref/vrf.yaml +54 -58
- data/lib/cisco_node_utils/cmd_ref/vrf_af.yaml +118 -0
- data/lib/cisco_node_utils/cmd_ref/vtp.yaml +19 -25
- data/lib/cisco_node_utils/cmd_ref/vxlan_vtep.yaml +28 -18
- data/lib/cisco_node_utils/cmd_ref/vxlan_vtep_vni.yaml +34 -17
- data/lib/cisco_node_utils/cmd_ref/yum.yaml +6 -4
- data/lib/cisco_node_utils/command_reference.rb +261 -142
- data/lib/cisco_node_utils/constants.rb +33 -0
- data/lib/cisco_node_utils/encapsulation.rb +112 -0
- data/lib/cisco_node_utils/environment.rb +102 -0
- data/lib/cisco_node_utils/evpn_vni.rb +5 -3
- data/lib/cisco_node_utils/exceptions.rb +111 -0
- data/lib/cisco_node_utils/fabricpath_global.rb +52 -35
- data/lib/cisco_node_utils/fabricpath_topology.rb +44 -57
- data/lib/cisco_node_utils/feature.rb +165 -3
- data/lib/cisco_node_utils/interface.rb +1051 -260
- data/lib/cisco_node_utils/interface_channel_group.rb +11 -10
- data/lib/cisco_node_utils/interface_ospf.rb +1 -2
- data/lib/cisco_node_utils/interface_portchannel.rb +4 -12
- data/lib/cisco_node_utils/interface_service_vni.rb +7 -7
- data/lib/cisco_node_utils/itd_device_group.rb +248 -0
- data/lib/cisco_node_utils/itd_device_group_node.rb +144 -0
- data/lib/cisco_node_utils/itd_service.rb +523 -0
- data/lib/cisco_node_utils/logger.rb +75 -0
- data/lib/cisco_node_utils/node.rb +62 -192
- data/lib/cisco_node_utils/node_util.rb +56 -10
- data/lib/cisco_node_utils/overlay_global.rb +2 -2
- data/lib/cisco_node_utils/pim.rb +2 -13
- data/lib/cisco_node_utils/pim_group_list.rb +1 -1
- data/lib/cisco_node_utils/pim_rp_address.rb +1 -1
- data/lib/cisco_node_utils/platform.rb +52 -21
- data/lib/cisco_node_utils/portchannel_global.rb +89 -19
- data/lib/cisco_node_utils/radius_server.rb +168 -37
- data/lib/cisco_node_utils/router_ospf.rb +20 -35
- data/lib/cisco_node_utils/router_ospf_vrf.rb +4 -4
- data/lib/cisco_node_utils/snmpserver.rb +1 -6
- data/lib/cisco_node_utils/snmpuser.rb +6 -4
- data/lib/cisco_node_utils/stp_global.rb +676 -0
- data/lib/cisco_node_utils/syslog_server.rb +77 -18
- data/lib/cisco_node_utils/syslog_settings.rb +1 -1
- data/lib/cisco_node_utils/tacacs_server_group.rb +8 -4
- data/lib/cisco_node_utils/tacacs_server_host.rb +115 -25
- data/lib/cisco_node_utils/vdc.rb +12 -0
- data/lib/cisco_node_utils/version.rb +1 -1
- data/lib/cisco_node_utils/vlan.rb +147 -29
- data/lib/cisco_node_utils/vpc.rb +55 -3
- data/lib/cisco_node_utils/vrf.rb +72 -11
- data/lib/cisco_node_utils/vrf_af.rb +114 -29
- data/lib/cisco_node_utils/vtp.rb +34 -52
- data/lib/cisco_node_utils/vxlan_vtep.rb +34 -8
- data/lib/cisco_node_utils/vxlan_vtep_vni.rb +36 -4
- data/lib/minitest/environment_plugin.rb +31 -0
- data/lib/minitest/log_level_plugin.rb +41 -0
- data/spec/client_spec.rb +7 -0
- data/spec/environment_spec.rb +263 -0
- data/spec/grpc_client_spec.rb +23 -0
- data/spec/isolate/all_clients_spec.rb +9 -0
- data/spec/isolate/grpc_only_spec.rb +16 -0
- data/spec/isolate/no_clients_spec.rb +26 -0
- data/spec/isolate/nxapi_only_spec.rb +16 -0
- data/spec/nxapi_client_spec.rb +42 -0
- data/spec/schema.yaml +75 -0
- data/spec/shared_examples_for_clients.rb +14 -0
- data/spec/spec_helper.rb +91 -0
- data/spec/whitespace_spec.rb +10 -0
- data/spec/yaml_spec.rb +42 -0
- data/tests/.rubocop.yml +2 -2
- data/tests/CSCuxdublin-1.0.0-7.0.3.I3.1.lib32_n9000.rpm +0 -0
- data/tests/basetest.rb +96 -36
- data/tests/ciscotest.rb +220 -12
- data/tests/cmd_config.yaml +71 -49
- data/tests/cmd_config_invalid.yaml +1 -1
- data/tests/test_aaa_authentication_login.rb +1 -0
- data/tests/test_aaa_authentication_login_service.rb +9 -0
- data/tests/test_aaa_authorization_service.rb +173 -367
- data/tests/test_ace.rb +171 -100
- data/tests/test_acl.rb +10 -1
- data/tests/test_bgp_af.rb +395 -728
- data/tests/test_bgp_neighbor.rb +274 -115
- data/tests/test_bgp_neighbor_af.rb +178 -77
- data/tests/test_bridge_domain.rb +191 -0
- data/tests/test_bridge_domain_vni.rb +116 -0
- data/tests/test_client_utils.rb +111 -0
- data/tests/test_command_config.rb +9 -5
- data/tests/test_command_reference.rb +380 -102
- data/tests/test_dns_domain.rb +13 -3
- data/tests/test_domain_name.rb +13 -3
- data/tests/test_encapsulation.rb +77 -0
- data/tests/test_evpn_vni.rb +25 -7
- data/tests/test_fabricpath_global.rb +167 -163
- data/tests/test_fabricpath_topology.rb +12 -33
- data/tests/test_feature.rb +215 -0
- data/tests/test_grpc.rb +166 -0
- data/tests/test_interface.rb +585 -344
- data/tests/test_interface_bdi.rb +80 -0
- data/tests/test_interface_channel_group.rb +6 -3
- data/tests/test_interface_ospf.rb +26 -24
- data/tests/test_interface_portchannel.rb +1 -0
- data/tests/test_interface_private_vlan.rb +724 -0
- data/tests/test_interface_service_vni.rb +37 -66
- data/tests/test_interface_svi.rb +98 -101
- data/tests/test_interface_switchport.rb +419 -549
- data/tests/test_itd_device_group.rb +145 -0
- data/tests/test_itd_device_group_node.rb +199 -0
- data/tests/test_itd_service.rb +298 -0
- data/tests/test_logger.rb +43 -0
- data/tests/test_name_server.rb +11 -2
- data/tests/test_node.rb +16 -75
- data/tests/test_node_ext.rb +174 -163
- data/tests/test_node_util.rb +119 -0
- data/tests/test_ntp_config.rb +5 -1
- data/tests/test_ntp_server.rb +2 -2
- data/tests/test_nxapi.rb +221 -0
- data/tests/test_overlay_global.rb +47 -38
- data/tests/test_pim.rb +2 -0
- data/tests/test_pim_group_list.rb +2 -0
- data/tests/test_pim_rp_address.rb +2 -0
- data/tests/test_platform.rb +86 -39
- data/tests/test_portchannel_global.rb +211 -135
- data/tests/test_radius_global.rb +13 -5
- data/tests/test_radius_server.rb +256 -104
- data/tests/test_radius_server_group.rb +2 -0
- data/tests/test_router_bgp.rb +781 -485
- data/tests/test_router_ospf.rb +26 -103
- data/tests/test_router_ospf_vrf.rb +52 -57
- data/tests/test_snmp_notification_receiver.rb +2 -0
- data/tests/test_snmpcommunity.rb +2 -0
- data/tests/test_snmpgroup.rb +2 -0
- data/tests/test_snmpnotification.rb +40 -21
- data/tests/test_snmpserver.rb +2 -0
- data/tests/test_snmpuser.rb +2 -0
- data/tests/test_stp_global.rb +563 -0
- data/tests/test_syslog_server.rb +32 -8
- data/tests/test_syslog_settings.rb +22 -9
- data/tests/test_tacacs_server.rb +32 -27
- data/tests/test_tacacs_server_group.rb +100 -45
- data/tests/test_tacacs_server_host.rb +135 -43
- data/tests/test_vdc.rb +2 -16
- data/tests/test_vlan.rb +106 -54
- data/tests/test_vlan_mt_full.rb +11 -21
- data/tests/test_vlan_private.rb +669 -0
- data/tests/test_vpc.rb +312 -159
- data/tests/test_vrf.rb +122 -113
- data/tests/test_vrf_af.rb +238 -0
- data/tests/test_vtp.rb +58 -102
- data/tests/test_vxlan_vtep.rb +38 -17
- data/tests/test_vxlan_vtep_vni.rb +61 -9
- data/tests/test_yum.rb +49 -25
- metadata +122 -36
- data/lib/cisco_node_utils/cmd_ref/fex.yaml +0 -9
- data/lib/cisco_node_utils/cmd_ref/vni.yaml +0 -76
- data/lib/cisco_node_utils/vni.rb +0 -227
- data/tests/test_vni.rb +0 -106
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# encapsulation_profile_vni
|
|
2
|
+
# encapsulation_profile_vni feature is available only on n7k
|
|
3
|
+
---
|
|
4
|
+
_exclude: [N3k, N5k, N6k, N8k, N9k, ios_xr]
|
|
5
|
+
|
|
6
|
+
all_encaps:
|
|
7
|
+
multiple: true
|
|
8
|
+
get_command: "show running-config vni"
|
|
9
|
+
get_value: '/^encapsulation profile vni (\S+)/'
|
|
10
|
+
|
|
11
|
+
create:
|
|
12
|
+
set_value: "encapsulation profile vni <profile>"
|
|
13
|
+
|
|
14
|
+
destroy:
|
|
15
|
+
set_value: "no encapsulation profile vni <profile>"
|
|
16
|
+
|
|
17
|
+
# Eg:
|
|
18
|
+
# encapsulation profile vni my_vni_profile
|
|
19
|
+
# [no] dot1q 100-200, 300 vni 5000-5100, 5300
|
|
20
|
+
dot1q_map:
|
|
21
|
+
get_command: "show encapsulation profile"
|
|
22
|
+
get_value: '/^.* vni <profile>\s+dot1q ([\d\s,-]+) vni ([\d\s,-]+)$/'
|
|
23
|
+
set_context: ['encapsulation profile vni <profile>']
|
|
24
|
+
set_value: '<state> dot1q <vlans> vni <vnis>'
|
|
25
|
+
default_value: []
|
|
@@ -1,42 +1,48 @@
|
|
|
1
1
|
# evpn_vni.yaml
|
|
2
2
|
---
|
|
3
|
+
_exclude: [ios_xr]
|
|
4
|
+
|
|
3
5
|
_template:
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
6
|
+
get_command: "show running bgp all"
|
|
7
|
+
get_context:
|
|
8
|
+
- '/^evpn$/'
|
|
7
9
|
- '/^vni <vni> l2$/'
|
|
8
|
-
|
|
9
|
-
|
|
10
|
+
set_context:
|
|
11
|
+
- 'evpn'
|
|
10
12
|
- "vni <vni> l2"
|
|
11
13
|
|
|
12
14
|
evpn:
|
|
13
|
-
|
|
14
|
-
|
|
15
|
+
get_context: ~
|
|
16
|
+
get_value: "/^evpn$/"
|
|
17
|
+
set_context: ~
|
|
18
|
+
set_value: "<state> evpn"
|
|
15
19
|
|
|
16
20
|
route_distinguisher:
|
|
17
|
-
|
|
18
|
-
|
|
21
|
+
get_value: '/^rd (\S+)$/'
|
|
22
|
+
set_value: "<state> rd <rd>"
|
|
19
23
|
default_value: ""
|
|
20
24
|
|
|
21
25
|
route_target_both:
|
|
22
|
-
|
|
23
|
-
|
|
26
|
+
get_value: '/^route-target both (\S+)$/'
|
|
27
|
+
set_value: "<state> route-target both <community>"
|
|
24
28
|
multiple: true
|
|
25
29
|
default_value: []
|
|
26
30
|
|
|
27
31
|
route_target_export:
|
|
28
|
-
|
|
29
|
-
|
|
32
|
+
get_value: '/^route-target export (\S+)$/'
|
|
33
|
+
set_value: "<state> route-target export <community>"
|
|
30
34
|
multiple: true
|
|
31
35
|
default_value: []
|
|
32
36
|
|
|
33
37
|
route_target_import:
|
|
34
|
-
|
|
35
|
-
|
|
38
|
+
get_value: '/^route-target import (\S+)$/'
|
|
39
|
+
set_value: "<state> route-target import <community>"
|
|
36
40
|
multiple: true
|
|
37
41
|
default_value: []
|
|
38
42
|
|
|
39
43
|
vni:
|
|
40
44
|
multiple: true
|
|
41
|
-
|
|
42
|
-
|
|
45
|
+
get_context: ['/^evpn$/']
|
|
46
|
+
get_value: '/^vni\s+(\S+)\s+l2$/'
|
|
47
|
+
set_context: ['evpn']
|
|
48
|
+
set_value: "<state> vni <vni> l2"
|
|
@@ -1,172 +1,183 @@
|
|
|
1
1
|
# fabricpath
|
|
2
2
|
---
|
|
3
|
-
|
|
4
|
-
_exclude: [/N3/, /N9K/]
|
|
3
|
+
_exclude: [N3k, N8k, N9k, ios_xr]
|
|
5
4
|
|
|
6
5
|
aggregate_multicast_routes:
|
|
7
|
-
_exclude: [
|
|
6
|
+
_exclude: [N5k, N6k]
|
|
8
7
|
kind: boolean
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
8
|
+
get_command: "show run fabricpath all"
|
|
9
|
+
get_value: '/^fabricpath multicast aggregate\-routes\s*$/'
|
|
10
|
+
set_value: "<state> fabricpath multicast aggregate-routes"
|
|
12
11
|
default_value: false
|
|
13
|
-
|
|
12
|
+
|
|
14
13
|
allocate_delay:
|
|
15
14
|
kind: int
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
15
|
+
get_command: "show run fabricpath all"
|
|
16
|
+
get_value: '/^fabricpath timers allocate\-delay (\d+)/'
|
|
17
|
+
set_value: "<state> fabricpath timers allocate-delay <delay>"
|
|
19
18
|
default_value: 10
|
|
20
19
|
|
|
21
|
-
auto_switch_id:
|
|
20
|
+
auto_switch_id:
|
|
22
21
|
kind: int
|
|
23
|
-
|
|
24
|
-
|
|
22
|
+
get_command: "show fabricpath switch-id"
|
|
23
|
+
get_value: '/^\*\s+(\d+).*No\s*$/'
|
|
25
24
|
|
|
26
25
|
feature:
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
26
|
+
get_command: "show feature-set"
|
|
27
|
+
get_value: '/^fabricpath[\s]+[\d]+[\s]+(\S+)/'
|
|
28
|
+
set_value: "<state> feature-set fabricpath"
|
|
30
29
|
default_value: disabled
|
|
31
30
|
|
|
32
31
|
feature_install:
|
|
33
|
-
|
|
32
|
+
set_value: "<state> install feature-set fabricpath"
|
|
34
33
|
|
|
35
34
|
graceful_merge:
|
|
36
35
|
auto_default: false
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
default_value: true
|
|
36
|
+
get_command: "show run fabricpath all"
|
|
37
|
+
get_value: '/^fabricpath graceful-merge disable\s*$/'
|
|
38
|
+
set_value: "<state> fabricpath graceful-merge disable"
|
|
39
|
+
default_value: enable
|
|
42
40
|
|
|
43
41
|
linkup_delay:
|
|
44
42
|
kind: int
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
43
|
+
get_command: "show run fabricpath all"
|
|
44
|
+
get_value: '/^fabricpath timers linkup\-delay (\d+)\s*$/'
|
|
45
|
+
set_value: "<state> fabricpath timers linkup-delay <delay>"
|
|
48
46
|
default_value: 10
|
|
49
47
|
|
|
50
48
|
linkup_delay_always:
|
|
51
|
-
_exclude: [
|
|
49
|
+
_exclude: [N5k, N6k]
|
|
52
50
|
kind: boolean
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
51
|
+
get_command: "show run fabricpath all"
|
|
52
|
+
get_value: '/^fabricpath timers linkup\-delay always\s*$/'
|
|
53
|
+
set_value: "<state> fabricpath timers linkup-delay always"
|
|
56
54
|
default_value: false
|
|
57
|
-
|
|
55
|
+
|
|
58
56
|
linkup_delay_enable:
|
|
59
|
-
_exclude: [
|
|
57
|
+
_exclude: [N5k, N6k]
|
|
60
58
|
auto_default: false
|
|
61
59
|
kind: boolean
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
60
|
+
get_command: "show run fabricpath all"
|
|
61
|
+
get_value: '/^fabricpath linkup\-delay\s*$/'
|
|
62
|
+
set_value: "<state> fabricpath linkup-delay"
|
|
65
63
|
default_value: true
|
|
66
|
-
|
|
64
|
+
|
|
67
65
|
loadbalance_algorithm:
|
|
68
66
|
kind: string
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
67
|
+
get_command: "show run fabricpath all"
|
|
68
|
+
get_value: '/^fabricpath load\-balance (\S+)\s*$/'
|
|
69
|
+
set_value: "<state> fabricpath load-balance <algo>"
|
|
70
|
+
N5k: &loadbal_alg_src_dst
|
|
73
71
|
default_value: "source-destination"
|
|
72
|
+
N6k: *loadbal_alg_src_dst
|
|
74
73
|
else:
|
|
75
74
|
default_value: "symmetric"
|
|
76
75
|
|
|
76
|
+
loadbalance_algorithm_symmetric_support:
|
|
77
|
+
_exclude: [N5k, N6k]
|
|
78
|
+
kind: boolean
|
|
79
|
+
default_only: true
|
|
80
|
+
|
|
77
81
|
loadbalance_multicast_has_vlan:
|
|
78
|
-
_exclude: [
|
|
82
|
+
_exclude: [N5k, N6k]
|
|
79
83
|
kind: boolean
|
|
80
84
|
auto_default: false
|
|
81
|
-
|
|
82
|
-
|
|
85
|
+
get_command: 'show run fabricpath all'
|
|
86
|
+
get_value: '/^fabricpath load-balance multicast .*include-vlan/'
|
|
83
87
|
default_value: true
|
|
84
88
|
|
|
85
89
|
loadbalance_multicast_reset:
|
|
86
|
-
_exclude: [
|
|
87
|
-
|
|
90
|
+
_exclude: [N5k, N6k]
|
|
91
|
+
set_value: "no fabricpath load-balance multicast"
|
|
88
92
|
|
|
89
93
|
loadbalance_multicast_rotate:
|
|
90
|
-
_exclude: [
|
|
94
|
+
_exclude: [N5k, N6k]
|
|
91
95
|
kind: int
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
default_value:
|
|
95
|
-
|
|
96
|
+
get_command: "show fabricpath load-balance | begin Ftag"
|
|
97
|
+
get_value: '/^Rotate amount: (\d+)/'
|
|
98
|
+
# default_value: n/a. The default rotate amount is randomized to avoid polarization.
|
|
99
|
+
|
|
96
100
|
loadbalance_multicast_set:
|
|
97
|
-
_exclude: [
|
|
98
|
-
|
|
101
|
+
_exclude: [N5k, N6k]
|
|
102
|
+
set_value: 'fabricpath load-balance multicast <rotate> <has_vlan>'
|
|
99
103
|
|
|
100
104
|
loadbalance_unicast_has_vlan:
|
|
101
105
|
kind: boolean
|
|
102
106
|
auto_default: false
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
107
|
+
get_command: 'show run fabricpath all'
|
|
108
|
+
get_value: '/^fabricpath load-balance unicast .*include-vlan/'
|
|
109
|
+
set_value: "<state> fabricpath load-balance unicast include-vlan"
|
|
106
110
|
default_value: true
|
|
107
111
|
|
|
108
112
|
loadbalance_unicast_layer:
|
|
109
113
|
kind: string
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
114
|
+
get_command: "show fabricpath load-balance | begin ECMP next 4"
|
|
115
|
+
get_value: '/^L3\/L4 Preference: (\S+)/'
|
|
116
|
+
set_value: "<state> fabricpath load-balance unicast <layer>"
|
|
113
117
|
default_value: "mixed"
|
|
114
118
|
|
|
115
119
|
loadbalance_unicast_reset:
|
|
116
|
-
|
|
120
|
+
set_value: "no fabricpath load-balance unicast"
|
|
117
121
|
|
|
118
122
|
loadbalance_unicast_rotate:
|
|
119
|
-
_exclude: [
|
|
123
|
+
_exclude: [N5k, N6k]
|
|
120
124
|
kind: int
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
default_value:
|
|
125
|
+
get_command: "show fabricpath load-balance | begin ECMP next 4"
|
|
126
|
+
get_value: '/^Rotate amount: (\d+)/'
|
|
127
|
+
# default_value: n/a. The default rotate amount is randomized to avoid polarization.
|
|
124
128
|
|
|
125
129
|
loadbalance_unicast_set:
|
|
126
|
-
|
|
130
|
+
set_value: 'fabricpath load-balance unicast <layer> <rotate> <has_vlan>'
|
|
127
131
|
|
|
128
132
|
loadbalance_unicast_support:
|
|
129
133
|
kind: string
|
|
130
|
-
|
|
131
|
-
default_only: "split"
|
|
132
|
-
/N6K/:
|
|
134
|
+
N5k: &loadbal_uni_split
|
|
133
135
|
default_only: "split"
|
|
136
|
+
N6k: *loadbal_uni_split
|
|
134
137
|
else:
|
|
135
138
|
default_only: "combined"
|
|
136
139
|
|
|
137
140
|
mode:
|
|
138
141
|
kind: string
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
+
get_command: "show run fabricpath all"
|
|
143
|
+
get_value: '/^fabricpath mode (\S+)/'
|
|
144
|
+
set_value: "<state> fabricpath mode transit"
|
|
142
145
|
default_value: "normal"
|
|
143
146
|
|
|
147
|
+
supported_module_pids:
|
|
148
|
+
_exclude: [N5k, N6k]
|
|
149
|
+
default_only: 'N7[K7]-(?:F2.*2.E|F3|F4|M3)'
|
|
150
|
+
|
|
151
|
+
supported_modules:
|
|
152
|
+
_exclude: [N5k, N6k]
|
|
153
|
+
default_only: "f2e f3"
|
|
154
|
+
|
|
144
155
|
switch_id:
|
|
145
156
|
kind: int
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
157
|
+
get_command: "show run fabricpath all"
|
|
158
|
+
get_value: '/^fabricpath switch\-id (\d+)\s*$/'
|
|
159
|
+
set_value: "fabricpath switch-id <swid>"
|
|
149
160
|
|
|
150
161
|
transition_delay:
|
|
151
162
|
kind: int
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
163
|
+
get_command: "show run fabricpath all"
|
|
164
|
+
get_value: '/^fabricpath timers transition\-delay (\d+)\s*$/'
|
|
165
|
+
set_value: "<state> fabricpath timers transition-delay <delay>"
|
|
155
166
|
default_value: 10
|
|
156
167
|
|
|
157
168
|
ttl_multicast:
|
|
158
|
-
_exclude: [
|
|
169
|
+
_exclude: [N5k, N6k]
|
|
159
170
|
kind: int
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
171
|
+
get_command: "show run fabricpath all"
|
|
172
|
+
get_value: '/^fabricpath ttl multicast (\d+)\s*$/'
|
|
173
|
+
set_value: "<state> fabricpath ttl multicast <ttl>"
|
|
163
174
|
default_value: 32
|
|
164
175
|
|
|
165
176
|
ttl_unicast:
|
|
166
|
-
_exclude: [
|
|
177
|
+
_exclude: [N5k, N6k]
|
|
167
178
|
kind: int
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
179
|
+
get_command: "show run fabricpath all"
|
|
180
|
+
get_value: '/^fabricpath ttl unicast (\d+)\s*$/'
|
|
181
|
+
set_value: "<state> fabricpath ttl unicast <ttl>"
|
|
171
182
|
default_value: 32
|
|
172
183
|
|
|
@@ -1,35 +1,40 @@
|
|
|
1
1
|
# fabricpath_topology
|
|
2
2
|
---
|
|
3
3
|
# Fabricpath feature is not available on N3K and N9K
|
|
4
|
-
_exclude: [
|
|
4
|
+
_exclude: [N3k, N8k, N9k, ios_xr]
|
|
5
|
+
|
|
6
|
+
_template:
|
|
7
|
+
get_command: 'show running-config fabricpath all'
|
|
8
|
+
get_context: ['/^fabricpath topology %d$/']
|
|
9
|
+
set_context: ['fabricpath topology <topo_id>']
|
|
5
10
|
|
|
6
11
|
all_topos:
|
|
7
12
|
multiple:
|
|
8
|
-
|
|
9
|
-
|
|
13
|
+
get_context: ~
|
|
14
|
+
get_value: '/^fabricpath topology (\d+)/'
|
|
15
|
+
default_value: []
|
|
10
16
|
|
|
11
17
|
create:
|
|
12
|
-
|
|
18
|
+
set_value: "fabricpath topology <topo_id>"
|
|
13
19
|
|
|
14
20
|
description:
|
|
15
21
|
kind: string
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
default_value: ""
|
|
22
|
+
get_value: '/^description (\S+)$/'
|
|
23
|
+
set_value: '<state> description <name>'
|
|
24
|
+
default_value: ''
|
|
20
25
|
|
|
21
26
|
destroy:
|
|
22
|
-
|
|
27
|
+
set_value: "no fabricpath topology <topo_id>"
|
|
23
28
|
|
|
24
29
|
member_vlans:
|
|
25
30
|
kind: string
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
default_value: "--"
|
|
31
|
+
get_value: '/^member vlan (.+)/'
|
|
32
|
+
set_value: '<state> member vlan <vlan_range>'
|
|
33
|
+
default_value: ''
|
|
30
34
|
|
|
31
|
-
|
|
35
|
+
member_vnis:
|
|
36
|
+
_exclude: [N5k, N6k]
|
|
32
37
|
kind: string
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
default_value:
|
|
38
|
+
get_value: '/^member vni (\S+)/'
|
|
39
|
+
set_value: '<state> member vni <vni_range>'
|
|
40
|
+
default_value: ''
|
|
@@ -1,42 +1,92 @@
|
|
|
1
1
|
# feature
|
|
2
2
|
---
|
|
3
|
+
_exclude: [ios_xr]
|
|
4
|
+
|
|
5
|
+
_template:
|
|
6
|
+
get_command: "show running | i ^feature"
|
|
7
|
+
|
|
3
8
|
bgp:
|
|
4
9
|
kind: boolean
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
config_set: "feature bgp"
|
|
10
|
+
get_value: '/^feature bgp$/'
|
|
11
|
+
set_value: "feature bgp"
|
|
8
12
|
|
|
9
13
|
fabric:
|
|
10
|
-
_exclude: [
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
+
_exclude: [N3k, N8k, N9k]
|
|
15
|
+
get_command: "show feature-set"
|
|
16
|
+
get_value: '/^fabric[\s\d]+(\w+)/'
|
|
17
|
+
set_value: "<state> feature-set fabric"
|
|
14
18
|
|
|
15
19
|
fabric_forwarding:
|
|
16
|
-
_exclude: [
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
+
_exclude: [N3k]
|
|
21
|
+
get_value: '/^feature fabric forwarding$/'
|
|
22
|
+
set_value: "feature fabric forwarding"
|
|
23
|
+
|
|
24
|
+
fex:
|
|
25
|
+
_exclude: [C3064, C3132, N5k, N6k, N8k]
|
|
26
|
+
get_command: "show feature-set"
|
|
27
|
+
get_value: '/^fex[\s\d]+(\w+)/'
|
|
28
|
+
set_value: "<state> feature-set fex"
|
|
29
|
+
|
|
30
|
+
itd:
|
|
31
|
+
_exclude: [N3k, N5k, N6k]
|
|
32
|
+
get_value: '/^feature itd$/'
|
|
33
|
+
set_value: "feature itd"
|
|
20
34
|
|
|
21
35
|
nv_overlay:
|
|
22
|
-
|
|
36
|
+
# N3k - native vxlan support in a future release
|
|
37
|
+
_exclude: [N3k]
|
|
23
38
|
kind: boolean
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
config_set: "feature nv overlay"
|
|
39
|
+
get_value: '/^feature nv overlay$/'
|
|
40
|
+
set_value: "<state> feature nv overlay"
|
|
27
41
|
|
|
28
42
|
nv_overlay_evpn:
|
|
29
|
-
|
|
43
|
+
# N3k - native vxlan support in a future release
|
|
44
|
+
_exclude: [N3k]
|
|
30
45
|
kind: boolean
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
46
|
+
get_command: "show running | section nv"
|
|
47
|
+
get_value: '/^nv overlay evpn$/'
|
|
48
|
+
set_value: "nv overlay evpn"
|
|
49
|
+
|
|
50
|
+
ospf:
|
|
51
|
+
kind: boolean
|
|
52
|
+
get_value: '/^feature ospf$/'
|
|
53
|
+
set_value: "feature ospf"
|
|
54
|
+
|
|
55
|
+
pim:
|
|
56
|
+
kind: boolean
|
|
57
|
+
get_value: '/^feature pim$/' # TBD pim6
|
|
58
|
+
set_value: 'feature pim'
|
|
59
|
+
|
|
60
|
+
private_vlan:
|
|
61
|
+
_exclude: [N8k]
|
|
62
|
+
kind: boolean
|
|
63
|
+
get_value: '/^feature private-vlan$/'
|
|
64
|
+
set_value: "feature private-vlan"
|
|
65
|
+
|
|
66
|
+
tacacs:
|
|
67
|
+
kind: boolean
|
|
68
|
+
get_value: '/^feature tacacs\+$/'
|
|
69
|
+
set_value: "feature tacacs"
|
|
34
70
|
|
|
35
71
|
vn_segment_vlan_based:
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
72
|
+
_exclude: [N7k]
|
|
73
|
+
kind: boolean
|
|
74
|
+
get_value: '/^feature vn-segment-vlan-based$/'
|
|
75
|
+
set_value: 'feature vn-segment-vlan-based'
|
|
76
|
+
default_value: false
|
|
77
|
+
|
|
78
|
+
vni:
|
|
79
|
+
kind: boolean
|
|
80
|
+
N7k:
|
|
81
|
+
# MT-Full only
|
|
82
|
+
get_value: '/^feature vni$/'
|
|
83
|
+
set_value: 'feature vni'
|
|
84
|
+
else:
|
|
85
|
+
get_value: '/^feature vn-segment-vlan-based$/'
|
|
86
|
+
set_value: 'feature vn-segment-vlan-based'
|
|
87
|
+
|
|
88
|
+
vtp:
|
|
89
|
+
kind: boolean
|
|
90
|
+
get_value: '/^feature vtp$/'
|
|
91
|
+
set_value: "<state> feature vtp"
|
|
92
|
+
default_value: false
|