1
0
mirror of https://github.com/OpenNebula/one.git synced 2025-03-15 18:50:09 +03:00

F #4770: add ip link add options to 802.1Q and VXLAN

Conversion of true/false values is duplicated as these methods
could be also used by OpenvSwitch and it uses "true"/"false"
instead of "on"/"off".
This commit is contained in:
Javi Fontan 2016-11-29 12:26:52 +01:00
parent 880b838c29
commit 2bc5ffe2d2
4 changed files with 35 additions and 2 deletions

View File

@ -842,6 +842,7 @@ VNET_RESTRICTED_ATTR = "VLAN_ID"
VNET_RESTRICTED_ATTR = "BRIDGE"
VNET_RESTRICTED_ATTR = "CONF"
VNET_RESTRICTED_ATTR = "BRIDGE_CONF"
VNET_RESTRICTED_ATTR = "IP_LINK_CONF"
VNET_RESTRICTED_ATTR = "AR/VN_MAD"
VNET_RESTRICTED_ATTR = "AR/PHYDEV"
@ -905,6 +906,7 @@ INHERIT_VNET_ATTR = "OUTBOUND_PEAK_BW"
INHERIT_VNET_ATTR = "OUTBOUND_PEAK_KB"
INHERIT_VNET_ATTR = "CONF"
INHERIT_VNET_ATTR = "BRIDGE_CONF"
INHERIT_VNET_ATTR = "IP_LINK_CONF"
#*******************************************************************************
# Transfer Manager Driver Behavior Configuration

View File

@ -45,9 +45,22 @@ class VLANTagDriver < VNMMAD::VLANDriver
def create_vlan_dev
mtu = @nic[:mtu] ? "mtu #{@nic[:mtu]}" : ""
ip_link_conf = ""
@nic[:ip_link_conf].each do |option, value|
case value
when true
value = "on"
when false
value = "off"
end
ip_link_conf << "#{option} #{value} "
end
OpenNebula.exec_and_log("#{command(:ip)} link add link"\
" #{@nic[:phydev]} name #{@nic[:vlan_dev]} #{mtu} type vlan id"\
" #{@nic[:vlan_id]}")
" #{@nic[:vlan_id]} #{ip_link_conf}")
OpenNebula.exec_and_log("#{command(:ip)} link set #{@nic[:vlan_dev]} up")
end

View File

@ -73,6 +73,7 @@ module VNMMAD
blk = lambda do |nic|
add_nic_conf(nic)
add_bridge_conf(nic)
add_ip_link_conf(nic)
block.call(nic)
end
@ -105,6 +106,10 @@ module VNMMAD
add_command_conf(nic, :bridge_conf)
end
def add_ip_link_conf(nic)
add_command_conf(nic, :ip_link_conf)
end
def add_command_conf(nic, conf_name)
default_conf = CONF[conf_name] || {}
nic_conf = {}

View File

@ -49,9 +49,22 @@ class VXLANDriver < VNMMAD::VLANDriver
mtu = @nic[:mtu] ? "mtu #{@nic[:mtu]}" : ""
ttl = @nic[:conf][:vxlan_ttl] ? "ttl #{@nic[:conf][:vxlan_ttl]}" : ""
ip_link_conf = ""
@nic[:ip_link_conf].each do |option, value|
case value
when true
value = "on"
when false
value = "off"
end
ip_link_conf << "#{option} #{value} "
end
OpenNebula.exec_and_log("#{command(:ip)} link add #{@nic[:vlan_dev]}"\
" #{mtu} type vxlan id #{@nic[:vlan_id]} group #{mcs} #{ttl}"\
" dev #{@nic[:phydev]}")
" dev #{@nic[:phydev]} #{ip_link_conf}")
OpenNebula.exec_and_log("#{command(:ip)} link set #{@nic[:vlan_dev]} up")
end