cisco_node_utils 1.3.0 → 1.4.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 (151) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/CHANGELOG.md +66 -0
  4. data/Gemfile +1 -0
  5. data/README.md +44 -43
  6. data/bin/.rubocop.yml +18 -0
  7. data/bin/show_running_yang.rb +233 -0
  8. data/cisco_node_utils.gemspec +1 -1
  9. data/docs/README-maintainers.md +1 -0
  10. data/docs/README-utilities.md +14 -0
  11. data/lib/.rubocop.yml +1 -1
  12. data/lib/cisco_node_utils/aaa_authentication_login_service.rb +8 -3
  13. data/lib/cisco_node_utils/aaa_authorization_service.rb +6 -0
  14. data/lib/cisco_node_utils/bfd_global.rb +300 -0
  15. data/lib/cisco_node_utils/bgp.rb +6 -4
  16. data/lib/cisco_node_utils/bgp_af.rb +2 -0
  17. data/lib/cisco_node_utils/bgp_neighbor.rb +14 -0
  18. data/lib/cisco_node_utils/bgp_neighbor_af.rb +4 -1
  19. data/lib/cisco_node_utils/cisco_cmn_utils.rb +126 -0
  20. data/lib/cisco_node_utils/client/client.rb +6 -2
  21. data/lib/cisco_node_utils/client/grpc/client.rb +120 -36
  22. data/lib/cisco_node_utils/client/nxapi/client.rb +6 -2
  23. data/lib/cisco_node_utils/cmd_ref/DEPRECATED.yaml +118 -0
  24. data/lib/cisco_node_utils/cmd_ref/aaa_authorization_service.yaml +14 -0
  25. data/lib/cisco_node_utils/cmd_ref/bfd_global.yaml +117 -0
  26. data/lib/cisco_node_utils/cmd_ref/bgp.yaml +7 -7
  27. data/lib/cisco_node_utils/cmd_ref/bgp_neighbor.yaml +7 -0
  28. data/lib/cisco_node_utils/cmd_ref/dhcp_relay_global.yaml +125 -0
  29. data/lib/cisco_node_utils/cmd_ref/feature.yaml +10 -0
  30. data/lib/cisco_node_utils/cmd_ref/interface.yaml +141 -49
  31. data/lib/cisco_node_utils/cmd_ref/interface_ospf.yaml +44 -0
  32. data/lib/cisco_node_utils/cmd_ref/interface_portchannel.yaml +6 -0
  33. data/lib/cisco_node_utils/cmd_ref/ospf.yaml +6 -0
  34. data/lib/cisco_node_utils/cmd_ref/ospf_area.yaml +91 -0
  35. data/lib/cisco_node_utils/cmd_ref/ospf_area_vlink.yaml +88 -0
  36. data/lib/cisco_node_utils/cmd_ref/overlay_global.yaml +0 -3
  37. data/lib/cisco_node_utils/cmd_ref/show_version.yaml +3 -3
  38. data/lib/cisco_node_utils/cmd_ref/snmp_community.yaml +39 -15
  39. data/lib/cisco_node_utils/cmd_ref/snmp_notification_receiver.yaml +43 -21
  40. data/lib/cisco_node_utils/cmd_ref/snmp_server.yaml +48 -19
  41. data/lib/cisco_node_utils/cmd_ref/snmp_user.yaml +0 -0
  42. data/lib/cisco_node_utils/cmd_ref/tacacs_global.yaml +30 -0
  43. data/lib/cisco_node_utils/cmd_ref/tacacs_server.yaml +18 -6
  44. data/lib/cisco_node_utils/cmd_ref/vdc.yaml +4 -0
  45. data/lib/cisco_node_utils/cmd_ref/virtual_service.yaml +1 -0
  46. data/lib/cisco_node_utils/cmd_ref/vlan.yaml +23 -10
  47. data/lib/cisco_node_utils/cmd_ref/vxlan_vtep.yaml +8 -2
  48. data/lib/cisco_node_utils/cmd_ref/yang.yaml +7 -0
  49. data/lib/cisco_node_utils/cmd_ref/yum.yaml +10 -1
  50. data/lib/cisco_node_utils/constants.rb +8 -1
  51. data/lib/cisco_node_utils/dhcp_relay_global.rb +302 -0
  52. data/lib/cisco_node_utils/exceptions.rb +29 -0
  53. data/lib/cisco_node_utils/feature.rb +28 -0
  54. data/lib/cisco_node_utils/interface.rb +493 -402
  55. data/lib/cisco_node_utils/interface_DEPRECATED.rb +513 -0
  56. data/lib/cisco_node_utils/interface_ospf.rb +126 -0
  57. data/lib/cisco_node_utils/interface_portchannel.rb +16 -0
  58. data/lib/cisco_node_utils/logger.rb +3 -0
  59. data/lib/cisco_node_utils/node.rb +29 -1
  60. data/lib/cisco_node_utils/overlay_global.rb +1 -12
  61. data/lib/cisco_node_utils/pim.rb +1 -0
  62. data/lib/cisco_node_utils/pim_group_list.rb +1 -0
  63. data/lib/cisco_node_utils/pim_rp_address.rb +1 -0
  64. data/lib/cisco_node_utils/platform.rb +9 -2
  65. data/lib/cisco_node_utils/router_ospf.rb +1 -1
  66. data/lib/cisco_node_utils/router_ospf_area.rb +416 -0
  67. data/lib/cisco_node_utils/router_ospf_area_vlink.rb +313 -0
  68. data/lib/cisco_node_utils/router_ospf_vrf.rb +17 -0
  69. data/lib/cisco_node_utils/snmp_notification_receiver.rb +27 -9
  70. data/lib/cisco_node_utils/snmpcommunity.rb +34 -8
  71. data/lib/cisco_node_utils/snmpserver.rb +4 -4
  72. data/lib/cisco_node_utils/snmpuser.rb +0 -0
  73. data/lib/cisco_node_utils/tacacs_global.rb +102 -0
  74. data/lib/cisco_node_utils/tacacs_server.rb +8 -7
  75. data/lib/cisco_node_utils/vdc.rb +25 -7
  76. data/lib/cisco_node_utils/version.rb +1 -1
  77. data/lib/cisco_node_utils/vlan.rb +30 -56
  78. data/lib/cisco_node_utils/vlan_DEPRECATED.rb +108 -0
  79. data/lib/cisco_node_utils/yang.rb +160 -0
  80. data/lib/cisco_node_utils/yum.rb +25 -32
  81. data/tests/.rubocop.yml +3 -0
  82. data/tests/ciscotest.rb +136 -19
  83. data/tests/cmd_config_invalid.yaml +1 -1
  84. data/tests/noop.rb +7 -0
  85. data/tests/tacacs_server.yaml.example +6 -0
  86. data/tests/test_aaa_authentication_login.rb +24 -1
  87. data/tests/test_aaa_authentication_login_service.rb +9 -16
  88. data/tests/test_aaa_authorization_service.rb +111 -84
  89. data/tests/test_bfd_global.rb +278 -0
  90. data/tests/test_bgp_neighbor.rb +20 -0
  91. data/tests/test_bridge_domain_vni.rb +2 -9
  92. data/tests/test_cmn_utils.rb +76 -0
  93. data/tests/test_dhcp_relay_global.rb +284 -0
  94. data/tests/test_dns_domain.rb +4 -4
  95. data/tests/test_domain_name.rb +2 -2
  96. data/tests/test_encapsulation.rb +2 -4
  97. data/tests/test_evpn_vni.rb +14 -7
  98. data/tests/test_fabricpath_global.rb +12 -13
  99. data/tests/test_feature.rb +35 -17
  100. data/tests/test_interface.rb +352 -127
  101. data/tests/test_interface_bdi.rb +2 -2
  102. data/tests/test_interface_channel_group.rb +1 -1
  103. data/tests/test_interface_ospf.rb +153 -23
  104. data/tests/test_interface_portchannel.rb +15 -6
  105. data/tests/test_interface_private_vlan.rb +200 -576
  106. data/tests/test_interface_svi.rb +5 -52
  107. data/tests/test_interface_switchport.rb +80 -240
  108. data/tests/test_itd_device_group.rb +2 -2
  109. data/tests/test_itd_device_group_node.rb +2 -2
  110. data/tests/test_itd_service.rb +1 -1
  111. data/tests/test_name_server.rb +3 -3
  112. data/tests/test_node_ext.rb +15 -17
  113. data/tests/test_ntp_config.rb +1 -1
  114. data/tests/test_ntp_server.rb +3 -3
  115. data/tests/test_nxapi.rb +1 -0
  116. data/tests/test_overlay_global.rb +15 -19
  117. data/tests/test_pim.rb +5 -5
  118. data/tests/test_pim_group_list.rb +1 -37
  119. data/tests/test_pim_rp_address.rb +1 -1
  120. data/tests/test_platform.rb +9 -11
  121. data/tests/test_portchannel_global.rb +43 -3
  122. data/tests/test_radius_server.rb +1 -1
  123. data/tests/test_radius_server_group.rb +1 -1
  124. data/tests/test_router_bgp.rb +17 -30
  125. data/tests/test_router_ospf_area.rb +433 -0
  126. data/tests/test_router_ospf_area_vlink.rb +298 -0
  127. data/tests/test_router_ospf_vrf.rb +17 -0
  128. data/tests/test_snmp_notification_receiver.rb +11 -11
  129. data/tests/test_snmpcommunity.rb +177 -69
  130. data/tests/test_snmpgroup.rb +7 -7
  131. data/tests/test_snmpserver.rb +164 -253
  132. data/tests/test_snmpuser.rb +73 -69
  133. data/tests/test_stp_global.rb +15 -15
  134. data/tests/test_syslog_settings.rb +1 -1
  135. data/tests/test_tacacs_global.rb +80 -0
  136. data/tests/test_tacacs_server.rb +129 -51
  137. data/tests/test_tacacs_server_group.rb +3 -29
  138. data/tests/test_tacacs_server_host.rb +24 -27
  139. data/tests/test_vlan.rb +57 -59
  140. data/tests/test_vlan_private.rb +271 -284
  141. data/tests/test_vpc.rb +10 -4
  142. data/tests/test_vrf.rb +2 -0
  143. data/tests/test_vrf_af.rb +2 -5
  144. data/tests/test_vtp.rb +5 -2
  145. data/tests/test_vxlan_vtep.rb +20 -44
  146. data/tests/test_vxlan_vtep_vni.rb +23 -16
  147. data/tests/test_yang.rb +369 -0
  148. data/tests/test_yum.rb +34 -42
  149. data/tests/yum_package.yaml +35 -0
  150. metadata +31 -4
  151. data/tests/test_vlan_mt_full.rb +0 -85
