def METHOD_NAME():
    tgen = get_topogen()
    if tgen.routers_have_failure():
        pytest.skip(tgen.errors)
    def _bgp_converge_initial():
        output = json.loads(
            tgen.gears["c1"].vtysh_cmd("show ip bgp neighbor 10.0.1.2 json")
        )
        expected = {
            "10.0.1.2": {
                "bgpState": "Established",
                "addressFamilyInfo": {"ipv4Unicast": {"acceptedPrefixCounter": 8}},
            }
        }
        return topotest.json_cmp(output, expected)
    step("Check if an initial topology is converged")
    test_func = functools.partial(_bgp_converge_initial)
    success, result = topotest.run_and_expect(test_func, None, count=60, wait=0.5)
    assert result is None, "Failed to see bgp convergence in c1"
    step("Disable link between y1 and y2")
    tgen.gears["y1"].run("ip link set dev y1-eth1 down")
    def _bgp_converge_link_disabled():
        output = json.loads(tgen.gears["y1"].vtysh_cmd("show ip bgp nei 10.0.3.2 json"))
        expected = {"10.0.3.2": {"bgpState": "Active"}}
        return topotest.json_cmp(output, expected)
    step("Check if a topology is converged after a link down between y1 and y2")
    test_func = functools.partial(_bgp_converge_link_disabled)
    success, result = topotest.run_and_expect(test_func, None, count=60, wait=0.5)
    assert result is None, "Failed to see bgp convergence in y1"
    def _bgp_check_for_duplicate_updates():
        duplicate = False
        i = 0
        while i < 5:
            if (
                len(
                    tgen.gears["c1"].run(
                        'grep "10.0.1.2(x1) rcvd 192.168.255.254/32 IPv4 unicast...duplicate ignored" bgpd.log'
                    )
                )
                > 0
            ):
                duplicate = True
            i += 1
            sleep(0.5)
        return duplicate
    step("Check if we see duplicate BGP UPDATE message in c1 (suppress-duplicates)")
    assert (
        _bgp_check_for_duplicate_updates() == False
    ), "Seen duplicate BGP UPDATE message in c1 from x1"
    step("Disable bgp suppress-duplicates at x1")
    tgen.gears["x1"].run(
        "vtysh -c 'conf' -c 'router bgp' -c 'no bgp suppress-duplicates'"
    )
    step("Enable link between y1 and y2")
    tgen.gears["y1"].run("ip link set dev y1-eth1 up")
    def _bgp_converge_link_enabled():
        output = json.loads(tgen.gears["y1"].vtysh_cmd("show ip bgp nei 10.0.3.2 json"))
        expected = {
            "10.0.3.2": {
                "bgpState": "Established",
                "addressFamilyInfo": {
                    "ipv4Unicast": {"acceptedPrefixCounter": 5, "sentPrefixCounter": 4}
                },
            }
        }
        return topotest.json_cmp(output, expected)
    step("Check if a topology is converged after a link up between y1 and y2")
    test_func = functools.partial(_bgp_converge_link_enabled)
    success, result = topotest.run_and_expect(test_func, None, count=60, wait=0.5)
    assert result is None, "Failed to see bgp convergence in y1"
    step(
        "Check if we see duplicate BGP UPDATE message in c1 (no bgp suppress-duplicates)"
    )
    assert (
        _bgp_check_for_duplicate_updates() == True
    ), "Didn't see duplicate BGP UPDATE message in c1 from x1"