def METHOD_NAME():
    # TC1
    tgen = get_topogen()
    if tgen.routers_have_failure():
        pytest.skip(tgen.errors)
    r1 = tgen.gears["r1"]
    r2 = tgen.gears["r2"]
    def _bgp_converge():
        output = json.loads(r2.vtysh_cmd("show ip bgp neighbor 192.168.255.1 json"))
        expected = {
            "192.168.255.1": {
                "bgpState": "Established",
                "addressFamilyInfo": {"ipv4Unicast": {"acceptedPrefixCounter": 2}},
            }
        }
        return topotest.json_cmp(output, expected)
    def _disable_link_r1_r2():
        r1.cmd_raises("ip link set down dev r1-eth0")
    def _enable_link_r1_r2():
        r1.cmd_raises("ip link set up dev r1-eth0")
    def _bgp_check_hold_timer_expire_reason():
        output = json.loads(r2.vtysh_cmd("show ip bgp neighbor 192.168.255.1 json"))
        expected = {
            "192.168.255.1": {
                "lastNotificationReason": "Hold Timer Expired",
            }
        }
        return topotest.json_cmp(output, expected)
    def _bgp_check_hold_timer_expire_stale():
        output = json.loads(r2.vtysh_cmd("show bgp ipv4 unicast 172.16.255.1/32 json"))
        expected = {
            "paths": [
                {
                    "stale": True,
                    "valid": True,
                }
            ]
        }
        return topotest.json_cmp(output, expected)
    step("Initial BGP converge")
    test_func = functools.partial(_bgp_converge)
    _, result = topotest.run_and_expect(test_func, None, count=60, wait=0.5)
    assert result is None, "Failed to see BGP convergence on R2"
    step("Disable the link between R1-R2")
    _disable_link_r1_r2()
    step("Check if R2 sent HoldTimerExpire notification to R1")
    test_func = functools.partial(_bgp_check_hold_timer_expire_reason)
    _, result = topotest.run_and_expect(test_func, None, count=60, wait=0.5)
    assert result is None, "Failed to see Hold Timer Expired notification from R2 on R1"
    step("Check if the routes are retained at R2")
    test_func = functools.partial(_bgp_check_hold_timer_expire_stale)
    _, result = topotest.run_and_expect(test_func, None, count=60, wait=0.5)
    assert result is None, "Failed to see retained stale routes on R2"
    step("Enable the link between R1-R2")
    _enable_link_r1_r2()