From 90f15e38f1e4d80b81f4fa1444dde717917ef8ad Mon Sep 17 00:00:00 2001 From: Dan Prince Date: Thu, 14 May 2015 14:58:10 -0400 Subject: ifcfg: don't set VLAN=yes if is an ovs_port When using the ifcfg provider vlans on bridges (or bonds) fail to startup correctly. This is because VLANs on an OVS bridge are configured as internal ports and these should not have the VLAN=yes or PHYSDEV ifcfg settings specified. Change-Id: Ieb743eda8f0a25cdaca43bdea767af26bf504f15 Closes-bug: #1453904 --- os_net_config/impl_ifcfg.py | 8 +++++--- os_net_config/tests/test_impl_ifcfg.py | 11 +++++++++-- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/os_net_config/impl_ifcfg.py b/os_net_config/impl_ifcfg.py index 097552a..33fcb57 100644 --- a/os_net_config/impl_ifcfg.py +++ b/os_net_config/impl_ifcfg.py @@ -74,9 +74,11 @@ class IfcfgNetConfig(os_net_config.NetConfig): data += "HOTPLUG=no\n" data += "NM_CONTROLLED=no\n" if isinstance(base_opt, objects.Vlan): - data += "VLAN=yes\n" - if base_opt.device: - data += "PHYSDEV=%s\n" % base_opt.device + if not base_opt.ovs_port: + # vlans on OVS bridges are internal ports (no device, etc) + data += "VLAN=yes\n" + if base_opt.device: + data += "PHYSDEV=%s\n" % base_opt.device if base_opt.ovs_port: data += "DEVICETYPE=ovs\n" if base_opt.bridge_name: diff --git a/os_net_config/tests/test_impl_ifcfg.py b/os_net_config/tests/test_impl_ifcfg.py index f43faed..4aa9f09 100644 --- a/os_net_config/tests/test_impl_ifcfg.py +++ b/os_net_config/tests/test_impl_ifcfg.py @@ -91,14 +91,21 @@ VLAN=yes PHYSDEV=em1 """ +# vlans on an OVS bridge do not set VLAN=yes or PHYSDEV +_BASE_VLAN_OVS = """# This file is autogenerated by os-net-config +DEVICE=vlan5 +ONBOOT=yes +HOTPLUG=no +NM_CONTROLLED=no +""" _VLAN_NO_IP = _BASE_VLAN + "BOOTPROTO=none\n" -_VLAN_OVS = _BASE_VLAN + "DEVICETYPE=ovs\nBOOTPROTO=none\n" +_VLAN_OVS = _BASE_VLAN_OVS + "DEVICETYPE=ovs\nBOOTPROTO=none\n" -_VLAN_OVS_BRIDGE = _BASE_VLAN + """DEVICETYPE=ovs +_VLAN_OVS_BRIDGE = _BASE_VLAN_OVS + """DEVICETYPE=ovs TYPE=OVSIntPort OVS_BRIDGE=br-ctlplane OVS_OPTIONS="tag=5" -- cgit 1.2.3-korg