@@ -19,6 +19,20 @@ method:
19
19
  set_value: "%s aaa authorization %s %s local"
20
20
  default_value: :local
21
21
 
22
+ remove_local_auth:
23
+ # Used for determining if removal of authentication method
24
+ # 'local' is permitted.
25
+ # TBD: remove local should be allowed on all platforms.
26
+ # Change once CSCva88188 is resolved
27
+ kind: boolean
28
+ N3k: &remove_local_allowed
29
+ default_only: true
30
+ N9k: *remove_local_allowed
31
+ N8k: *remove_local_allowed
32
+ N5k: *remove_local_allowed
33
+ N6k: *remove_local_allowed
34
+ N7k: *remove_local_allowed
35
+
22
36
  services:
23
37
  get_command: "show run aaa all"
24
38
  get_value: '/^aaa authorization (\S+) (\S+) .*(?:local)? ?$/'
@@ -0,0 +1,117 @@
1
+ # bfd_global
2
+ ---
3
+ _exclude: [ios_xr]
4
+
5
+ _template:
6
+ get_command: "show running-config bfd all"
7
+ context: ~
8
+
9
+ echo_interface:
10
+ kind: string
11
+ get_value: '/^bfd echo-interface (.*)$/'
12
+ set_value: '<state> bfd echo-interface <intf>'
13
+ default_value: false
14
+
15
+ echo_rx_interval:
16
+ _exclude: [N5k, N6k]
17
+ kind: int
18
+ get_value: '/^bfd echo-rx-interval (\d+)$/'
19
+ set_value: '<state> bfd echo-rx-interval <rxi>'
20
+ N3k:
21
+ default_value: 250
22
+ else:
23
+ default_value: 50
24
+
25
+ fabricpath_interval:
26
+ _exclude: [N3k, N8k, N9k]
27
+ get_value: '/^bfd fabricpath interval (\d+) min_rx (\d+) multiplier (\d+)$/'
28
+ set_value: '<state> bfd fabricpath interval <interval> min_rx <min_rx> multiplier <multiplier>'
29
+ default_value: ['50', '50', '3']
30
+
31
+ fabricpath_slow_timer:
32
+ _exclude: [N3k, N8k, N9k]
33
+ kind: int
34
+ get_value: '/^bfd fabricpath slow-timer (\d+)$/'
35
+ set_value: '<state> bfd fabricpath slow-timer <timer>'
36
+ default_value: 2000
37
+
38
+ fabricpath_vlan:
39
+ _exclude: [N3k, N8k, N9k]
40
+ kind: int
41
+ get_value: '/^bfd fabricpath vlan (\d+)$/'
42
+ set_value: '<state> bfd fabricpath vlan <vlan>'
43
+ default_value: 1
44
+
45
+ interval:
46
+ _exclude: [N8k, N9k] # TBD: bug on n8k, n9k this is not working now
47
+ get_value: '/^bfd interval (\d+) min_rx (\d+) multiplier (\d+)$/'
48
+ set_value: '<state> bfd interval <interval> min_rx <min_rx> multiplier <multiplier>'
49
+ N3k:
50
+ default_value: ['250', '250', '3']
51
+ else:
52
+ default_value: ['50', '50', '3']
53
+
54
+ ipv4_echo_rx_interval:
55
+ _exclude: [N5k, N6k]
56
+ kind: int
57
+ get_value: '/^bfd ipv4 echo-rx-interval (\d+)$/'
58
+ set_value: '<state> bfd ipv4 echo-rx-interval <rxi>'
59
+ N3k:
60
+ default_value: 250
61
+ else:
62
+ default_value: 50
63
+
64
+ ipv4_interval:
65
+ _exclude: [N5k, N6k]
66
+ get_value: '/^bfd ipv4 interval (\d+) min_rx (\d+) multiplier (\d+)$/'
67
+ set_value: '<state> bfd ipv4 interval <interval> min_rx <min_rx> multiplier <multiplier>'
68
+ N3k:
69
+ default_value: ['250', '250', '3']
70
+ else:
71
+ default_value: ['50', '50', '3']
72
+
73
+ ipv4_slow_timer:
74
+ _exclude: [N5k, N6k]
75
+ kind: int
76
+ get_value: '/^bfd ipv4 slow-timer (\d+)$/'
77
+ set_value: '<state> bfd ipv4 slow-timer <timer>'
78
+ default_value: 2000
79
+
80
+ ipv6_echo_rx_interval:
81
+ _exclude: [N5k, N6k]
82
+ kind: int
83
+ get_value: '/^bfd ipv6 echo-rx-interval (\d+)$/'
84
+ set_value: '<state> bfd ipv6 echo-rx-interval <rxi>'
85
+ N3k:
86
+ default_value: 250
87
+ else:
88
+ default_value: 50
89
+
90
+ ipv6_interval:
91
+ _exclude: [N5k, N6k]
92
+ get_value: '/^bfd ipv6 interval (\d+) min_rx (\d+) multiplier (\d+)$/'
93
+ set_value: '<state> bfd ipv6 interval <interval> min_rx <min_rx> multiplier <multiplier>'
94
+ N3k:
95
+ default_value: ['250', '250', '3']
96
+ else:
97
+ default_value: ['50', '50', '3']
98
+
99
+ ipv6_slow_timer:
100
+ _exclude: [N5k, N6k]
101
+ kind: int
102
+ get_value: '/^bfd ipv6 slow-timer (\d+)$/'
103
+ set_value: '<state> bfd ipv6 slow-timer <timer>'
104
+ default_value: 2000
105
+
106
+ slow_timer:
107
+ kind: int
108
+ get_value: '/^bfd slow-timer (\d+)$/'
109
+ set_value: '<state> bfd slow-timer <timer>'
110
+ default_value: 2000
111
+
112
+ startup_timer:
113
+ _exclude: [N5k, N6k, N7k]
114
+ kind: int
115
+ get_value: '/^bfd startup-timer (\d+)$/'
116
+ set_value: '<state> bfd startup-timer <timer>'
117
+ default_value: 5
@@ -272,7 +272,7 @@ nsr:
272
272
  set_value: '<state> nsr'
