140e9b92eSEd Tanous // SPDX-License-Identifier: Apache-2.0 240e9b92eSEd Tanous // SPDX-FileCopyrightText: Copyright OpenBMC Authors 3853c0dc5SEd Tanous #pragma once 4853c0dc5SEd Tanous #include <nlohmann/json.hpp> 5853c0dc5SEd Tanous 6853c0dc5SEd Tanous namespace protocol 7853c0dc5SEd Tanous { 8853c0dc5SEd Tanous // clang-format off 9853c0dc5SEd Tanous 10853c0dc5SEd Tanous enum class Protocol{ 11853c0dc5SEd Tanous Invalid, 12853c0dc5SEd Tanous PCIe, 13853c0dc5SEd Tanous AHCI, 14853c0dc5SEd Tanous UHCI, 15853c0dc5SEd Tanous SAS, 16853c0dc5SEd Tanous SATA, 17853c0dc5SEd Tanous USB, 18853c0dc5SEd Tanous NVMe, 19853c0dc5SEd Tanous FC, 20853c0dc5SEd Tanous iSCSI, 21853c0dc5SEd Tanous FCoE, 22853c0dc5SEd Tanous FCP, 23853c0dc5SEd Tanous FICON, 24853c0dc5SEd Tanous NVMeOverFabrics, 25853c0dc5SEd Tanous SMB, 26853c0dc5SEd Tanous NFSv3, 27853c0dc5SEd Tanous NFSv4, 28853c0dc5SEd Tanous HTTP, 29853c0dc5SEd Tanous HTTPS, 30853c0dc5SEd Tanous FTP, 31853c0dc5SEd Tanous SFTP, 32853c0dc5SEd Tanous iWARP, 33853c0dc5SEd Tanous RoCE, 34853c0dc5SEd Tanous RoCEv2, 35853c0dc5SEd Tanous I2C, 36853c0dc5SEd Tanous TCP, 37853c0dc5SEd Tanous UDP, 38853c0dc5SEd Tanous TFTP, 39853c0dc5SEd Tanous GenZ, 40853c0dc5SEd Tanous MultiProtocol, 41853c0dc5SEd Tanous InfiniBand, 42853c0dc5SEd Tanous Ethernet, 43853c0dc5SEd Tanous NVLink, 44853c0dc5SEd Tanous OEM, 45853c0dc5SEd Tanous DisplayPort, 46853c0dc5SEd Tanous HDMI, 47853c0dc5SEd Tanous VGA, 48853c0dc5SEd Tanous DVI, 49a8d8f9d8SEd Tanous CXL, 50e9cc1bc9SEd Tanous UPI, 51e9cc1bc9SEd Tanous QPI, 52f2a8e57eSGunnar Mills eMMC, 53*d125652eSGunnar Mills UEC, 54853c0dc5SEd Tanous }; 55853c0dc5SEd Tanous 56853c0dc5SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(Protocol, { 57853c0dc5SEd Tanous {Protocol::Invalid, "Invalid"}, 58853c0dc5SEd Tanous {Protocol::PCIe, "PCIe"}, 59853c0dc5SEd Tanous {Protocol::AHCI, "AHCI"}, 60853c0dc5SEd Tanous {Protocol::UHCI, "UHCI"}, 61853c0dc5SEd Tanous {Protocol::SAS, "SAS"}, 62853c0dc5SEd Tanous {Protocol::SATA, "SATA"}, 63853c0dc5SEd Tanous {Protocol::USB, "USB"}, 64853c0dc5SEd Tanous {Protocol::NVMe, "NVMe"}, 65853c0dc5SEd Tanous {Protocol::FC, "FC"}, 66853c0dc5SEd Tanous {Protocol::iSCSI, "iSCSI"}, 67853c0dc5SEd Tanous {Protocol::FCoE, "FCoE"}, 68853c0dc5SEd Tanous {Protocol::FCP, "FCP"}, 69853c0dc5SEd Tanous {Protocol::FICON, "FICON"}, 70853c0dc5SEd Tanous {Protocol::NVMeOverFabrics, "NVMeOverFabrics"}, 71853c0dc5SEd Tanous {Protocol::SMB, "SMB"}, 72853c0dc5SEd Tanous {Protocol::NFSv3, "NFSv3"}, 73853c0dc5SEd Tanous {Protocol::NFSv4, "NFSv4"}, 74853c0dc5SEd Tanous {Protocol::HTTP, "HTTP"}, 75853c0dc5SEd Tanous {Protocol::HTTPS, "HTTPS"}, 76853c0dc5SEd Tanous {Protocol::FTP, "FTP"}, 77853c0dc5SEd Tanous {Protocol::SFTP, "SFTP"}, 78853c0dc5SEd Tanous {Protocol::iWARP, "iWARP"}, 79853c0dc5SEd Tanous {Protocol::RoCE, "RoCE"}, 80853c0dc5SEd Tanous {Protocol::RoCEv2, "RoCEv2"}, 81853c0dc5SEd Tanous {Protocol::I2C, "I2C"}, 82853c0dc5SEd Tanous {Protocol::TCP, "TCP"}, 83853c0dc5SEd Tanous {Protocol::UDP, "UDP"}, 84853c0dc5SEd Tanous {Protocol::TFTP, "TFTP"}, 85853c0dc5SEd Tanous {Protocol::GenZ, "GenZ"}, 86853c0dc5SEd Tanous {Protocol::MultiProtocol, "MultiProtocol"}, 87853c0dc5SEd Tanous {Protocol::InfiniBand, "InfiniBand"}, 88853c0dc5SEd Tanous {Protocol::Ethernet, "Ethernet"}, 89853c0dc5SEd Tanous {Protocol::NVLink, "NVLink"}, 90853c0dc5SEd Tanous {Protocol::OEM, "OEM"}, 91853c0dc5SEd Tanous {Protocol::DisplayPort, "DisplayPort"}, 92853c0dc5SEd Tanous {Protocol::HDMI, "HDMI"}, 93853c0dc5SEd Tanous {Protocol::VGA, "VGA"}, 94853c0dc5SEd Tanous {Protocol::DVI, "DVI"}, 95a8d8f9d8SEd Tanous {Protocol::CXL, "CXL"}, 96e9cc1bc9SEd Tanous {Protocol::UPI, "UPI"}, 97e9cc1bc9SEd Tanous {Protocol::QPI, "QPI"}, 98f2a8e57eSGunnar Mills {Protocol::eMMC, "eMMC"}, 99*d125652eSGunnar Mills {Protocol::UEC, "UEC"}, 100853c0dc5SEd Tanous }); 101853c0dc5SEd Tanous 102853c0dc5SEd Tanous } 103853c0dc5SEd Tanous // clang-format on 104