| // Copyright 2019 The Chromium OS Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| syntax = "proto3"; |
| |
| package lab; |
| |
| option go_package = "go.chromium.org/chromiumos/infra/proto/go/lab"; |
| |
| import "lab/chromeos_device_id.proto"; |
| |
| // This proto defines status labels in lab config of a DUT. |
| |
| // Next Tag: 11 |
| message DutState { |
| ChromeOSDeviceID id = 1; |
| PeripheralState servo = 2; |
| PeripheralState chameleon = 3; |
| PeripheralState audio_loopback_dongle = 4; |
| // Indicate how many working bluetooth btpeer for a device. |
| int32 working_bluetooth_btpeer = 5; |
| |
| // CR50-related configs by definition shouldn't be a state config, but a build config. |
| // However, we don't have a way to source it from any external configuration system, |
| // and it's changed frequently enough to handle cr50 tests, which makes |
| // it basically impossible for manual updatings: See crbug.com/1057145 for the |
| // troubles it causes. |
| // |
| // So we temporarily set it in state config so that repair job can update it. |
| // For further changes of it, please see tracking bug crbug.com/1057719. |
| // |
| // phases for cr50 module. Next Tag: 3 |
| enum CR50Phase { |
| CR50_PHASE_INVALID = 0; |
| CR50_PHASE_PREPVT = 1; |
| CR50_PHASE_PVT = 2; |
| } |
| |
| CR50Phase cr50_phase = 6; |
| |
| // key env for cr50 RW version. Next Tag: 3 |
| enum CR50KeyEnv { |
| CR50_KEYENV_INVALID = 0; |
| CR50_KEYENV_PROD = 1; |
| CR50_KEYENV_DEV = 2; |
| } |
| // Detected based on the cr50 RW version that the DUT is running on. |
| CR50KeyEnv cr50_key_env = 7; |
| |
| // Detected during running admin_audit task. |
| HardwareState storage_state = 8; |
| HardwareState servo_usb_state = 9; |
| PeripheralState rpm_state = 10; |
| } |
| |
| // Next Tag: 17 |
| enum PeripheralState { |
| // Please keep for all unknown states. |
| UNKNOWN = 0; |
| // Device and software on it is working as expected. |
| WORKING = 1; |
| // Configuration for device is not provided. |
| MISSING_CONFIG = 5; |
| // Configuration contains incorrect information. |
| WRONG_CONFIG = 4; |
| // Device is not connected/plugged. |
| NOT_CONNECTED = 2; |
| // Device is not reachable over ssh. |
| NO_SSH = 6; |
| // Device is broken or not working as expected. the state used if no specified state for the issue. |
| BROKEN = 3; |
| // Device cannot be repaired or required manual attention to fix/replace it. |
| NEED_REPLACEMENT = 7; |
| |
| // Servo specific states. |
| // cr50 console missing or unresponsive. |
| CR50_CONSOLE_MISSING = 13; |
| // Servod daemon cannot start on servo-host because cr50 testlab not enabled. |
| CCD_TESTLAB_ISSUE = 8; |
| // Servod daemon cannot start on servo-host. |
| SERVOD_ISSUE = 9; |
| // device lid is not open. |
| LID_OPEN_FAILED = 10; |
| // the ribbon cable between servo and DUT is broken or not connected. |
| BAD_RIBBON_CABLE = 11; |
| // the EC on the DUT has issue. |
| EC_BROKEN = 12; |
| // Servo is not connected to the DUT. |
| DUT_NOT_CONNECTED = 14; |
| // Some component in servo-topology missed or not detected. |
| TOPOLOGY_ISSUE = 15; |
| // SBU voltage issues effect CR50 detection. |
| SBU_LOW_VOLTAGE = 16; |
| } |
| |
| // The states are using for DUT storage and USB-drive on servo. |
| // Next Tag: 5 |
| enum HardwareState { |
| // keep for all unknown state by default. |
| HARDWARE_UNKNOWN = 0; |
| // Hardware is in good shape and pass all verifiers. |
| HARDWARE_NORMAL = 1; |
| // Hardware is still good but some not critical verifiers did not pass or provided border values. |
| // (used for DUT storage when usage reached 98%) |
| HARDWARE_ACCEPTABLE = 2; |
| // Hardware is broken or bad (did not pass verifiers). |
| HARDWARE_NEED_REPLACEMENT = 3; |
| // Hardware is not detected to run verifiers. |
| // (used for USB-drive when it expected but not detected on the device) |
| HARDWARE_NOT_DETECTED = 4; |
| } |