isis-topo1: test ISIS route installation

Check the 'show ip route json' output for installed ISIS routes.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
This commit is contained in:
Rafael Zalamena 2017-12-13 19:56:30 -02:00 committed by Donald Sharp
parent 67f1e9ed09
commit e4d08d5be7
6 changed files with 600 additions and 0 deletions

View File

@ -0,0 +1,86 @@
{
"10.0.10.0/24": [
{
"distance": 115,
"metric": 10,
"nexthops": [
{
"active": true,
"afi": "ipv4",
"fib": true,
"interfaceIndex": 2,
"interfaceName": "r1-eth0",
"ip": "10.0.20.1"
}
],
"prefix": "10.0.10.0/24",
"protocol": "isis",
"selected": true
}
],
"10.0.20.0/24": [
{
"distance": 115,
"metric": 10,
"nexthops": [
{
"afi": "ipv4",
"interfaceIndex": 2,
"interfaceName": "r1-eth0",
"ip": "10.0.20.1"
}
],
"prefix": "10.0.20.0/24",
"protocol": "isis"
},
{
"nexthops": [
{
"active": true,
"directlyConnected": true,
"fib": true,
"interfaceIndex": 2,
"interfaceName": "r1-eth0"
}
],
"prefix": "10.0.20.0/24",
"protocol": "connected",
"selected": true
}
],
"10.254.0.1/32": [
{
"nexthops": [
{
"active": true,
"directlyConnected": true,
"fib": true,
"interfaceIndex": 1,
"interfaceName": "lo"
}
],
"prefix": "10.254.0.1/32",
"protocol": "connected",
"selected": true
}
],
"10.254.0.3/32": [
{
"distance": 115,
"metric": 10,
"nexthops": [
{
"active": true,
"afi": "ipv4",
"fib": true,
"interfaceIndex": 2,
"interfaceName": "r1-eth0",
"ip": "10.0.20.1"
}
],
"prefix": "10.254.0.3/32",
"protocol": "isis",
"selected": true
}
]
}

View File

@ -0,0 +1,86 @@
{
"10.0.11.0/24": [
{
"distance": 115,
"metric": 10,
"nexthops": [
{
"active": true,
"afi": "ipv4",
"fib": true,
"interfaceIndex": 2,
"interfaceName": "r2-eth0",
"ip": "10.0.21.1"
}
],
"prefix": "10.0.11.0/24",
"protocol": "isis",
"selected": true
}
],
"10.0.21.0/24": [
{
"distance": 115,
"metric": 10,
"nexthops": [
{
"afi": "ipv4",
"interfaceIndex": 2,
"interfaceName": "r2-eth0",
"ip": "10.0.21.1"
}
],
"prefix": "10.0.21.0/24",
"protocol": "isis"
},
{
"nexthops": [
{
"active": true,
"directlyConnected": true,
"fib": true,
"interfaceIndex": 2,
"interfaceName": "r2-eth0"
}
],
"prefix": "10.0.21.0/24",
"protocol": "connected",
"selected": true
}
],
"10.254.0.2/32": [
{
"nexthops": [
{
"active": true,
"directlyConnected": true,
"fib": true,
"interfaceIndex": 1,
"interfaceName": "lo"
}
],
"prefix": "10.254.0.2/32",
"protocol": "connected",
"selected": true
}
],
"10.254.0.4/32": [
{
"distance": 115,
"metric": 10,
"nexthops": [
{
"active": true,
"afi": "ipv4",
"fib": true,
"interfaceIndex": 2,
"interfaceName": "r2-eth0",
"ip": "10.0.21.1"
}
],
"prefix": "10.254.0.4/32",
"protocol": "isis",
"selected": true
}
]
}

View File

