xref: /openbmc/bmcweb/features/redfish/include/generated/enums/port.hpp (revision 853c0dc5486bbab77b2d1f158152de93847c20d9)
1*853c0dc5SEd Tanous #pragma once
2*853c0dc5SEd Tanous #include <nlohmann/json.hpp>
3*853c0dc5SEd Tanous 
4*853c0dc5SEd Tanous namespace port
5*853c0dc5SEd Tanous {
6*853c0dc5SEd Tanous // clang-format off
7*853c0dc5SEd Tanous 
8*853c0dc5SEd Tanous enum class PortType{
9*853c0dc5SEd Tanous     Invalid,
10*853c0dc5SEd Tanous     UpstreamPort,
11*853c0dc5SEd Tanous     DownstreamPort,
12*853c0dc5SEd Tanous     InterswitchPort,
13*853c0dc5SEd Tanous     ManagementPort,
14*853c0dc5SEd Tanous     BidirectionalPort,
15*853c0dc5SEd Tanous     UnconfiguredPort,
16*853c0dc5SEd Tanous };
17*853c0dc5SEd Tanous 
18*853c0dc5SEd Tanous enum class PortMedium{
19*853c0dc5SEd Tanous     Invalid,
20*853c0dc5SEd Tanous     Electrical,
21*853c0dc5SEd Tanous     Optical,
22*853c0dc5SEd Tanous };
23*853c0dc5SEd Tanous 
24*853c0dc5SEd Tanous enum class LinkState{
25*853c0dc5SEd Tanous     Invalid,
26*853c0dc5SEd Tanous     Enabled,
27*853c0dc5SEd Tanous     Disabled,
28*853c0dc5SEd Tanous };
29*853c0dc5SEd Tanous 
30*853c0dc5SEd Tanous enum class LinkStatus{
31*853c0dc5SEd Tanous     Invalid,
32*853c0dc5SEd Tanous     LinkUp,
33*853c0dc5SEd Tanous     Starting,
34*853c0dc5SEd Tanous     Training,
35*853c0dc5SEd Tanous     LinkDown,
36*853c0dc5SEd Tanous     NoLink,
37*853c0dc5SEd Tanous };
38*853c0dc5SEd Tanous 
39*853c0dc5SEd Tanous enum class LinkNetworkTechnology{
40*853c0dc5SEd Tanous     Invalid,
41*853c0dc5SEd Tanous     Ethernet,
42*853c0dc5SEd Tanous     InfiniBand,
43*853c0dc5SEd Tanous     FibreChannel,
44*853c0dc5SEd Tanous     GenZ,
45*853c0dc5SEd Tanous };
46*853c0dc5SEd Tanous 
47*853c0dc5SEd Tanous enum class PortConnectionType{
48*853c0dc5SEd Tanous     Invalid,
49*853c0dc5SEd Tanous     NotConnected,
50*853c0dc5SEd Tanous     NPort,
51*853c0dc5SEd Tanous     PointToPoint,
52*853c0dc5SEd Tanous     PrivateLoop,
53*853c0dc5SEd Tanous     PublicLoop,
54*853c0dc5SEd Tanous     Generic,
55*853c0dc5SEd Tanous     ExtenderFabric,
56*853c0dc5SEd Tanous     FPort,
57*853c0dc5SEd Tanous     EPort,
58*853c0dc5SEd Tanous     TEPort,
59*853c0dc5SEd Tanous     NPPort,
60*853c0dc5SEd Tanous     GPort,
61*853c0dc5SEd Tanous     NLPort,
62*853c0dc5SEd Tanous     FLPort,
63*853c0dc5SEd Tanous     EXPort,
64*853c0dc5SEd Tanous     UPort,
65*853c0dc5SEd Tanous     DPort,
66*853c0dc5SEd Tanous };
67*853c0dc5SEd Tanous 
68*853c0dc5SEd Tanous enum class SupportedEthernetCapabilities{
69*853c0dc5SEd Tanous     Invalid,
70*853c0dc5SEd Tanous     WakeOnLAN,
71*853c0dc5SEd Tanous     EEE,
72*853c0dc5SEd Tanous };
73*853c0dc5SEd Tanous 
74*853c0dc5SEd Tanous enum class FlowControl{
75*853c0dc5SEd Tanous     Invalid,
76*853c0dc5SEd Tanous     None,
77*853c0dc5SEd Tanous     TX,
78*853c0dc5SEd Tanous     RX,
79*853c0dc5SEd Tanous     TX_RX,
80*853c0dc5SEd Tanous };
81*853c0dc5SEd Tanous 
82*853c0dc5SEd Tanous enum class IEEE802IdSubtype{
83*853c0dc5SEd Tanous     Invalid,
84*853c0dc5SEd Tanous     ChassisComp,
85*853c0dc5SEd Tanous     IfAlias,
86*853c0dc5SEd Tanous     PortComp,
87*853c0dc5SEd Tanous     MacAddr,
88*853c0dc5SEd Tanous     NetworkAddr,
89*853c0dc5SEd Tanous     IfName,
90*853c0dc5SEd Tanous     AgentId,
91*853c0dc5SEd Tanous     LocalAssign,
92*853c0dc5SEd Tanous     NotTransmitted,
93*853c0dc5SEd Tanous };
94*853c0dc5SEd Tanous 
95*853c0dc5SEd Tanous enum class SFPType{
96*853c0dc5SEd Tanous     Invalid,
97*853c0dc5SEd Tanous     SFP,
98*853c0dc5SEd Tanous     SFPPlus,
99*853c0dc5SEd Tanous     SFP28,
100*853c0dc5SEd Tanous     cSFP,
101*853c0dc5SEd Tanous     SFPDD,
102*853c0dc5SEd Tanous     QSFP,
103*853c0dc5SEd Tanous     QSFPPlus,
104*853c0dc5SEd Tanous     QSFP14,
105*853c0dc5SEd Tanous     QSFP28,
106*853c0dc5SEd Tanous     QSFP56,
107*853c0dc5SEd Tanous     MiniSASHD,
108*853c0dc5SEd Tanous };
109*853c0dc5SEd Tanous 
110*853c0dc5SEd Tanous enum class MediumType{
111*853c0dc5SEd Tanous     Invalid,
112*853c0dc5SEd Tanous     Copper,
113*853c0dc5SEd Tanous     FiberOptic,
114*853c0dc5SEd Tanous };
115*853c0dc5SEd Tanous 
116*853c0dc5SEd Tanous enum class FiberConnectionType{
117*853c0dc5SEd Tanous     Invalid,
118*853c0dc5SEd Tanous     SingleMode,
119*853c0dc5SEd Tanous     MultiMode,
120*853c0dc5SEd Tanous };
121*853c0dc5SEd Tanous 
122*853c0dc5SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(PortType, {
123*853c0dc5SEd Tanous     {PortType::Invalid, "Invalid"},
124*853c0dc5SEd Tanous     {PortType::UpstreamPort, "UpstreamPort"},
125*853c0dc5SEd Tanous     {PortType::DownstreamPort, "DownstreamPort"},
126*853c0dc5SEd Tanous     {PortType::InterswitchPort, "InterswitchPort"},
127*853c0dc5SEd Tanous     {PortType::ManagementPort, "ManagementPort"},
128*853c0dc5SEd Tanous     {PortType::BidirectionalPort, "BidirectionalPort"},
129*853c0dc5SEd Tanous     {PortType::UnconfiguredPort, "UnconfiguredPort"},
130*853c0dc5SEd Tanous });
131*853c0dc5SEd Tanous 
132*853c0dc5SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(PortMedium, {
133*853c0dc5SEd Tanous     {PortMedium::Invalid, "Invalid"},
134*853c0dc5SEd Tanous     {PortMedium::Electrical, "Electrical"},
135*853c0dc5SEd Tanous     {PortMedium::Optical, "Optical"},
136*853c0dc5SEd Tanous });
137*853c0dc5SEd Tanous 
138*853c0dc5SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(LinkState, {
139*853c0dc5SEd Tanous     {LinkState::Invalid, "Invalid"},
140*853c0dc5SEd Tanous     {LinkState::Enabled, "Enabled"},
141*853c0dc5SEd Tanous     {LinkState::Disabled, "Disabled"},
142*853c0dc5SEd Tanous });
143*853c0dc5SEd Tanous 
144*853c0dc5SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(LinkStatus, {
145*853c0dc5SEd Tanous     {LinkStatus::Invalid, "Invalid"},
146*853c0dc5SEd Tanous     {LinkStatus::LinkUp, "LinkUp"},
147*853c0dc5SEd Tanous     {LinkStatus::Starting, "Starting"},
148*853c0dc5SEd Tanous     {LinkStatus::Training, "Training"},
149*853c0dc5SEd Tanous     {LinkStatus::LinkDown, "LinkDown"},
150*853c0dc5SEd Tanous     {LinkStatus::NoLink, "NoLink"},
151*853c0dc5SEd Tanous });
152*853c0dc5SEd Tanous 
153*853c0dc5SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(LinkNetworkTechnology, {
154*853c0dc5SEd Tanous     {LinkNetworkTechnology::Invalid, "Invalid"},
155*853c0dc5SEd Tanous     {LinkNetworkTechnology::Ethernet, "Ethernet"},
156*853c0dc5SEd Tanous     {LinkNetworkTechnology::InfiniBand, "InfiniBand"},
157*853c0dc5SEd Tanous     {LinkNetworkTechnology::FibreChannel, "FibreChannel"},
158*853c0dc5SEd Tanous     {LinkNetworkTechnology::GenZ, "GenZ"},
159*853c0dc5SEd Tanous });
160*853c0dc5SEd Tanous 
161*853c0dc5SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(PortConnectionType, {
162*853c0dc5SEd Tanous     {PortConnectionType::Invalid, "Invalid"},
163*853c0dc5SEd Tanous     {PortConnectionType::NotConnected, "NotConnected"},
164*853c0dc5SEd Tanous     {PortConnectionType::NPort, "NPort"},
165*853c0dc5SEd Tanous     {PortConnectionType::PointToPoint, "PointToPoint"},
166*853c0dc5SEd Tanous     {PortConnectionType::PrivateLoop, "PrivateLoop"},
167*853c0dc5SEd Tanous     {PortConnectionType::PublicLoop, "PublicLoop"},
168*853c0dc5SEd Tanous     {PortConnectionType::Generic, "Generic"},
169*853c0dc5SEd Tanous     {PortConnectionType::ExtenderFabric, "ExtenderFabric"},
170*853c0dc5SEd Tanous     {PortConnectionType::FPort, "FPort"},
171*853c0dc5SEd Tanous     {PortConnectionType::EPort, "EPort"},
172*853c0dc5SEd Tanous     {PortConnectionType::TEPort, "TEPort"},
173*853c0dc5SEd Tanous     {PortConnectionType::NPPort, "NPPort"},
174*853c0dc5SEd Tanous     {PortConnectionType::GPort, "GPort"},
175*853c0dc5SEd Tanous     {PortConnectionType::NLPort, "NLPort"},
176*853c0dc5SEd Tanous     {PortConnectionType::FLPort, "FLPort"},
177*853c0dc5SEd Tanous     {PortConnectionType::EXPort, "EXPort"},
178*853c0dc5SEd Tanous     {PortConnectionType::UPort, "UPort"},
179*853c0dc5SEd Tanous     {PortConnectionType::DPort, "DPort"},
180*853c0dc5SEd Tanous });
181*853c0dc5SEd Tanous 
182*853c0dc5SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(SupportedEthernetCapabilities, {
183*853c0dc5SEd Tanous     {SupportedEthernetCapabilities::Invalid, "Invalid"},
184*853c0dc5SEd Tanous     {SupportedEthernetCapabilities::WakeOnLAN, "WakeOnLAN"},
185*853c0dc5SEd Tanous     {SupportedEthernetCapabilities::EEE, "EEE"},
186*853c0dc5SEd Tanous });
187*853c0dc5SEd Tanous 
188*853c0dc5SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(FlowControl, {
189*853c0dc5SEd Tanous     {FlowControl::Invalid, "Invalid"},
190*853c0dc5SEd Tanous     {FlowControl::None, "None"},
191*853c0dc5SEd Tanous     {FlowControl::TX, "TX"},
192*853c0dc5SEd Tanous     {FlowControl::RX, "RX"},
193*853c0dc5SEd Tanous     {FlowControl::TX_RX, "TX_RX"},
194*853c0dc5SEd Tanous });
195*853c0dc5SEd Tanous 
196*853c0dc5SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(IEEE802IdSubtype, {
197*853c0dc5SEd Tanous     {IEEE802IdSubtype::Invalid, "Invalid"},
198*853c0dc5SEd Tanous     {IEEE802IdSubtype::ChassisComp, "ChassisComp"},
199*853c0dc5SEd Tanous     {IEEE802IdSubtype::IfAlias, "IfAlias"},
200*853c0dc5SEd Tanous     {IEEE802IdSubtype::PortComp, "PortComp"},
201*853c0dc5SEd Tanous     {IEEE802IdSubtype::MacAddr, "MacAddr"},
202*853c0dc5SEd Tanous     {IEEE802IdSubtype::NetworkAddr, "NetworkAddr"},
203*853c0dc5SEd Tanous     {IEEE802IdSubtype::IfName, "IfName"},
204*853c0dc5SEd Tanous     {IEEE802IdSubtype::AgentId, "AgentId"},
205*853c0dc5SEd Tanous     {IEEE802IdSubtype::LocalAssign, "LocalAssign"},
206*853c0dc5SEd Tanous     {IEEE802IdSubtype::NotTransmitted, "NotTransmitted"},
207*853c0dc5SEd Tanous });
208*853c0dc5SEd Tanous 
209*853c0dc5SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(SFPType, {
210*853c0dc5SEd Tanous     {SFPType::Invalid, "Invalid"},
211*853c0dc5SEd Tanous     {SFPType::SFP, "SFP"},
212*853c0dc5SEd Tanous     {SFPType::SFPPlus, "SFPPlus"},
213*853c0dc5SEd Tanous     {SFPType::SFP28, "SFP28"},
214*853c0dc5SEd Tanous     {SFPType::cSFP, "cSFP"},
215*853c0dc5SEd Tanous     {SFPType::SFPDD, "SFPDD"},
216*853c0dc5SEd Tanous     {SFPType::QSFP, "QSFP"},
217*853c0dc5SEd Tanous     {SFPType::QSFPPlus, "QSFPPlus"},
218*853c0dc5SEd Tanous     {SFPType::QSFP14, "QSFP14"},
219*853c0dc5SEd Tanous     {SFPType::QSFP28, "QSFP28"},
220*853c0dc5SEd Tanous     {SFPType::QSFP56, "QSFP56"},
221*853c0dc5SEd Tanous     {SFPType::MiniSASHD, "MiniSASHD"},
222*853c0dc5SEd Tanous });
223*853c0dc5SEd Tanous 
224*853c0dc5SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(MediumType, {
225*853c0dc5SEd Tanous     {MediumType::Invalid, "Invalid"},
226*853c0dc5SEd Tanous     {MediumType::Copper, "Copper"},
227*853c0dc5SEd Tanous     {MediumType::FiberOptic, "FiberOptic"},
228*853c0dc5SEd Tanous });
229*853c0dc5SEd Tanous 
230*853c0dc5SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(FiberConnectionType, {
231*853c0dc5SEd Tanous     {FiberConnectionType::Invalid, "Invalid"},
232*853c0dc5SEd Tanous     {FiberConnectionType::SingleMode, "SingleMode"},
233*853c0dc5SEd Tanous     {FiberConnectionType::MultiMode, "MultiMode"},
234*853c0dc5SEd Tanous });
235*853c0dc5SEd Tanous 
236*853c0dc5SEd Tanous }
237*853c0dc5SEd Tanous // clang-format on
238