273
273
 
274
274
  process_initialized:
275
- _exclude: [ios_xr, N3k, N7k, N8k, N9k]
275
+ _exclude: [ios_xr, N3k, N7k, N9k]
276
276
  # bgp process initialization state
277
277
  kind: boolean
278
278
  context: ~
@@ -331,12 +331,12 @@ shutdown:
331
331
  default_value: false
332
332
 
333
333
  suppress_fib_pending:
334
- # Note: Does not exist in IOS XR
335
- nexus:
336
- kind: boolean
337
- get_value: 'suppress-fib-pending'
338
- set_value: '<state> suppress-fib-pending'
339
- default_value: false
334
+ _exclude: [ios_xr]
335
+ kind: boolean
336
+ get_value: '/^(?:no )?suppress-fib-pending$/'
337
+ set_value: '<state> suppress-fib-pending'
338
+ default_value: true
339
+ auto_default: false
340
340
 
341
341
  timer_bestpath_limit:
342
342
  # Note: Does not exist in IOS XR
@@ -20,6 +20,13 @@ all_neighbors:
20
20
  - "(?)vrf <vrf>"
21
21
  get_value: '/^neighbor (\S+)$/'
22
22
 
23
+ bfd:
24
+ _exclude: [ios_xr]
25
+ kind: boolean
26
+ get_value: '/^bfd$/'
27
+ set_value: '<state> bfd'
28
+ default_value: false
29
+
23
30
  capability_negotiation:
