if attrval:
running_mcqv4src = {}
if not ifupdownflags.flags.PERFMODE:
- running_mcqv4src = self.brctlcmd.bridge_get_mcqv4src(ifaceobj.name)
+ running_mcqv4src = self.brctlcmd.bridge_get_mcqv4src_sysfs(ifaceobj.name)
mcqs = {}
srclist = attrval.split()
for s in srclist:
for v in mcqs.keys():
self.brctlcmd.bridge_set_mcqv4src(ifaceobj.name, v, mcqs[v])
elif not ifupdownflags.flags.PERFMODE:
- running_mcqv4src = self.brctlcmd.bridge_get_mcqv4src(ifaceobj.name)
+ running_mcqv4src = self.brctlcmd.bridge_get_mcqv4src_sysfs(ifaceobj.name)
if running_mcqv4src:
for v in running_mcqv4src.keys():
self.brctlcmd.bridge_del_mcqv4src(ifaceobj.name, v)
return running_attrs
def _query_running_mcqv4src(self, ifaceobjrunning):
- running_mcqv4src = self.brctlcmd.bridge_get_mcqv4src(ifaceobjrunning.name)
+ running_mcqv4src = self.brctlcmd.bridge_get_mcqv4src_sysfs(ifaceobjrunning.name)
mcqs = ['%s=%s' %(v, i) for v, i in running_mcqv4src.items()]
mcqs.sort()
mcq = ' '.join(mcqs)
running_mcqv4src = {}
if not ifupdownflags.flags.PERFMODE:
- running_mcqv4src = self.brctlcmd.bridge_get_mcqv4src(bridgename)
+ running_mcqv4src = self.brctlcmd.bridge_get_mcqv4src_sysfs(bridgename)
if running_mcqv4src:
r_mcqv4src = running_mcqv4src.get(vlan)
else:
def _query_running_bridge_igmp_querier_src(self, ifaceobj):
(bridgename, vlanid) = ifaceobj.name.split('.')
- running_mcqv4src = self.brctlcmd.bridge_get_mcqv4src(bridgename)
+ running_mcqv4src = self.brctlcmd.bridge_get_mcqv4src_sysfs(bridgename)
if running_mcqv4src:
return running_mcqv4src.get(vlanid)
return None
return mcqv4src.get(vlan)
return mcqv4src
+ def bridge_get_mcqv4src_sysfs(self, bridge, vlan=None):
+ if not LinkUtils.bridge_utils_is_installed:
+ return {}
+ if not self.supported_command['showmcqv4src']:
+ return {}
+ if ifupdownflags.flags.PERFMODE:
+ return {}
+ mcqv4src = {}
+ try:
+ filename = '/sys/class/net/%s/bridge/multicast_v4_queriers' % bridge
+ if os.path.exists(filename):
+ for line in self.read_file(filename) or []:
+ vlan_id, ip = line.split('=')
+ mcqv4src[vlan_id] = ip.strip()
+ except Exception as e:
+ s = str(e).lower()
+ msg = ('%s showmcqv4src: skipping unsupported command'
+ % utils.brctl_cmd)
+ self.logger.info(msg)
+ self.supported_command['showmcqv4src'] = False
+ return {}
+ if vlan:
+ return mcqv4src.get(vlan)
+ return mcqv4src
+
@staticmethod
def bridge_set_mclmi(bridge, mclmi):
if not LinkUtils.bridge_utils_is_installed: