xref: /openbmc/bmcweb/features/redfish/include/generated/enums/port.hpp (revision f263e09c81b798bcf123df8fb144499389e9cbd1)
1853c0dc5SEd Tanous #pragma once
2853c0dc5SEd Tanous #include <nlohmann/json.hpp>
3853c0dc5SEd Tanous 
4853c0dc5SEd Tanous namespace port
5853c0dc5SEd Tanous {
6853c0dc5SEd Tanous // clang-format off
7853c0dc5SEd Tanous 
8853c0dc5SEd Tanous enum class PortType{
9853c0dc5SEd Tanous     Invalid,
10853c0dc5SEd Tanous     UpstreamPort,
11853c0dc5SEd Tanous     DownstreamPort,
12853c0dc5SEd Tanous     InterswitchPort,
13853c0dc5SEd Tanous     ManagementPort,
14853c0dc5SEd Tanous     BidirectionalPort,
15853c0dc5SEd Tanous     UnconfiguredPort,
16853c0dc5SEd Tanous };
17853c0dc5SEd Tanous 
18853c0dc5SEd Tanous enum class PortMedium{
19853c0dc5SEd Tanous     Invalid,
20853c0dc5SEd Tanous     Electrical,
21853c0dc5SEd Tanous     Optical,
22853c0dc5SEd Tanous };
23853c0dc5SEd Tanous 
24853c0dc5SEd Tanous enum class LinkState{
25853c0dc5SEd Tanous     Invalid,
26853c0dc5SEd Tanous     Enabled,
27853c0dc5SEd Tanous     Disabled,
28853c0dc5SEd Tanous };
29853c0dc5SEd Tanous 
30853c0dc5SEd Tanous enum class LinkStatus{
31853c0dc5SEd Tanous     Invalid,
32853c0dc5SEd Tanous     LinkUp,
33853c0dc5SEd Tanous     Starting,
34853c0dc5SEd Tanous     Training,
35853c0dc5SEd Tanous     LinkDown,
36853c0dc5SEd Tanous     NoLink,
37853c0dc5SEd Tanous };
38853c0dc5SEd Tanous 
39853c0dc5SEd Tanous enum class LinkNetworkTechnology{
40853c0dc5SEd Tanous     Invalid,
41853c0dc5SEd Tanous     Ethernet,
42853c0dc5SEd Tanous     InfiniBand,
43853c0dc5SEd Tanous     FibreChannel,
44853c0dc5SEd Tanous     GenZ,
45a8d8f9d8SEd Tanous     PCIe,
46853c0dc5SEd Tanous };
47853c0dc5SEd Tanous 
48853c0dc5SEd Tanous enum class PortConnectionType{
49853c0dc5SEd Tanous     Invalid,
50853c0dc5SEd Tanous     NotConnected,
51853c0dc5SEd Tanous     NPort,
52853c0dc5SEd Tanous     PointToPoint,
53853c0dc5SEd Tanous     PrivateLoop,
54853c0dc5SEd Tanous     PublicLoop,
55853c0dc5SEd Tanous     Generic,
56853c0dc5SEd Tanous     ExtenderFabric,
57853c0dc5SEd Tanous     FPort,
58853c0dc5SEd Tanous     EPort,
59853c0dc5SEd Tanous     TEPort,
60853c0dc5SEd Tanous     NPPort,
61853c0dc5SEd Tanous     GPort,
62853c0dc5SEd Tanous     NLPort,
63853c0dc5SEd Tanous     FLPort,
64853c0dc5SEd Tanous     EXPort,
65853c0dc5SEd Tanous     UPort,
66853c0dc5SEd Tanous     DPort,
67853c0dc5SEd Tanous };
68853c0dc5SEd Tanous 
69853c0dc5SEd Tanous enum class SupportedEthernetCapabilities{
70853c0dc5SEd Tanous     Invalid,
71853c0dc5SEd Tanous     WakeOnLAN,
72853c0dc5SEd Tanous     EEE,
73853c0dc5SEd Tanous };
74853c0dc5SEd Tanous 
75853c0dc5SEd Tanous enum class FlowControl{
76853c0dc5SEd Tanous     Invalid,
77853c0dc5SEd Tanous     None,
78853c0dc5SEd Tanous     TX,
79853c0dc5SEd Tanous     RX,
80853c0dc5SEd Tanous     TX_RX,
81853c0dc5SEd Tanous };
82853c0dc5SEd Tanous 
83853c0dc5SEd Tanous enum class IEEE802IdSubtype{
84853c0dc5SEd Tanous     Invalid,
85853c0dc5SEd Tanous     ChassisComp,
86853c0dc5SEd Tanous     IfAlias,
87853c0dc5SEd Tanous     PortComp,
88853c0dc5SEd Tanous     MacAddr,
89853c0dc5SEd Tanous     NetworkAddr,
90853c0dc5SEd Tanous     IfName,
91853c0dc5SEd Tanous     AgentId,
92853c0dc5SEd Tanous     LocalAssign,
93853c0dc5SEd Tanous     NotTransmitted,
94853c0dc5SEd Tanous };
95853c0dc5SEd Tanous 
96853c0dc5SEd Tanous enum class SFPType{
97853c0dc5SEd Tanous     Invalid,
98853c0dc5SEd Tanous     SFP,
99853c0dc5SEd Tanous     SFPPlus,
100853c0dc5SEd Tanous     SFP28,
101853c0dc5SEd Tanous     cSFP,
102853c0dc5SEd Tanous     SFPDD,
103853c0dc5SEd Tanous     QSFP,
104853c0dc5SEd Tanous     QSFPPlus,
105853c0dc5SEd Tanous     QSFP14,
106853c0dc5SEd Tanous     QSFP28,
107853c0dc5SEd Tanous     QSFP56,
108853c0dc5SEd Tanous     MiniSASHD,
109*f263e09cSEd Tanous     QSFPDD,
110*f263e09cSEd Tanous     OSFP,
111853c0dc5SEd Tanous };
112853c0dc5SEd Tanous 
113853c0dc5SEd Tanous enum class MediumType{
114853c0dc5SEd Tanous     Invalid,
115853c0dc5SEd Tanous     Copper,
116853c0dc5SEd Tanous     FiberOptic,
117853c0dc5SEd Tanous };
118853c0dc5SEd Tanous 
119853c0dc5SEd Tanous enum class FiberConnectionType{
120853c0dc5SEd Tanous     Invalid,
121853c0dc5SEd Tanous     SingleMode,
122853c0dc5SEd Tanous     MultiMode,
123853c0dc5SEd Tanous };
124853c0dc5SEd Tanous 
125a8d8f9d8SEd Tanous enum class LLDPSystemCapabilities{
126a8d8f9d8SEd Tanous     Invalid,
127a8d8f9d8SEd Tanous     None,
128a8d8f9d8SEd Tanous     Bridge,
129a8d8f9d8SEd Tanous     DOCSISCableDevice,
130a8d8f9d8SEd Tanous     Other,
131a8d8f9d8SEd Tanous     Repeater,
132a8d8f9d8SEd Tanous     Router,
133a8d8f9d8SEd Tanous     Station,
134a8d8f9d8SEd Tanous     Telephone,
135a8d8f9d8SEd Tanous     WLANAccessPoint,
136a8d8f9d8SEd Tanous };
137a8d8f9d8SEd Tanous 
138a8d8f9d8SEd Tanous enum class CurrentPortConfigurationState{
139a8d8f9d8SEd Tanous     Invalid,
140a8d8f9d8SEd Tanous     Disabled,
141a8d8f9d8SEd Tanous     BindInProgress,
142a8d8f9d8SEd Tanous     UnbindInProgress,
143a8d8f9d8SEd Tanous     DSP,
144a8d8f9d8SEd Tanous     USP,
145a8d8f9d8SEd Tanous     Reserved,
146a8d8f9d8SEd Tanous };
147a8d8f9d8SEd Tanous 
148a8d8f9d8SEd Tanous enum class ConnectedDeviceMode{
149a8d8f9d8SEd Tanous     Invalid,
150a8d8f9d8SEd Tanous     Disconnected,
151a8d8f9d8SEd Tanous     RCD,
152a8d8f9d8SEd Tanous     CXL68BFlitAndVH,
153a8d8f9d8SEd Tanous     Standard256BFlit,
154a8d8f9d8SEd Tanous     CXLLatencyOptimized256BFlit,
155a8d8f9d8SEd Tanous     PBR,
156a8d8f9d8SEd Tanous };
157a8d8f9d8SEd Tanous 
158a8d8f9d8SEd Tanous enum class ConnectedDeviceType{
159a8d8f9d8SEd Tanous     Invalid,
160a8d8f9d8SEd Tanous     None,
161a8d8f9d8SEd Tanous     PCIeDevice,
162a8d8f9d8SEd Tanous     Type1,
163a8d8f9d8SEd Tanous     Type2,
164a8d8f9d8SEd Tanous     Type3SLD,
165a8d8f9d8SEd Tanous     Type3MLD,
166a8d8f9d8SEd Tanous };
167a8d8f9d8SEd Tanous 
168853c0dc5SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(PortType, {
169853c0dc5SEd Tanous     {PortType::Invalid, "Invalid"},
170853c0dc5SEd Tanous     {PortType::UpstreamPort, "UpstreamPort"},
171853c0dc5SEd Tanous     {PortType::DownstreamPort, "DownstreamPort"},
172853c0dc5SEd Tanous     {PortType::InterswitchPort, "InterswitchPort"},
173853c0dc5SEd Tanous     {PortType::ManagementPort, "ManagementPort"},
174853c0dc5SEd Tanous     {PortType::BidirectionalPort, "BidirectionalPort"},
175853c0dc5SEd Tanous     {PortType::UnconfiguredPort, "UnconfiguredPort"},
176853c0dc5SEd Tanous });
177853c0dc5SEd Tanous 
178853c0dc5SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(PortMedium, {
179853c0dc5SEd Tanous     {PortMedium::Invalid, "Invalid"},
180853c0dc5SEd Tanous     {PortMedium::Electrical, "Electrical"},
181853c0dc5SEd Tanous     {PortMedium::Optical, "Optical"},
182853c0dc5SEd Tanous });
183853c0dc5SEd Tanous 
184853c0dc5SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(LinkState, {
185853c0dc5SEd Tanous     {LinkState::Invalid, "Invalid"},
186853c0dc5SEd Tanous     {LinkState::Enabled, "Enabled"},
187853c0dc5SEd Tanous     {LinkState::Disabled, "Disabled"},
188853c0dc5SEd Tanous });
189853c0dc5SEd Tanous 
190853c0dc5SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(LinkStatus, {
191853c0dc5SEd Tanous     {LinkStatus::Invalid, "Invalid"},
192853c0dc5SEd Tanous     {LinkStatus::LinkUp, "LinkUp"},
193853c0dc5SEd Tanous     {LinkStatus::Starting, "Starting"},
194853c0dc5SEd Tanous     {LinkStatus::Training, "Training"},
195853c0dc5SEd Tanous     {LinkStatus::LinkDown, "LinkDown"},
196853c0dc5SEd Tanous     {LinkStatus::NoLink, "NoLink"},
197853c0dc5SEd Tanous });
198853c0dc5SEd Tanous 
199853c0dc5SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(LinkNetworkTechnology, {
200853c0dc5SEd Tanous     {LinkNetworkTechnology::Invalid, "Invalid"},
201853c0dc5SEd Tanous     {LinkNetworkTechnology::Ethernet, "Ethernet"},
202853c0dc5SEd Tanous     {LinkNetworkTechnology::InfiniBand, "InfiniBand"},
203853c0dc5SEd Tanous     {LinkNetworkTechnology::FibreChannel, "FibreChannel"},
204853c0dc5SEd Tanous     {LinkNetworkTechnology::GenZ, "GenZ"},
205a8d8f9d8SEd Tanous     {LinkNetworkTechnology::PCIe, "PCIe"},
206853c0dc5SEd Tanous });
207853c0dc5SEd Tanous 
208853c0dc5SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(PortConnectionType, {
209853c0dc5SEd Tanous     {PortConnectionType::Invalid, "Invalid"},
210853c0dc5SEd Tanous     {PortConnectionType::NotConnected, "NotConnected"},
211853c0dc5SEd Tanous     {PortConnectionType::NPort, "NPort"},
212853c0dc5SEd Tanous     {PortConnectionType::PointToPoint, "PointToPoint"},
213853c0dc5SEd Tanous     {PortConnectionType::PrivateLoop, "PrivateLoop"},
214853c0dc5SEd Tanous     {PortConnectionType::PublicLoop, "PublicLoop"},
215853c0dc5SEd Tanous     {PortConnectionType::Generic, "Generic"},
216853c0dc5SEd Tanous     {PortConnectionType::ExtenderFabric, "ExtenderFabric"},
217853c0dc5SEd Tanous     {PortConnectionType::FPort, "FPort"},
218853c0dc5SEd Tanous     {PortConnectionType::EPort, "EPort"},
219853c0dc5SEd Tanous     {PortConnectionType::TEPort, "TEPort"},
220853c0dc5SEd Tanous     {PortConnectionType::NPPort, "NPPort"},
221853c0dc5SEd Tanous     {PortConnectionType::GPort, "GPort"},
222853c0dc5SEd Tanous     {PortConnectionType::NLPort, "NLPort"},
223853c0dc5SEd Tanous     {PortConnectionType::FLPort, "FLPort"},
224853c0dc5SEd Tanous     {PortConnectionType::EXPort, "EXPort"},
225853c0dc5SEd Tanous     {PortConnectionType::UPort, "UPort"},
226853c0dc5SEd Tanous     {PortConnectionType::DPort, "DPort"},
227853c0dc5SEd Tanous });
228853c0dc5SEd Tanous 
229853c0dc5SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(SupportedEthernetCapabilities, {
230853c0dc5SEd Tanous     {SupportedEthernetCapabilities::Invalid, "Invalid"},
231853c0dc5SEd Tanous     {SupportedEthernetCapabilities::WakeOnLAN, "WakeOnLAN"},
232853c0dc5SEd Tanous     {SupportedEthernetCapabilities::EEE, "EEE"},
233853c0dc5SEd Tanous });
234853c0dc5SEd Tanous 
235853c0dc5SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(FlowControl, {
236853c0dc5SEd Tanous     {FlowControl::Invalid, "Invalid"},
237853c0dc5SEd Tanous     {FlowControl::None, "None"},
238853c0dc5SEd Tanous     {FlowControl::TX, "TX"},
239853c0dc5SEd Tanous     {FlowControl::RX, "RX"},
240853c0dc5SEd Tanous     {FlowControl::TX_RX, "TX_RX"},
241853c0dc5SEd Tanous });
242853c0dc5SEd Tanous 
243853c0dc5SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(IEEE802IdSubtype, {
244853c0dc5SEd Tanous     {IEEE802IdSubtype::Invalid, "Invalid"},
245853c0dc5SEd Tanous     {IEEE802IdSubtype::ChassisComp, "ChassisComp"},
246853c0dc5SEd Tanous     {IEEE802IdSubtype::IfAlias, "IfAlias"},
247853c0dc5SEd Tanous     {IEEE802IdSubtype::PortComp, "PortComp"},
248853c0dc5SEd Tanous     {IEEE802IdSubtype::MacAddr, "MacAddr"},
249853c0dc5SEd Tanous     {IEEE802IdSubtype::NetworkAddr, "NetworkAddr"},
250853c0dc5SEd Tanous     {IEEE802IdSubtype::IfName, "IfName"},
251853c0dc5SEd Tanous     {IEEE802IdSubtype::AgentId, "AgentId"},
252853c0dc5SEd Tanous     {IEEE802IdSubtype::LocalAssign, "LocalAssign"},
253853c0dc5SEd Tanous     {IEEE802IdSubtype::NotTransmitted, "NotTransmitted"},
254853c0dc5SEd Tanous });
255853c0dc5SEd Tanous 
256853c0dc5SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(SFPType, {
257853c0dc5SEd Tanous     {SFPType::Invalid, "Invalid"},
258853c0dc5SEd Tanous     {SFPType::SFP, "SFP"},
259853c0dc5SEd Tanous     {SFPType::SFPPlus, "SFPPlus"},
260853c0dc5SEd Tanous     {SFPType::SFP28, "SFP28"},
261853c0dc5SEd Tanous     {SFPType::cSFP, "cSFP"},
262853c0dc5SEd Tanous     {SFPType::SFPDD, "SFPDD"},
263853c0dc5SEd Tanous     {SFPType::QSFP, "QSFP"},
264853c0dc5SEd Tanous     {SFPType::QSFPPlus, "QSFPPlus"},
265853c0dc5SEd Tanous     {SFPType::QSFP14, "QSFP14"},
266853c0dc5SEd Tanous     {SFPType::QSFP28, "QSFP28"},
267853c0dc5SEd Tanous     {SFPType::QSFP56, "QSFP56"},
268853c0dc5SEd Tanous     {SFPType::MiniSASHD, "MiniSASHD"},
269*f263e09cSEd Tanous     {SFPType::QSFPDD, "QSFPDD"},
270*f263e09cSEd Tanous     {SFPType::OSFP, "OSFP"},
271853c0dc5SEd Tanous });
272853c0dc5SEd Tanous 
273853c0dc5SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(MediumType, {
274853c0dc5SEd Tanous     {MediumType::Invalid, "Invalid"},
275853c0dc5SEd Tanous     {MediumType::Copper, "Copper"},
276853c0dc5SEd Tanous     {MediumType::FiberOptic, "FiberOptic"},
277853c0dc5SEd Tanous });
278853c0dc5SEd Tanous 
279853c0dc5SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(FiberConnectionType, {
280853c0dc5SEd Tanous     {FiberConnectionType::Invalid, "Invalid"},
281853c0dc5SEd Tanous     {FiberConnectionType::SingleMode, "SingleMode"},
282853c0dc5SEd Tanous     {FiberConnectionType::MultiMode, "MultiMode"},
283853c0dc5SEd Tanous });
284853c0dc5SEd Tanous 
285a8d8f9d8SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(LLDPSystemCapabilities, {
286a8d8f9d8SEd Tanous     {LLDPSystemCapabilities::Invalid, "Invalid"},
287a8d8f9d8SEd Tanous     {LLDPSystemCapabilities::None, "None"},
288a8d8f9d8SEd Tanous     {LLDPSystemCapabilities::Bridge, "Bridge"},
289a8d8f9d8SEd Tanous     {LLDPSystemCapabilities::DOCSISCableDevice, "DOCSISCableDevice"},
290a8d8f9d8SEd Tanous     {LLDPSystemCapabilities::Other, "Other"},
291a8d8f9d8SEd Tanous     {LLDPSystemCapabilities::Repeater, "Repeater"},
292a8d8f9d8SEd Tanous     {LLDPSystemCapabilities::Router, "Router"},
293a8d8f9d8SEd Tanous     {LLDPSystemCapabilities::Station, "Station"},
294a8d8f9d8SEd Tanous     {LLDPSystemCapabilities::Telephone, "Telephone"},
295a8d8f9d8SEd Tanous     {LLDPSystemCapabilities::WLANAccessPoint, "WLANAccessPoint"},
296a8d8f9d8SEd Tanous });
297a8d8f9d8SEd Tanous 
298a8d8f9d8SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(CurrentPortConfigurationState, {
299a8d8f9d8SEd Tanous     {CurrentPortConfigurationState::Invalid, "Invalid"},
300a8d8f9d8SEd Tanous     {CurrentPortConfigurationState::Disabled, "Disabled"},
301a8d8f9d8SEd Tanous     {CurrentPortConfigurationState::BindInProgress, "BindInProgress"},
302a8d8f9d8SEd Tanous     {CurrentPortConfigurationState::UnbindInProgress, "UnbindInProgress"},
303a8d8f9d8SEd Tanous     {CurrentPortConfigurationState::DSP, "DSP"},
304a8d8f9d8SEd Tanous     {CurrentPortConfigurationState::USP, "USP"},
305a8d8f9d8SEd Tanous     {CurrentPortConfigurationState::Reserved, "Reserved"},
306a8d8f9d8SEd Tanous });
307a8d8f9d8SEd Tanous 
308a8d8f9d8SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(ConnectedDeviceMode, {
309a8d8f9d8SEd Tanous     {ConnectedDeviceMode::Invalid, "Invalid"},
310a8d8f9d8SEd Tanous     {ConnectedDeviceMode::Disconnected, "Disconnected"},
311a8d8f9d8SEd Tanous     {ConnectedDeviceMode::RCD, "RCD"},
312a8d8f9d8SEd Tanous     {ConnectedDeviceMode::CXL68BFlitAndVH, "CXL68BFlitAndVH"},
313a8d8f9d8SEd Tanous     {ConnectedDeviceMode::Standard256BFlit, "Standard256BFlit"},
314a8d8f9d8SEd Tanous     {ConnectedDeviceMode::CXLLatencyOptimized256BFlit, "CXLLatencyOptimized256BFlit"},
315a8d8f9d8SEd Tanous     {ConnectedDeviceMode::PBR, "PBR"},
316a8d8f9d8SEd Tanous });
317a8d8f9d8SEd Tanous 
318a8d8f9d8SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(ConnectedDeviceType, {
319a8d8f9d8SEd Tanous     {ConnectedDeviceType::Invalid, "Invalid"},
320a8d8f9d8SEd Tanous     {ConnectedDeviceType::None, "None"},
321a8d8f9d8SEd Tanous     {ConnectedDeviceType::PCIeDevice, "PCIeDevice"},
322a8d8f9d8SEd Tanous     {ConnectedDeviceType::Type1, "Type1"},
323a8d8f9d8SEd Tanous     {ConnectedDeviceType::Type2, "Type2"},
324a8d8f9d8SEd Tanous     {ConnectedDeviceType::Type3SLD, "Type3SLD"},
325a8d8f9d8SEd Tanous     {ConnectedDeviceType::Type3MLD, "Type3MLD"},
326a8d8f9d8SEd Tanous });
327a8d8f9d8SEd Tanous 
328853c0dc5SEd Tanous }
329853c0dc5SEd Tanous // clang-format on
330