xref: /openbmc/bmcweb/redfish-core/include/generated/enums/port.hpp (revision 40e9b92ec19acffb46f83a6e55b18974da5d708e)
1 // SPDX-License-Identifier: Apache-2.0
2 // SPDX-FileCopyrightText: Copyright OpenBMC Authors
3 #pragma once
4 #include <nlohmann/json.hpp>
5 
6 namespace port
7 {
8 // clang-format off
9 
10 enum class PortType{
11     Invalid,
12     UpstreamPort,
13     DownstreamPort,
14     InterswitchPort,
15     ManagementPort,
16     BidirectionalPort,
17     UnconfiguredPort,
18 };
19 
20 enum class PortMedium{
21     Invalid,
22     Electrical,
23     Optical,
24 };
25 
26 enum class LinkState{
27     Invalid,
28     Enabled,
29     Disabled,
30 };
31 
32 enum class LinkStatus{
33     Invalid,
34     LinkUp,
35     Starting,
36     Training,
37     LinkDown,
38     NoLink,
39 };
40 
41 enum class LinkNetworkTechnology{
42     Invalid,
43     Ethernet,
44     InfiniBand,
45     FibreChannel,
46     GenZ,
47     PCIe,
48 };
49 
50 enum class PortConnectionType{
51     Invalid,
52     NotConnected,
53     NPort,
54     PointToPoint,
55     PrivateLoop,
56     PublicLoop,
57     Generic,
58     ExtenderFabric,
59     FPort,
60     EPort,
61     TEPort,
62     NPPort,
63     GPort,
64     NLPort,
65     FLPort,
66     EXPort,
67     UPort,
68     DPort,
69 };
70 
71 enum class SupportedEthernetCapabilities{
72     Invalid,
73     WakeOnLAN,
74     EEE,
75 };
76 
77 enum class FlowControl{
78     Invalid,
79     None,
80     TX,
81     RX,
82     TX_RX,
83 };
84 
85 enum class IEEE802IdSubtype{
86     Invalid,
87     ChassisComp,
88     IfAlias,
89     PortComp,
90     MacAddr,
91     NetworkAddr,
92     IfName,
93     AgentId,
94     LocalAssign,
95     NotTransmitted,
96 };
97 
98 enum class SFPType{
99     Invalid,
100     SFP,
101     SFPPlus,
102     SFP28,
103     cSFP,
104     SFPDD,
105     QSFP,
106     QSFPPlus,
107     QSFP14,
108     QSFP28,
109     QSFP56,
110     MiniSASHD,
111     QSFPDD,
112     OSFP,
113 };
114 
115 enum class MediumType{
116     Invalid,
117     Copper,
118     FiberOptic,
119 };
120 
121 enum class FiberConnectionType{
122     Invalid,
123     SingleMode,
124     MultiMode,
125 };
126 
127 enum class LLDPSystemCapabilities{
128     Invalid,
129     None,
130     Bridge,
131     DOCSISCableDevice,
132     Other,
133     Repeater,
134     Router,
135     Station,
136     Telephone,
137     WLANAccessPoint,
138 };
139 
140 enum class CurrentPortConfigurationState{
141     Invalid,
142     Disabled,
143     BindInProgress,
144     UnbindInProgress,
145     DSP,
146     USP,
147     Reserved,
148     FabricLink,
149 };
150 
151 enum class ConnectedDeviceMode{
152     Invalid,
153     Disconnected,
154     RCD,
155     CXL68BFlitAndVH,
156     Standard256BFlit,
157     CXLLatencyOptimized256BFlit,
158     PBR,
159 };
160 
161 enum class ConnectedDeviceType{
162     Invalid,
163     None,
164     PCIeDevice,
165     Type1,
166     Type2,
167     Type3SLD,
168     Type3MLD,
169 };
170 
171 NLOHMANN_JSON_SERIALIZE_ENUM(PortType, {
172     {PortType::Invalid, "Invalid"},
173     {PortType::UpstreamPort, "UpstreamPort"},
174     {PortType::DownstreamPort, "DownstreamPort"},
175     {PortType::InterswitchPort, "InterswitchPort"},
176     {PortType::ManagementPort, "ManagementPort"},
177     {PortType::BidirectionalPort, "BidirectionalPort"},
178     {PortType::UnconfiguredPort, "UnconfiguredPort"},
179 });
180 
181 NLOHMANN_JSON_SERIALIZE_ENUM(PortMedium, {
182     {PortMedium::Invalid, "Invalid"},
183     {PortMedium::Electrical, "Electrical"},
184     {PortMedium::Optical, "Optical"},
185 });
186 
187 NLOHMANN_JSON_SERIALIZE_ENUM(LinkState, {
188     {LinkState::Invalid, "Invalid"},
189     {LinkState::Enabled, "Enabled"},
190     {LinkState::Disabled, "Disabled"},
191 });
192 
193 NLOHMANN_JSON_SERIALIZE_ENUM(LinkStatus, {
194     {LinkStatus::Invalid, "Invalid"},
195     {LinkStatus::LinkUp, "LinkUp"},
196     {LinkStatus::Starting, "Starting"},
197     {LinkStatus::Training, "Training"},
198     {LinkStatus::LinkDown, "LinkDown"},
199     {LinkStatus::NoLink, "NoLink"},
200 });
201 
202 NLOHMANN_JSON_SERIALIZE_ENUM(LinkNetworkTechnology, {
203     {LinkNetworkTechnology::Invalid, "Invalid"},
204     {LinkNetworkTechnology::Ethernet, "Ethernet"},
205     {LinkNetworkTechnology::InfiniBand, "InfiniBand"},
206     {LinkNetworkTechnology::FibreChannel, "FibreChannel"},
207     {LinkNetworkTechnology::GenZ, "GenZ"},
208     {LinkNetworkTechnology::PCIe, "PCIe"},
209 });
210 
211 NLOHMANN_JSON_SERIALIZE_ENUM(PortConnectionType, {
212     {PortConnectionType::Invalid, "Invalid"},
213     {PortConnectionType::NotConnected, "NotConnected"},
214     {PortConnectionType::NPort, "NPort"},
215     {PortConnectionType::PointToPoint, "PointToPoint"},
216     {PortConnectionType::PrivateLoop, "PrivateLoop"},
217     {PortConnectionType::PublicLoop, "PublicLoop"},
218     {PortConnectionType::Generic, "Generic"},
219     {PortConnectionType::ExtenderFabric, "ExtenderFabric"},
220     {PortConnectionType::FPort, "FPort"},
221     {PortConnectionType::EPort, "EPort"},
222     {PortConnectionType::TEPort, "TEPort"},
223     {PortConnectionType::NPPort, "NPPort"},
224     {PortConnectionType::GPort, "GPort"},
225     {PortConnectionType::NLPort, "NLPort"},
226     {PortConnectionType::FLPort, "FLPort"},
227     {PortConnectionType::EXPort, "EXPort"},
228     {PortConnectionType::UPort, "UPort"},
229     {PortConnectionType::DPort, "DPort"},
230 });
231 
232 NLOHMANN_JSON_SERIALIZE_ENUM(SupportedEthernetCapabilities, {
233     {SupportedEthernetCapabilities::Invalid, "Invalid"},
234     {SupportedEthernetCapabilities::WakeOnLAN, "WakeOnLAN"},
235     {SupportedEthernetCapabilities::EEE, "EEE"},
236 });
237 
238 NLOHMANN_JSON_SERIALIZE_ENUM(FlowControl, {
239     {FlowControl::Invalid, "Invalid"},
240     {FlowControl::None, "None"},
241     {FlowControl::TX, "TX"},
242     {FlowControl::RX, "RX"},
243     {FlowControl::TX_RX, "TX_RX"},
244 });
245 
246 NLOHMANN_JSON_SERIALIZE_ENUM(IEEE802IdSubtype, {
247     {IEEE802IdSubtype::Invalid, "Invalid"},
248     {IEEE802IdSubtype::ChassisComp, "ChassisComp"},
249     {IEEE802IdSubtype::IfAlias, "IfAlias"},
250     {IEEE802IdSubtype::PortComp, "PortComp"},
251     {IEEE802IdSubtype::MacAddr, "MacAddr"},
252     {IEEE802IdSubtype::NetworkAddr, "NetworkAddr"},
253     {IEEE802IdSubtype::IfName, "IfName"},
254     {IEEE802IdSubtype::AgentId, "AgentId"},
255     {IEEE802IdSubtype::LocalAssign, "LocalAssign"},
256     {IEEE802IdSubtype::NotTransmitted, "NotTransmitted"},
257 });
258 
259 NLOHMANN_JSON_SERIALIZE_ENUM(SFPType, {
260     {SFPType::Invalid, "Invalid"},
261     {SFPType::SFP, "SFP"},
262     {SFPType::SFPPlus, "SFPPlus"},
263     {SFPType::SFP28, "SFP28"},
264     {SFPType::cSFP, "cSFP"},
265     {SFPType::SFPDD, "SFPDD"},
266     {SFPType::QSFP, "QSFP"},
267     {SFPType::QSFPPlus, "QSFPPlus"},
268     {SFPType::QSFP14, "QSFP14"},
269     {SFPType::QSFP28, "QSFP28"},
270     {SFPType::QSFP56, "QSFP56"},
271     {SFPType::MiniSASHD, "MiniSASHD"},
272     {SFPType::QSFPDD, "QSFPDD"},
273     {SFPType::OSFP, "OSFP"},
274 });
275 
276 NLOHMANN_JSON_SERIALIZE_ENUM(MediumType, {
277     {MediumType::Invalid, "Invalid"},
278     {MediumType::Copper, "Copper"},
279     {MediumType::FiberOptic, "FiberOptic"},
280 });
281 
282 NLOHMANN_JSON_SERIALIZE_ENUM(FiberConnectionType, {
283     {FiberConnectionType::Invalid, "Invalid"},
284     {FiberConnectionType::SingleMode, "SingleMode"},
285     {FiberConnectionType::MultiMode, "MultiMode"},
286 });
287 
288 NLOHMANN_JSON_SERIALIZE_ENUM(LLDPSystemCapabilities, {
289     {LLDPSystemCapabilities::Invalid, "Invalid"},
290     {LLDPSystemCapabilities::None, "None"},
291     {LLDPSystemCapabilities::Bridge, "Bridge"},
292     {LLDPSystemCapabilities::DOCSISCableDevice, "DOCSISCableDevice"},
293     {LLDPSystemCapabilities::Other, "Other"},
294     {LLDPSystemCapabilities::Repeater, "Repeater"},
295     {LLDPSystemCapabilities::Router, "Router"},
296     {LLDPSystemCapabilities::Station, "Station"},
297     {LLDPSystemCapabilities::Telephone, "Telephone"},
298     {LLDPSystemCapabilities::WLANAccessPoint, "WLANAccessPoint"},
299 });
300 
301 NLOHMANN_JSON_SERIALIZE_ENUM(CurrentPortConfigurationState, {
302     {CurrentPortConfigurationState::Invalid, "Invalid"},
303     {CurrentPortConfigurationState::Disabled, "Disabled"},
304     {CurrentPortConfigurationState::BindInProgress, "BindInProgress"},
305     {CurrentPortConfigurationState::UnbindInProgress, "UnbindInProgress"},
306     {CurrentPortConfigurationState::DSP, "DSP"},
307     {CurrentPortConfigurationState::USP, "USP"},
308     {CurrentPortConfigurationState::Reserved, "Reserved"},
309     {CurrentPortConfigurationState::FabricLink, "FabricLink"},
310 });
311 
312 NLOHMANN_JSON_SERIALIZE_ENUM(ConnectedDeviceMode, {
313     {ConnectedDeviceMode::Invalid, "Invalid"},
314     {ConnectedDeviceMode::Disconnected, "Disconnected"},
315     {ConnectedDeviceMode::RCD, "RCD"},
316     {ConnectedDeviceMode::CXL68BFlitAndVH, "CXL68BFlitAndVH"},
317     {ConnectedDeviceMode::Standard256BFlit, "Standard256BFlit"},
318     {ConnectedDeviceMode::CXLLatencyOptimized256BFlit, "CXLLatencyOptimized256BFlit"},
319     {ConnectedDeviceMode::PBR, "PBR"},
320 });
321 
322 NLOHMANN_JSON_SERIALIZE_ENUM(ConnectedDeviceType, {
323     {ConnectedDeviceType::Invalid, "Invalid"},
324     {ConnectedDeviceType::None, "None"},
325     {ConnectedDeviceType::PCIeDevice, "PCIeDevice"},
326     {ConnectedDeviceType::Type1, "Type1"},
327     {ConnectedDeviceType::Type2, "Type2"},
328     {ConnectedDeviceType::Type3SLD, "Type3SLD"},
329     {ConnectedDeviceType::Type3MLD, "Type3MLD"},
330 });
331 
332 }
333 // clang-format on
334