Skip to content

Commit

Permalink
topotests: bgp_ipv6_rtadv, add control over bgp updates
Browse files Browse the repository at this point in the history
Add a test to control the json values of the incoming BGP update
received by an unnumbered BGP.

Signed-off-by: Philippe Guibert <[email protected]>
  • Loading branch information
pguibert6WIND committed Jan 17, 2025
1 parent aa43346 commit ca84c7e
Show file tree
Hide file tree
Showing 3 changed files with 109 additions and 0 deletions.
35 changes: 35 additions & 0 deletions tests/topotests/bgp_ipv6_rtadv/r1/bgp_ipv4_routes.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
{
"vrfId": 0,
"vrfName": "default",
"routerId": "10.254.254.1",
"defaultLocPrf": 100,
"localAS": 101,
"routes": {
"10.254.254.2/32": [{
"valid": true,
"bestpath": true,
"selectionReason":"First path received",
"pathFrom":"external",
"prefix":"10.254.254.2",
"prefixLen":32,
"network":"10.254.254.2/32",
"metric":0,
"weight":0,
"path":"102",
"origin":"incomplete",
"nexthops":[{
"ip":"2001:db8:1::2",
"hostname":"r2",
"afi":"ipv6",
"scope":"global"
},{
"interface":"r1-eth0",
"hostname":"r2",
"afi":"ipv6",
"scope":"link-local",
"used":true
}]}]
},
"totalRoutes": 2,
"totalPaths": 2
}
35 changes: 35 additions & 0 deletions tests/topotests/bgp_ipv6_rtadv/r1/bgp_ipv6_routes.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
{
"vrfId": 0,
"vrfName": "default",
"routerId": "10.254.254.1",
"defaultLocPrf": 100,
"localAS": 101,
"routes": {
"2001:db8:1::/64": [{
"valid":true,
"bestpath":true,
"selectionReason":"First path received",
"pathFrom":"external",
"prefix":"2001:db8:1::",
"prefixLen":64,
"network":"2001:db8:1::/64",
"metric":0,
"weight":0,
"path":"102",
"origin":"incomplete",
"nexthops":[{
"ip":"2001:db8:1::2",
"hostname":"r2",
"afi":"ipv6",
"scope":"global"
},{
"interface":"r1-eth0",
"hostname":"r2",
"afi":"ipv6",
"scope":"link-local",
"used":true
}]}]
},
"totalRoutes": 1,
"totalPaths": 1
}
39 changes: 39 additions & 0 deletions tests/topotests/bgp_ipv6_rtadv/test_bgp_ipv6_rtadv.py
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,45 @@ def teardown_module(_mod):


def test_protocols_convergence():
"""
Assert that BGP protocol has converged
by checking the incoming BGP updates have been received.
"""
tgen = get_topogen()
if tgen.routers_have_failure():
pytest.skip(tgen.errors)

# Check BGP IPv4 routing table.
logger.info("Checking BGP IPv4 routes for convergence")
router = tgen.gears["r1"]

json_file = "{}/{}/bgp_ipv4_routes.json".format(CWD, router.name)
expected = json.loads(open(json_file).read())
test_func = partial(
topotest.router_json_cmp,
router,
"show bgp ipv4 json",
expected,
)
_, result = topotest.run_and_expect(test_func, None, count=160, wait=0.5)
assertmsg = '"{}" JSON output mismatches'.format(router.name)
assert result is None, assertmsg

# Check BGP IPv6 routing table.
json_file = "{}/{}/bgp_ipv6_routes.json".format(CWD, router.name)
expected = json.loads(open(json_file).read())
test_func = partial(
topotest.router_json_cmp,
router,
"show bgp ipv6 json",
expected,
)
_, result = topotest.run_and_expect(test_func, None, count=160, wait=0.5)
assertmsg = '"{}" JSON output mismatches'.format(router.name)
assert result is None, assertmsg


def test_route_convergence():
"""
Assert that all protocols have converged
statuses as they depend on it.
Expand Down

0 comments on commit ca84c7e

Please sign in to comment.