| // Copyright 2020 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| syntax = "proto3"; |
| |
| package unifiedfleet.api.v1.models.chromeos.lab; |
| |
| option go_package = "infra/unifiedfleet/api/v1/models/chromeos/lab;ufspb"; |
| |
| import "infra/unifiedfleet/api/v1/models/chromeos/lab/chameleon.proto"; |
| import "infra/unifiedfleet/api/v1/models/chromeos/lab/dolos.proto"; |
| import "infra/unifiedfleet/api/v1/models/chromeos/lab/rpm.proto"; |
| import "infra/unifiedfleet/api/v1/models/chromeos/lab/servo.proto"; |
| import "infra/unifiedfleet/api/v1/models/chromeos/lab/dut_state.proto"; |
| import "go.chromium.org/chromiumos/config/proto/chromiumos/test/lab/api/wifi_router.proto"; |
| import "go.chromium.org/chromiumos/config/proto/chromiumos/test/lab/api/pasit_host.proto"; |
| |
| // This proto defines setup labels in lab config of a DUT. |
| |
| // Peripherals of device. Next Tag: 26 |
| message Peripherals { |
| Servo servo = 1; |
| Chameleon chameleon = 2; |
| OSRPM rpm = 3; |
| // refer to cameras that connected to the device. |
| repeated Camera connected_camera = 4; |
| Audio audio = 5; |
| Wifi wifi = 6; |
| Touch touch = 7; |
| // e.g: "att", "verizon",.. It's a manual label set by lab, varies dut by dut. |
| string carrier = 8; |
| // e.g: "0_att,1_verizon,3_tmobile", "1_kddi,6_rakuten".. slot mapping: only for Starfish enabled modules. |
| string starfish_slot_mapping = 17; |
| // A list of all carriers that can be tested on the DUT. This extends the carrier field which could previously only |
| // be used with a single carrier. |
| repeated string supported_carriers = 21; |
| // Indicate if the device is setup in a steady and controllable camera box environment for camera test automation. |
| // http://go/cros-camera-box |
| bool camerabox = 9; |
| // Indicate if the device is setup in a chaos environment. It's a special settings for running wifi interop tests. |
| bool chaos = 10; |
| // Indicate the cables that connect audio, printer to the device in ACS lab. |
| repeated Cable cable = 11; |
| // Incompatible upgraded type from bool camerabox=9. |
| Camerabox camerabox_info = 12; |
| // Indicate if device is connected to a smart usb hub, detected in AdminRepair task. |
| bool smart_usbhub = 13; |
| // Indicate if the DUT's back camera supports region of interest |
| // Deprecated. |
| bool camera_roi_back = 14 [deprecated=true]; |
| // Indicate if the DUT's front camera supports region of interest |
| // Deprecated. |
| bool camera_roi_front = 15 [deprecated=true]; |
| repeated BluetoothPeer bluetooth_peers = 16; |
| HumanMotionRobot human_motion_robot = 18; |
| // Indicate if the DUT is connected to an audio latency toolkit |
| AudioLatencyToolkit audio_latency_toolkit = 19; |
| // Indicate if the DUT uses Dolos as a battery replacement |
| Dolos dolos = 20; |
| // The host and topology used in peripheral interop test beds. |
| reserved "pasit_host"; |
| reserved 23; |
| chromiumos.test.lab.api.PasitHost pasit_host2 = 24; |
| // Indicate if the DUT is equipped with Intel AMT. |
| AMTManager amt_manager = 25; |
| } |
| |
| |
| |
| // Next Tag: 3 |
| enum CameraType { |
| CAMERA_INVALID = 0; |
| // camera Huddly GO |
| CAMERA_HUDDLY = 1; |
| // camera Logitech PTZ Pro 2 |
| CAMERA_PTZPRO2 = 2; |
| } |
| |
| // Next Tag: 2 |
| message Camera { |
| CameraType camera_type = 1; |
| } |
| |
| enum CableType { |
| CABLE_INVALID = 0; |
| CABLE_AUDIOJACK = 1; |
| CABLE_USBAUDIO = 2; |
| CABLE_USBPRINTING = 3; |
| CABLE_HDMIAUDIO = 4; |
| } |
| |
| message Cable { |
| CableType type = 1; |
| } |
| |
| // Next Tag: 4 |
| message Audio { |
| // Indicate if the DUT is housed in an audio box to record / replay audio |
| // for audio testing. |
| bool audio_box = 1; |
| // Indicate if the DUT is connected to Atrus speakermic |
| bool atrus = 2; |
| // Indicate if the DUT is connected to chameleon through static audio cable |
| bool audio_cable = 3; |
| } |
| |
| // Next Tag: 7 |
| message Wifi { |
| reserved 5; |
| |
| // Indicate if the device is inside a hermetic wifi cell. |
| bool wificell = 1; |
| |
| // DUT's WiFi antenna's connection. |
| // Next Tag: 3 |
| enum AntennaConnection { |
| CONN_UNKNOWN = 0; |
| // WIFI antenna is connected conductively. |
| CONN_CONDUCTIVE = 1; |
| // WIFI antenna is connected over-the-air. |
| CONN_OTA = 2; |
| } |
| AntennaConnection antenna_conn = 2; |
| |
| enum Router { |
| ROUTER_UNSPECIFIED = 0; |
| ROUTER_802_11AX = 1; |
| } |
| // Indicate if the device is in a pre-setup environment with 802.11ax routers. |
| // crbug.com/1044786 |
| Router router = 3; |
| // collections of routers used for wifi testing. |
| repeated WifiRouter wifi_routers = 4; |
| |
| // WifiRouterFeatures that are supported by all wifi routers in the testbed. |
| // |
| // If there are no wifi routers this will be empty. |
| // If any routers have unknown features, this will just have a single |
| // WIFI_ROUTER_FEATURE_UNKNOWN entry. |
| // If any routers' features has a WIFI_ROUTER_FEATURE_INVALID feature, a |
| // WIFI_ROUTER_FEATURE_INVALID feature will be included along with the other |
| // common, valid features. |
| // If there are no common, valid features between all routers, this will just |
| // have a single WIFI_ROUTER_FEATURE_INVALID entry. |
| repeated chromiumos.test.lab.api.WifiRouterFeature wifi_router_features = 6; |
| } |
| |
| |
| // Next Tag: 7 |
| message WifiRouter { |
| reserved 6; |
| |
| string hostname = 1; |
| PeripheralState state = 2; |
| string build_target = 3; |
| string model = 4; |
| |
| // RPM to perform remote power management. use OSRPM defined here. |
| OSRPM rpm = 5; |
| |
| // Supported test router hardware and software features. |
| repeated chromiumos.test.lab.api.WifiRouterFeature supported_features = 7; |
| |
| // The type of router device this is (e.g. OpenWrt-based, ChromeOS Gale). |
| chromiumos.test.lab.api.WifiRouterDeviceType device_type = 8; |
| } |
| |
| // Next Tag: 2 |
| message Touch { |
| // Has touch monitor mimo. |
| bool mimo = 1; |
| } |
| |
| // Next Tag: 3 |
| message Camerabox { |
| // Facing of DUT's camera to be tested whose FOV should cover chart tablet's screen. |
| // Next Tag: 4 |
| enum Facing { |
| FACING_UNKNOWN = 0; |
| // DUT's back camera is facing to chart tablet. |
| FACING_BACK = 1; |
| // DUT's front camera is facing to chart tablet. |
| FACING_FRONT = 2; |
| // DUT has no camera |
| FACING_NOCAMERA = 3; |
| } |
| // Light provision of camerabox, if LED is present or not. |
| // Next Tag: 3 |
| enum Light { |
| LIGHT_UNKNOWN = 0; |
| // Camerabox has LED light provisioned. |
| LIGHT_LED = 1; |
| // Camerabox do not have LED light provision. |
| LIGHT_NOLED = 2; |
| } |
| Facing facing = 1; |
| Light light = 2; |
| } |
| |
| // RaspberryPi models hardware without an assumption of how |
| // it will be used, e.g. Bluetooth peers, audio testing, etc. |
| message RaspberryPi { |
| string hostname = 1; |
| PeripheralState state = 2; |
| } |
| |
| // BluetoothPeer is hardware that is used as a Bluetooth peer. |
| // It models function rather than hardware. |
| message BluetoothPeer { |
| oneof device { |
| RaspberryPi raspberry_pi = 1; |
| } |
| |
| // Remote Power Management for the bluetooth peer device. |
| OSRPM rpm = 2; |
| } |
| |
| // HumanMotionRobot models the whole HMR system |
| // including touchhost, Pi, HMR fixture, etc. |
| message HumanMotionRobot { |
| // hostname for HMR pi |
| string hostname = 1; |
| |
| // model of the HMR |
| string hmr_model = 2; |
| |
| // hostname for touch-host pi |
| string gateway_hostname = 3; |
| |
| // Remote Power Management for HMR device. |
| OSRPM rpm = 4; |
| } |
| |
| // AudioLatencyToolkit models audio latency toolkits |
| // including a Teensy and Teensy Audio Board |
| // Next Tag: 1 |
| message AudioLatencyToolkit { |
| string version = 1; // default: "4.1" |
| } |
| |
| // AMTManager enables remote, out-of-band management. |
| message AMTManager { |
| // Hostname for the AMT management port. |
| string hostname = 1; |
| } |