/** @file
IPMI 2.0 definitions from the IPMI Specification Version 2.0, Revision 1.1.
This file contains all NetFn Transport commands, including:
IPM LAN Commands (Chapter 23)
IPMI Serial/Modem Commands (Chapter 25)
SOL Commands (Chapter 26)
Command Forwarding Commands (Chapter 35b)
See IPMI specification, Appendix G, Command Assignments
and Appendix H, Sub-function Assignments.
Copyright (c) 1999 - 2018, Intel Corporation. All rights reserved.
Copyright (C) 2023 Advanced Micro Devices, Inc. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent
**/
#ifndef _IPMI_NET_FN_TRANSPORT_H_
#define _IPMI_NET_FN_TRANSPORT_H_
#pragma pack(1)
//
// Net function definition for Transport command
//
#define IPMI_NETFN_TRANSPORT 0x0C
//
// Below is Definitions for IPM LAN Commands (Chapter 23)
//
//
// Definitions for Set Lan Configuration Parameters command
//
#define IPMI_TRANSPORT_SET_LAN_CONFIG_PARAMETERS 0x01
//
// Constants and Structure definitions for "Set Lan Configuration Parameters" command to follow here
//
//
// LAN Management Structure
//
typedef enum {
IpmiLanReserved1,
IpmiLanReserved2,
IpmiLanAuthType,
IpmiLanIpAddress,
IpmiLanIpAddressSource,
IpmiLanMacAddress,
IpmiLanSubnetMask,
IpmiLanIpv4HeaderParam,
IpmiLanPrimaryRcmpPort,
IpmiLanSecondaryRcmpPort,
IpmiLanBmcGeneratedArpCtrl,
IpmiLanArpInterval,
IpmiLanDefaultGateway,
IpmiLanDefaultGatewayMac,
IpmiLanBackupGateway,
IpmiLanBackupGatewayMac,
IpmiLanCommunityString,
IpmiLanReserved3,
IpmiLanDestinationType,
IpmiLanDestinationAddress,
IpmiLanVlanId = 0x14,
IpmiIpv4OrIpv6Support = 0x32,
IpmiIpv4OrIpv6AddressEnable,
IpmiIpv6HdrStatTrafficClass,
IpmiIpv6HdrStatHopLimit,
IpmiIpv6HdrFlowLabel,
IpmiIpv6Status,
IpmiIpv6StaticAddress,
IpmiIpv6DhcpStaticDuidLen,
IpmiIpv6DhcpStaticDuid,
IpmiIpv6DhcpAddress,
IpmiIpv6DhcpDynamicDuidLen,
IpmiIpv6DhcpDynamicDuid,
IpmiIpv6RouterConfig = 0x40,
IpmiIpv6StaticRouter1IpAddr,
IpmiIpv6DynamicRouterIpAddr = 0x4a
} IPMI_LAN_OPTION_TYPE;
//
// IP Address Source
//
typedef enum {
IpmiUnspecified,
IpmiStaticAddrsss,
IpmiDynamicAddressBmcDhcp,
IpmiDynamicAddressBiosDhcp,
IpmiDynamicAddressBmcNonDhcp
} IPMI_IP_ADDRESS_SRC;
//
// Destination Type
//
typedef enum {
IpmiPetTrapDestination,
IpmiDirectedEventDestination,
IpmiReserved1,
IpmiReserved2,
IpmiReserved3,
IpmiReserved4,
IpmiReserved5,
IpmiOem1,
IpmiOem2
} IPMI_LAN_DEST_TYPE_DEST_TYPE;
//
// Destination address format
//
typedef enum {
IpmiDestinationAddressVersion4,
IpmiDestinationAddressVersion6
} IPMI_LAN_DEST_ADDRESS_VERSION;
typedef union {
struct {
UINT8 NoAuth : 1;
UINT8 MD2Auth : 1;
UINT8 MD5Auth : 1;
UINT8 Reserved1 : 1;
UINT8 StraightPswd : 1;
UINT8 OemType : 1;
UINT8 Reserved2 : 2;
} Bits;
UINT8 Uint8;
} IPMI_LAN_AUTH_TYPE;
typedef struct {
UINT8 IpAddress[4];
} IPMI_LAN_IP_ADDRESS;
typedef union {
struct {
UINT8 AddressSrc : 4;
UINT8 Reserved : 4;
} Bits;
UINT8 Uint8;
} IPMI_LAN_IP_ADDRESS_SRC;
typedef struct {
UINT8 MacAddress[6];
} IPMI_LAN_MAC_ADDRESS;
typedef struct {
UINT8 IpAddress[4];
} IPMI_LAN_SUBNET_MASK;
typedef union {
struct {
UINT8 IpFlag : 3;
UINT8 Reserved : 5;
} Bits;
UINT8 Uint8;
} IPMI_LAN_IPV4_HDR_PARAM_DATA_2;
typedef union {
struct {
UINT8 Precedence : 3;
UINT8 Reserved : 1;
UINT8 ServiceType : 4;
} Bits;
UINT8 Uint8;
} IPMI_LAN_IPV4_HDR_PARAM_DATA_3;
typedef struct {
UINT8 TimeToLive;
IPMI_LAN_IPV4_HDR_PARAM_DATA_2 Data2;
IPMI_LAN_IPV4_HDR_PARAM_DATA_3 Data3;
} IPMI_LAN_IPV4_HDR_PARAM;
typedef struct {
UINT8 RcmpPortMsb;
UINT8 RcmpPortLsb;
} IPMI_LAN_RCMP_PORT;
typedef union {
struct {
UINT8 EnableBmcArpResponse : 1;
UINT8 EnableBmcGratuitousArp : 1;
UINT8 Reserved : 6;
} Bits;
UINT8 Uint8;
} IPMI_LAN_BMC_GENERATED_ARP_CONTROL;
typedef struct {
UINT8 ArpInterval;
} IPMI_LAN_ARP_INTERVAL;
typedef struct {
UINT8 IpAddress[4];
} IPMI_LAN_DEFAULT_GATEWAY;
typedef struct {
UINT8 Data[18];
} IPMI_LAN_COMMUNITY_STRING;
typedef union {
struct {
UINT8 DestinationSelector : 4;
UINT8 Reserved : 4;
} Bits;
UINT8 Uint8;
} IPMI_LAN_SET_SELECTOR;
typedef union {
struct {
UINT8 DestinationType : 3;
UINT8 Reserved : 4;
UINT8 AlertAcknowledged : 1;
} Bits;
UINT8 Uint8;
} IPMI_LAN_DEST_TYPE_DESTINATION_TYPE;
typedef struct {
IPMI_LAN_SET_SELECTOR SetSelector;
IPMI_LAN_DEST_TYPE_DESTINATION_TYPE DestinationType;
} IPMI_LAN_DEST_TYPE;
typedef union {
struct {
UINT8 AlertingIpAddressSelector : 4;
UINT8 AddressFormat : 4;
} Bits;
UINT8 Uint8;
} IPMI_LAN_ADDRESS_FORMAT;
typedef union {
struct {
UINT8 UseDefaultGateway : 1;
UINT8 Reserved2 : 7;
} Bits;
UINT8 Uint8;
} IPMI_LAN_GATEWAY_SELECTOR;
typedef struct {
IPMI_LAN_SET_SELECTOR SetSelector;
IPMI_LAN_ADDRESS_FORMAT AddressFormat;
IPMI_LAN_GATEWAY_SELECTOR GatewaySelector;
IPMI_LAN_IP_ADDRESS AlertingIpAddress;
IPMI_LAN_MAC_ADDRESS AlertingMacAddress;
} IPMI_LAN_DEST_ADDRESS;
typedef struct {
UINT8 VanIdLowByte;
} IPMI_LAN_VLAN_ID_DATA1;
typedef union {
struct {
UINT8 VanIdHighByte : 4;
UINT8 Reserved : 3;
UINT8 Enabled : 1;
} Bits;
UINT8 Uint8;
} IPMI_LAN_VLAN_ID_DATA2;
typedef struct {
IPMI_LAN_VLAN_ID_DATA1 Data1;
IPMI_LAN_VLAN_ID_DATA2 Data2;
} IPMI_LAN_VLAN_ID;
typedef union {
IPMI_LAN_AUTH_TYPE IpmiLanAuthType;
IPMI_LAN_IP_ADDRESS IpmiLanIpAddress;
IPMI_LAN_IP_ADDRESS_SRC IpmiLanIpAddressSrc;
IPMI_LAN_MAC_ADDRESS IpmiLanMacAddress;
IPMI_LAN_SUBNET_MASK IpmiLanSubnetMask;
IPMI_LAN_IPV4_HDR_PARAM IpmiLanIpv4HdrParam;
IPMI_LAN_RCMP_PORT IpmiLanPrimaryRcmpPort;
IPMI_LAN_BMC_GENERATED_ARP_CONTROL IpmiLanArpControl;
IPMI_LAN_ARP_INTERVAL IpmiLanArpInterval;
IPMI_LAN_COMMUNITY_STRING IpmiLanCommunityString;
IPMI_LAN_DEST_TYPE IpmiLanDestType;
IPMI_LAN_DEST_ADDRESS IpmiLanDestAddress;
} IPMI_LAN_OPTIONS;
typedef union {
struct {
UINT8 AddressSourceType : 4;
UINT8 Reserved : 3;
UINT8 EnableStatus : 1;
} Bits;
UINT8 Uint8;
} IPMI_LAN_IPV6_ADDRESS_SOURCE_TYPE;
typedef struct {
UINT8 SetSelector;
IPMI_LAN_IPV6_ADDRESS_SOURCE_TYPE AddressSourceType;
UINT8 Ipv6Address[16];
UINT8 AddressPrefixLen;
UINT8 AddressStatus;
} IPMI_LAN_IPV6_STATIC_ADDRESS;
//
// Set in progress parameter
//
typedef union {
struct {
UINT8 SetInProgress : 2;
UINT8 Reserved : 6;
} Bits;
UINT8 Uint8;
} IPMI_LAN_SET_IN_PROGRESS;
typedef union {
struct {
UINT8 ChannelNo : 4;
UINT8 Reserved : 4;
} Bits;
UINT8 Uint8;
} IPMI_SET_LAN_CONFIG_CHANNEL_NUM;
typedef struct {
IPMI_SET_LAN_CONFIG_CHANNEL_NUM ChannelNumber;
UINT8 ParameterSelector;
UINT8 ParameterData[0];
} IPMI_SET_LAN_CONFIGURATION_PARAMETERS_COMMAND_REQUEST;
//
// Definitions for Get Lan Configuration Parameters command
//
#define IPMI_TRANSPORT_GET_LAN_CONFIG_PARAMETERS 0x02
//
// Constants and Structure definitions for "Get Lan Configuration Parameters" command to follow here
//
typedef union {
struct {
UINT8 ChannelNo : 4;
UINT8 Reserved : 3;
UINT8 GetParameter : 1;
} Bits;
UINT8 Uint8;
} IPMI_GET_LAN_CONFIG_CHANNEL_NUM;
typedef struct {
IPMI_GET_LAN_CONFIG_CHANNEL_NUM ChannelNumber;
UINT8 ParameterSelector;
UINT8 SetSelector;
UINT8 BlockSelector;
} IPMI_GET_LAN_CONFIGURATION_PARAMETERS_REQUEST;
typedef struct {
UINT8 CompletionCode;
UINT8 ParameterRevision;
UINT8 ParameterData[0];
} IPMI_GET_LAN_CONFIGURATION_PARAMETERS_RESPONSE;
//
// Definitions for Suspend BMC ARPs command
//
#define IPMI_TRANSPORT_SUSPEND_BMC_ARPS 0x03
//
// Constants and Structure definitions for "Suspend BMC ARPs" command to follow here
//
//
// Definitions for Get IP-UDP-RMCP Statistics command
//
#define IPMI_TRANSPORT_GET_PACKET_STATISTICS 0x04
//
// Constants and Structure definitions for "Get IP-UDP-RMCP Statistics" command to follow here
//
//
// Below is Definitions for IPMI Serial/Modem Commands (Chapter 25)
//
//
// Definitions for Set Serial/Modem Configuration command
//
#define IPMI_TRANSPORT_SET_SERIAL_CONFIGURATION 0x10
//
// Constants and Structure definitions for "Set Serial/Modem Configuration" command to follow here
//
//
// EMP OPTION DATA
//
typedef union {
struct {
UINT8 NoAuthentication : 1;
UINT8 MD2Authentication : 1;
UINT8 MD5Authentication : 1;
UINT8 Reserved1 : 1;
UINT8 StraightPassword : 1;
UINT8 OemProprietary : 1;
UINT8 Reservd2 : 2;
} Bits;
UINT8 Uint8;
} IPMI_EMP_AUTH_TYPE;
typedef union {
struct {
UINT8 EnableBasicMode : 1;
UINT8 EnablePPPMode : 1;
UINT8 EnableTerminalMode : 1;
UINT8 Reserved1 : 2;
UINT8 SnoopOsPPPNegotiation : 1;
UINT8 Reserved2 : 1;
UINT8 DirectConnect : 1;
} Bits;
UINT8 Uint8;
} IPMI_EMP_CONNECTION_TYPE;
typedef union {
struct {
UINT8 InactivityTimeout : 4;
UINT8 Reserved : 4;
} Bits;
UINT8 Uint8;
} IPMI_EMP_INACTIVITY_TIMEOUT;
typedef union {
struct {
UINT8 IpmiCallback : 1;
UINT8 CBCPCallback : 1;
UINT8 Reserved : 6;
} Bits;
UINT8 Uint8;
} IPMI_CHANNEL_CALLBACK_CONTROL_ENABLE;
typedef union {
struct {
UINT8 CbcpEnableNoCallback : 1;
UINT8 CbcpEnablePreSpecifiedNumber : 1;
UINT8 CbcpEnableUserSpecifiedNumber : 1;
UINT8 CbcpEnableCallbackFromList : 1;
UINT8 Reserved : 4;
} Bits;
UINT8 Uint8;
} IPMI_CHANNEL_CALLBACK_CONTROL_CBCP;
typedef struct {
IPMI_CHANNEL_CALLBACK_CONTROL_ENABLE CallbackEnable;
IPMI_CHANNEL_CALLBACK_CONTROL_CBCP CBCPNegotiation;
UINT8 CallbackDestination1;
UINT8 CallbackDestination2;
UINT8 CallbackDestination3;
} IPMI_EMP_CHANNEL_CALLBACK_CONTROL;
typedef union {
struct {
UINT8 CloseSessionOnDCDLoss : 1;
UINT8 EnableSessionInactivityTimeout : 1;
UINT8 Reserved : 6;
} Bits;
UINT8 Uint8;
} IPMI_EMP_SESSION_TERMINATION;
typedef union {
struct {
UINT8 Reserved1 : 5;
UINT8 EnableDtrHangup : 1;
UINT8 FlowControl : 2;
UINT8 BitRate : 4;
UINT8 Reserved2 : 4;
UINT8 SaveSetting : 1;
UINT8 SetComPort : 1;
UINT8 Reserved3 : 6;
} Bits;
UINT8 Uint8;
UINT16 Uint16;
} IPMI_EMP_MESSAGING_COM_SETTING;
typedef union {
struct {
UINT8 RingDurationInterval : 6;
UINT8 Reserved1 : 2;
UINT8 RingDeadTime : 4;
UINT8 Reserved2 : 4;
} Bits;
UINT8 Uint8;
} IPMI_EMP_MODEM_RING_TIME;
typedef struct {
UINT8 Reserved;
UINT8 InitString[48];
} IPMI_EMP_MODEM_INIT_STRING;
typedef struct {
UINT8 EscapeSequence[5];
} IPMI_EMP_MODEM_ESC_SEQUENCE;
typedef struct {
UINT8 HangupSequence[8];
} IPMI_EMP_MODEM_HANGUP_SEQUENCE;
typedef struct {
UINT8 ModelDialCommend[8];
} IPMI_MODEM_DIALUP_COMMAND;
typedef struct {
UINT8 PageBlackoutInterval;
} IPMI_PAGE_BLACKOUT_INTERVAL;
typedef struct {
UINT8 CommunityString[18];
} IPMI_EMP_COMMUNITY_STRING;
typedef union {
struct {
UINT8 Reserved : 4;
UINT8 DialStringSelector : 4;
} Bits;
UINT8 Uint8;
} IPMI_DIAL_PAGE_DESTINATION;
typedef union {
struct {
UINT8 TapAccountSelector : 4;
UINT8 Reserved : 4;
} Bits;
UINT8 Uint8;
} IPMI_TAP_PAGE_DESTINATION;
typedef struct {
UINT8 PPPAccountSetSelector;
UINT8 DialStringSelector;
} IPMI_PPP_ALERT_DESTINATION;
typedef union {
IPMI_DIAL_PAGE_DESTINATION DialPageDestination;
IPMI_TAP_PAGE_DESTINATION TapPageDestination;
IPMI_PPP_ALERT_DESTINATION PppAlertDestination;
} IPMI_DEST_TYPE_SPECIFIC;
typedef union {
struct {
UINT8 DestinationSelector : 4;
UINT8 Reserved : 4;
} Bits;
UINT8 Uint8;
} IPMI_EMP_DESTINATION_SELECTOR;
typedef union {
struct {
UINT8 DestinationType : 4;
UINT8 Reserved : 3;
UINT8 AlertAckRequired : 1;
} Bits;
UINT8 Uint8;
} IPMI_EMP_DESTINATION_TYPE;
typedef union {
struct {
UINT8 NumRetriesCall : 3;
UINT8 Reserved1 : 1;
UINT8 NumRetryAlert : 3;
UINT8 Reserved2 : 1;
} Bits;
UINT8 Uint8;
} IPMI_EMP_RETRIES;
typedef struct {
IPMI_EMP_DESTINATION_SELECTOR DestinationSelector;
IPMI_EMP_DESTINATION_TYPE DestinationType;
UINT8 AlertAckTimeoutSeconds;
IPMI_EMP_RETRIES Retries;
IPMI_DEST_TYPE_SPECIFIC DestinationTypeSpecific;
} IPMI_EMP_DESTINATION_INFO;
typedef union {
struct {
UINT8 Parity : 3;
UINT8 CharacterSize : 1;
UINT8 StopBit : 1;
UINT8 DtrHangup : 1;
UINT8 FlowControl : 2;
} Bits;
UINT8 Uint8;
} IPMI_EMP_DESTINATION_COM_SETTING_DATA_2;
typedef union {
struct {
UINT8 BitRate : 4;
UINT8 Reserved : 4;
} Bits;
UINT8 Uint8;
} IPMI_EMP_BIT_RATE;
typedef struct {
IPMI_EMP_DESTINATION_SELECTOR DestinationSelector;
IPMI_EMP_DESTINATION_COM_SETTING_DATA_2 Data2;
IPMI_EMP_BIT_RATE BitRate;
} IPMI_EMP_DESTINATION_COM_SETTING;
typedef union {
struct {
UINT8 DialStringSelector : 4;
UINT8 Reserved : 4;
} Bits;
UINT8 Uint8;
} IPMI_DIAL_STRING_SELECTOR;
typedef struct {
IPMI_DIAL_STRING_SELECTOR DestinationSelector;
UINT8 Reserved;
UINT8 DialString[48];
} IPMI_DESTINATION_DIAL_STRING;
typedef union {
UINT32 IpAddressLong;
UINT8 IpAddress[4];
} IPMI_PPP_IP_ADDRESS;
typedef union {
struct {
UINT8 IpAddressSelector : 4;
UINT8 Reserved : 4;
} Bits;
UINT8 Uint8;
} IPMI_DESTINATION_IP_ADDRESS_SELECTOR;
typedef struct {
IPMI_DESTINATION_IP_ADDRESS_SELECTOR DestinationSelector;
IPMI_PPP_IP_ADDRESS PppIpAddress;
} IPMI_DESTINATION_IP_ADDRESS;
typedef union {
struct {
UINT8 TapServiceSelector : 4;
UINT8 TapDialStringSelector : 4;
} Bits;
UINT8 Uint8;
} IPMI_TAP_DIAL_STRING_SERVICE_SELECTOR;
typedef struct {
UINT8 TapSelector;
IPMI_TAP_DIAL_STRING_SERVICE_SELECTOR TapDialStringServiceSelector;
} IPMI_DESTINATION_TAP_ACCOUNT;
typedef struct {
UINT8 TapSelector;
UINT8 PagerIdString[16];
} IPMI_TAP_PAGER_ID_STRING;
typedef union {
UINT8 OptionData;
IPMI_EMP_AUTH_TYPE EmpAuthType;
IPMI_EMP_CONNECTION_TYPE EmpConnectionType;
IPMI_EMP_INACTIVITY_TIMEOUT EmpInactivityTimeout;
IPMI_EMP_CHANNEL_CALLBACK_CONTROL EmpCallbackControl;
IPMI_EMP_SESSION_TERMINATION EmpSessionTermination;
IPMI_EMP_MESSAGING_COM_SETTING EmpMessagingComSetting;
IPMI_EMP_MODEM_RING_TIME EmpModemRingTime;
IPMI_EMP_MODEM_INIT_STRING EmpModemInitString;
IPMI_EMP_MODEM_ESC_SEQUENCE EmpModemEscSequence;
IPMI_EMP_MODEM_HANGUP_SEQUENCE EmpModemHangupSequence;
IPMI_MODEM_DIALUP_COMMAND EmpModemDialupCommand;
IPMI_PAGE_BLACKOUT_INTERVAL EmpPageBlackoutInterval;
IPMI_EMP_COMMUNITY_STRING EmpCommunityString;
IPMI_EMP_DESTINATION_INFO EmpDestinationInfo;
IPMI_EMP_DESTINATION_COM_SETTING EmpDestinationComSetting;
UINT8 CallRetryBusySignalInterval;
IPMI_DESTINATION_DIAL_STRING DestinationDialString;
IPMI_DESTINATION_IP_ADDRESS DestinationIpAddress;
IPMI_DESTINATION_TAP_ACCOUNT DestinationTapAccount;
IPMI_TAP_PAGER_ID_STRING TapPagerIdString;
} IPMI_EMP_OPTIONS;
//
// Definitions for Get Serial/Modem Configuration command
//
#define IPMI_TRANSPORT_GET_SERIAL_CONFIGURATION 0x11
//
// Constants and Structure definitions for "Get Serial/Modem Configuration" command to follow here
//
//
// Definitions for Set Serial/Modem Mux command
//
#define IPMI_TRANSPORT_SET_SERIAL_MUX 0x12
//
// Constants and Structure definitions for "Set Serial/Modem Mux" command to follow here
//
//
// Set Serial/Modem Mux command request return status
//
#define IPMI_MUX_SETTING_REQUEST_REJECTED 0x00
#define IPMI_MUX_SETTING_REQUEST_ACCEPTED 0x01
//
// Definitions for serial multiplex settings
//
#define IPMI_MUX_SETTING_GET_MUX_SETTING 0x0
#define IPMI_MUX_SETTING_REQUEST_MUX_TO_SYSTEM 0x1
#define IPMI_MUX_SETTING_REQUEST_MUX_TO_BMC 0x2
#define IPMI_MUX_SETTING_FORCE_MUX_TO_SYSTEM 0x3
#define IPMI_MUX_SETTING_FORCE_MUX_TO_BMC 0x4
#define IPMI_MUX_SETTING_BLOCK_REQUEST_MUX_TO_SYSTEM 0x5
#define IPMI_MUX_SETTING_ALLOW_REQUEST_MUX_TO_SYSTEM 0x6
#define IPMI_MUX_SETTING_BLOCK_REQUEST_MUX_TO_BMC 0x7
#define IPMI_MUX_SETTING_ALLOW_REQUEST_MUX_TO_BMC 0x8
typedef union {
struct {
UINT8 ChannelNo : 4;
UINT8 Reserved : 4;
} Bits;
UINT8 Uint8;
} IPMI_MUX_CHANNEL_NUM;
typedef union {
struct {
UINT8 MuxSetting : 4;
UINT8 Reserved : 4;
} Bits;
UINT8 Uint8;
} IPMI_MUX_SETTING_REQUEST;
typedef struct {
IPMI_MUX_CHANNEL_NUM ChannelNumber;
IPMI_MUX_SETTING_REQUEST MuxSetting;
} IPMI_SET_SERIAL_MODEM_MUX_COMMAND_REQUEST;
typedef union {
struct {
UINT8 MuxSetToBmc : 1;
UINT8 CommandStatus : 1;
UINT8 MessagingSessionActive : 1;
UINT8 AlertInProgress : 1;
UINT8 Reserved : 2;
UINT8 MuxToBmcAllowed : 1;
UINT8 MuxToSystemBlocked : 1;
} Bits;
UINT8 Uint8;
} IPMI_MUX_SETTING_PRESENT_STATE;
typedef struct {
UINT8 CompletionCode;
IPMI_MUX_SETTING_PRESENT_STATE MuxSetting;
} IPMI_SET_SERIAL_MODEM_MUX_COMMAND_RESPONSE;
//
// Definitions for Get TAP Response Code command
//
#define IPMI_TRANSPORT_GET_TAP_RESPONSE_CODE 0x13
//
// Constants and Structure definitions for "Get TAP Response Code" command to follow here
//
//
// Definitions for Set PPP UDP Proxy Transmit Data command
//
#define IPMI_TRANSPORT_SET_PPP_UDP_PROXY_TXDATA 0x14
//
// Constants and Structure definitions for "Set PPP UDP Proxy Transmit Data" command to follow here
//
//
// Definitions for Get PPP UDP Proxy Transmit Data command
//
#define IPMI_TRANSPORT_GET_PPP_UDP_PROXY_TXDATA 0x15
//
// Constants and Structure definitions for "Get PPP UDP Proxy Transmit Data" command to follow here
//
//
// Definitions for Send PPP UDP Proxy Packet command
//
#define IPMI_TRANSPORT_SEND_PPP_UDP_PROXY_PACKET 0x16
//
// Constants and Structure definitions for "Send PPP UDP Proxy Packet" command to follow here
//
//
// Definitions for Get PPP UDP Proxy Receive Data command
//
#define IPMI_TRANSPORT_GET_PPP_UDP_PROXY_RX 0x17
//
// Constants and Structure definitions for "Get PPP UDP Proxy Receive Data" command to follow here
//
//
// Definitions for Serial/Modem connection active command
//
#define IPMI_TRANSPORT_SERIAL_CONNECTION_ACTIVE 0x18
//
// Constants and Structure definitions for "Serial/Modem connection active" command to follow here
//
//
// Definitions for Callback command
//
#define IPMI_TRANSPORT_CALLBACK 0x19
//
// Constants and Structure definitions for "Callback" command to follow here
//
//
// Definitions for Set user Callback Options command
//
#define IPMI_TRANSPORT_SET_USER_CALLBACK_OPTIONS 0x1A
//
// Constants and Structure definitions for "Set user Callback Options" command to follow here
//
//
// Definitions for Get user Callback Options command
//
#define IPMI_TRANSPORT_GET_USER_CALLBACK_OPTIONS 0x1B
//
// Constants and Structure definitions for "Get user Callback Options" command to follow here
//
//
// Below is Definitions for SOL Commands (Chapter 26)
//
//
// Definitions for SOL activating command
//
#define IPMI_TRANSPORT_SOL_ACTIVATING 0x20
//
// Constants and Structure definitions for "SOL activating" command to follow here
//
typedef union {
struct {
UINT8 SessionState : 4;
UINT8 Reserved : 4;
} Bits;
UINT8 Uint8;
} IPMI_SOL_SESSION_STATE;
typedef struct {
IPMI_SOL_SESSION_STATE SessionState;
UINT8 PayloadInstance;
UINT8 FormatVersionMajor; // 1
UINT8 FormatVersionMinor; // 0
} IPMI_SOL_ACTIVATING_REQUEST;
//
// Definitions for Set SOL Configuration Parameters command
//
#define IPMI_TRANSPORT_SET_SOL_CONFIG_PARAM 0x21
//
// Constants and Structure definitions for "Set SOL Configuration Parameters" command to follow here
//
//
// SOL Configuration Parameters selector
//
#define IPMI_SOL_CONFIGURATION_PARAMETER_SET_IN_PROGRESS 0
#define IPMI_SOL_CONFIGURATION_PARAMETER_SOL_ENABLE 1
#define IPMI_SOL_CONFIGURATION_PARAMETER_SOL_AUTHENTICATION 2
#define IPMI_SOL_CONFIGURATION_PARAMETER_SOL_CHARACTER_PARAM 3
#define IPMI_SOL_CONFIGURATION_PARAMETER_SOL_RETRY 4
#define IPMI_SOL_CONFIGURATION_PARAMETER_SOL_NV_BIT_RATE 5
#define IPMI_SOL_CONFIGURATION_PARAMETER_SOL_VOLATILE_BIT_RATE 6
#define IPMI_SOL_CONFIGURATION_PARAMETER_SOL_PAYLOAD_CHANNEL 7
#define IPMI_SOL_CONFIGURATION_PARAMETER_SOL_PAYLOAD_PORT 8
typedef union {
struct {
UINT8 ChannelNumber : 4;
UINT8 Reserved : 4;
} Bits;
UINT8 Uint8;
} IPMI_SET_SOL_CONFIG_PARAM_CHANNEL_NUM;
typedef struct {
IPMI_SET_SOL_CONFIG_PARAM_CHANNEL_NUM ChannelNumber;
UINT8 ParameterSelector;
UINT8 ParameterData[0];
} IPMI_SET_SOL_CONFIGURATION_PARAMETERS_REQUEST;
//
// Definitions for Get SOL Configuration Parameters command
//
#define IPMI_TRANSPORT_GET_SOL_CONFIG_PARAM 0x22
//
// Constants and Structure definitions for "Get SOL Configuration Parameters" command to follow here
//
typedef union {
struct {
UINT8 ChannelNumber : 4;
UINT8 Reserved : 3;
UINT8 GetParameter : 1;
} Bits;
UINT8 Uint8;
} IPMI_GET_SOL_CONFIG_PARAM_CHANNEL_NUM;
typedef struct {
IPMI_GET_SOL_CONFIG_PARAM_CHANNEL_NUM ChannelNumber;
UINT8 ParameterSelector;
UINT8 SetSelector;
UINT8 BlockSelector;
} IPMI_GET_SOL_CONFIGURATION_PARAMETERS_REQUEST;
typedef struct {
UINT8 CompletionCode;
UINT8 ParameterRevision;
UINT8 ParameterData[0];
} IPMI_GET_SOL_CONFIGURATION_PARAMETERS_RESPONSE;
#pragma pack()
#endif