mirror of
https://github.com/CumulusNetworks/ifupdown2.git
synced 2024-05-06 15:54:50 +00:00
linkutils: _bridge_attrs_fill: use sysfs
This commit is contained in:
@@ -231,41 +231,38 @@ class LinkUtils(utilsBase):
|
|||||||
battrs = {}
|
battrs = {}
|
||||||
bports = {}
|
bports = {}
|
||||||
|
|
||||||
brout = utils.exec_command('%s showstp %s' % (utils.brctl_cmd, bridgename))
|
|
||||||
chunks = re.split(r'\n\n', brout, maxsplit=0, flags=re.MULTILINE)
|
|
||||||
|
|
||||||
try:
|
try:
|
||||||
# Get all bridge attributes
|
# Get all bridge attributes
|
||||||
broutlines = chunks[0].splitlines()
|
|
||||||
# battrs['pathcost'] = broutlines[3].split('path cost')[1].strip()
|
# battrs['pathcost'] = broutlines[3].split('path cost')[1].strip()
|
||||||
|
|
||||||
try:
|
try:
|
||||||
battrs['maxage'] = broutlines[4].split('bridge max age')[
|
battrs['maxage'] = self.read_file_oneline(
|
||||||
1].strip().replace('.00', '')
|
'/sys/class/net/%s/bridge/max_age' % bridgename)
|
||||||
|
except:
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
try:
|
||||||
|
battrs['hello'] = self.read_file_oneline(
|
||||||
|
'/sys/class/net/%s/bridge/hello_time' % bridgename)
|
||||||
except:
|
except:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
try:
|
try:
|
||||||
battrs['hello'] = broutlines[5].split('bridge hello time')[
|
battrs['fd'] = self.read_file_oneline(
|
||||||
1].strip().replace('.00', '')
|
'/sys/class/net/%s/bridge/forward_delay' % bridgename)
|
||||||
except:
|
except:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
try:
|
try:
|
||||||
battrs['fd'] = broutlines[6].split('bridge forward delay')[
|
battrs['ageing'] = self.read_file_oneline(
|
||||||
1].strip().replace('.00', '')
|
'/sys/class/net/%s/bridge/ageing_time' % bridgename)
|
||||||
except:
|
except:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
try:
|
try:
|
||||||
battrs['ageing'] = broutlines[7].split('ageing time')[
|
battrs['mcrouter'] = self.read_file_oneline(
|
||||||
1].strip().replace('.00', '')
|
'/sys/class/net/%s/bridge/multicast_router' % bridgename)
|
||||||
except:
|
|
||||||
pass
|
|
||||||
|
|
||||||
try:
|
|
||||||
battrs['mcrouter'] = broutlines[12].split('mc router')[
|
|
||||||
1].strip().split('\t\t\t')[0]
|
|
||||||
except:
|
except:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
@@ -289,30 +286,24 @@ class LinkUtils(utilsBase):
|
|||||||
|
|
||||||
# XXX: comment this out until mc attributes become available
|
# XXX: comment this out until mc attributes become available
|
||||||
# with brctl again
|
# with brctl again
|
||||||
# battrs['hashel'] = broutlines[10].split('hash elasticity')[1].split()[0].strip()
|
|
||||||
# battrs['hashmax'] = broutlines[10].split('hash max')[1].strip()
|
|
||||||
# battrs['mclmc'] = broutlines[11].split('mc last member count')[1].split()[0].strip()
|
|
||||||
# battrs['mciqc'] = broutlines[11].split('mc init query count')[1].strip()
|
# battrs['mciqc'] = broutlines[11].split('mc init query count')[1].strip()
|
||||||
# battrs['mcrouter'] = broutlines[12].split('mc router')[1].split()[0].strip()
|
|
||||||
##battrs['mcsnoop'] = broutlines[12].split('mc snooping')[1].strip()
|
|
||||||
# battrs['mclmt'] = broutlines[13].split('mc last member timer')[1].split()[0].strip()
|
# battrs['mclmt'] = broutlines[13].split('mc last member timer')[1].split()[0].strip()
|
||||||
except Exception, e:
|
except Exception, e:
|
||||||
self.logger.warn('%s: error while processing bridge attributes: %s' % (bridgename, str(e)))
|
self.logger.warn('%s: error while processing bridge attributes: %s' % (bridgename, str(e)))
|
||||||
pass
|
pass
|
||||||
|
|
||||||
linkCache.update_attrdict([bridgename, 'linkinfo'], battrs)
|
linkCache.update_attrdict([bridgename, 'linkinfo'], battrs)
|
||||||
for cidx in range(1, len(chunks)):
|
|
||||||
bpout = chunks[cidx].lstrip('\n')
|
names = [os.path.basename(x) for x in glob.glob("/sys/class/net/%s/brif/*" % bridgename)]
|
||||||
if not bpout or bpout[0] == ' ':
|
for pname in names:
|
||||||
continue
|
|
||||||
bplines = bpout.splitlines()
|
|
||||||
pname = bplines[0].split()[0]
|
|
||||||
bportattrs = {}
|
bportattrs = {}
|
||||||
try:
|
try:
|
||||||
bportattrs['pathcost'] = bplines[2].split(
|
|
||||||
'path cost')[1].strip()
|
bportattrs['pathcost'] = self.read_file_oneline(
|
||||||
bportattrs['fdelay'] = bplines[4].split(
|
'/sys/class/net/%s/brport/path_cost' % pname)
|
||||||
'forward delay timer')[1].strip()
|
bportattrs['fdelay'] = self.read_file_oneline(
|
||||||
|
'/sys/class/net/%s/brport/forward_delay_timer' % pname)
|
||||||
bportattrs['portmcrouter'] = self.read_file_oneline(
|
bportattrs['portmcrouter'] = self.read_file_oneline(
|
||||||
'/sys/class/net/%s/brport/multicast_router' % pname)
|
'/sys/class/net/%s/brport/multicast_router' % pname)
|
||||||
bportattrs['portmcfl'] = self.read_file_oneline(
|
bportattrs['portmcfl'] = self.read_file_oneline(
|
||||||
@@ -327,8 +318,12 @@ class LinkUtils(utilsBase):
|
|||||||
'/sys/class/net/%s/brport/learning' % pname)
|
'/sys/class/net/%s/brport/learning' % pname)
|
||||||
bportattrs['arp-nd-suppress'] = self.read_file_oneline(
|
bportattrs['arp-nd-suppress'] = self.read_file_oneline(
|
||||||
'/sys/class/net/%s/brport/neigh_suppress' % pname)
|
'/sys/class/net/%s/brport/neigh_suppress' % pname)
|
||||||
# bportattrs['mcrouters'] = bplines[6].split('mc router')[1].split()[0].strip()
|
|
||||||
# bportattrs['mc fast leave'] = bplines[6].split('mc fast leave')[1].strip()
|
#bportattrs['mcrouters'] = self.read_file_oneline(
|
||||||
|
# '/sys/class/net/%s/brport/multicast_router' % pname)
|
||||||
|
#bportattrs['mc fast leave'] = self.read_file_oneline(
|
||||||
|
# '/sys/class/net/%s/brport/multicast_fast_leave' % pname)
|
||||||
|
|
||||||
except Exception, e:
|
except Exception, e:
|
||||||
self.logger.warn('%s: error while processing bridge attributes: %s' % (bridgename, str(e)))
|
self.logger.warn('%s: error while processing bridge attributes: %s' % (bridgename, str(e)))
|
||||||
bports[pname] = bportattrs
|
bports[pname] = bportattrs
|
||||||
|
Reference in New Issue
Block a user