xref: /openbmc/bmcweb/features/redfish/include/generated/enums/ethernet_interface.hpp (revision 40e9b92ec19acffb46f83a6e55b18974da5d708e)
1*40e9b92eSEd Tanous // SPDX-License-Identifier: Apache-2.0
2*40e9b92eSEd Tanous // SPDX-FileCopyrightText: Copyright OpenBMC Authors
30ec8b83dSEd Tanous #pragma once
40ec8b83dSEd Tanous #include <nlohmann/json.hpp>
50ec8b83dSEd Tanous 
60ec8b83dSEd Tanous namespace ethernet_interface
70ec8b83dSEd Tanous {
80ec8b83dSEd Tanous // clang-format off
90ec8b83dSEd Tanous 
100ec8b83dSEd Tanous enum class LinkStatus{
110ec8b83dSEd Tanous     Invalid,
120ec8b83dSEd Tanous     LinkUp,
130ec8b83dSEd Tanous     NoLink,
140ec8b83dSEd Tanous     LinkDown,
150ec8b83dSEd Tanous };
160ec8b83dSEd Tanous 
170ec8b83dSEd Tanous enum class DHCPv6OperatingMode{
180ec8b83dSEd Tanous     Invalid,
190ec8b83dSEd Tanous     Stateful,
200ec8b83dSEd Tanous     Stateless,
210ec8b83dSEd Tanous     Disabled,
220ec8b83dSEd Tanous     Enabled,
230ec8b83dSEd Tanous };
240ec8b83dSEd Tanous 
250ec8b83dSEd Tanous enum class DHCPFallback{
260ec8b83dSEd Tanous     Invalid,
270ec8b83dSEd Tanous     Static,
280ec8b83dSEd Tanous     AutoConfig,
290ec8b83dSEd Tanous     None,
300ec8b83dSEd Tanous };
310ec8b83dSEd Tanous 
320ec8b83dSEd Tanous enum class EthernetDeviceType{
330ec8b83dSEd Tanous     Invalid,
340ec8b83dSEd Tanous     Physical,
350ec8b83dSEd Tanous     Virtual,
360ec8b83dSEd Tanous };
370ec8b83dSEd Tanous 
380ec8b83dSEd Tanous enum class TeamMode{
390ec8b83dSEd Tanous     Invalid,
400ec8b83dSEd Tanous     None,
410ec8b83dSEd Tanous     RoundRobin,
420ec8b83dSEd Tanous     ActiveBackup,
430ec8b83dSEd Tanous     XOR,
440ec8b83dSEd Tanous     Broadcast,
450ec8b83dSEd Tanous     IEEE802_3ad,
460ec8b83dSEd Tanous     AdaptiveTransmitLoadBalancing,
470ec8b83dSEd Tanous     AdaptiveLoadBalancing,
480ec8b83dSEd Tanous };
490ec8b83dSEd Tanous 
50e9cc1bc9SEd Tanous enum class RoutingScope{
51e9cc1bc9SEd Tanous     Invalid,
52e9cc1bc9SEd Tanous     External,
53e9cc1bc9SEd Tanous     HostOnly,
54e9cc1bc9SEd Tanous     Internal,
55e9cc1bc9SEd Tanous     Limited,
56e9cc1bc9SEd Tanous };
57e9cc1bc9SEd Tanous 
580ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(LinkStatus, {
590ec8b83dSEd Tanous     {LinkStatus::Invalid, "Invalid"},
600ec8b83dSEd Tanous     {LinkStatus::LinkUp, "LinkUp"},
610ec8b83dSEd Tanous     {LinkStatus::NoLink, "NoLink"},
620ec8b83dSEd Tanous     {LinkStatus::LinkDown, "LinkDown"},
630ec8b83dSEd Tanous });
640ec8b83dSEd Tanous 
650ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(DHCPv6OperatingMode, {
660ec8b83dSEd Tanous     {DHCPv6OperatingMode::Invalid, "Invalid"},
670ec8b83dSEd Tanous     {DHCPv6OperatingMode::Stateful, "Stateful"},
680ec8b83dSEd Tanous     {DHCPv6OperatingMode::Stateless, "Stateless"},
690ec8b83dSEd Tanous     {DHCPv6OperatingMode::Disabled, "Disabled"},
700ec8b83dSEd Tanous     {DHCPv6OperatingMode::Enabled, "Enabled"},
710ec8b83dSEd Tanous });
720ec8b83dSEd Tanous 
730ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(DHCPFallback, {
740ec8b83dSEd Tanous     {DHCPFallback::Invalid, "Invalid"},
750ec8b83dSEd Tanous     {DHCPFallback::Static, "Static"},
760ec8b83dSEd Tanous     {DHCPFallback::AutoConfig, "AutoConfig"},
770ec8b83dSEd Tanous     {DHCPFallback::None, "None"},
780ec8b83dSEd Tanous });
790ec8b83dSEd Tanous 
800ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(EthernetDeviceType, {
810ec8b83dSEd Tanous     {EthernetDeviceType::Invalid, "Invalid"},
820ec8b83dSEd Tanous     {EthernetDeviceType::Physical, "Physical"},
830ec8b83dSEd Tanous     {EthernetDeviceType::Virtual, "Virtual"},
840ec8b83dSEd Tanous });
850ec8b83dSEd Tanous 
860ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(TeamMode, {
870ec8b83dSEd Tanous     {TeamMode::Invalid, "Invalid"},
880ec8b83dSEd Tanous     {TeamMode::None, "None"},
890ec8b83dSEd Tanous     {TeamMode::RoundRobin, "RoundRobin"},
900ec8b83dSEd Tanous     {TeamMode::ActiveBackup, "ActiveBackup"},
910ec8b83dSEd Tanous     {TeamMode::XOR, "XOR"},
920ec8b83dSEd Tanous     {TeamMode::Broadcast, "Broadcast"},
930ec8b83dSEd Tanous     {TeamMode::IEEE802_3ad, "IEEE802_3ad"},
940ec8b83dSEd Tanous     {TeamMode::AdaptiveTransmitLoadBalancing, "AdaptiveTransmitLoadBalancing"},
950ec8b83dSEd Tanous     {TeamMode::AdaptiveLoadBalancing, "AdaptiveLoadBalancing"},
960ec8b83dSEd Tanous });
970ec8b83dSEd Tanous 
98e9cc1bc9SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(RoutingScope, {
99e9cc1bc9SEd Tanous     {RoutingScope::Invalid, "Invalid"},
100e9cc1bc9SEd Tanous     {RoutingScope::External, "External"},
101e9cc1bc9SEd Tanous     {RoutingScope::HostOnly, "HostOnly"},
102e9cc1bc9SEd Tanous     {RoutingScope::Internal, "Internal"},
103e9cc1bc9SEd Tanous     {RoutingScope::Limited, "Limited"},
104e9cc1bc9SEd Tanous });
105e9cc1bc9SEd Tanous 
1060ec8b83dSEd Tanous }
1070ec8b83dSEd Tanous // clang-format on
108