TEST = os.path.basename(CWD)
InitSuccess = False
+iproute2Ver = None
class ThisTestTopo(Topo):
"Test topology builder"
logger.info('Topology not configured, skipping setup')
return
#collect/log info on iproute2
- cc.doCmd(tgen, 'r2', 'apt-cache policy iproute2')
- cc.doCmd(tgen, 'r2', 'yum info iproute2')
- cc.doCmd(tgen, 'r2', 'yum info iproute')
-
+ found = cc.doCmd(tgen, 'r2', 'apt-cache policy iproute2', 'Installed: ([\d\.]*)')
+ if found != None:
+ global iproute2Ver
+ iproute2Ver = found.group(1)
+ logger.info('Have iproute2 version=' + iproute2Ver)
+ #trace errors/unexpected output
cc.resetCounts()
#configure r2 mpls interfaces
intfs = ['lo', 'r2-eth0', 'r2-eth1', 'r2-eth2']
logger.info('post router-start hook')
return;
-def versionCheck(vstr, rname='r1', compstr='<',cli=False, kernel='4.9'):
+def versionCheck(vstr, rname='r1', compstr='<',cli=False, kernel='4.9', iproute2=None):
tgen = get_topogen()
-
router = tgen.gears[rname]
+ if cli:
+ logger.info('calling mininet CLI')
+ tgen.mininet_cli()
+ logger.info('exited mininet CLI')
+
+ if InitSuccess != True:
+ ret = 'Test not initialized'
+ return ret
+
if tgen.hasmpls != True:
ret = 'MPLS not initialized'
return ret
- if InitSuccess != True:
- ret = 'Test not successfully initialized'
- return ret
+ if kernel != None:
+ krel = platform.release()
+ if topotest.version_cmp(krel, kernel) < 0:
+ ret = 'Skipping tests, old kernel ({} < {})'.format(krel, kernel)
+ return ret
+
+ if iproute2 != None:
+ if iproute2Ver == None or topotest.version_cmp(iproute2Ver, iproute2) < 0:
+ ret = 'Skipping tests, old iproute2 ({} < {})'.format(iproute2Ver, iproute2)
+ return ret
ret = True
try:
if router.has_version(compstr, vstr):
- ret = False
- logger.debug('version check failed, version {} {}'.format(compstr, vstr))
+ ret = 'Skipping tests, old FRR version {} {}'.format(compstr, vstr)
+ return ret
except:
ret = True
- if ret == False:
- ret = 'Skipping tests on old version ({}{})'.format(compstr, vstr)
- logger.info(ret)
- elif kernel != None:
- krel = platform.release()
- if topotest.version_cmp(krel, kernel) < 0:
- ret = 'Skipping tests on old version ({} < {})'.format(krel, kernel)
- logger.info(ret)
- if cli:
- logger.info('calling mininet CLI')
- tgen.mininet_cli()
- logger.info('exited mininet CLI')
+
return ret
from lutil import luCommand, luLast
from lib import topotest
-from lib.topolog import logger
-minver = '4.9'
-ret = luCommand('r1','apt-cache policy iproute2', 'Installed: ([\d\.]*)')
+ret = luCommand('r2','ip -M route show','\d*(?= via inet 10.0.2.4 dev r2-eth1)','wait','See mpls route to r4')
found = luLast()
-dotest = -1
-if ret != False and found != None:
- dotest = topotest.version_cmp(found.group(1), minver)
-if dotest == -1:
- luCommand('r1','apt-cache policy iproute2', '.', 'pass', 'Skipping test, iproute2 version {} < {}'.format(found.group(1), minver))
- ret = False
-else:
- logger.info('iproute2 ver = {} dotest = {}'.format(found.group(1), dotest))
- ret = luCommand('r2','ip -M route show','\d*(?= via inet 10.0.2.4 dev r2-eth1)','wait','See mpls route to r4')
- found = luLast()
if ret != False and found != None:
label4r4 = found.group(0)
luCommand('r2','ip -M route show','.','pass','See %s as label to r4' % label4r4)
CliOnFail = None
# For debugging, uncomment the next line
#CliOnFail = 'tgen.mininet_cli'
- CheckFunc = 'customize.versionCheck(\'3.1\')'
+ CheckFunc = 'customize.versionCheck(\'3.1\', iproute2=\'4.9\')'
#uncomment next line to start cli *before* script is run
- #CheckFunc = 'customize.versionCheck(\'3.1\', cli=True)'
+ #CheckFunc = 'customize.versionCheck(\'3.1\', cli=True, iproute2=\'4.9\')'
ltemplateTest('scripts/check_linux_vrf.py', False, CliOnFail, CheckFunc)
def test_adjacencies():
CliOnFail = None
# For debugging, uncomment the next line
#CliOnFail = 'tgen.mininet_cli'
- CheckFunc = 'customize.versionCheck(\'3.1\')'
+ CheckFunc = 'customize.versionCheck(\'3.1\', iproute2=\'4.9\')'
#uncomment next line to start cli *before* script is run
- #CheckFunc = 'customize.versionCheck(\'3.1\', cli=True)'
+ #CheckFunc = 'customize.versionCheck(\'3.1\', cli=True, iproute2=\'4.9\')'
ltemplateTest('scripts/check_linux_mpls.py', False, CliOnFail, CheckFunc)
def SKIP_test_cleanup_all():