xref: /openbmc/bmcweb/redfish-core/include/generated/enums/protocol.hpp (revision ac69e77ea938e8c2a5bd3dad258cdafd9d3182b7)
1 // SPDX-License-Identifier: Apache-2.0
2 // SPDX-FileCopyrightText: Copyright OpenBMC Authors
3 #pragma once
4 #include <nlohmann/json.hpp>
5 
6 namespace protocol
7 {
8 // clang-format off
9 
10 enum class Protocol{
11     Invalid,
12     PCIe,
13     AHCI,
14     UHCI,
15     SAS,
16     SATA,
17     USB,
18     NVMe,
19     FC,
20     iSCSI,
21     FCoE,
22     FCP,
23     FICON,
24     NVMeOverFabrics,
25     SMB,
26     NFSv3,
27     NFSv4,
28     HTTP,
29     HTTPS,
30     FTP,
31     SFTP,
32     iWARP,
33     RoCE,
34     RoCEv2,
35     I2C,
36     TCP,
37     UDP,
38     TFTP,
39     GenZ,
40     MultiProtocol,
41     InfiniBand,
42     Ethernet,
43     NVLink,
44     OEM,
45     DisplayPort,
46     HDMI,
47     VGA,
48     DVI,
49     CXL,
50     UPI,
51     QPI,
52     eMMC,
53     UET,
54     UALink,
55 };
56 
57 NLOHMANN_JSON_SERIALIZE_ENUM(Protocol, {
58     {Protocol::Invalid, "Invalid"},
59     {Protocol::PCIe, "PCIe"},
60     {Protocol::AHCI, "AHCI"},
61     {Protocol::UHCI, "UHCI"},
62     {Protocol::SAS, "SAS"},
63     {Protocol::SATA, "SATA"},
64     {Protocol::USB, "USB"},
65     {Protocol::NVMe, "NVMe"},
66     {Protocol::FC, "FC"},
67     {Protocol::iSCSI, "iSCSI"},
68     {Protocol::FCoE, "FCoE"},
69     {Protocol::FCP, "FCP"},
70     {Protocol::FICON, "FICON"},
71     {Protocol::NVMeOverFabrics, "NVMeOverFabrics"},
72     {Protocol::SMB, "SMB"},
73     {Protocol::NFSv3, "NFSv3"},
74     {Protocol::NFSv4, "NFSv4"},
75     {Protocol::HTTP, "HTTP"},
76     {Protocol::HTTPS, "HTTPS"},
77     {Protocol::FTP, "FTP"},
78     {Protocol::SFTP, "SFTP"},
79     {Protocol::iWARP, "iWARP"},
80     {Protocol::RoCE, "RoCE"},
81     {Protocol::RoCEv2, "RoCEv2"},
82     {Protocol::I2C, "I2C"},
83     {Protocol::TCP, "TCP"},
84     {Protocol::UDP, "UDP"},
85     {Protocol::TFTP, "TFTP"},
86     {Protocol::GenZ, "GenZ"},
87     {Protocol::MultiProtocol, "MultiProtocol"},
88     {Protocol::InfiniBand, "InfiniBand"},
89     {Protocol::Ethernet, "Ethernet"},
90     {Protocol::NVLink, "NVLink"},
91     {Protocol::OEM, "OEM"},
92     {Protocol::DisplayPort, "DisplayPort"},
93     {Protocol::HDMI, "HDMI"},
94     {Protocol::VGA, "VGA"},
95     {Protocol::DVI, "DVI"},
96     {Protocol::CXL, "CXL"},
97     {Protocol::UPI, "UPI"},
98     {Protocol::QPI, "QPI"},
99     {Protocol::eMMC, "eMMC"},
100     {Protocol::UET, "UET"},
101     {Protocol::UALink, "UALink"},
102 });
103 
104 // clang-format on
105 } // namespace protocol
106