| #pragma once |
| |
| #include <ipmid/api-types.hpp> |
| #include <stdplus/zstring_view.hpp> |
| |
| #include <cstdint> |
| |
| namespace ipmi |
| { |
| namespace transport |
| { |
| |
| using stdplus::operator""_zsv; |
| |
| // D-Bus Network Daemon definitions |
| constexpr auto PATH_ROOT = "/xyz/openbmc_project/network"_zsv; |
| constexpr auto INTF_ETHERNET = "xyz.openbmc_project.Network.EthernetInterface"; |
| constexpr auto INTF_IP = "xyz.openbmc_project.Network.IP"; |
| constexpr auto INTF_IP_CREATE = "xyz.openbmc_project.Network.IP.Create"; |
| constexpr auto INTF_MAC = "xyz.openbmc_project.Network.MACAddress"; |
| constexpr auto INTF_NEIGHBOR = "xyz.openbmc_project.Network.Neighbor"; |
| constexpr auto INTF_NEIGHBOR_CREATE_STATIC = |
| "xyz.openbmc_project.Network.Neighbor.CreateStatic"; |
| constexpr auto INTF_VLAN = "xyz.openbmc_project.Network.VLAN"; |
| constexpr auto INTF_VLAN_CREATE = "xyz.openbmc_project.Network.VLAN.Create"; |
| |
| /** @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; |
| |
| // Prefix length limits of phosphor-networkd |
| constexpr uint8_t MIN_IPV4_PREFIX_LENGTH = 1; |
| constexpr uint8_t MAX_IPV4_PREFIX_LENGTH = 32; |
| constexpr uint8_t MIN_IPV6_PREFIX_LENGTH = 1; |
| constexpr uint8_t MAX_IPV6_PREFIX_LENGTH = 128; |
| |
| /** @enum SolConfParam |
| * |
| * using for Set/Get SOL configuration parameters command. |
| */ |
| enum class SolConfParam : uint8_t |
| { |
| Progress, //!< Set In Progress. |
| Enable, //!< SOL Enable. |
| Authentication, //!< SOL Authentication. |
| Accumulate, //!< Character Accumulate Interval & Send Threshold. |
| Retry, //!< SOL Retry. |
| NonVbitrate, //!< SOL non-volatile bit rate. |
| Vbitrate, //!< SOL volatile bit rate. |
| Channel, //!< SOL payload channel. |
| Port, //!< SOL payload port. |
| }; |
| |
| constexpr uint8_t ipmiCCParamNotSupported = 0x80; |
| constexpr uint8_t ipmiCCWriteReadParameter = 0x82; |
| |
| } // namespace transport |
| } // namespace ipmi |