xref: /openbmc/bmcweb/redfish-core/include/generated/enums/ip_addresses.hpp (revision 40e9b92ec19acffb46f83a6e55b18974da5d708e)
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 AddressState{
27     Invalid,
28     Preferred,
29     Deprecated,
30     Tentative,
31     Failed,
32 };
33 
34 NLOHMANN_JSON_SERIALIZE_ENUM(IPv4AddressOrigin, {
35     {IPv4AddressOrigin::Invalid, "Invalid"},
36     {IPv4AddressOrigin::Static, "Static"},
37     {IPv4AddressOrigin::DHCP, "DHCP"},
38     {IPv4AddressOrigin::BOOTP, "BOOTP"},
39     {IPv4AddressOrigin::IPv4LinkLocal, "IPv4LinkLocal"},
40 });
41 
42 NLOHMANN_JSON_SERIALIZE_ENUM(IPv6AddressOrigin, {
43     {IPv6AddressOrigin::Invalid, "Invalid"},
44     {IPv6AddressOrigin::Static, "Static"},
45     {IPv6AddressOrigin::DHCPv6, "DHCPv6"},
46     {IPv6AddressOrigin::LinkLocal, "LinkLocal"},
47     {IPv6AddressOrigin::SLAAC, "SLAAC"},
48 });
49 
50 NLOHMANN_JSON_SERIALIZE_ENUM(AddressState, {
51     {AddressState::Invalid, "Invalid"},
52     {AddressState::Preferred, "Preferred"},
53     {AddressState::Deprecated, "Deprecated"},
54     {AddressState::Tentative, "Tentative"},
55     {AddressState::Failed, "Failed"},
56 });
57 
58 }
59 // clang-format on
60