def METHOD_NAME(localhost, dut, enum_frontend_asic_index, service, interfaces, xcvr_skip_list):
    """
    Restart specified service and check platform status
    """
    logging.info("Restart the %s service on asic %s" % (service, enum_frontend_asic_index))
    asichost = dut.asic_instance(enum_frontend_asic_index)
    service_name = asichost.get_service_name(service)
    dut.command("sudo systemctl restart {}".format(service_name))
    for container in dut.get_default_critical_services_list():
        if is_service_hiting_start_limit(dut, container) is True:
            logging.info("{} hits start limit and clear reset-failed flag".format(container))
            dut.shell("sudo systemctl reset-failed {}.service".format(container))
            dut.shell("sudo systemctl start {}.service".format(container))
    logging.info("Wait until all critical services are fully started")
    wait_critical_processes(dut)
    logging.info("Wait some time for all the transceivers to be detected")
    pytest_assert(wait_until(300, 20, 0, check_interface_information, dut,
                  enum_frontend_asic_index, interfaces, xcvr_skip_list),
                  "Not all interface information are detected within 300 seconds")
    logging.info("Check transceiver status on asic %s" % enum_frontend_asic_index)
    check_transceiver_basic(dut, enum_frontend_asic_index, interfaces, xcvr_skip_list)
    if dut.facts["asic_type"] in ["mellanox"]:
        from .mellanox.check_hw_mgmt_service import check_hw_management_service
        from .mellanox.check_sysfs import check_sysfs
        logging.info("Check the hw-management service")
        check_hw_management_service(dut)
        logging.info("Check sysfs")
        check_sysfs(dut)
    logging.info("Check that critical processes are healthy for 60 seconds")
    check_critical_processes(dut, 60)