def METHOD_NAME(node: RemoteNode, log: Logger) -> None:
    node_nic = node.nics
    lower_nics_before_hibernation = node_nic.get_lower_nics()
    upper_nics_before_hibernation = node_nic.get_nic_names()
    hibernation_setup_tool = node.tools[HibernationSetup]
    entry_before_hibernation = hibernation_setup_tool.check_entry()
    exit_before_hibernation = hibernation_setup_tool.check_exit()
    received_before_hibernation = hibernation_setup_tool.check_received()
    uevent_before_hibernation = hibernation_setup_tool.check_uevent()
    startstop = node.features[StartStop]
    hibernation_setup_tool.start()
    startstop.stop(state=features.StopState.Hibernate)
    is_ready = True
    timeout = 900
    timer = create_timer()
    while timeout > timer.elapsed(False):
        is_ready, _ = wait_tcp_port_ready(
            node.connection_info[constants.ENVIRONMENTS_NODES_REMOTE_ADDRESS],
            node.connection_info[constants.ENVIRONMENTS_NODES_REMOTE_PORT],
            log=log,
            timeout=10,
        )
        if not is_ready:
            break
    if is_ready:
        raise LisaException("VM still can be accessed after hibernation")
    startstop.start()
    entry_after_hibernation = hibernation_setup_tool.check_entry()
    exit_after_hibernation = hibernation_setup_tool.check_exit()
    received_after_hibernation = hibernation_setup_tool.check_received()
    uevent_after_hibernation = hibernation_setup_tool.check_uevent()
    assert_that(
        entry_after_hibernation - entry_before_hibernation,
        "not find 'hibernation entry'.",
    ).is_equal_to(1)
    assert_that(
        exit_after_hibernation - exit_before_hibernation,
        "not find 'hibernation exit'.",
    ).is_equal_to(1)
    assert_that(
        received_after_hibernation - received_before_hibernation,
        "not find 'Hibernation request received'.",
    ).is_equal_to(1)
    assert_that(
        uevent_after_hibernation - uevent_before_hibernation,
        "not find 'Sent hibernation uevent'.",
    ).is_equal_to(1)
    node_nic = node.nics
    node_nic.initialize()
    lower_nics_after_hibernation = node_nic.get_lower_nics()
    upper_nics_after_hibernation = node_nic.get_nic_names()
    assert_that(
        len(lower_nics_after_hibernation),
        "sriov nics count changes after hibernation.",
    ).is_equal_to(len(lower_nics_before_hibernation))
    assert_that(
        len(upper_nics_after_hibernation),
        "synthetic nics count changes after hibernation.",
    ).is_equal_to(len(upper_nics_before_hibernation))