@ -0,0 +1,173 @@
{
"10.0.10.0/24": [
{
"distance": 115,
"metric": 10,
"nexthops": [
{
"afi": "ipv4",
"interfaceIndex": 3,
"interfaceName": "r3-eth1",
"ip": "10.0.10.1"
}
],
"prefix": "10.0.10.0/24",
"protocol": "isis"
},
{
"nexthops": [
{
"active": true,
"directlyConnected": true,
"fib": true,
"interfaceIndex": 3,
"interfaceName": "r3-eth1"
}
],
"prefix": "10.0.10.0/24",
"protocol": "connected",
"selected": true
}
],
"10.0.11.0/24": [
{
"distance": 115,
"metric": 10,
"nexthops": [
{
"active": true,
"afi": "ipv4",
"fib": true,
"interfaceIndex": 3,
"interfaceName": "r3-eth1",
"ip": "10.0.10.1"
}
],
"prefix": "10.0.11.0/24",
"protocol": "isis",
"selected": true
}
],
"10.0.20.0/24": [
{
"distance": 115,
"metric": 10,
"nexthops": [
{
"afi": "ipv4",
"interfaceIndex": 2,
"interfaceName": "r3-eth0",
"ip": "10.0.20.2"
}
],
"prefix": "10.0.20.0/24",
"protocol": "isis"
},
{
"nexthops": [
{
"active": true,
"directlyConnected": true,
"fib": true,
"interfaceIndex": 2,
"interfaceName": "r3-eth0"
}
],
"prefix": "10.0.20.0/24",
"protocol": "connected",
"selected": true
}
],
"10.0.21.0/24": [
{
"distance": 115,
"metric": 20,
"nexthops": [
{
"active": true,
"afi": "ipv4",
"fib": true,
"interfaceIndex": 3,
"interfaceName": "r3-eth1",
"ip": "10.0.10.1"
}
],
"prefix": "10.0.21.0/24",
"protocol": "isis",
"selected": true
}
],
"10.254.0.1/32": [
{
"distance": 115,
"metric": 10,
"nexthops": [
{
"active": true,
"afi": "ipv4",
"fib": true,
"interfaceIndex": 2,
"interfaceName": "r3-eth0",
"ip": "10.0.20.2"
}
],
"prefix": "10.254.0.1/32",
"protocol": "isis",
"selected": true
}
],
"10.254.0.3/32": [
{
"nexthops": [
{
"active": true,
"directlyConnected": true,
"fib": true,
"interfaceIndex": 1,
"interfaceName": "lo"
}
],
"prefix": "10.254.0.3/32",
"protocol": "connected",
"selected": true
}
],
"10.254.0.4/32": [
{
"distance": 115,
"metric": 20,
"nexthops": [
{
"active": true,
"afi": "ipv4",
"fib": true,
"interfaceIndex": 3,
"interfaceName": "r3-eth1",
"ip": "10.0.10.1"
}
],
"prefix": "10.254.0.4/32",
"protocol": "isis",
"selected": true
}
],
"10.254.0.5/32": [
{
"distance": 115,
"metric": 10,
"nexthops": [
{
"active": true,
"afi": "ipv4",
"fib": true,
"interfaceIndex": 3,
"interfaceName": "r3-eth1",
"ip": "10.0.10.1"
}
],
"prefix": "10.254.0.5/32",
"protocol": "isis",
"selected": true
}
]
}

View File

@ -0,0 +1,83 @@
{
"10.0.11.0/24": [
{
"nexthops": [
{
"active": true,
"directlyConnected": true,
"fib": true,
"interfaceIndex": 3,
"interfaceName": "r4-eth1"
}
],
"prefix": "10.0.11.0/24",
"protocol": "connected",
"selected": true
}
],
"10.0.21.0/24": [
{
"distance": 115,
"metric": 10,
"nexthops": [
{
"afi": "ipv4",
"interfaceIndex": 2,
"interfaceName": "r4-eth0",
"ip": "10.0.21.2"
}
],
"prefix": "10.0.21.0/24",
"protocol": "isis"
},
{
"nexthops": [
{
"active": true,
"directlyConnected": true,
"fib": true,
"interfaceIndex": 2,
"interfaceName": "r4-eth0"
}
],
"prefix": "10.0.21.0/24",
"protocol": "connected",
"selected": true
}
],
"10.254.0.2/32": [
{
"distance": 115,
"metric": 10,
"nexthops": [
{
"active": true,
"afi": "ipv4",
"fib": true,
"interfaceIndex": 2,
"interfaceName": "r4-eth0",
"ip": "10.0.21.2"
}
],
"prefix": "10.254.0.2/32",
"protocol": "isis",
"selected": true
}
],
"10.254.0.4/32": [
{
"nexthops": [
{
"active": true,
"directlyConnected": true,
"fib": true,
"interfaceIndex": 1,
"interfaceName": "lo"
}
],
"prefix": "10.254.0.4/32",
"protocol": "connected",
"selected": true
}
]
}

