Class: Rbeapi::Api::VxlanInterface
- Inherits:
-
BaseInterface
- Object
- Entity
- BaseInterface
- Rbeapi::Api::VxlanInterface
- Defined in:
- lib/rbeapi/api/interfaces.rb
Overview
The VxlanInterface class manages all Vxlan interfaces on an EOS node.
Constant Summary collapse
- DEFAULT_SRC_INTF =
''.freeze
- DEFAULT_MCAST_GRP =
''.freeze
Constants inherited from BaseInterface
BaseInterface::DEFAULT_INTF_DESCRIPTION, BaseInterface::DEFAULT_INTF_ENCAPSULATION, BaseInterface::DEFAULT_LOAD_INTERVAL
Instance Attribute Summary
Attributes inherited from Entity
Instance Method Summary collapse
-
#add_vtep(name, vtep) ⇒ Boolean
add_vtep adds a new VTEP endpoint to the global flood list for the specified interface.
-
#get(name = 'Vxlan1') ⇒ nil, Hash<String, String>
Returns the Vxlan interface configuration as a Ruby hash of key/value pairs from the nodes running configuration.
-
#remove_vlan(name, vlan) ⇒ Boolean
remove_vlan deletes a previously configured VLAN to VNI mapping on the specified interface.
-
#remove_vtep(name, vtep) ⇒ Boolean
remove_vtep deletes a VTEP endpoint from the global flood list for the specified interface.
-
#set_multicast_group(name = 'Vxlan1', opts = {}) ⇒ Boolean
Configures the vxlan multicast-group flood address to the specified value.
-
#set_source_interface(name = 'Vxlan1', opts = {}) ⇒ Boolean
Configures the vxlan source-interface to the specified value.
-
#set_udp_port(name, opts = {}) ⇒ Boolean
set_udp_port configures the Vxlan udp-port value in EOS for the specified interface name.
-
#update_vlan(name, vlan, vni) ⇒ Boolean
update_vlan creates a new vlan to vni mapping for the specified interface in the nodes current configuration.
Methods inherited from BaseInterface
#create, #default, #delete, #set_description, #set_encapsulation, #set_load_interval, #set_shutdown
Methods inherited from Entity
#command_builder, #configure, #configure_interface, #get_block, #initialize, instance
Constructor Details
This class inherits a constructor from Rbeapi::Api::Entity
Instance Method Details
#add_vtep(name, vtep) ⇒ Boolean
add_vtep adds a new VTEP endpoint to the global flood list for the specified interface. If the VTEP endpoint is already configured, this method will still return successfully.
1404 1405 1406 |
# File 'lib/rbeapi/api/interfaces.rb', line 1404 def add_vtep(name, vtep) configure_interface(name, "vxlan flood vtep add #{vtep}") end |
#get(name = 'Vxlan1') ⇒ nil, Hash<String, String>
Returns the Vxlan interface configuration as a Ruby hash of key/value pairs from the nodes running configuration. This method extends the BaseInterface get method and adds the Vxlan specific attributes to the hash.
1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 |
# File 'lib/rbeapi/api/interfaces.rb', line 1204 def get(name = 'Vxlan1') config = get_block("interface #{name}") return nil unless config response = super(name) response[:type] = 'vxlan' response.merge!(parse_source_interface(config)) response.merge!(parse_multicast_group(config)) response.merge!(parse_udp_port(config)) response.merge!(parse_flood_list(config)) response.merge!(parse_vlans(config)) response end |
#remove_vlan(name, vlan) ⇒ Boolean
remove_vlan deletes a previously configured VLAN to VNI mapping on the specified interface.
1454 1455 1456 |
# File 'lib/rbeapi/api/interfaces.rb', line 1454 def remove_vlan(name, vlan) configure_interface(name, "no vxlan vlan #{vlan} vni") end |
#remove_vtep(name, vtep) ⇒ Boolean
remove_vtep deletes a VTEP endpoint from the global flood list for the specified interface. If the VTEP endpoint specified is not configured, this method will still return successfully.
1420 1421 1422 |
# File 'lib/rbeapi/api/interfaces.rb', line 1420 def remove_vtep(name, vtep) configure_interface(name, "vxlan flood vtep remove #{vtep}") end |
#set_multicast_group(name = 'Vxlan1', opts = {}) ⇒ Boolean
Configures the vxlan multicast-group flood address to the specified value. The value should be a valid multicast address.
1358 1359 1360 1361 |
# File 'lib/rbeapi/api/interfaces.rb', line 1358 def set_multicast_group(name = 'Vxlan1', opts = {}) commands = command_builder('vxlan multicast-group', opts) configure_interface(name, commands) end |
#set_source_interface(name = 'Vxlan1', opts = {}) ⇒ Boolean
Configures the vxlan source-interface to the specified value. This parameter should be the interface identifier of the interface to act as the source for all Vxlan traffic.
1333 1334 1335 1336 |
# File 'lib/rbeapi/api/interfaces.rb', line 1333 def set_source_interface(name = 'Vxlan1', opts = {}) commands = command_builder('vxlan source-interface', opts) configure_interface(name, commands) end |
#set_udp_port(name, opts = {}) ⇒ Boolean
set_udp_port configures the Vxlan udp-port value in EOS for the specified interface name. If the enable keyword is false then the no keyword is used to configure the value. If the default option is provided and set to true, then the default keyword is used. If both options are provided, the default keyword will take precedence.
1387 1388 1389 1390 |
# File 'lib/rbeapi/api/interfaces.rb', line 1387 def set_udp_port(name, opts = {}) commands = command_builder('vxlan udp-port', opts) configure_interface(name, commands) end |
#update_vlan(name, vlan, vni) ⇒ Boolean
update_vlan creates a new vlan to vni mapping for the specified interface in the nodes current configuration.
1437 1438 1439 |
# File 'lib/rbeapi/api/interfaces.rb', line 1437 def update_vlan(name, vlan, vni) configure_interface(name, "vxlan vlan #{vlan} vni #{vni}") end |