| #pragma once |
| #include <cstdint> |
| #include <nlohmann/json.hpp> |
| |
| namespace protocol |
| { |
| // clang-format off |
| |
| enum class Protocol : std::uint8_t{ |
| Invalid, |
| PCIe, |
| AHCI, |
| UHCI, |
| SAS, |
| SATA, |
| USB, |
| NVMe, |
| FC, |
| iSCSI, |
| FCoE, |
| FCP, |
| FICON, |
| NVMeOverFabrics, |
| SMB, |
| NFSv3, |
| NFSv4, |
| HTTP, |
| HTTPS, |
| FTP, |
| SFTP, |
| iWARP, |
| RoCE, |
| RoCEv2, |
| I2C, |
| TCP, |
| UDP, |
| TFTP, |
| GenZ, |
| MultiProtocol, |
| InfiniBand, |
| Ethernet, |
| NVLink, |
| OEM, |
| DisplayPort, |
| HDMI, |
| VGA, |
| DVI, |
| CXL, |
| }; |
| |
| NLOHMANN_JSON_SERIALIZE_ENUM(Protocol, { |
| {Protocol::Invalid, "Invalid"}, |
| {Protocol::PCIe, "PCIe"}, |
| {Protocol::AHCI, "AHCI"}, |
| {Protocol::UHCI, "UHCI"}, |
| {Protocol::SAS, "SAS"}, |
| {Protocol::SATA, "SATA"}, |
| {Protocol::USB, "USB"}, |
| {Protocol::NVMe, "NVMe"}, |
| {Protocol::FC, "FC"}, |
| {Protocol::iSCSI, "iSCSI"}, |
| {Protocol::FCoE, "FCoE"}, |
| {Protocol::FCP, "FCP"}, |
| {Protocol::FICON, "FICON"}, |
| {Protocol::NVMeOverFabrics, "NVMeOverFabrics"}, |
| {Protocol::SMB, "SMB"}, |
| {Protocol::NFSv3, "NFSv3"}, |
| {Protocol::NFSv4, "NFSv4"}, |
| {Protocol::HTTP, "HTTP"}, |
| {Protocol::HTTPS, "HTTPS"}, |
| {Protocol::FTP, "FTP"}, |
| {Protocol::SFTP, "SFTP"}, |
| {Protocol::iWARP, "iWARP"}, |
| {Protocol::RoCE, "RoCE"}, |
| {Protocol::RoCEv2, "RoCEv2"}, |
| {Protocol::I2C, "I2C"}, |
| {Protocol::TCP, "TCP"}, |
| {Protocol::UDP, "UDP"}, |
| {Protocol::TFTP, "TFTP"}, |
| {Protocol::GenZ, "GenZ"}, |
| {Protocol::MultiProtocol, "MultiProtocol"}, |
| {Protocol::InfiniBand, "InfiniBand"}, |
| {Protocol::Ethernet, "Ethernet"}, |
| {Protocol::NVLink, "NVLink"}, |
| {Protocol::OEM, "OEM"}, |
| {Protocol::DisplayPort, "DisplayPort"}, |
| {Protocol::HDMI, "HDMI"}, |
| {Protocol::VGA, "VGA"}, |
| {Protocol::DVI, "DVI"}, |
| {Protocol::CXL, "CXL"}, |
| }); |
| |
| } // namespace protocol |
| // clang-format on |