1// Copyright 2021 The ChromiumOS Authors 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5syntax = "proto3"; 6 7package chromiumos.test.lab.api; 8 9option go_package = "go.chromium.org/chromiumos/config/go/test/lab/api"; 10 11// This proto defines the perhipheral topology in a PASIT testbed. 12 13// PASIT is a connected set of peripheral components used in interop testing. The 14// components connected are controlled via an external host. PasitHost describes the 15// devices in the testbed and their connection topology. 16message PasitHost { 17 // The name of the host that controls the devices (e.g. switches) 18 string hostname = 1; 19 // The components/devices in the PASIT testbed (e.g. docks, switches, cameras, monitors, etc) 20 repeated Device devices = 2; 21 // The connections between devices/components in the testbed. 22 repeated Connection connections = 3; 23 24 // A single connection between two components in the topology. 25 message Connection { 26 // If the parent device has multiple connection ports/slots, 27 // this is the name or id of the port. 28 string parent_port = 1; 29 // The ID of the parent component; 30 string parent_id = 2; 31 // The ID of the child component; 32 string child_id = 3; 33 // The speed of the connection. 34 float speed = 4; 35 // The physical port type/technology, e.g. "USBA", "USBC", "HDMI". 36 string type = 5; 37 } 38 39 // A single device/component in the testbed. 40 message Device { 41 // The unique ID of the device. This is not unique across all devices, 42 // in the lab but is unique within a testbed. 43 string id = 1; 44 // The the make/model of the device. 45 string model = 2; 46 // The type of device represented. 47 Type type = 3; 48 // Additional power supply information for devices that provide 49 // power to the DUT. 50 PowerSupply power_supply = 4; 51 52 // The type of device represented. 53 enum Type { 54 UNKNOWN = 0; 55 DUT = 1; 56 SWITCH_FIXTURE = 2; 57 DOCKING_STATION = 3; 58 MONITOR = 4; 59 CAMERA = 5; 60 STORAGE = 6; 61 HID = 7; 62 NETWORK = 8; 63 HEADPHONE = 9; 64 SPEAKER = 10; 65 } 66 67 // Information on the power capabilities of the device. 68 message PowerSupply { 69 float current = 1; 70 float voltage = 2; 71 float power = 3; 72 } 73 } 74} 75