xref: /openbmc/bmcweb/features/redfish/include/generated/enums/ip_addresses.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 ip_addresses
70ec8b83dSEd Tanous {
80ec8b83dSEd Tanous // clang-format off
90ec8b83dSEd Tanous 
100ec8b83dSEd Tanous enum class IPv4AddressOrigin{
110ec8b83dSEd Tanous     Invalid,
120ec8b83dSEd Tanous     Static,
130ec8b83dSEd Tanous     DHCP,
140ec8b83dSEd Tanous     BOOTP,
150ec8b83dSEd Tanous     IPv4LinkLocal,
160ec8b83dSEd Tanous };
170ec8b83dSEd Tanous 
180ec8b83dSEd Tanous enum class IPv6AddressOrigin{
190ec8b83dSEd Tanous     Invalid,
200ec8b83dSEd Tanous     Static,
210ec8b83dSEd Tanous     DHCPv6,
220ec8b83dSEd Tanous     LinkLocal,
230ec8b83dSEd Tanous     SLAAC,
240ec8b83dSEd Tanous };
250ec8b83dSEd Tanous 
26*d1a3caa4SChandramohan Harkude enum class SubnetMask{
27*d1a3caa4SChandramohan Harkude     Invalid,
28*d1a3caa4SChandramohan Harkude };
29*d1a3caa4SChandramohan Harkude 
30*d1a3caa4SChandramohan Harkude enum class PrefixLength{
31*d1a3caa4SChandramohan Harkude     Invalid,
32*d1a3caa4SChandramohan Harkude };
33*d1a3caa4SChandramohan Harkude 
340ec8b83dSEd Tanous enum class AddressState{
350ec8b83dSEd Tanous     Invalid,
360ec8b83dSEd Tanous     Preferred,
370ec8b83dSEd Tanous     Deprecated,
380ec8b83dSEd Tanous     Tentative,
390ec8b83dSEd Tanous     Failed,
400ec8b83dSEd Tanous };
410ec8b83dSEd Tanous 
420ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(IPv4AddressOrigin, {
430ec8b83dSEd Tanous     {IPv4AddressOrigin::Invalid, "Invalid"},
440ec8b83dSEd Tanous     {IPv4AddressOrigin::Static, "Static"},
450ec8b83dSEd Tanous     {IPv4AddressOrigin::DHCP, "DHCP"},
460ec8b83dSEd Tanous     {IPv4AddressOrigin::BOOTP, "BOOTP"},
470ec8b83dSEd Tanous     {IPv4AddressOrigin::IPv4LinkLocal, "IPv4LinkLocal"},
480ec8b83dSEd Tanous });
490ec8b83dSEd Tanous 
500ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(IPv6AddressOrigin, {
510ec8b83dSEd Tanous     {IPv6AddressOrigin::Invalid, "Invalid"},
520ec8b83dSEd Tanous     {IPv6AddressOrigin::Static, "Static"},
530ec8b83dSEd Tanous     {IPv6AddressOrigin::DHCPv6, "DHCPv6"},
540ec8b83dSEd Tanous     {IPv6AddressOrigin::LinkLocal, "LinkLocal"},
550ec8b83dSEd Tanous     {IPv6AddressOrigin::SLAAC, "SLAAC"},
560ec8b83dSEd Tanous });
570ec8b83dSEd Tanous 
58*d1a3caa4SChandramohan Harkude NLOHMANN_JSON_SERIALIZE_ENUM(SubnetMask, {
59*d1a3caa4SChandramohan Harkude     {SubnetMask::Invalid, "Invalid"},
60*d1a3caa4SChandramohan Harkude });
61*d1a3caa4SChandramohan Harkude 
62*d1a3caa4SChandramohan Harkude NLOHMANN_JSON_SERIALIZE_ENUM(PrefixLength, {
63*d1a3caa4SChandramohan Harkude     {PrefixLength::Invalid, "Invalid"},
64*d1a3caa4SChandramohan Harkude });
65*d1a3caa4SChandramohan Harkude 
660ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(AddressState, {
670ec8b83dSEd Tanous     {AddressState::Invalid, "Invalid"},
680ec8b83dSEd Tanous     {AddressState::Preferred, "Preferred"},
690ec8b83dSEd Tanous     {AddressState::Deprecated, "Deprecated"},
700ec8b83dSEd Tanous     {AddressState::Tentative, "Tentative"},
710ec8b83dSEd Tanous     {AddressState::Failed, "Failed"},
720ec8b83dSEd Tanous });
730ec8b83dSEd Tanous 
740ec8b83dSEd Tanous }
750ec8b83dSEd Tanous // clang-format on
76