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.
| 1222 1223 1224 | # File 'lib/rbeapi/api/interfaces.rb', line 1222 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
| 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 | # File 'lib/rbeapi/api/interfaces.rb', line 1023 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.
| 1271 1272 1273 | # File 'lib/rbeapi/api/interfaces.rb', line 1271 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.
| 1237 1238 1239 | # File 'lib/rbeapi/api/interfaces.rb', line 1237 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
| 1177 1178 1179 1180 | # File 'lib/rbeapi/api/interfaces.rb', line 1177 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
| 1152 1153 1154 1155 | # File 'lib/rbeapi/api/interfaces.rb', line 1152 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.
| 1206 1207 1208 1209 | # File 'lib/rbeapi/api/interfaces.rb', line 1206 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
| 1254 1255 1256 | # File 'lib/rbeapi/api/interfaces.rb', line 1254 def update_vlan(name, vlan, vni) configure_interface(name, "vxlan vlan #{vlan} vni #{vni}") end |