1853c0dc5SEd Tanous #pragma once 2853c0dc5SEd Tanous #include <nlohmann/json.hpp> 3853c0dc5SEd Tanous 4853c0dc5SEd Tanous namespace protocol 5853c0dc5SEd Tanous { 6853c0dc5SEd Tanous // clang-format off 7853c0dc5SEd Tanous 8853c0dc5SEd Tanous enum class Protocol{ 9853c0dc5SEd Tanous Invalid, 10853c0dc5SEd Tanous PCIe, 11853c0dc5SEd Tanous AHCI, 12853c0dc5SEd Tanous UHCI, 13853c0dc5SEd Tanous SAS, 14853c0dc5SEd Tanous SATA, 15853c0dc5SEd Tanous USB, 16853c0dc5SEd Tanous NVMe, 17853c0dc5SEd Tanous FC, 18853c0dc5SEd Tanous iSCSI, 19853c0dc5SEd Tanous FCoE, 20853c0dc5SEd Tanous FCP, 21853c0dc5SEd Tanous FICON, 22853c0dc5SEd Tanous NVMeOverFabrics, 23853c0dc5SEd Tanous SMB, 24853c0dc5SEd Tanous NFSv3, 25853c0dc5SEd Tanous NFSv4, 26853c0dc5SEd Tanous HTTP, 27853c0dc5SEd Tanous HTTPS, 28853c0dc5SEd Tanous FTP, 29853c0dc5SEd Tanous SFTP, 30853c0dc5SEd Tanous iWARP, 31853c0dc5SEd Tanous RoCE, 32853c0dc5SEd Tanous RoCEv2, 33853c0dc5SEd Tanous I2C, 34853c0dc5SEd Tanous TCP, 35853c0dc5SEd Tanous UDP, 36853c0dc5SEd Tanous TFTP, 37853c0dc5SEd Tanous GenZ, 38853c0dc5SEd Tanous MultiProtocol, 39853c0dc5SEd Tanous InfiniBand, 40853c0dc5SEd Tanous Ethernet, 41853c0dc5SEd Tanous NVLink, 42853c0dc5SEd Tanous OEM, 43853c0dc5SEd Tanous DisplayPort, 44853c0dc5SEd Tanous HDMI, 45853c0dc5SEd Tanous VGA, 46853c0dc5SEd Tanous DVI, 47a8d8f9d8SEd Tanous CXL, 48*e9cc1bc9SEd Tanous UPI, 49*e9cc1bc9SEd Tanous QPI, 50853c0dc5SEd Tanous }; 51853c0dc5SEd Tanous 52853c0dc5SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(Protocol, { 53853c0dc5SEd Tanous {Protocol::Invalid, "Invalid"}, 54853c0dc5SEd Tanous {Protocol::PCIe, "PCIe"}, 55853c0dc5SEd Tanous {Protocol::AHCI, "AHCI"}, 56853c0dc5SEd Tanous {Protocol::UHCI, "UHCI"}, 57853c0dc5SEd Tanous {Protocol::SAS, "SAS"}, 58853c0dc5SEd Tanous {Protocol::SATA, "SATA"}, 59853c0dc5SEd Tanous {Protocol::USB, "USB"}, 60853c0dc5SEd Tanous {Protocol::NVMe, "NVMe"}, 61853c0dc5SEd Tanous {Protocol::FC, "FC"}, 62853c0dc5SEd Tanous {Protocol::iSCSI, "iSCSI"}, 63853c0dc5SEd Tanous {Protocol::FCoE, "FCoE"}, 64853c0dc5SEd Tanous {Protocol::FCP, "FCP"}, 65853c0dc5SEd Tanous {Protocol::FICON, "FICON"}, 66853c0dc5SEd Tanous {Protocol::NVMeOverFabrics, "NVMeOverFabrics"}, 67853c0dc5SEd Tanous {Protocol::SMB, "SMB"}, 68853c0dc5SEd Tanous {Protocol::NFSv3, "NFSv3"}, 69853c0dc5SEd Tanous {Protocol::NFSv4, "NFSv4"}, 70853c0dc5SEd Tanous {Protocol::HTTP, "HTTP"}, 71853c0dc5SEd Tanous {Protocol::HTTPS, "HTTPS"}, 72853c0dc5SEd Tanous {Protocol::FTP, "FTP"}, 73853c0dc5SEd Tanous {Protocol::SFTP, "SFTP"}, 74853c0dc5SEd Tanous {Protocol::iWARP, "iWARP"}, 75853c0dc5SEd Tanous {Protocol::RoCE, "RoCE"}, 76853c0dc5SEd Tanous {Protocol::RoCEv2, "RoCEv2"}, 77853c0dc5SEd Tanous {Protocol::I2C, "I2C"}, 78853c0dc5SEd Tanous {Protocol::TCP, "TCP"}, 79853c0dc5SEd Tanous {Protocol::UDP, "UDP"}, 80853c0dc5SEd Tanous {Protocol::TFTP, "TFTP"}, 81853c0dc5SEd Tanous {Protocol::GenZ, "GenZ"}, 82853c0dc5SEd Tanous {Protocol::MultiProtocol, "MultiProtocol"}, 83853c0dc5SEd Tanous {Protocol::InfiniBand, "InfiniBand"}, 84853c0dc5SEd Tanous {Protocol::Ethernet, "Ethernet"}, 85853c0dc5SEd Tanous {Protocol::NVLink, "NVLink"}, 86853c0dc5SEd Tanous {Protocol::OEM, "OEM"}, 87853c0dc5SEd Tanous {Protocol::DisplayPort, "DisplayPort"}, 88853c0dc5SEd Tanous {Protocol::HDMI, "HDMI"}, 89853c0dc5SEd Tanous {Protocol::VGA, "VGA"}, 90853c0dc5SEd Tanous {Protocol::DVI, "DVI"}, 91a8d8f9d8SEd Tanous {Protocol::CXL, "CXL"}, 92*e9cc1bc9SEd Tanous {Protocol::UPI, "UPI"}, 93*e9cc1bc9SEd Tanous {Protocol::QPI, "QPI"}, 94853c0dc5SEd Tanous }); 95853c0dc5SEd Tanous 96853c0dc5SEd Tanous } 97853c0dc5SEd Tanous // clang-format on 98