blob: a3d43b3adcf761a452ac73b1cfb8a21d4f6ce498 [file] [log] [blame]
#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