24
31
  _exclude: [ios_xr]
25
32
  auto_default: false
@@ -0,0 +1,125 @@
1
+ # dhcp_relay_global
2
+ ---
3
+ _exclude: [ios_xr]
4
+
5
+ _template:
6
+ get_command: "show running-config dhcp | no-more"
7
+
8
+ ipv4_information_option:
9
+ kind: boolean
10
+ get_value: '/^ip dhcp relay information option$/'
11
+ set_value: "<state> ip dhcp relay information option"
12
+ default_value: false
13
+
14
+ ipv4_information_option_trust:
15
+ _exclude: [N5k, N6k]
16
+ kind: boolean
17
+ get_value: '/^ip dhcp relay information option trust$/'
18
+ set_value: "<state> ip dhcp relay information option trust"
19
+ default_value: false
20
+
21
+ ipv4_information_option_vpn:
22
+ kind: boolean
23
+ get_value: '/^ip dhcp relay information option vpn$/'
24
+ set_value: "<state> ip dhcp relay information option vpn"
25
+ default_value: false
26
+
27
+ ipv4_information_trust_all:
28
+ _exclude: [N5k, N6k]
29
+ kind: boolean
30
+ get_value: '/^ip dhcp relay information trust-all$/'
31
+ set_value: "<state> ip dhcp relay information trust-all"
32
+ default_value: false
33
+
34
+ ipv4_relay:
35
+ kind: boolean
36
+ get_value: '/^ip dhcp relay$/'
37
+ set_value: "<state> ip dhcp relay"
38
+ N3k: &relay_default_true
39
+ # auto_default is set to false because when
40
+ # this property is set to false, we do not
41
+ # find the regex pattern and since the default_value
42
+ # is true, it should not return true as its real
43
+ # value is false.
44
+ auto_default: false
45
+ default_value: true
46
+ N5k: &relay_default_false
47
+ default_value: false
48
+ N6k: *relay_default_false
49
+ N7k: *relay_default_true
50
+ N8k: *relay_default_true
51
+ N9k: *relay_default_true
52
+
53
+ ipv4_smart_relay:
54
+ kind: boolean
55
+ get_value: '/^ip dhcp smart-relay global$/'
56
+ set_value: "<state> ip dhcp smart-relay global"
57
+ default_value: false
58
+
59
+ ipv4_src_addr_hsrp:
60
+ _exclude: [N3k, N8k, N9k]
61
+ kind: boolean
62
+ get_value: '/^ip dhcp relay source-address hsrp$/'
63
+ set_value: "<state> ip dhcp relay source-address hsrp"
64
+ default_value: false
65
+
66
+ ipv4_src_intf:
67
+ get_value: '/^ip dhcp relay source-interface (.*)$/'
68
+ set_value: "<state> ip dhcp relay source-interface <intf>"
69
+ default_value: false
70
+
71
+ ipv4_sub_option_circuit_id_custom:
72
+ _exclude: [N7k, N8k]
73
+ kind: boolean
74
+ get_value: '/^ip dhcp relay sub-option circuit-id customized$/'
75
+ set_value: "<state> ip dhcp relay sub-option circuit-id customized"
76
+ default_value: false
77
+
78
+ ipv4_sub_option_circuit_id_string:
79
+ _exclude: [N5k, N6k, N7k, N8k, N9k]
80
+ get_value: '/^ip dhcp relay sub-option circuit-id format-type string format (.*)$/'
81
+ set_value: "<state> ip dhcp relay sub-option circuit-id format-type string <format> <word>"
82
+ default_value: false
83
+
84
+ ipv4_sub_option_cisco:
85
+ kind: boolean
86
+ get_value: '/^ip dhcp relay sub-option type cisco$/'
87
+ set_value: "<state> ip dhcp relay sub-option type cisco"
88
+ default_value: false
89
+
90
+ ipv6_option_cisco:
91
+ _exclude: [N5k, N6k]
92
+ kind: boolean
93
+ get_value: '/^ipv6 dhcp relay option type cisco$/'
94
+ set_value: "<state> ipv6 dhcp relay option type cisco"
95
+ default_value: false
96
+
97
+ ipv6_option_vpn:
98
+ kind: boolean
99
+ get_value: '/^ipv6 dhcp relay option vpn$/'
100
+ set_value: "<state> ipv6 dhcp relay option vpn"
101
+ default_value: false
102
+
103
+ ipv6_relay:
104
+ kind: boolean
105
+ get_value: '/^ipv6 dhcp relay$/'
106
+ set_value: "<state> ipv6 dhcp relay"
107
+ N3k: &v6_relay_default_true
108
+ # auto_default is set to false because when
109
+ # this property is set to false, we do not
110
+ # find the regex pattern and since the default_value
111
+ # is true, it should not return true as its real
112
+ # value is false.
113
+ auto_default: false
114
+ default_value: true
115
+ N5k: &v6_relay_default_false
116
+ default_value: false
117
+ N6k: *v6_relay_default_false
118
+ N7k: *v6_relay_default_true
119
+ N8k: *v6_relay_default_true
120
+ N9k: *v6_relay_default_true
121
+
122
+ ipv6_src_intf:
123
+ get_value: '/^ipv6 dhcp relay source-interface (.*)$/'
124
+ set_value: "<state> ipv6 dhcp relay source-interface <intf>"
125
+ default_value: false
@@ -5,11 +5,21 @@ _exclude: [ios_xr]
5
5
  _template:
