Class: Cisco::VxlanVtep
Overview
node_utils class for vxlan_vtep
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
Methods inherited from NodeUtil
client, #client, config_get, #config_get, #config_get_default, config_get_default, config_set, #config_set, #get, #ios_xr?, #nexus?, #node, node, platform, #platform, supports?, #supports?
Constructor Details
#initialize(name, instantiate = true) ⇒ VxlanVtep
Returns a new instance of VxlanVtep.
28
29
30
31
32
33
34
|
# File 'lib/cisco_node_utils/vxlan_vtep.rb', line 28
def initialize(name, instantiate=true)
fail TypeError unless name.is_a?(String)
fail ArgumentError unless name.length > 0
@name = name.downcase
create if instantiate
end
|
Instance Attribute Details
#name ⇒ Object
Returns the value of attribute name.
26
27
28
|
# File 'lib/cisco_node_utils/vxlan_vtep.rb', line 26
def name
@name
end
|
Class Method Details
.mt_full_support ⇒ Object
49
50
51
|
# File 'lib/cisco_node_utils/vxlan_vtep.rb', line 49
def self.mt_full_support
config_get('vxlan_vtep', 'mt_full_support')
end
|
.mt_lite_support ⇒ Object
53
54
55
|
# File 'lib/cisco_node_utils/vxlan_vtep.rb', line 53
def self.mt_lite_support
config_get('vxlan_vtep', 'mt_lite_support')
end
|
.vteps ⇒ Object
36
37
38
39
40
41
42
43
44
45
46
47
|
# File 'lib/cisco_node_utils/vxlan_vtep.rb', line 36
def self.vteps
hash = {}
return hash unless Feature.nv_overlay_enabled?
vtep_list = config_get('vxlan_vtep', 'all_interfaces')
return hash if vtep_list.nil?
vtep_list.each do |id|
id = id.downcase
hash[id] = VxlanVtep.new(id, false)
end
hash
end
|
Instance Method Details
#==(other) ⇒ Object
73
74
75
|
# File 'lib/cisco_node_utils/vxlan_vtep.rb', line 73
def ==(other)
name == other.name
end
|
#default_description ⇒ Object
92
93
94
|
# File 'lib/cisco_node_utils/vxlan_vtep.rb', line 92
def default_description
config_get_default('interface', 'description')
end
|
#default_global_ingress_replication_bgp ⇒ Object
222
223
224
|
# File 'lib/cisco_node_utils/vxlan_vtep.rb', line 222
def default_global_ingress_replication_bgp
config_get_default('vxlan_vtep', 'global_ingress_replication_bgp')
end
|
#default_global_mcast_group_l2 ⇒ Object
265
266
267
|
# File 'lib/cisco_node_utils/vxlan_vtep.rb', line 265
def default_global_mcast_group_l2
config_get_default('vxlan_vtep', 'global_mcast_group_l2')
end
|
#default_global_mcast_group_l3 ⇒ Object
282
283
284
|
# File 'lib/cisco_node_utils/vxlan_vtep.rb', line 282
def default_global_mcast_group_l3
config_get_default('vxlan_vtep', 'global_mcast_group_l3')
end
|
#default_global_suppress_arp ⇒ Object
248
249
250
|
# File 'lib/cisco_node_utils/vxlan_vtep.rb', line 248
def default_global_suppress_arp
config_get_default('vxlan_vtep', 'global_suppress_arp')
end
|
#default_host_reachability ⇒ Object
113
114
115
|
# File 'lib/cisco_node_utils/vxlan_vtep.rb', line 113
def default_host_reachability
config_get_default('vxlan_vtep', 'host_reachability')
end
|
#default_multisite_border_gateway_interface ⇒ Object
197
198
199
|
# File 'lib/cisco_node_utils/vxlan_vtep.rb', line 197
def default_multisite_border_gateway_interface
config_get_default('vxlan_vtep', 'multisite_bg_intf')
end
|
#default_shutdown ⇒ Object
173
174
175
|
# File 'lib/cisco_node_utils/vxlan_vtep.rb', line 173
def default_shutdown
config_get_default('vxlan_vtep', 'shutdown')
end
|
#default_source_interface ⇒ Object
136
137
138
|
# File 'lib/cisco_node_utils/vxlan_vtep.rb', line 136
def default_source_interface
config_get_default('vxlan_vtep', 'source_intf')
end
|
#default_source_interface_hold_down_time ⇒ Object
160
161
162
|
# File 'lib/cisco_node_utils/vxlan_vtep.rb', line 160
def default_source_interface_hold_down_time
config_get_default('vxlan_vtep', 'source_intf_hold_down_time')
end
|
#description ⇒ Object
81
82
83
|
# File 'lib/cisco_node_utils/vxlan_vtep.rb', line 81
def description
config_get('interface', 'description', name: @name, show_name: @name)
end
|
#description=(desc) ⇒ Object
85
86
87
88
89
90
|
# File 'lib/cisco_node_utils/vxlan_vtep.rb', line 85
def description=(desc)
fail TypeError unless desc.is_a?(String)
state = desc.empty? ? 'no' : ''
config_set('interface', 'description',
name: @name, state: state, desc: desc)
end
|
#destroy ⇒ Object
68
69
70
71
|
# File 'lib/cisco_node_utils/vxlan_vtep.rb', line 68
def destroy
config_set('interface', 'destroy', name: @name)
end
|
#global_ingress_replication_bgp ⇒ Object
201
202
203
|
# File 'lib/cisco_node_utils/vxlan_vtep.rb', line 201
def global_ingress_replication_bgp
config_get('vxlan_vtep', 'global_ingress_replication_bgp', name: @name)
end
|
#global_ingress_replication_bgp=(state) ⇒ Object
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
|
# File 'lib/cisco_node_utils/vxlan_vtep.rb', line 205
def global_ingress_replication_bgp=(state)
set_args = { name: @name }
if state
set_args[:state] = ''
unless VxlanVtep.new(@name).host_reachability == 'evpn'
fail "Dependency: vxlan_vtep host_reachability must be 'evpn'."
end
config_set('vxlan_vtep', 'global_ingress_replication_bgp', set_args)
else
set_args[:state] = 'no'
config_set('vxlan_vtep',
'global_ingress_replication_bgp', set_args) if
global_ingress_replication_bgp
end
end
|
#global_mcast_group_l2 ⇒ Object
252
253
254
|
# File 'lib/cisco_node_utils/vxlan_vtep.rb', line 252
def global_mcast_group_l2
config_get('vxlan_vtep', 'global_mcast_group_l2', name: @name)
end
|
#global_mcast_group_l2=(val) ⇒ Object
256
257
258
259
260
261
262
263
|
# File 'lib/cisco_node_utils/vxlan_vtep.rb', line 256
def global_mcast_group_l2=(val)
if val
set_args = { name: @name, ip: val, state: '' }
else
set_args = { name: @name, ip: '', state: 'no' }
end
config_set('vxlan_vtep', 'global_mcast_group_l2', set_args)
end
|
#global_mcast_group_l3 ⇒ Object
269
270
271
|
# File 'lib/cisco_node_utils/vxlan_vtep.rb', line 269
def global_mcast_group_l3
config_get('vxlan_vtep', 'global_mcast_group_l3', name: @name)
end
|
#global_mcast_group_l3=(val) ⇒ Object
273
274
275
276
277
278
279
280
|
# File 'lib/cisco_node_utils/vxlan_vtep.rb', line 273
def global_mcast_group_l3=(val)
if val
set_args = { name: @name, ip: val, state: '' }
else
set_args = { name: @name, ip: '', state: 'no' }
end
config_set('vxlan_vtep', 'global_mcast_group_l3', set_args)
end
|
#global_suppress_arp ⇒ Object
226
227
228
|
# File 'lib/cisco_node_utils/vxlan_vtep.rb', line 226
def global_suppress_arp
config_get('vxlan_vtep', 'global_suppress_arp', name: @name)
end
|
#global_suppress_arp=(state) ⇒ Object
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
|
# File 'lib/cisco_node_utils/vxlan_vtep.rb', line 230
def global_suppress_arp=(state)
set_args = { name: @name }
if state
set_args[:state] = ''
unless VxlanVtep.new(@name).host_reachability == 'evpn'
fail "Dependency: vxlan_vtep host_reachability must be 'evpn'."
end
Feature.nv_overlay_evpn_enable if
Feature.nv_overlay_evpn_supported? && !Feature.nv_overlay_evpn_enabled?
config_set('vxlan_vtep', 'global_suppress_arp', set_args)
else
set_args[:state] = 'no'
config_set('vxlan_vtep',
'global_suppress_arp', set_args) if global_suppress_arp
end
end
|
#host_reachability ⇒ Object
96
97
98
99
|
# File 'lib/cisco_node_utils/vxlan_vtep.rb', line 96
def host_reachability
hr = config_get('vxlan_vtep', 'host_reachability', name: @name)
hr == 'bgp' ? 'evpn' : hr
end
|
#host_reachability=(val) ⇒ Object
101
102
103
104
105
106
107
108
109
110
111
|
# File 'lib/cisco_node_utils/vxlan_vtep.rb', line 101
def host_reachability=(val)
set_args = { name: @name, proto: 'bgp' }
if val.to_s == 'flood' && host_reachability == 'evpn'
set_args[:state] = 'no'
elsif val.to_s == 'evpn'
set_args[:state] = ''
else
return
end
config_set('vxlan_vtep', 'host_reachability', set_args)
end
|
#multisite_border_gateway_interface ⇒ Object
177
178
179
|
# File 'lib/cisco_node_utils/vxlan_vtep.rb', line 177
def multisite_border_gateway_interface
config_get('vxlan_vtep', 'multisite_bg_intf', name: @name)
end
|
#multisite_border_gateway_interface=(val) ⇒ Object
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
|
# File 'lib/cisco_node_utils/vxlan_vtep.rb', line 181
def multisite_border_gateway_interface=(val)
set_args = { name: @name }
set_args[:state] = val.empty? ? 'no' : ''
set_args[:lpbk_intf] = val.empty? ? multisite_border_gateway_interface : val
if set_args[:state] == 'no'
intf = multisite_border_gateway_interface
unless intf == default_multisite_border_gateway_interface
config_set('vxlan_vtep', 'multisite_bg_intf', set_args)
end
else
config_set('vxlan_vtep', 'multisite_bg_intf', set_args)
end
end
|
#shutdown ⇒ Object
164
165
166
|
# File 'lib/cisco_node_utils/vxlan_vtep.rb', line 164
def shutdown
config_get('vxlan_vtep', 'shutdown', name: @name)
end
|
#shutdown=(bool) ⇒ Object
168
169
170
171
|
# File 'lib/cisco_node_utils/vxlan_vtep.rb', line 168
def shutdown=(bool)
state = (bool ? '' : 'no')
config_set('vxlan_vtep', 'shutdown', name: @name, state: state)
end
|
#source_interface ⇒ Object
117
118
119
|
# File 'lib/cisco_node_utils/vxlan_vtep.rb', line 117
def source_interface
config_get('vxlan_vtep', 'source_intf', name: @name)
end
|
#source_interface=(val) ⇒ Object
127
128
129
130
131
132
133
134
|
# File 'lib/cisco_node_utils/vxlan_vtep.rb', line 127
def source_interface=(val)
current_state = shutdown
self.shutdown = true unless shutdown
source_interface_set(val)
self.shutdown = current_state
end
|
#source_interface_hold_down_time ⇒ Object
140
141
142
|
# File 'lib/cisco_node_utils/vxlan_vtep.rb', line 140
def source_interface_hold_down_time
config_get('vxlan_vtep', 'source_intf_hold_down_time', name: @name)
end
|
#source_interface_hold_down_time=(time) ⇒ Object
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
|
# File 'lib/cisco_node_utils/vxlan_vtep.rb', line 144
def source_interface_hold_down_time=(time)
state = time == default_source_interface_hold_down_time ? 'no' : ''
if state == 'no'
time = source_interface_hold_down_time
unless time == default_source_interface_hold_down_time
config_set('vxlan_vtep', 'source_intf_hold_down_time', name: @name,
state: state, time: time)
end
else
config_set('vxlan_vtep', 'source_intf_hold_down_time', name: @name,
state: state, time: time)
end
end
|
#source_interface_set(val) ⇒ Object
121
122
123
124
125
|
# File 'lib/cisco_node_utils/vxlan_vtep.rb', line 121
def source_interface_set(val)
set_args = { name: @name, lpbk_intf: val }
set_args[:state] = val.empty? ? 'no' : ''
config_set('vxlan_vtep', 'source_intf', set_args)
end
|