mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-06-05 13:19:31 +00:00
tests: Set community for conditionally advertised routes
Just to make sure we don't crash bgpd with double-free if an existing route
already exists.
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
(cherry picked from commit 8eba97d395
)
This commit is contained in:
parent
e4687579d5
commit
40e7bb378c
@ -36,4 +36,5 @@ route-map exist-map permit 10
|
|||||||
!
|
!
|
||||||
route-map advertise-map permit 10
|
route-map advertise-map permit 10
|
||||||
match ip address prefix-list advertise
|
match ip address prefix-list advertise
|
||||||
|
set community 65000:1
|
||||||
!
|
!
|
||||||
|
@ -54,6 +54,7 @@ def test_bgp_conditional_advertisements_static_route():
|
|||||||
if tgen.routers_have_failure():
|
if tgen.routers_have_failure():
|
||||||
pytest.skip(tgen.errors)
|
pytest.skip(tgen.errors)
|
||||||
|
|
||||||
|
r1 = tgen.gears["r1"]
|
||||||
r2 = tgen.gears["r2"]
|
r2 = tgen.gears["r2"]
|
||||||
|
|
||||||
def _bgp_converge():
|
def _bgp_converge():
|
||||||
@ -112,6 +113,25 @@ def test_bgp_conditional_advertisements_static_route():
|
|||||||
_, result = topotest.run_and_expect(test_func, None, count=30, wait=1)
|
_, result = topotest.run_and_expect(test_func, None, count=30, wait=1)
|
||||||
assert result is None, "10.10.10.2/32 is not advertised after prefix-list update"
|
assert result is None, "10.10.10.2/32 is not advertised after prefix-list update"
|
||||||
|
|
||||||
|
def _bgp_check_received_routes():
|
||||||
|
output = json.loads(r1.vtysh_cmd("show bgp ipv4 unicast 10.10.10.1/32 json"))
|
||||||
|
expected = {
|
||||||
|
"paths": [
|
||||||
|
{
|
||||||
|
"community": {
|
||||||
|
"string": "65000:1",
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
return topotest.json_cmp(output, expected)
|
||||||
|
|
||||||
|
test_func = functools.partial(
|
||||||
|
_bgp_check_received_routes,
|
||||||
|
)
|
||||||
|
_, result = topotest.run_and_expect(test_func, None, count=30, wait=1)
|
||||||
|
assert result is None, "10.10.10.1/32 does not have 65000:1 community attached"
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
args = ["-s"] + sys.argv[1:]
|
args = ["-s"] + sys.argv[1:]
|
||||||
|
Loading…
Reference in New Issue
Block a user