6
6
  get_command: "show running | i ^feature"
7
7
 
8
+ bfd:
9
+ kind: boolean
10
+ get_value: '/^feature bfd$/'
11
+ set_value: "feature bfd"
12
+
8
13
  bgp:
9
14
  kind: boolean
10
15
  get_value: '/^feature bgp$/'
11
16
  set_value: "feature bgp"
12
17
 
18
+ dhcp:
19
+ kind: boolean
20
+ get_value: '/^feature dhcp$/'
21
+ set_value: "feature dhcp"
22
+
13
23
  fabric:
14
24
  _exclude: [N3k, N8k, N9k]
15
25
  get_command: "show feature-set"
@@ -21,6 +21,13 @@ all_interfaces:
21
21
  get_context: ~
22
22
  get_value: '/^interface (.*)/'
23
23
 
24
+ bfd_echo:
25
+ _exclude: [ios_xr]
26
+ kind: boolean
27
+ get_value: '/^(?:no )?bfd echo$/'
28
+ set_value: '<state> bfd echo'
29
+ default_value: true
30
+
24
31
  capabilities:
25
32
  _exclude: [ios_xr]
26
33
  multiple:
@@ -125,6 +132,47 @@ ipv4_arp_timeout:
125
132
  ipv4_arp_timeout_non_vlan_interfaces:
