mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-06-05 05:36:10 +00:00
tests: add bgp rpki topo1 rpkiValidationState
Topotest to verify the next key-value "rpkiValidationState": "valid" Signed-off-by: Dmytro Shytyi <dmytro.shytyi@6wind.com>
This commit is contained in:
parent
24302c25d3
commit
5f50b98f8e
70
tests/topotests/bgp_rpki_topo1/r2/bgp_rpki_valid.json
Normal file
70
tests/topotests/bgp_rpki_topo1/r2/bgp_rpki_valid.json
Normal file
@ -0,0 +1,70 @@
|
||||
{
|
||||
"vrfId": 0,
|
||||
"vrfName": "default",
|
||||
"tableVersion": 3,
|
||||
"routerId": "192.0.2.2",
|
||||
"defaultLocPrf": 100,
|
||||
"localAS": 65002,
|
||||
"routes": {
|
||||
"198.51.100.0/24": [
|
||||
{
|
||||
"origin": "IGP",
|
||||
"metric": 0,
|
||||
"valid": true,
|
||||
"version": 2,
|
||||
"rpkiValidationState": "valid",
|
||||
"bestpath": {
|
||||
"overall": true,
|
||||
"selectionReason": "First path received"
|
||||
},
|
||||
"nexthops": [
|
||||
{
|
||||
"ip": "192.0.2.1",
|
||||
"hostname": "r1",
|
||||
"afi": "ipv4",
|
||||
"metric": 0,
|
||||
"accessible": true,
|
||||
"used": true
|
||||
}
|
||||
],
|
||||
"peer": {
|
||||
"peerId": "192.0.2.1",
|
||||
"routerId": "192.0.2.1",
|
||||
"hostname": "r1",
|
||||
"type": "external"
|
||||
}
|
||||
}
|
||||
],
|
||||
"203.0.113.0/24": [
|
||||
{
|
||||
"origin": "IGP",
|
||||
"metric": 0,
|
||||
"valid": true,
|
||||
"version": 3,
|
||||
"rpkiValidationState": "valid",
|
||||
"bestpath": {
|
||||
"overall": true,
|
||||
"selectionReason": "First path received"
|
||||
},
|
||||
"nexthops": [
|
||||
{
|
||||
"ip": "192.0.2.1",
|
||||
"hostname": "r1",
|
||||
"afi": "ipv4",
|
||||
"metric": 0,
|
||||
"accessible": true,
|
||||
"used": true
|
||||
}
|
||||
],
|
||||
"peer": {
|
||||
"peerId": "192.0.2.1",
|
||||
"routerId": "192.0.2.1",
|
||||
"hostname": "r1",
|
||||
"type": "external"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"totalRoutes": 3,
|
||||
"totalPaths": 3
|
||||
}
|
@ -101,6 +101,16 @@ def show_rpki_prefixes(rname, expected, vrf=None):
|
||||
return topotest.json_cmp(output, expected)
|
||||
|
||||
|
||||
def show_rpki_valid(rname, expected, vrf=None):
|
||||
tgen = get_topogen()
|
||||
|
||||
cmd = "show bgp ipv4 detail json"
|
||||
|
||||
output = json.loads(tgen.gears[rname].vtysh_cmd(cmd))
|
||||
|
||||
return topotest.json_cmp(output, expected)
|
||||
|
||||
|
||||
def show_bgp_ipv4_table_rpki(rname, rpki_state, expected, vrf=None):
|
||||
tgen = get_topogen()
|
||||
|
||||
@ -123,6 +133,25 @@ def show_bgp_ipv4_table_rpki(rname, rpki_state, expected, vrf=None):
|
||||
return topotest.json_cmp(output, expected)
|
||||
|
||||
|
||||
def test_show_bgp_rpki_prefixes_valid():
|
||||
tgen = get_topogen()
|
||||
|
||||
if tgen.routers_have_failure():
|
||||
pytest.skip(tgen.errors)
|
||||
|
||||
for rname in ["r1", "r3"]:
|
||||
logger.info("{}: checking if rtrd is running".format(rname))
|
||||
if rtrd_process[rname].poll() is not None:
|
||||
pytest.skip(tgen.errors)
|
||||
|
||||
rname = "r2"
|
||||
expected = open(os.path.join(CWD, "{}/bgp_rpki_valid.json".format(rname))).read()
|
||||
expected_json = json.loads(expected)
|
||||
test_func = functools.partial(show_rpki_valid, rname, expected_json)
|
||||
_, result = topotest.run_and_expect(test_func, None, count=60, wait=0.5)
|
||||
assert result is None, "Failed to see RPKI on {}".format(rname)
|
||||
|
||||
|
||||
def test_show_bgp_rpki_prefixes():
|
||||
tgen = get_topogen()
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user