xref: /openbmc/bmcweb/redfish-core/include/generated/enums/ip_addresses.hpp (revision a08c3de2e9a788addf7c71fc2db1912e39a85d3b)
1 // SPDX-License-Identifier: Apache-2.0
2 // SPDX-FileCopyrightText: Copyright OpenBMC Authors
3 #pragma once
4 #include <nlohmann/json.hpp>
5 
6 namespace ip_addresses
7 {
8 // clang-format off
9 
10 enum class IPv4AddressOrigin{
11     Invalid,
12     Static,
13     DHCP,
14     BOOTP,
15     IPv4LinkLocal,
16 };
17 
18 enum class IPv6AddressOrigin{
19     Invalid,
20     Static,
21     DHCPv6,
22     LinkLocal,
23     SLAAC,
24 };
25 
26 enum class SubnetMask{
27     Invalid,
28 };
29 
30 enum class PrefixLength{
31     Invalid,
32 };
33 
34 enum class AddressState{
35     Invalid,
36     Preferred,
37     Deprecated,
38     Tentative,
39     Failed,
40 };
41 
42 NLOHMANN_JSON_SERIALIZE_ENUM(IPv4AddressOrigin, {
43     {IPv4AddressOrigin::Invalid, "Invalid"},
44     {IPv4AddressOrigin::Static, "Static"},
45     {IPv4AddressOrigin::DHCP, "DHCP"},
46     {IPv4AddressOrigin::BOOTP, "BOOTP"},
47     {IPv4AddressOrigin::IPv4LinkLocal, "IPv4LinkLocal"},
48 });
49 
50 NLOHMANN_JSON_SERIALIZE_ENUM(IPv6AddressOrigin, {
51     {IPv6AddressOrigin::Invalid, "Invalid"},
52     {IPv6AddressOrigin::Static, "Static"},
53     {IPv6AddressOrigin::DHCPv6, "DHCPv6"},
54     {IPv6AddressOrigin::LinkLocal, "LinkLocal"},
55     {IPv6AddressOrigin::SLAAC, "SLAAC"},
56 });
57 
58 NLOHMANN_JSON_SERIALIZE_ENUM(SubnetMask, {
59     {SubnetMask::Invalid, "Invalid"},
60 });
61 
62 NLOHMANN_JSON_SERIALIZE_ENUM(PrefixLength, {
63     {PrefixLength::Invalid, "Invalid"},
64 });
65 
66 NLOHMANN_JSON_SERIALIZE_ENUM(AddressState, {
67     {AddressState::Invalid, "Invalid"},
68     {AddressState::Preferred, "Preferred"},
69     {AddressState::Deprecated, "Deprecated"},
70     {AddressState::Tentative, "Tentative"},
71     {AddressState::Failed, "Failed"},
72 });
73 
74 }
75 // clang-format on
76