126
133
  default_only: ~
127
134
 
135
+ ipv4_dhcp_relay_addr:
136
+ _exclude: [ios_xr]
137
+ multiple:
138
+ get_value: '/^ip dhcp relay address (.*) $/'
139
+ set_value: "<state> ip dhcp relay address <addr>"
140
+ default_value: []
141
+
142
+ ipv4_dhcp_relay_info_trust:
143
+ _exclude: [ios_xr, N5k, N6k]
144
+ kind: boolean
145
+ get_value: '/^ip dhcp relay information trusted$/'
146
+ set_value: "<state> ip dhcp relay information trusted"
147
+ default_value: false
148
+
149
+ ipv4_dhcp_relay_src_addr_hsrp:
150
+ _exclude: [ios_xr, N3k, N8k, N9k]
151
+ kind: boolean
152
+ get_value: '/^ip dhcp relay source-address hsrp$/'
153
+ set_value: "<state> ip dhcp relay source-address hsrp"
154
+ default_value: false
155
+
156
+ ipv4_dhcp_relay_src_intf:
157
+ _exclude: [ios_xr]
158
+ get_value: '/^ip dhcp relay source-interface (.*)$/'
159
+ set_value: "<state> ip dhcp relay source-interface <intf>"
160
+ default_value: false
161
+
162
+ ipv4_dhcp_relay_subnet_broadcast:
163
+ _exclude: [ios_xr]
164
+ kind: boolean
165
+ get_value: '/^ip dhcp relay subnet-broadcast$/'
166
+ set_value: "<state> ip dhcp relay subnet-broadcast"
167
+ default_value: false
168
+
169
+ ipv4_dhcp_smart_relay:
170
+ _exclude: [ios_xr]
171
+ kind: boolean
172
+ get_value: '/^ip dhcp smart-relay$/'
173
+ set_value: "<state> ip dhcp smart-relay"
174
+ default_value: false
175
+
128
176
  ipv4_forwarding:
129
177
  _exclude: [ios_xr]
130
178
  kind: boolean
@@ -191,6 +239,19 @@ ipv6_acl_out:
191
239
  set_value: "<state> ipv6 traffic-filter <acl> out"
192
240
  default_value: ""
193
241
 
