xref: /openbmc/bmcweb/features/redfish/include/generated/enums/ethernet_interface.hpp (revision d1a3caa4eda8ca07cd656b4e4e8aa1e4ffe53e1e)
140e9b92eSEd Tanous // SPDX-License-Identifier: Apache-2.0
240e9b92eSEd 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 
10*d1a3caa4SChandramohan Harkude enum class MACAddress{
11*d1a3caa4SChandramohan Harkude     Invalid,
12*d1a3caa4SChandramohan Harkude };
13*d1a3caa4SChandramohan Harkude 
140ec8b83dSEd Tanous enum class LinkStatus{
150ec8b83dSEd Tanous     Invalid,
160ec8b83dSEd Tanous     LinkUp,
170ec8b83dSEd Tanous     NoLink,
180ec8b83dSEd Tanous     LinkDown,
190ec8b83dSEd Tanous };
200ec8b83dSEd Tanous 
210ec8b83dSEd Tanous enum class DHCPv6OperatingMode{
220ec8b83dSEd Tanous     Invalid,
230ec8b83dSEd Tanous     Stateful,
240ec8b83dSEd Tanous     Stateless,
250ec8b83dSEd Tanous     Disabled,
260ec8b83dSEd Tanous     Enabled,
270ec8b83dSEd Tanous };
280ec8b83dSEd Tanous 
290ec8b83dSEd Tanous enum class DHCPFallback{
300ec8b83dSEd Tanous     Invalid,
310ec8b83dSEd Tanous     Static,
320ec8b83dSEd Tanous     AutoConfig,
330ec8b83dSEd Tanous     None,
340ec8b83dSEd Tanous };
350ec8b83dSEd Tanous 
360ec8b83dSEd Tanous enum class EthernetDeviceType{
370ec8b83dSEd Tanous     Invalid,
380ec8b83dSEd Tanous     Physical,
390ec8b83dSEd Tanous     Virtual,
400ec8b83dSEd Tanous };
410ec8b83dSEd Tanous 
420ec8b83dSEd Tanous enum class TeamMode{
430ec8b83dSEd Tanous     Invalid,
440ec8b83dSEd Tanous     None,
450ec8b83dSEd Tanous     RoundRobin,
460ec8b83dSEd Tanous     ActiveBackup,
470ec8b83dSEd Tanous     XOR,
480ec8b83dSEd Tanous     Broadcast,
490ec8b83dSEd Tanous     IEEE802_3ad,
500ec8b83dSEd Tanous     AdaptiveTransmitLoadBalancing,
510ec8b83dSEd Tanous     AdaptiveLoadBalancing,
520ec8b83dSEd Tanous };
530ec8b83dSEd Tanous 
54e9cc1bc9SEd Tanous enum class RoutingScope{
55e9cc1bc9SEd Tanous     Invalid,
56e9cc1bc9SEd Tanous     External,
57e9cc1bc9SEd Tanous     HostOnly,
58e9cc1bc9SEd Tanous     Internal,
59e9cc1bc9SEd Tanous     Limited,
60e9cc1bc9SEd Tanous };
61e9cc1bc9SEd Tanous 
62*d1a3caa4SChandramohan Harkude NLOHMANN_JSON_SERIALIZE_ENUM(MACAddress, {
63*d1a3caa4SChandramohan Harkude     {MACAddress::Invalid, "Invalid"},
64*d1a3caa4SChandramohan Harkude });
65*d1a3caa4SChandramohan Harkude 
660ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(LinkStatus, {
670ec8b83dSEd Tanous     {LinkStatus::Invalid, "Invalid"},
680ec8b83dSEd Tanous     {LinkStatus::LinkUp, "LinkUp"},
690ec8b83dSEd Tanous     {LinkStatus::NoLink, "NoLink"},
700ec8b83dSEd Tanous     {LinkStatus::LinkDown, "LinkDown"},
710ec8b83dSEd Tanous });
720ec8b83dSEd Tanous 
730ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(DHCPv6OperatingMode, {
740ec8b83dSEd Tanous     {DHCPv6OperatingMode::Invalid, "Invalid"},
750ec8b83dSEd Tanous     {DHCPv6OperatingMode::Stateful, "Stateful"},
760ec8b83dSEd Tanous     {DHCPv6OperatingMode::Stateless, "Stateless"},
770ec8b83dSEd Tanous     {DHCPv6OperatingMode::Disabled, "Disabled"},
780ec8b83dSEd Tanous     {DHCPv6OperatingMode::Enabled, "Enabled"},
790ec8b83dSEd Tanous });
800ec8b83dSEd Tanous 
810ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(DHCPFallback, {
820ec8b83dSEd Tanous     {DHCPFallback::Invalid, "Invalid"},
830ec8b83dSEd Tanous     {DHCPFallback::Static, "Static"},
840ec8b83dSEd Tanous     {DHCPFallback::AutoConfig, "AutoConfig"},
850ec8b83dSEd Tanous     {DHCPFallback::None, "None"},
860ec8b83dSEd Tanous });
870ec8b83dSEd Tanous 
880ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(EthernetDeviceType, {
890ec8b83dSEd Tanous     {EthernetDeviceType::Invalid, "Invalid"},
900ec8b83dSEd Tanous     {EthernetDeviceType::Physical, "Physical"},
910ec8b83dSEd Tanous     {EthernetDeviceType::Virtual, "Virtual"},
920ec8b83dSEd Tanous });
930ec8b83dSEd Tanous 
940ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(TeamMode, {
950ec8b83dSEd Tanous     {TeamMode::Invalid, "Invalid"},
960ec8b83dSEd Tanous     {TeamMode::None, "None"},
970ec8b83dSEd Tanous     {TeamMode::RoundRobin, "RoundRobin"},
980ec8b83dSEd Tanous     {TeamMode::ActiveBackup, "ActiveBackup"},
990ec8b83dSEd Tanous     {TeamMode::XOR, "XOR"},
1000ec8b83dSEd Tanous     {TeamMode::Broadcast, "Broadcast"},
1010ec8b83dSEd Tanous     {TeamMode::IEEE802_3ad, "IEEE802_3ad"},
1020ec8b83dSEd Tanous     {TeamMode::AdaptiveTransmitLoadBalancing, "AdaptiveTransmitLoadBalancing"},
1030ec8b83dSEd Tanous     {TeamMode::AdaptiveLoadBalancing, "AdaptiveLoadBalancing"},
1040ec8b83dSEd Tanous });
1050ec8b83dSEd Tanous 
106e9cc1bc9SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(RoutingScope, {
107e9cc1bc9SEd Tanous     {RoutingScope::Invalid, "Invalid"},
108e9cc1bc9SEd Tanous     {RoutingScope::External, "External"},
109e9cc1bc9SEd Tanous     {RoutingScope::HostOnly, "HostOnly"},
110e9cc1bc9SEd Tanous     {RoutingScope::Internal, "Internal"},
111e9cc1bc9SEd Tanous     {RoutingScope::Limited, "Limited"},
112e9cc1bc9SEd Tanous });
113e9cc1bc9SEd Tanous 
1140ec8b83dSEd Tanous }
1150ec8b83dSEd Tanous // clang-format on
116