def METHOD_NAME():
    tgen = get_topogen()
    if tgen.routers_have_failure():
        pytest.skip(tgen.errors)
    r2 = tgen.gears["r2"]
    def _bgp_converge():
        output = json.loads(r2.vtysh_cmd("show bgp ipv4 unicast 172.16.16.254/32 json"))
        expected = {
            "paths": [
                {
                    "aspath": {
                        "string": "65006",
                    },
                    "weight": 6,
                },
                {
                    "aspath": {
                        "string": "65005",
                    },
                    "weight": 5,
                },
                {
                    "aspath": {
                        "string": "65004",
                    },
                    "weight": 4,
                },
                {
                    "aspath": {
                        "string": "65003",
                    },
                    "weight": 3,
                },
            ]
        }
        return topotest.json_cmp(output, expected)
    test_func = functools.partial(_bgp_converge)
    _, result = topotest.run_and_expect(test_func, None, count=30, wait=1)
    assert result is None, "Can't converge initially"
    def check_bgp_advertised_routes_to_r1():
        output = json.loads(
            r2.vtysh_cmd(
                "show bgp ipv4 neighbors 192.168.1.1 advertised-routes detail json"
            )
        )
        expected = {
            "advertisedRoutes": {
                "172.16.16.254/32": {
                    "paths": [
                        {
                            "aspath": {
                                "string": "65005",
                            }
                        },
                        {
                            "aspath": {
                                "string": "65006",
                            }
                        },
                    ]
                }
            },
            "totalPrefixCounter": 2,
        }
        return topotest.json_cmp(output, expected)
    test_func = functools.partial(check_bgp_advertised_routes_to_r1)
    _, result = topotest.run_and_expect(test_func, None, count=30, wait=1)
    assert (
        result is None
    ), "Received more/less Add-Path best paths, but should be only 1+1 (real best path)"
    def check_bgp_advertised_routes_to_r7():
        output = json.loads(
            r2.vtysh_cmd(
                "show bgp ipv4 neighbors 192.168.7.7 advertised-routes detail json"
            )
        )
        expected = {
            "advertisedRoutes": {
                "172.16.16.254/32": {
                    "paths": [
                        {
                            "aspath": {
                                "string": "65004",
                            }
                        },
                        {
                            "aspath": {
                                "string": "65005",
                            }
                        },
                        {
                            "aspath": {
                                "string": "65006",
                            }
                        },
                    ]
                }
            },
            "totalPrefixCounter": 3,
        }
        return topotest.json_cmp(output, expected)
    test_func = functools.partial(check_bgp_advertised_routes_to_r7)
    _, result = topotest.run_and_expect(test_func, None, count=30, wait=1)
    assert (
        result is None
    ), "Received more/less Add-Path best paths, but should be only 2+1 (real best path)"