mirror of
https://github.com/CumulusNetworks/ifupdown2.git
synced 2024-05-06 15:54:50 +00:00
addons: bridge: re-visit bridge port vid settings when vlan filtering is toggled
Ticket: CM-9059 Reviewed By: julien, nikhil Testing Done: Tested with test case in the bridge
This commit is contained in:
@@ -993,38 +993,47 @@ class bridge(moduleBase):
|
||||
bridgename = self._get_bridgename(ifaceobj)
|
||||
add_port = True
|
||||
if bridgename:
|
||||
if self.ipcmd.bridge_is_vlan_aware(bridgename):
|
||||
if add_port:
|
||||
# add ifaceobj to bridge
|
||||
self.ipcmd.link_set(ifaceobj.name, 'master', bridgename)
|
||||
bridge_vids = self._get_bridge_vids(bridgename,
|
||||
ifaceobj_getfunc)
|
||||
bridge_pvid = self._get_bridge_pvid(bridgename,
|
||||
ifaceobj_getfunc)
|
||||
self._apply_bridge_vlan_aware_port_settings_all(ifaceobj,
|
||||
bridge_vids,
|
||||
bridge_pvid)
|
||||
self._apply_bridge_port_settings(ifaceobj, bridgename=bridgename)
|
||||
ifaceobj.module_flags[self.name] = ifaceobj.module_flags.setdefault(self.name,0) | \
|
||||
if self.ipcmd.bridge_is_vlan_aware(bridgename):
|
||||
if add_port:
|
||||
# add ifaceobj to bridge
|
||||
self.ipcmd.link_set(ifaceobj.name, 'master', bridgename)
|
||||
bridge_vids = self._get_bridge_vids(bridgename,
|
||||
ifaceobj_getfunc)
|
||||
bridge_pvid = self._get_bridge_pvid(bridgename,
|
||||
ifaceobj_getfunc)
|
||||
self._apply_bridge_vlan_aware_port_settings_all(ifaceobj,
|
||||
bridge_vids,
|
||||
bridge_pvid)
|
||||
self._apply_bridge_port_settings(ifaceobj, bridgename=bridgename)
|
||||
ifaceobj.module_flags[self.name] = ifaceobj.module_flags.setdefault(self.name,0) | \
|
||||
bridgeFlags.PORT_PROCESSED
|
||||
return
|
||||
return
|
||||
if not self._is_bridge(ifaceobj):
|
||||
return
|
||||
err = False
|
||||
errstr = ''
|
||||
running_ports = ''
|
||||
bridge_just_created = False
|
||||
try:
|
||||
if not self.PERFMODE:
|
||||
if not self.ipcmd.link_exists(ifaceobj.name):
|
||||
self.ipcmd.link_create(ifaceobj.name, 'bridge')
|
||||
bridge_just_created = True
|
||||
else:
|
||||
self.ipcmd.link_create(ifaceobj.name, 'bridge')
|
||||
bridge_just_created = True
|
||||
except Exception, e:
|
||||
raise Exception(str(e))
|
||||
|
||||
try:
|
||||
if ifaceobj.get_attr_value_first('bridge-vlan-aware') == 'yes':
|
||||
self.ipcmd.link_set(ifaceobj.name, 'vlan_filtering', '1', False, "bridge")
|
||||
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
|
||||
|
||||
except Exception, e:
|
||||
raise Exception(str(e))
|
||||
|
||||
|
||||
Reference in New Issue
Block a user