| #pragma once |
| |
| #include <cstdint> |
| #include <ipmid/api-types.hpp> |
| |
| namespace ipmi |
| { |
| namespace transport |
| { |
| |
| /** @brief IPMI LAN Parameters */ |
| enum class LanParam : uint8_t |
| { |
| SetStatus = 0, |
| AuthSupport = 1, |
| AuthEnables = 2, |
| IP = 3, |
| IPSrc = 4, |
| MAC = 5, |
| SubnetMask = 6, |
| Gateway1 = 12, |
| Gateway1MAC = 13, |
| VLANId = 20, |
| CiphersuiteSupport = 22, |
| CiphersuiteEntries = 23, |
| cipherSuitePrivilegeLevels = 24, |
| IPFamilySupport = 50, |
| IPFamilyEnables = 51, |
| IPv6Status = 55, |
| IPv6StaticAddresses = 56, |
| IPv6DynamicAddresses = 59, |
| IPv6RouterControl = 64, |
| IPv6StaticRouter1IP = 65, |
| IPv6StaticRouter1MAC = 66, |
| IPv6StaticRouter1PrefixLength = 67, |
| IPv6StaticRouter1PrefixValue = 68, |
| }; |
| |
| /** @brief IPMI IP Origin Types */ |
| enum class IPSrc : uint8_t |
| { |
| Unspecified = 0, |
| Static = 1, |
| DHCP = 2, |
| BIOS = 3, |
| BMC = 4, |
| }; |
| |
| /** @brief IPMI Set Status */ |
| enum class SetStatus : uint8_t |
| { |
| Complete = 0, |
| InProgress = 1, |
| Commit = 2, |
| }; |
| |
| /** @brief IPMI Family Suport Bits */ |
| namespace IPFamilySupportFlag |
| { |
| constexpr uint8_t IPv6Only = 0; |
| constexpr uint8_t DualStack = 1; |
| constexpr uint8_t IPv6Alerts = 2; |
| } // namespace IPFamilySupportFlag |
| |
| /** @brief IPMI IPFamily Enables Flag */ |
| enum class IPFamilyEnables : uint8_t |
| { |
| IPv4Only = 0, |
| IPv6Only = 1, |
| DualStack = 2, |
| }; |
| |
| /** @brief IPMI IPv6 Dyanmic Status Bits */ |
| namespace IPv6StatusFlag |
| { |
| constexpr uint8_t DHCP = 0; |
| constexpr uint8_t SLAAC = 1; |
| }; // namespace IPv6StatusFlag |
| |
| /** @brief IPMI IPv6 Source */ |
| enum class IPv6Source : uint8_t |
| { |
| Static = 0, |
| SLAAC = 1, |
| DHCP = 2, |
| }; |
| |
| /** @brief IPMI IPv6 Address Status */ |
| enum class IPv6AddressStatus : uint8_t |
| { |
| Active = 0, |
| Disabled = 1, |
| }; |
| |
| namespace IPv6RouterControlFlag |
| { |
| constexpr uint8_t Static = 0; |
| constexpr uint8_t Dynamic = 1; |
| }; // namespace IPv6RouterControlFlag |
| |
| // LAN Handler specific response codes |
| constexpr Cc ccParamNotSupported = 0x80; |
| constexpr Cc ccParamSetLocked = 0x81; |
| constexpr Cc ccParamReadOnly = 0x82; |
| |
| // VLANs are a 12-bit value |
| constexpr uint16_t VLAN_VALUE_MASK = 0x0fff; |
| constexpr uint16_t VLAN_ENABLE_FLAG = 0x8000; |
| |
| // Arbitrary v6 Address Limits to prevent too much output in ipmitool |
| constexpr uint8_t MAX_IPV6_STATIC_ADDRESSES = 15; |
| constexpr uint8_t MAX_IPV6_DYNAMIC_ADDRESSES = 15; |
| |
| } // namespace transport |
| } // namespace ipmi |