Allow setting MTU to 1500
There are times when it is desirable to set the MTU of an "interface" to 1500 -- when the external network and the storage network are different VLANs on the same physical interface, for example. Change-Id: Ic5ea6ad05118fd57c26c898a460c19969de4109d Closes-Bug: #1539821
This commit is contained in:
parent
f00d545041
commit
047294481f
@ -130,7 +130,7 @@ class ENINetConfig(os_net_config.NetConfig):
|
|||||||
data += "auto %s\n" % interface.name
|
data += "auto %s\n" % interface.name
|
||||||
data += _iface
|
data += _iface
|
||||||
data += address_data
|
data += address_data
|
||||||
if interface.mtu != 1500:
|
if interface.mtu:
|
||||||
data += " mtu %i\n" % interface.mtu
|
data += " mtu %i\n" % interface.mtu
|
||||||
|
|
||||||
if interface.hwaddr:
|
if interface.hwaddr:
|
||||||
|
@ -164,11 +164,11 @@ class IfcfgNetConfig(os_net_config.NetConfig):
|
|||||||
data += "BOOTPROTO=dhcp\n"
|
data += "BOOTPROTO=dhcp\n"
|
||||||
elif not base_opt.addresses:
|
elif not base_opt.addresses:
|
||||||
data += "BOOTPROTO=none\n"
|
data += "BOOTPROTO=none\n"
|
||||||
if base_opt.mtu != 1500:
|
if base_opt.mtu:
|
||||||
data += "MTU=%i\n" % base_opt.mtu
|
data += "MTU=%i\n" % base_opt.mtu
|
||||||
if base_opt.use_dhcpv6 or base_opt.v6_addresses():
|
if base_opt.use_dhcpv6 or base_opt.v6_addresses():
|
||||||
data += "IPV6INIT=yes\n"
|
data += "IPV6INIT=yes\n"
|
||||||
if base_opt.mtu != 1500:
|
if base_opt.mtu:
|
||||||
data += "IPV6_MTU=%i\n" % base_opt.mtu
|
data += "IPV6_MTU=%i\n" % base_opt.mtu
|
||||||
if base_opt.use_dhcpv6:
|
if base_opt.use_dhcpv6:
|
||||||
data += "DHCPV6C=yes\n"
|
data += "DHCPV6C=yes\n"
|
||||||
|
@ -134,7 +134,7 @@ class _BaseOpts(object):
|
|||||||
"""Base abstraction for logical port options."""
|
"""Base abstraction for logical port options."""
|
||||||
|
|
||||||
def __init__(self, name, use_dhcp=False, use_dhcpv6=False, addresses=None,
|
def __init__(self, name, use_dhcp=False, use_dhcpv6=False, addresses=None,
|
||||||
routes=None, mtu=1500, primary=False, nic_mapping=None,
|
routes=None, mtu=None, primary=False, nic_mapping=None,
|
||||||
persist_mapping=False, defroute=True, dhclient_args=None,
|
persist_mapping=False, defroute=True, dhclient_args=None,
|
||||||
dns_servers=None):
|
dns_servers=None):
|
||||||
addresses = addresses or []
|
addresses = addresses or []
|
||||||
@ -192,7 +192,7 @@ class _BaseOpts(object):
|
|||||||
False)))
|
False)))
|
||||||
defroute = strutils.bool_from_string(str(json.get('defroute',
|
defroute = strutils.bool_from_string(str(json.get('defroute',
|
||||||
True)))
|
True)))
|
||||||
mtu = json.get('mtu', 1500)
|
mtu = json.get('mtu', None)
|
||||||
dhclient_args = json.get('dhclient_args')
|
dhclient_args = json.get('dhclient_args')
|
||||||
dns_servers = json.get('dns_servers')
|
dns_servers = json.get('dns_servers')
|
||||||
primary = strutils.bool_from_string(str(json.get('primary', False)))
|
primary = strutils.bool_from_string(str(json.get('primary', False)))
|
||||||
@ -236,7 +236,7 @@ class Interface(_BaseOpts):
|
|||||||
"""Base class for network interfaces."""
|
"""Base class for network interfaces."""
|
||||||
|
|
||||||
def __init__(self, name, use_dhcp=False, use_dhcpv6=False, addresses=None,
|
def __init__(self, name, use_dhcp=False, use_dhcpv6=False, addresses=None,
|
||||||
routes=None, mtu=1500, primary=False, nic_mapping=None,
|
routes=None, mtu=None, primary=False, nic_mapping=None,
|
||||||
persist_mapping=False, defroute=True, dhclient_args=None,
|
persist_mapping=False, defroute=True, dhclient_args=None,
|
||||||
dns_servers=None):
|
dns_servers=None):
|
||||||
addresses = addresses or []
|
addresses = addresses or []
|
||||||
@ -262,7 +262,7 @@ class Vlan(_BaseOpts):
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
def __init__(self, device, vlan_id, use_dhcp=False, use_dhcpv6=False,
|
def __init__(self, device, vlan_id, use_dhcp=False, use_dhcpv6=False,
|
||||||
addresses=None, routes=None, mtu=1500, primary=False,
|
addresses=None, routes=None, mtu=None, primary=False,
|
||||||
nic_mapping=None, persist_mapping=False, defroute=True,
|
nic_mapping=None, persist_mapping=False, defroute=True,
|
||||||
dhclient_args=None, dns_servers=None):
|
dhclient_args=None, dns_servers=None):
|
||||||
addresses = addresses or []
|
addresses = addresses or []
|
||||||
@ -294,7 +294,7 @@ class OvsBridge(_BaseOpts):
|
|||||||
"""Base class for OVS bridges."""
|
"""Base class for OVS bridges."""
|
||||||
|
|
||||||
def __init__(self, name, use_dhcp=False, use_dhcpv6=False, addresses=None,
|
def __init__(self, name, use_dhcp=False, use_dhcpv6=False, addresses=None,
|
||||||
routes=None, mtu=1500, members=None, ovs_options=None,
|
routes=None, mtu=None, members=None, ovs_options=None,
|
||||||
ovs_extra=None, nic_mapping=None, persist_mapping=False,
|
ovs_extra=None, nic_mapping=None, persist_mapping=False,
|
||||||
defroute=True, dhclient_args=None, dns_servers=None):
|
defroute=True, dhclient_args=None, dns_servers=None):
|
||||||
addresses = addresses or []
|
addresses = addresses or []
|
||||||
@ -354,7 +354,7 @@ class LinuxBridge(_BaseOpts):
|
|||||||
"""Base class for Linux bridges."""
|
"""Base class for Linux bridges."""
|
||||||
|
|
||||||
def __init__(self, name, use_dhcp=False, use_dhcpv6=False, addresses=None,
|
def __init__(self, name, use_dhcp=False, use_dhcpv6=False, addresses=None,
|
||||||
routes=None, mtu=1500, members=None, nic_mapping=None,
|
routes=None, mtu=None, members=None, nic_mapping=None,
|
||||||
persist_mapping=False, defroute=True, dhclient_args=None,
|
persist_mapping=False, defroute=True, dhclient_args=None,
|
||||||
dns_servers=None):
|
dns_servers=None):
|
||||||
addresses = addresses or []
|
addresses = addresses or []
|
||||||
@ -409,7 +409,7 @@ class LinuxBond(_BaseOpts):
|
|||||||
"""Base class for Linux bonds."""
|
"""Base class for Linux bonds."""
|
||||||
|
|
||||||
def __init__(self, name, use_dhcp=False, use_dhcpv6=False, addresses=None,
|
def __init__(self, name, use_dhcp=False, use_dhcpv6=False, addresses=None,
|
||||||
routes=None, mtu=1500, primary=False, members=None,
|
routes=None, mtu=None, primary=False, members=None,
|
||||||
bonding_options=None, nic_mapping=None, persist_mapping=False,
|
bonding_options=None, nic_mapping=None, persist_mapping=False,
|
||||||
defroute=True, dhclient_args=None, dns_servers=None):
|
defroute=True, dhclient_args=None, dns_servers=None):
|
||||||
addresses = addresses or []
|
addresses = addresses or []
|
||||||
@ -464,7 +464,7 @@ class OvsBond(_BaseOpts):
|
|||||||
"""Base class for OVS bonds."""
|
"""Base class for OVS bonds."""
|
||||||
|
|
||||||
def __init__(self, name, use_dhcp=False, use_dhcpv6=False, addresses=None,
|
def __init__(self, name, use_dhcp=False, use_dhcpv6=False, addresses=None,
|
||||||
routes=None, mtu=1500, primary=False, members=None,
|
routes=None, mtu=None, primary=False, members=None,
|
||||||
ovs_options=None, ovs_extra=None, nic_mapping=None,
|
ovs_options=None, ovs_extra=None, nic_mapping=None,
|
||||||
persist_mapping=False, defroute=True, dhclient_args=None,
|
persist_mapping=False, defroute=True, dhclient_args=None,
|
||||||
dns_servers=None):
|
dns_servers=None):
|
||||||
|
@ -221,6 +221,12 @@ class TestENINetConfig(base.TestCase):
|
|||||||
self.provider.add_vlan(vlan)
|
self.provider.add_vlan(vlan)
|
||||||
self.assertEqual(_VLAN_NO_IP, self.get_interface_config('vlan5'))
|
self.assertEqual(_VLAN_NO_IP, self.get_interface_config('vlan5'))
|
||||||
|
|
||||||
|
def test_vlan_mtu_1500(self):
|
||||||
|
vlan = objects.Vlan('eth0', 5, mtu=1500)
|
||||||
|
self.provider.add_vlan(vlan)
|
||||||
|
expected = _VLAN_NO_IP + ' mtu 1500\n'
|
||||||
|
self.assertEqual(expected, self.get_interface_config('vlan5'))
|
||||||
|
|
||||||
def test_vlan_ovs_bridge_int_port(self):
|
def test_vlan_ovs_bridge_int_port(self):
|
||||||
vlan = objects.Vlan('eth0', 5)
|
vlan = objects.Vlan('eth0', 5)
|
||||||
bridge = objects.OvsBridge('br0', use_dhcp=True,
|
bridge = objects.OvsBridge('br0', use_dhcp=True,
|
||||||
|
@ -359,6 +359,12 @@ class TestIfcfgNetConfig(base.TestCase):
|
|||||||
self.provider.add_vlan(vlan)
|
self.provider.add_vlan(vlan)
|
||||||
self.assertEqual(_VLAN_OVS, self.get_interface_config('vlan5'))
|
self.assertEqual(_VLAN_OVS, self.get_interface_config('vlan5'))
|
||||||
|
|
||||||
|
def test_add_vlan_mtu_1500(self):
|
||||||
|
vlan = objects.Vlan('em1', 5, mtu=1500)
|
||||||
|
self.provider.add_vlan(vlan)
|
||||||
|
expected = _VLAN_NO_IP + 'MTU=1500\n'
|
||||||
|
self.assertEqual(expected, self.get_interface_config('vlan5'))
|
||||||
|
|
||||||
def test_add_ovs_bridge_with_vlan(self):
|
def test_add_ovs_bridge_with_vlan(self):
|
||||||
vlan = objects.Vlan('em1', 5)
|
vlan = objects.Vlan('em1', 5)
|
||||||
bridge = objects.OvsBridge('br-ctlplane', use_dhcp=True,
|
bridge = objects.OvsBridge('br-ctlplane', use_dhcp=True,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user