View File

@ -0,0 +1,154 @@
{
"10.0.10.0/24": [
{
"distance": 115,
"metric": 10,
"nexthops": [
{
"afi": "ipv4",
"interfaceIndex": 2,
"interfaceName": "r5-eth0",
"ip": "10.0.10.2"
}
],
"prefix": "10.0.10.0/24",
"protocol": "isis"
},
{
"nexthops": [
{
"active": true,
"directlyConnected": true,
"fib": true,
"interfaceIndex": 2,
"interfaceName": "r5-eth0"
}
],
"prefix": "10.0.10.0/24",
"protocol": "connected",
"selected": true
}
],
"10.0.11.0/24": [
{
"distance": 115,
"metric": 10,
"nexthops": [
{
"afi": "ipv4",
"interfaceIndex": 3,
"interfaceName": "r5-eth1",
"ip": "10.0.11.2"
}
],
"prefix": "10.0.11.0/24",
"protocol": "isis"
},
{
"nexthops": [
{
"active": true,
"directlyConnected": true,
"fib": true,
"interfaceIndex": 3,
"interfaceName": "r5-eth1"
}
],
"prefix": "10.0.11.0/24",
"protocol": "connected",
"selected": true
}
],
"10.0.20.0/24": [
{
"distance": 115,
"metric": 10,
"nexthops": [
{
"active": true,
"afi": "ipv4",
"fib": true,
"interfaceIndex": 2,
"interfaceName": "r5-eth0",
"ip": "10.0.10.2"
}
],
"prefix": "10.0.20.0/24",
"protocol": "isis",
"selected": true
}
],
"10.0.21.0/24": [
{
"distance": 115,
"metric": 10,
"nexthops": [
{
"active": true,
"afi": "ipv4",
"fib": true,
"interfaceIndex": 3,
"interfaceName": "r5-eth1",
"ip": "10.0.11.2"
}
],
"prefix": "10.0.21.0/24",
"protocol": "isis",
"selected": true
}
],
"10.254.0.3/32": [
{
"distance": 115,
"metric": 10,
"nexthops": [
{
"active": true,
"afi": "ipv4",
"fib": true,
"interfaceIndex": 2,
"interfaceName": "r5-eth0",
"ip": "10.0.10.2"
}
],
"prefix": "10.254.0.3/32",
"protocol": "isis",
"selected": true
}
],
"10.254.0.4/32": [
{
"distance": 115,
"metric": 10,
"nexthops": [
{
"active": true,
"afi": "ipv4",
"fib": true,
"interfaceIndex": 3,
"interfaceName": "r5-eth1",
"ip": "10.0.11.2"
}
],
"prefix": "10.254.0.4/32",
"protocol": "isis",
"selected": true
}
],
"10.254.0.5/32": [
{
"nexthops": [
{
"active": true,
"directlyConnected": true,
"fib": true,
"interfaceIndex": 1,
"interfaceName": "lo"
}
],
"prefix": "10.254.0.5/32",
"protocol": "connected",
"selected": true
}
]
}

View File

@ -133,6 +133,24 @@ def test_isis_convergence():
assert topotest.json_cmp(actual, expected) is None, assertmsg
def test_isis_route_installation():
"Check whether all expected routes are present"
tgen = get_topogen()
# Don't run this test if we have any failure.
if tgen.routers_have_failure():
pytest.skip(tgen.errors)
logger.info('Checking routers for installed ISIS routes')
# Check for routes in 'show ip route json'
for rname, router in tgen.routers().iteritems():
filename = '{0}/{1}/{1}_route.json'.format(CWD, rname)
expected = json.loads(open(filename, 'r').read())
actual = router.vtysh_cmd('show ip route json', isjson=True)
assertmsg = "Router '{}' routes mismatch".format(rname)
assert topotest.json_cmp(actual, expected) is None, assertmsg
def test_memory_leak():
"Run the memory leak test and report results."
tgen = get_topogen()