diff options
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/topotests/bgp_vpnv4_noretain/r1/ipv4_vpn_routes_advertised_10_125_0_2.json | 105 | ||||
| -rw-r--r-- | tests/topotests/bgp_vpnv4_noretain/test_bgp_vpnv4_noretain.py | 38 | 
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()  | 
