mirror of
https://github.com/CumulusNetworks/ifupdown2.git
synced 2024-05-06 15:54:50 +00:00
addons: bridge: reset vlan_filtering when user moves from vlan aware to
unaware Ticket: CM-12070 Reviewed By: julien, nikhil Testing Done: Tested with config in the bug The bug also talks about removing the vlans during this transition. If the vlans are removed from the interfaces file, ifupdown2 will delete them on an ifreload. In any case, once moved to vlan unaware bridge settings, kernel and switchd don't look at vlans any more. Signed-off-by: Roopa Prabhu <roopa@cumulusnetworks.com>
This commit is contained in:
@@ -977,9 +977,9 @@ class bridge(moduleBase):
|
||||
self.log_error(str(e), bportifaceobj)
|
||||
|
||||
def _apply_bridge_port_settings_all(self, ifaceobj,
|
||||
ifaceobj_getfunc=None):
|
||||
ifaceobj_getfunc=None,
|
||||
bridge_vlan_aware=False):
|
||||
err = False
|
||||
bridge_vlan_aware = ifaceobj.get_attr_value_first('bridge-vlan-aware') == 'yes'
|
||||
|
||||
if (ifaceobj.get_attr_value_first('bridge-port-vids') and
|
||||
ifaceobj.get_attr_value_first('bridge-port-pvids')):
|
||||
@@ -1105,14 +1105,21 @@ class bridge(moduleBase):
|
||||
raise Exception(str(e))
|
||||
|
||||
try:
|
||||
bridge_vlan_aware = False
|
||||
if ifaceobj.get_attr_value_first('bridge-vlan-aware') == 'yes':
|
||||
bridge_vlan_aware = True
|
||||
if (bridge_just_created or
|
||||
not self.ipcmd.bridge_is_vlan_aware(ifaceobj.name)):
|
||||
self.ipcmd.link_set(ifaceobj.name, 'vlan_filtering', '1',
|
||||
False, "bridge")
|
||||
if not bridge_just_created:
|
||||
ifaceobj.module_flags[self.name] = ifaceobj.module_flags.setdefault(self.name,0) | bridgeFlags.PORT_PROCESSED_OVERRIDE
|
||||
|
||||
elif (not bridge_just_created and
|
||||
ifaceobj.get_attr_value_first('bridge-vlan-aware') == 'no'
|
||||
and self.ipcmd.bridge_is_vlan_aware(ifaceobj.name)):
|
||||
self.ipcmd.link_set(ifaceobj.name, 'vlan_filtering', '0',
|
||||
False, "bridge")
|
||||
bridge_vlan_aware = False
|
||||
except Exception, e:
|
||||
raise Exception(str(e))
|
||||
|
||||
@@ -1137,12 +1144,12 @@ class bridge(moduleBase):
|
||||
# disable ipv6 for ports that were added to bridge
|
||||
self.handle_ipv6(running_ports, '1', ifaceobj=ifaceobj)
|
||||
self._apply_bridge_port_settings_all(ifaceobj,
|
||||
ifaceobj_getfunc=ifaceobj_getfunc)
|
||||
ifaceobj_getfunc=ifaceobj_getfunc,
|
||||
bridge_vlan_aware=bridge_vlan_aware)
|
||||
except Exception, e:
|
||||
err = True
|
||||
errstr = str(e)
|
||||
pass
|
||||
#self._flush_running_vidinfo()
|
||||
finally:
|
||||
if ifaceobj.link_type != ifaceLinkType.LINK_NA:
|
||||
for p in running_ports:
|
||||
|
Reference in New Issue
Block a user