summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorDonatas Abraitis <donatas@opensourcerouting.org>2025-01-27 23:32:33 +0200
committerGitHub <noreply@github.com>2025-01-27 23:32:33 +0200
commitee67699bd7e0175057ffab4c8c30c74b6c7cc844 (patch)
tree1e024c2372a76ada82abcd673eaca35e05053444 /tests
parent95db38f394449b6a03b2b9f9e964351eef62e37f (diff)
parente78a049c490939be87fa0f5c8c5443b51996d2ab (diff)
Merge pull request #17905 from pguibert6WIND/advertised_routes_incorrect_json
Advertised routes incorrect json
Diffstat (limited to 'tests')
-rw-r--r--tests/topotests/bgp_vpnv4_noretain/r1/ipv4_vpn_routes_advertised_10_125_0_2.json105
-rw-r--r--tests/topotests/bgp_vpnv4_noretain/test_bgp_vpnv4_noretain.py38
2 files changed, 143 insertions, 0 deletions
diff --git a/tests/topotests/bgp_vpnv4_noretain/r1/ipv4_vpn_routes_advertised_10_125_0_2.json b/tests/topotests/bgp_vpnv4_noretain/r1/ipv4_vpn_routes_advertised_10_125_0_2.json
new file mode 100644
index 0000000000..7891982653
--- /dev/null
+++ b/tests/topotests/bgp_vpnv4_noretain/r1/ipv4_vpn_routes_advertised_10_125_0_2.json
@@ -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
+}
diff --git a/tests/topotests/bgp_vpnv4_noretain/test_bgp_vpnv4_noretain.py b/tests/topotests/bgp_vpnv4_noretain/test_bgp_vpnv4_noretain.py
index ee84e375fb..ada37c28c1 100644
--- a/tests/topotests/bgp_vpnv4_noretain/test_bgp_vpnv4_noretain.py
+++ b/tests/topotests/bgp_vpnv4_noretain/test_bgp_vpnv4_noretain.py
@@ -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=20, wait=1)
+ 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 @@ router bgp 65500
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()