242
+ ipv6_dhcp_relay_addr:
243
+ _exclude: [ios_xr]
244
+ multiple:
245
+ get_value: '/^ipv6 dhcp relay address (.*)$/'
246
+ set_value: "<state> ipv6 dhcp relay address <addr>"
247
+ default_value: []
248
+
249
+ ipv6_dhcp_relay_src_intf:
250
+ _exclude: [ios_xr]
251
+ get_value: '/^ipv6 dhcp relay source-interface (.*)$/'
252
+ set_value: "<state> ipv6 dhcp relay source-interface <intf>"
253
+ default_value: false
254
+
194
255
  mtu_loopback:
195
256
  kind: boolean
196
257
  default_only: ~
@@ -223,15 +284,20 @@ negotiate_auto_portchannel:
223
284
  set_value: "<state> negotiate auto"
224
285
  default_value: true
225
286
 
226
- private_vlan_any:
287
+ pvlan_any:
227
288
  multiple:
228
289
  get_value: '/switchport private-vlan/'
229
290
 
230
- private_vlan_mapping:
291
+ # Be aware of similar vlan-mapping tags:
292
+ # 'vlan_mapping' is the non-pvlan version of this command
293
+ # 'pvlan_mapping' is the SVI private-vlan command
294
+ # 'switchport_pvlan_mapping' is the switchport-pvlan-host command
295
+ # 'switchport_pvlan_mapping_trunk' is the switchport-pvlan-trunk command
296
+ pvlan_mapping:
297
+ # SVI-only property
231
298
  _exclude: [ios_xr, N8k]
232
- multiple: true
233
- get_value: '/^private-vlan mapping (.*)$/'
234
- set_value: "<state> private-vlan mapping <vlans>"
299
+ get_value: '/^private-vlan mapping (.*)/'
300
+ set_value: "<state> private-vlan mapping <vlan>"
235
301
  default_value: []
236
302
 
237
303
  shutdown:
@@ -277,6 +343,27 @@ speed:
277
343
  else:
278
344
  default_value: 'auto'
279
345
 
346
+ storm_control_broadcast:
347
+ _exclude: [ios_xr, N7k]
348
+ kind: string
349
+ get_value: '/^storm-control broadcast level (.*)$/'
350
+ set_value: "<state> storm-control broadcast level <level>"
351
+ default_value: '100.00'
352
+
353
+ storm_control_multicast:
354
+ _exclude: [ios_xr, N7k]
355
+ kind: string
356
+ get_value: '/^storm-control multicast level (.*)$/'
357
+ set_value: "<state> storm-control multicast level <level>"
358
+ default_value: '100.00'
359
+
360
+ storm_control_unicast:
361
+ _exclude: [ios_xr]
362
+ kind: string
363
+ get_value: '/^storm-control unicast level (.*)$/'
364
+ set_value: "<state> storm-control unicast level <level>"
365
+ default_value: '100.00'
366
+
280
367
  stp_bpdufilter:
281
368
  kind: string
282
369
  get_value: '/^spanning-tree bpdufilter (.*)$/'
@@ -405,75 +492,80 @@ switchport_mode_port_channel:
405
492
  set_value: "<state> switchport mode <mode>"
406
493
  default_value: ""
407
494
 
408
- switchport_mode_private_vlan_host:
495
+ switchport_pvlan_host:
496
+ _exclude: [ios_xr, N8k]
497
+ kind: boolean
498
+ get_value: '/^switchport mode private-vlan host$/'
499
+ set_value: "<state> switchport mode private-vlan host"
500
+ default_value: false
501
+
502
+ switchport_pvlan_host_association:
409
503
  _exclude: [ios_xr, N8k]
410
- get_value: '/^switchport mode private-vlan (.*)$/'
411
- set_value: "<state> switchport mode private-vlan <mode>"
412
- default_value: :disabled
504
+ # Note this is NOT a multiple, unlike trunk association.
505
+ get_value: '/^switchport private-vlan host-association (\d+) (\d+)$/'
506
+ set_value: "<state> switchport private-vlan host-association <pri> <sec>"
507
+ default_value: []
413
508
 
414
- switchport_mode_private_vlan_host_association:
509
+ switchport_pvlan_mapping:
415
510
  _exclude: [ios_xr, N8k]
416
- multiple: true
417
- get_value: '/^switchport private-vlan host-association (.*)$/'
418
- set_value: "<state> switchport private-vlan host-association <vlan_pr> <vlan_sec>"
511
+ get_value: '/^switchport private-vlan mapping (\d+) (.*)$/'
512
+ set_value: "<state> switchport private-vlan mapping <primary> <vlan>"
513
+ default_value: []
514
+
515
+ switchport_pvlan_mapping_trunk:
516
+ _exclude: [ios_xr, N3k, N8k]
517
+ multiple:
518
+ get_value: '/^switchport private-vlan mapping trunk (\d+) (.*)$/'
519
+ set_value: "<state> switchport private-vlan mapping trunk <primary> <range>"
419
520
  default_value: []
