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 =
''- DEFAULT_MCAST_GRP =
''
Constants inherited from BaseInterface
BaseInterface::DEFAULT_INTF_DESCRIPTION
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_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.
1237 1238 1239 |
# File 'lib/rbeapi/api/interfaces.rb', line 1237 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.
1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 |
# File 'lib/rbeapi/api/interfaces.rb', line 1037 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.
1287 1288 1289 |
# File 'lib/rbeapi/api/interfaces.rb', line 1287 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.
1253 1254 1255 |
# File 'lib/rbeapi/api/interfaces.rb', line 1253 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.
1191 1192 1193 1194 |
# File 'lib/rbeapi/api/interfaces.rb', line 1191 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.
1166 1167 1168 1169 |
# File 'lib/rbeapi/api/interfaces.rb', line 1166 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.
1220 1221 1222 1223 |
# File 'lib/rbeapi/api/interfaces.rb', line 1220 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.
1270 1271 1272 |
# File 'lib/rbeapi/api/interfaces.rb', line 1270 def update_vlan(name, vlan, vni) configure_interface(name, "vxlan vlan #{vlan} vni #{vni}") end |