Skip to content

Commit

Permalink
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
topotests: bgp_vpnv4_noretain, check presence of locpref in adj-rib-out
Browse files Browse the repository at this point in the history
Add a test that check that the detailed command of show bgp advertised
neighbors 10.125.0.2 displays the locpref value.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
pguibert6WIND committed Jan 7, 2025
1 parent c620272 commit b7fd45c
Showing 2 changed files with 143 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,105 @@
{
"bgpLocalRouterId":"192.0.2.1",
"defaultLocPrf":100,
"localAS":65500,
"advertisedRoutes":{
"192.0.2.1:1":{
"rd":"192.0.2.1:1",
"10.101.0.0/24":{
"prefix":"10.101.0.0/24",
"advertisedTo":{
"10.125.0.2":{
"hostname":"r2"
}
},
"paths":[{
"aspath":{
"string":"Local",
"segments":[],
"length":0
},
"nhVrfName":"vrf1",
"announceNexthopSelf":true,
"origin":"incomplete",
"metric":0,
"locPrf":100,
"weight":32768,
"valid":true,
"sourced":true,
"local":true,
"bestpath":{
"overall":true,
"selectionReason":"First path received"
},
"extendedCommunity":{
"string":"RT:192.0.2.1:100"
},
"originatorId":"192.0.2.1",
"remoteLabel":101,
"nexthops":[{
"ip":"0.0.0.0",
"hostname":"r1",
"afi":"ipv4",
"metric":0,
"accessible":true,
"used":true
}],
"peer":{
"peerId":"0.0.0.0",
"routerId":"192.0.2.1"
}
}]
}
},
"192.0.2.1:3":{
"rd":"192.0.2.1:3",
"10.103.0.0/24":{
"prefix":"10.103.0.0/24",
"advertisedTo":{
"10.125.0.2":{
"hostname":"r2"
}
},
"paths":[{
"aspath":{
"string":"Local",
"segments":[],
"length":0
},
"nhVrfName":"vrf3",
"announceNexthopSelf":true,
"origin":"incomplete",
"metric":0,
"locPrf":100,
"weight":32768,
"valid":true,
"sourced":true,
"local":true,
"bestpath":{
"overall":true,
"selectionReason":"First path received"
},
"extendedCommunity":{
"string":"RT:192.0.2.1:300"
},
"originatorId":"192.0.2.1",
"remoteLabel":103,
"nexthops":[{
"ip":"0.0.0.0",
"hostname":"r1",
"afi":"ipv4",
"metric":0,
"accessible":true,
"used":true
}],
"peer":{
"peerId":"0.0.0.0",
"routerId":"192.0.2.1"
}
}]
}
}
},
"totalPrefixCounter":2,
"filteredPrefixCounter":0
}
38 changes: 38 additions & 0 deletions tests/topotests/bgp_vpnv4_noretain/test_bgp_vpnv4_noretain.py
Original file line number Diff line number Diff line change
@@ -218,6 +218,29 @@ def check_show_bgp_ipv4_vpn(rname, json_file):
assert result is None, assertmsg


def check_show_bgp_ipv4_vpn_peer_advertised_routes(rname, peer, json_file):
tgen = get_topogen()
if tgen.routers_have_failure():
pytest.skip(tgen.errors)
router = tgen.gears[rname]

logger.info(
"Checking VPNv4 advertised routes for on {} for peer {}".format(rname, peer)
)

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


def check_show_bgp_vrf_ipv4(rname, json_file):
tgen = get_topogen()
if tgen.routers_have_failure():
@@ -563,6 +586,21 @@ def test_bgp_retain_step12():
check_show_bgp_vrf_ipv4(rname, "ipv4_vrf_all_routes_init.json")


def test_bgp_advertised_routes_step13():
"""
Dump advertised routes from r1 to r2
Check that the localpref attribute is set on the show command
"""

tgen = get_topogen()
if tgen.routers_have_failure():
pytest.skip(tgen.errors)

check_show_bgp_ipv4_vpn_peer_advertised_routes(
"r1", "10.125.0.2", "ipv4_vpn_routes_advertised_10_125_0_2.json"
)


def test_memory_leak():
"Run the memory leak test and report results."
tgen = get_topogen()

0 comments on commit b7fd45c

Please sign in to comment.