1 // SPDX-License-Identifier: Apache-2.0 2 // SPDX-FileCopyrightText: Copyright OpenBMC Authors 3 #pragma once 4 #include <nlohmann/json.hpp> 5 6 namespace cable 7 { 8 // clang-format off 9 10 enum class CableClass{ 11 Invalid, 12 Power, 13 Network, 14 Storage, 15 Fan, 16 PCIe, 17 USB, 18 Video, 19 Fabric, 20 Serial, 21 General, 22 }; 23 24 enum class ConnectorType{ 25 Invalid, 26 ACPower, 27 DB9, 28 DCPower, 29 DisplayPort, 30 HDMI, 31 ICI, 32 IPASS, 33 PCIe, 34 Proprietary, 35 RJ45, 36 SATA, 37 SCSI, 38 SlimSAS, 39 SFP, 40 SFPPlus, 41 USBA, 42 USBC, 43 QSFP, 44 CDFP, 45 OSFP, 46 }; 47 48 enum class CableStatus{ 49 Invalid, 50 Normal, 51 Degraded, 52 Failed, 53 Testing, 54 Disabled, 55 SetByService, 56 }; 57 58 NLOHMANN_JSON_SERIALIZE_ENUM(CableClass, { 59 {CableClass::Invalid, "Invalid"}, 60 {CableClass::Power, "Power"}, 61 {CableClass::Network, "Network"}, 62 {CableClass::Storage, "Storage"}, 63 {CableClass::Fan, "Fan"}, 64 {CableClass::PCIe, "PCIe"}, 65 {CableClass::USB, "USB"}, 66 {CableClass::Video, "Video"}, 67 {CableClass::Fabric, "Fabric"}, 68 {CableClass::Serial, "Serial"}, 69 {CableClass::General, "General"}, 70 }); 71 72 NLOHMANN_JSON_SERIALIZE_ENUM(ConnectorType, { 73 {ConnectorType::Invalid, "Invalid"}, 74 {ConnectorType::ACPower, "ACPower"}, 75 {ConnectorType::DB9, "DB9"}, 76 {ConnectorType::DCPower, "DCPower"}, 77 {ConnectorType::DisplayPort, "DisplayPort"}, 78 {ConnectorType::HDMI, "HDMI"}, 79 {ConnectorType::ICI, "ICI"}, 80 {ConnectorType::IPASS, "IPASS"}, 81 {ConnectorType::PCIe, "PCIe"}, 82 {ConnectorType::Proprietary, "Proprietary"}, 83 {ConnectorType::RJ45, "RJ45"}, 84 {ConnectorType::SATA, "SATA"}, 85 {ConnectorType::SCSI, "SCSI"}, 86 {ConnectorType::SlimSAS, "SlimSAS"}, 87 {ConnectorType::SFP, "SFP"}, 88 {ConnectorType::SFPPlus, "SFPPlus"}, 89 {ConnectorType::USBA, "USBA"}, 90 {ConnectorType::USBC, "USBC"}, 91 {ConnectorType::QSFP, "QSFP"}, 92 {ConnectorType::CDFP, "CDFP"}, 93 {ConnectorType::OSFP, "OSFP"}, 94 }); 95 96 NLOHMANN_JSON_SERIALIZE_ENUM(CableStatus, { 97 {CableStatus::Invalid, "Invalid"}, 98 {CableStatus::Normal, "Normal"}, 99 {CableStatus::Degraded, "Degraded"}, 100 {CableStatus::Failed, "Failed"}, 101 {CableStatus::Testing, "Testing"}, 102 {CableStatus::Disabled, "Disabled"}, 103 {CableStatus::SetByService, "SetByService"}, 104 }); 105 106 } 107 // clang-format on 108