420
521
 
421
- switchport_mode_private_vlan_host_promiscous:
522
+ switchport_pvlan_promiscuous:
523
+ _exclude: [ios_xr, N8k]
524
+ kind: boolean
525
+ get_value: '/^switchport mode private-vlan promiscuous$/'
526
+ set_value: "<state> switchport mode private-vlan promiscuous"
527
+ default_value: false
528
+
529
+ switchport_pvlan_trunk_allowed_vlan:
422
530
  _exclude: [ios_xr, N8k]
423
531
  multiple: true
424
- get_value: '/^switchport private-vlan mapping (\d+.*)$/'
425
- set_value: "<state> switchport private-vlan mapping <vlan_pr> <vlans>"
532
+ get_value: '/^switchport private-vlan trunk allowed vlan (?:add )?(\S+)$/'
533
+ set_value: "switchport private-vlan trunk allowed vlan <range>"
534
+ default_value: 'none'
535
+
536
+ switchport_pvlan_trunk_association:
537
+ _exclude: [ios_xr, N3k, N8k]
538
+ multiple:
539
+ get_value: '/^switchport private-vlan association trunk (\d+) (\d+)$/'
540
+ set_value: "<state> switchport private-vlan association trunk <pri> <sec>"
426
541
  default_value: []
427
542
 
543
+ switchport_pvlan_trunk_native_vlan:
544
+ _exclude: [ios_xr, N8k]
545
+ get_value: '/^switchport private-vlan trunk native vlan (.*)$/'
546
+ set_value: "switchport private-vlan trunk native vlan <vlan>"
547
+ default_value: '1'
428
548
 
429
- switchport_mode_private_vlan_trunk_promiscuous:
549
+ switchport_pvlan_trunk_promiscuous:
430
550
  _exclude: [ios_xr, N3k, N8k]
431
551
  kind: boolean
432
552
  get_value: '/^switchport mode private-vlan trunk promiscuous$/'
433
553
  set_value: "<state> switchport mode private-vlan trunk promiscuous"
434
554
  default_value: false
435
555
 
436
- switchport_mode_private_vlan_trunk_secondary:
556
+ switchport_pvlan_trunk_secondary:
437
557
  _exclude: [ios_xr, N3k, N8k]
438
558
  kind: boolean
439
559
  get_value: '/^switchport mode private-vlan trunk secondary$/'
440
560
  set_value: "<state> switchport mode private-vlan trunk secondary"
441
561
  default_value: false
442
562
 
443
- switchport_private_vlan_association_trunk:
444
- _exclude: [ios_xr, N3k, N8k]
445
- multiple: true
446
- #get_value: '/^switchport private-vlan association trunk (.*) (.*)$/'
447
- get_value: '/^switchport private-vlan association trunk (.*)$/'
448
- set_value: "<state> switchport private-vlan association trunk <vlan_pr> <vlan>"
449
- default_value: []
450
-
451
- switchport_private_vlan_mapping_trunk:
452
- _exclude: [ios_xr, N3k, N8k]
453
- multiple: true
454
- get_value: '/^switchport private-vlan mapping trunk (.*)$/'
455
- set_value: "<state> switchport private-vlan mapping trunk <vlan_pr> <vlans>"
456
- default_value: []
457
-
458
- switchport_private_vlan_trunk_allowed_vlan:
459
- _exclude: [ios_xr, N8k]
460
- multiple: true
461
- get_value: '/^switchport private-vlan trunk allowed vlan (.*)$/'
462
- set_value: "<state> switchport private-vlan trunk allowed vlan <oper> <vlans>"
463
- default_value: []
464
-
465
- switchport_private_vlan_trunk_native_vlan:
466
- _exclude: [ios_xr, N8k]
467
- kind: int
468
- get_value: '/^switchport private-vlan trunk native vlan (.*)$/'
469
- set_value: "<state> switchport private-vlan trunk native vlan <vlan>"
470
- default_value: 1
471
-
472
563
  switchport_trunk_allowed_vlan:
473
564
  _exclude: [ios_xr]
474
- get_value: '/^switchport trunk allowed vlan (.*)$/'
565
+ multiple: true
566
+ get_value: '/^switchport trunk allowed vlan (?:add )?(\S+)$/'
475
567
  set_value: "<state> switchport trunk allowed vlan <vlan>"
476
- default_value: "1-4094"
568
+ default_value: '1-4094'
477
569
 
478
570
  switchport_trunk_native_vlan:
479
571
  _exclude: [ios_xr]