tests: Check for 0.0.0.0/1 in bgp_default_route

Ensure that 0.0.0.0/1 route can be advertised along with
default-originate.

Signed-off-by: Xiao Liang <shaw.leon@gmail.com>
(cherry picked from commit 4538247c99)
This commit is contained in:
Xiao Liang 2023-12-18 14:57:22 +08:00 committed by Mergify
parent 275a4b508a
commit 2330ed61e7
3 changed files with 12 additions and 5 deletions

View File

@ -3,6 +3,7 @@ router bgp 65000
neighbor 192.168.255.2 remote-as 65001 neighbor 192.168.255.2 remote-as 65001
neighbor 192.168.255.2 timers 3 10 neighbor 192.168.255.2 timers 3 10
address-family ipv4 unicast address-family ipv4 unicast
network 0.0.0.0/1
neighbor 192.168.255.2 default-originate neighbor 192.168.255.2 default-originate
exit-address-family exit-address-family
! !

View File

@ -1,4 +1,6 @@
! !
ip route 0.0.0.0/1 blackhole
!
interface lo interface lo
ip address 172.16.255.254/32 ip address 172.16.255.254/32
! !

View File

@ -69,18 +69,18 @@ def test_bgp_default_originate_route_map():
expected = { expected = {
"192.168.255.1": { "192.168.255.1": {
"bgpState": "Established", "bgpState": "Established",
"addressFamilyInfo": {"ipv4Unicast": {"acceptedPrefixCounter": 1}}, "addressFamilyInfo": {"ipv4Unicast": {"acceptedPrefixCounter": 2}},
} }
} }
return topotest.json_cmp(output, expected) return topotest.json_cmp(output, expected)
def _bgp_check_if_originated(): def _bgp_check_if_originated():
output = json.loads(tgen.gears["r1"].vtysh_cmd("show ip bgp summary json")) output = json.loads(tgen.gears["r1"].vtysh_cmd("show ip bgp summary json"))
expected = {"ipv4Unicast": {"peers": {"192.168.255.2": {"pfxSnt": 1}}}} expected = {"ipv4Unicast": {"peers": {"192.168.255.2": {"pfxSnt": 2}}}}
return topotest.json_cmp(output, expected) return topotest.json_cmp(output, expected)
def _bgp_default_route_is_valid(router): def _bgp_route_is_valid(router, prefix):
output = json.loads(router.vtysh_cmd("show ip bgp 0.0.0.0/0 json")) output = json.loads(router.vtysh_cmd("show ip bgp {} json".format(prefix)))
expected = {"paths": [{"valid": True}]} expected = {"paths": [{"valid": True}]}
return topotest.json_cmp(output, expected) return topotest.json_cmp(output, expected)
@ -92,10 +92,14 @@ def test_bgp_default_originate_route_map():
success, result = topotest.run_and_expect(test_func, None, count=30, wait=0.5) success, result = topotest.run_and_expect(test_func, None, count=30, wait=0.5)
assert result is None, "No 0.0.0.0/0 from r1 to r2" assert result is None, "No 0.0.0.0/0 from r1 to r2"
test_func = functools.partial(_bgp_default_route_is_valid, tgen.gears["r2"]) test_func = functools.partial(_bgp_route_is_valid, tgen.gears["r2"], "0.0.0.0/0")
success, result = topotest.run_and_expect(test_func, None, count=30, wait=0.5) success, result = topotest.run_and_expect(test_func, None, count=30, wait=0.5)
assert result is None, "Failed to see 0.0.0.0/0 in r2" assert result is None, "Failed to see 0.0.0.0/0 in r2"
test_func = functools.partial(_bgp_route_is_valid, tgen.gears["r2"], "0.0.0.0/1")
success, result = topotest.run_and_expect(test_func, None, count=30, wait=0.5)
assert result is None, "Failed to see 0.0.0.0/1 in r2"
if __name__ == "__main__": if __name__ == "__main__":
args = ["-s"] + sys.argv[1:] args = ["-s"] + sys.argv[1:]