2 IPMI 2.0 definitions from the IPMI Specification Version 2.0, Revision 1.1.
4 This file contains all NetFn App commands, including:
5 IPM Device "Global" Commands (Chapter 20)
6 Firmware Firewall & Command Discovery Commands (Chapter 21)
7 BMC Watchdog Timer Commands (Chapter 27)
8 IPMI Messaging Support Commands (Chapter 22)
9 RMCP+ Support and Payload Commands (Chapter 24)
11 See IPMI specification, Appendix G, Command Assignments
12 and Appendix H, Sub-function Assignments.
14 Copyright (c) 1999 - 2018, Intel Corporation. All rights reserved.<BR>
15 Copyright (C) 2023 Advanced Micro Devices, Inc. All rights reserved.<BR>
16 SPDX-License-Identifier: BSD-2-Clause-Patent
19 #ifndef _IPMI_NET_FN_APP_H_
20 #define _IPMI_NET_FN_APP_H_
24 // Net function definition for App command
26 #define IPMI_NETFN_APP 0x06
29 // Below is Definitions for IPM Device "Global" Commands (Chapter 20)
33 // Definitions for Get Device ID command
35 #define IPMI_APP_GET_DEVICE_ID 0x1
38 // Constants and Structure definitions for "Get Device ID" command to follow here
42 UINT8 DeviceRevision
: 4;
47 } IPMI_GET_DEVICE_ID_DEVICE_REV
;
51 UINT8 MajorFirmwareRev
: 7;
55 } IPMI_GET_DEVICE_ID_FIRMWARE_REV_1
;
59 UINT8 SensorDeviceSupport
: 1;
60 UINT8 SdrRepositorySupport
: 1;
61 UINT8 SelDeviceSupport
: 1;
62 UINT8 FruInventorySupport
: 1;
63 UINT8 IpmbMessageReceiver
: 1;
64 UINT8 IpmbMessageGenerator
: 1;
65 UINT8 BridgeSupport
: 1;
66 UINT8 ChassisSupport
: 1;
69 } IPMI_GET_DEVICE_ID_DEVICE_SUPPORT
;
74 IPMI_GET_DEVICE_ID_DEVICE_REV DeviceRevision
;
75 IPMI_GET_DEVICE_ID_FIRMWARE_REV_1 FirmwareRev1
;
76 UINT8 MinorFirmwareRev
;
77 UINT8 SpecificationVersion
;
78 IPMI_GET_DEVICE_ID_DEVICE_SUPPORT DeviceSupport
;
79 UINT8 ManufacturerId
[3];
81 UINT32 AuxFirmwareRevInfo
;
82 } IPMI_GET_DEVICE_ID_RESPONSE
;
85 // Definitions for Cold Reset command
87 #define IPMI_APP_COLD_RESET 0x2
90 // Constants and Structure definitions for "Cold Reset" command to follow here
94 // Definitions for Warm Reset command
96 #define IPMI_APP_WARM_RESET 0x3
99 // Constants and Structure definitions for "Warm Reset" command to follow here
103 // Definitions for Get Self Results command
105 #define IPMI_APP_GET_SELFTEST_RESULTS 0x4
108 // Constants and Structure definitions for "Get Self Test Results" command to follow here
111 UINT8 CompletionCode
;
114 } IPMI_SELF_TEST_RESULT_RESPONSE
;
116 #define IPMI_APP_SELFTEST_NO_ERROR 0x55
117 #define IPMI_APP_SELFTEST_NOT_IMPLEMENTED 0x56
118 #define IPMI_APP_SELFTEST_ERROR 0x57
119 #define IPMI_APP_SELFTEST_FATAL_HW_ERROR 0x58
120 #define IPMI_APP_SELFTEST_INACCESSIBLE_SEL 0x80
121 #define IPMI_APP_SELFTEST_INACCESSIBLE_SDR 0x40
122 #define IPMI_APP_SELFTEST_INACCESSIBLE_FRU 0x20
123 #define IPMI_APP_SELFTEST_IPMB_SIGNAL_FAIL 0x10
124 #define IPMI_APP_SELFTEST_SDR_REPOSITORY_EMPTY 0x08
125 #define IPMI_APP_SELFTEST_FRU_CORRUPT 0x04
126 #define IPMI_APP_SELFTEST_FW_BOOTBLOCK_CORRUPT 0x02
127 #define IPMI_APP_SELFTEST_FW_CORRUPT 0x01
130 // Definitions for Manufacturing Test ON command
132 #define IPMI_APP_MANUFACTURING_TEST_ON 0x5
135 // Constants and Structure definitions for "Manufacturing Test ON" command to follow here
139 // Definitions for Set ACPI Power State command
141 #define IPMI_APP_SET_ACPI_POWERSTATE 0x6
144 // Constants and Structure definitions for "Set ACPI Power State" command to follow here
148 // Definitions for System Power State
151 #define IPMI_SYSTEM_POWER_STATE_S0_G0 0x0
152 #define IPMI_SYSTEM_POWER_STATE_S1 0x1
153 #define IPMI_SYSTEM_POWER_STATE_S2 0x2
154 #define IPMI_SYSTEM_POWER_STATE_S3 0x3
155 #define IPMI_SYSTEM_POWER_STATE_S4 0x4
157 #define IPMI_SYSTEM_POWER_STATE_S5_G2 0x5
158 // Sent when message source cannot differentiate between S4 and S5
159 #define IPMI_SYSTEM_POWER_STATE_S4_S5 0x6
161 #define IPMI_SYSTEM_POWER_STATE_G3 0x7
162 // Sleeping - cannot differentiate between S1-S3
163 #define IPMI_SYSTEM_POWER_STATE_SLEEPING 0x8
164 // Sleeping - cannot differentiate between S1-S4
165 #define IPMI_SYSTEM_POWER_STATE_G1_SLEEPING 0x9
166 // S5 entered by override
167 #define IPMI_SYSTEM_POWER_STATE_OVERRIDE 0xA
168 #define IPMI_SYSTEM_POWER_STATE_LEGACY_ON 0x20
169 #define IPMI_SYSTEM_POWER_STATE_LEGACY_OFF 0x21
170 #define IPMI_SYSTEM_POWER_STATE_UNKNOWN 0x2A
171 #define IPMI_SYSTEM_POWER_STATE_NO_CHANGE 0x7F
174 // Definitions for Device Power State
176 #define IPMI_DEVICE_POWER_STATE_D0 0x0
177 #define IPMI_DEVICE_POWER_STATE_D1 0x1
178 #define IPMI_DEVICE_POWER_STATE_D2 0x2
179 #define IPMI_DEVICE_POWER_STATE_D3 0x3
180 #define IPMI_DEVICE_POWER_STATE_UNKNOWN 0x2A
181 #define IPMI_DEVICE_POWER_STATE_NO_CHANGE 0x7F
185 UINT8 PowerState
: 7;
186 UINT8 StateChange
: 1;
189 } IPMI_ACPI_POWER_STATE
;
192 IPMI_ACPI_POWER_STATE SystemPowerState
;
193 IPMI_ACPI_POWER_STATE DevicePowerState
;
194 } IPMI_SET_ACPI_POWER_STATE_REQUEST
;
197 // Definitions for Get ACPI Power State command
199 #define IPMI_APP_GET_ACPI_POWERSTATE 0x7
202 // Constants and Structure definitions for "Get ACPI Power State" command to follow here
206 // Definitions for Get Device GUID command
208 #define IPMI_APP_GET_DEVICE_GUID 0x8
211 // Constants and Structure definitions for "Get Device GUID" command to follow here
214 // Message structure definition for "Get Device Guid" IPMI command
217 UINT8 CompletionCode
;
219 } IPMI_GET_DEVICE_GUID_RESPONSE
;
222 // Below is Definitions for BMC Watchdog Timer Commands (Chapter 27)
226 // Definitions for Reset WatchDog Timer command
228 #define IPMI_APP_RESET_WATCHDOG_TIMER 0x22
231 // Definitions for Set WatchDog Timer command
233 #define IPMI_APP_SET_WATCHDOG_TIMER 0x24
236 // Constants and Structure definitions for "Set WatchDog Timer" command to follow here
240 // Definitions for watchdog timer use
242 #define IPMI_WATCHDOG_TIMER_BIOS_FRB2 0x1
243 #define IPMI_WATCHDOG_TIMER_BIOS_POST 0x2
244 #define IPMI_WATCHDOG_TIMER_OS_LOADER 0x3
245 #define IPMI_WATCHDOG_TIMER_SMS 0x4
246 #define IPMI_WATCHDOG_TIMER_OEM 0x5
249 // Structure definition for timer Use
255 UINT8 TimerRunning
: 1;
256 UINT8 TimerUseExpirationFlagLog
: 1;
259 } IPMI_WATCHDOG_TIMER_USE
;
262 // Definitions for watchdog timeout action
264 #define IPMI_WATCHDOG_TIMER_ACTION_NO_ACTION 0x0
265 #define IPMI_WATCHDOG_TIMER_ACTION_HARD_RESET 0x1
266 #define IPMI_WATCHDOG_TIMER_ACTION_POWER_DONW 0x2
267 #define IPMI_WATCHDOG_TIMER_ACTION_POWER_CYCLE 0x3
270 // Definitions for watchdog pre-timeout interrupt
272 #define IPMI_WATCHDOG_PRE_TIMEOUT_INTERRUPT_NONE 0x0
273 #define IPMI_WATCHDOG_PRE_TIMEOUT_INTERRUPT_SMI 0x1
274 #define IPMI_WATCHDOG_PRE_TIMEOUT_INTERRUPT_NMI 0x2
275 #define IPMI_WATCHDOG_PRE_TIMEOUT_INTERRUPT_MESSAGING 0x3
278 // Structure definitions for Timer Actions
282 UINT8 TimeoutAction
: 3;
284 UINT8 PreTimeoutInterrupt
: 3;
288 } IPMI_WATCHDOG_TIMER_ACTIONS
;
291 // Bit definitions for Timer use expiration flags
293 #define IPMI_WATCHDOG_TIMER_EXPIRATION_FLAG_BIOS_FRB2 BIT1
294 #define IPMI_WATCHDOG_TIMER_EXPIRATION_FLAG_BIOS_POST BIT2
295 #define IPMI_WATCHDOG_TIMER_EXPIRATION_FLAG_OS_LOAD BIT3
296 #define IPMI_WATCHDOG_TIMER_EXPIRATION_FLAG_SMS_OS BIT4
297 #define IPMI_WATCHDOG_TIMER_EXPIRATION_FLAG_OEM BIT5
300 IPMI_WATCHDOG_TIMER_USE TimerUse
;
301 IPMI_WATCHDOG_TIMER_ACTIONS TimerActions
;
302 UINT8 PretimeoutInterval
;
303 UINT8 TimerUseExpirationFlagsClear
;
304 UINT16 InitialCountdownValue
;
305 } IPMI_SET_WATCHDOG_TIMER_REQUEST
;
308 // Definitions for Get WatchDog Timer command
310 #define IPMI_APP_GET_WATCHDOG_TIMER 0x25
313 // Constants and Structure definitions for "Get WatchDog Timer" command to follow here
316 UINT8 CompletionCode
;
317 IPMI_WATCHDOG_TIMER_USE TimerUse
;
318 IPMI_WATCHDOG_TIMER_ACTIONS TimerActions
;
319 UINT8 PretimeoutInterval
;
320 UINT8 TimerUseExpirationFlagsClear
;
321 UINT16 InitialCountdownValue
;
322 UINT16 PresentCountdownValue
;
323 } IPMI_GET_WATCHDOG_TIMER_RESPONSE
;
326 // Below is Definitions for IPMI Messaging Support Commands (Chapter 22)
330 // Definitions for Set BMC Global Enables command
332 #define IPMI_APP_SET_BMC_GLOBAL_ENABLES 0x2E
335 // Constants and Structure definitions for "Set BMC Global Enables " command to follow here
339 UINT8 ReceiveMessageQueueInterrupt
: 1;
340 UINT8 EventMessageBufferFullInterrupt
: 1;
341 UINT8 EventMessageBuffer
: 1;
342 UINT8 SystemEventLogging
: 1;
344 UINT8 Oem0Enable
: 1;
345 UINT8 Oem1Enable
: 1;
346 UINT8 Oem2Enable
: 1;
349 } IPMI_BMC_GLOBAL_ENABLES
;
352 IPMI_BMC_GLOBAL_ENABLES SetEnables
;
353 } IPMI_SET_BMC_GLOBAL_ENABLES_REQUEST
;
356 // Definitions for Get BMC Global Enables command
358 #define IPMI_APP_GET_BMC_GLOBAL_ENABLES 0x2F
361 // Constants and Structure definitions for "Get BMC Global Enables " command to follow here
364 UINT8 CompletionCode
;
365 IPMI_BMC_GLOBAL_ENABLES GetEnables
;
366 } IPMI_GET_BMC_GLOBAL_ENABLES_RESPONSE
;
369 // Definitions for Clear Message Flags command
371 #define IPMI_APP_CLEAR_MESSAGE_FLAGS 0x30
374 // Constants and Structure definitions for "Clear Message Flags" command to follow here
378 UINT8 ReceiveMessageQueue
: 1;
379 UINT8 EventMessageBuffer
: 1;
381 UINT8 WatchdogPerTimeoutInterrupt
: 1;
388 } IPMI_MESSAGE_FLAGS
;
391 IPMI_MESSAGE_FLAGS ClearFlags
;
392 } IPMI_CLEAR_MESSAGE_FLAGS_REQUEST
;
395 // Definitions for Get Message Flags command
397 #define IPMI_APP_GET_MESSAGE_FLAGS 0x31
400 // Constants and Structure definitions for "Get Message Flags" command to follow here
403 UINT8 CompletionCode
;
404 IPMI_MESSAGE_FLAGS GetFlags
;
405 } IPMI_GET_MESSAGE_FLAGS_RESPONSE
;
408 // Definitions for Enable Message Channel Receive command
410 #define IPMI_APP_ENABLE_MESSAGE_CHANNEL_RECEIVE 0x32
413 // Constants and Structure definitions for "Enable Message Channel Receive" command to follow here
417 // Definitions for Get Message command
419 #define IPMI_APP_GET_MESSAGE 0x33
422 // Constants and Structure definitions for "Get Message" command to follow here
426 UINT8 ChannelNumber
: 4;
427 UINT8 InferredPrivilegeLevel
: 4;
430 } IPMI_GET_MESSAGE_CHANNEL_NUMBER
;
433 UINT8 CompletionCode
;
434 IPMI_GET_MESSAGE_CHANNEL_NUMBER ChannelNumber
;
435 UINT8 MessageData
[0];
436 } IPMI_GET_MESSAGE_RESPONSE
;
439 // Definitions for Send Message command
441 #define IPMI_APP_SEND_MESSAGE 0x34
444 // Constants and Structure definitions for "Send Message" command to follow here
448 UINT8 ChannelNumber
: 4;
449 UINT8 Authentication
: 1;
450 UINT8 Encryption
: 1;
454 } IPMI_SEND_MESSAGE_CHANNEL_NUMBER
;
457 UINT8 CompletionCode
;
458 IPMI_SEND_MESSAGE_CHANNEL_NUMBER ChannelNumber
;
459 UINT8 MessageData
[0];
460 } IPMI_SEND_MESSAGE_REQUEST
;
463 UINT8 CompletionCode
;
464 UINT8 ResponseData
[0];
465 } IPMI_SEND_MESSAGE_RESPONSE
;
468 // Definitions for Read Event Message Buffer command
470 #define IPMI_APP_READ_EVENT_MSG_BUFFER 0x35
473 // Constants and Structure definitions for "Read Event Message Buffer" command to follow here
477 // Definitions for Get BT Interface Capabilities command
479 #define IPMI_APP_GET_BT_INTERFACE_CAPABILITY 0x36
482 // Constants and Structure definitions for "Get BT Interface Capabilities" command to follow here
486 // Definitions for Get System GUID command
488 #define IPMI_APP_GET_SYSTEM_GUID 0x37
491 UINT8 CompletionCode
;
493 } IPMI_GET_SYSTEM_UUID_RESPONSE
;
496 // Constants and Structure definitions for "Get System GUID" command to follow here
500 // Definitions for Get Channel Authentication Capabilities command
502 #define IPMI_APP_GET_CHANNEL_AUTHENTICATION_CAPABILITIES 0x38
505 // Constants and Structure definitions for "Get Channel Authentication Capabilities" command to follow here
509 // Definitions for Get Session Challenge command
511 #define IPMI_APP_GET_SESSION_CHALLENGE 0x39
514 // Constants and Structure definitions for "Get Session Challenge" command to follow here
518 // Definitions for Activate Session command
520 #define IPMI_APP_ACTIVATE_SESSION 0x3A
523 // Constants and Structure definitions for "Activate Session" command to follow here
527 // Definitions for Set Session Privelege Level command
529 #define IPMI_APP_SET_SESSION_PRIVELEGE_LEVEL 0x3B
532 // Constants and Structure definitions for "Set Session Privelege Level" command to follow here
536 // Definitions for Close Session command
538 #define IPMI_APP_CLOSE_SESSION 0x3C
541 // Constants and Structure definitions for "Close Session" command to follow here
545 // Definitions for Get Session Info command
547 #define IPMI_APP_GET_SESSION_INFO 0x3D
550 // Constants and Structure definitions for "Get Session Info" command to follow here
554 // Definitions for Get Auth Code command
556 #define IPMI_APP_GET_AUTHCODE 0x3F
559 // Constants and Structure definitions for "Get AuthCode" command to follow here
563 // Definitions for Set Channel Access command
565 #define IPMI_APP_SET_CHANNEL_ACCESS 0x40
568 // Constants and Structure definitions for "Set Channel Access" command to follow here
572 // Definitions for Get Channel Access command
574 #define IPMI_APP_GET_CHANNEL_ACCESS 0x41
577 // Constants and Structure definitions for "Get Channel Access" command to follow here
581 // Definitions for channel access memory type in Get Channel Access command request
583 #define IPMI_CHANNEL_ACCESS_MEMORY_TYPE_NON_VOLATILE 0x1
584 #define IPMI_CHANNEL_ACCESS_MEMORY_TYPE_PRESENT_VOLATILE_SETTING 0x2
587 // Definitions for channel access modes in Get Channel Access command response
589 #define IPMI_CHANNEL_ACCESS_MODES_DISABLED 0x0
590 #define IPMI_CHANNEL_ACCESS_MODES_PRE_BOOT_ONLY 0x1
591 #define IPMI_CHANNEL_ACCESS_MODES_ALWAYS_AVAILABLE 0x2
592 #define IPMI_CHANNEL_ACCESS_MODES_SHARED 0x3
600 } IPMI_GET_CHANNEL_ACCESS_CHANNEL_NUMBER
;
605 UINT8 MemoryType
: 2;
608 } IPMI_GET_CHANNEL_ACCESS_TYPE
;
611 IPMI_GET_CHANNEL_ACCESS_CHANNEL_NUMBER ChannelNumber
;
612 IPMI_GET_CHANNEL_ACCESS_TYPE AccessType
;
613 } IPMI_GET_CHANNEL_ACCESS_REQUEST
;
617 UINT8 AccessMode
: 3;
618 UINT8 UserLevelAuthEnabled
: 1;
619 UINT8 MessageAuthEnable
: 1;
624 } IPMI_GET_CHANNEL_ACCESS_CHANNEL_ACCESS
;
628 UINT8 ChannelPriviledgeLimit
: 4;
632 } IPMI_GET_CHANNEL_ACCESS_PRIVILEGE_LIMIT
;
635 UINT8 CompletionCode
;
636 IPMI_GET_CHANNEL_ACCESS_CHANNEL_ACCESS ChannelAccess
;
637 IPMI_GET_CHANNEL_ACCESS_PRIVILEGE_LIMIT PrivilegeLimit
;
638 } IPMI_GET_CHANNEL_ACCESS_RESPONSE
;
641 // Definitions for Get Channel Info command
643 #define IPMI_APP_GET_CHANNEL_INFO 0x42
646 // Constants and Structure definitions for "Get Channel Info" command to follow here
650 // Definitions for channel media type
653 #define IPMI_CHANNEL_MEDIA_TYPE_IPMB 0x1
655 #define IPMI_CHANNEL_MEDIA_TYPE_ICMB_1_0 0x2
657 #define IPMI_CHANNEL_MEDIA_TYPE_ICMB_0_9 0x3
659 #define IPMI_CHANNEL_MEDIA_TYPE_802_3_LAN 0x4
660 // Asynch. Serial/Modem (RS-232)
661 #define IPMI_CHANNEL_MEDIA_TYPE_RS_232 0x5
663 #define IPMI_CHANNEL_MEDIA_TYPE_OTHER_LAN 0x6
665 #define IPMI_CHANNEL_MEDIA_TYPE_PCI_SM_BUS 0x7
667 #define IPMI_CHANNEL_MEDIA_TYPE_SM_BUS_V1 0x8
669 #define IPMI_CHANNEL_MEDIA_TYPE_SM_BUS_V2 0x9
671 #define IPMI_CHANNEL_MEDIA_TYPE_USB1 0xA
673 #define IPMI_CHANNEL_MEDIA_TYPE_USB2 0xB
674 // System Interface (KCS, SMIC, or BT)
675 #define IPMI_CHANNEL_MEDIA_TYPE_SYSTEM_INTERFACE 0xC
677 #define IPMI_CHANNEL_MEDIA_TYPE_OEM_START 0x60
678 #define IPMI_CHANNEL_MEDIA_TYPE_OEM_END 0x7F
681 // Definitions for channel protocol type
684 #define IPMI_CHANNEL_PROTOCOL_TYPE_NA 0x00
686 #define IPMI_CHANNEL_PROTOCOL_TYPE_IPMB_1_0 0x01
688 #define IPMI_CHANNEL_PROTOCOL_TYPE_ICMB_1_0 0x02
690 #define IPMI_CHANNEL_PROTOCOL_TYPE_RESERVED 0x03
692 #define IPMI_CHANNEL_PROTOCOL_TYPE_IPMI_SMBUS 0x04
694 #define IPMI_CHANNEL_PROTOCOL_TYPE_KCS 0x05
696 #define IPMI_CHANNEL_PROTOCOL_TYPE_SMIC 0x06
698 #define IPMI_CHANNEL_PROTOCOL_TYPE_BT_10 0x07
700 #define IPMI_CHANNEL_PROTOCOL_TYPE_BT_15 0x08
702 #define IPMI_CHANNEL_PROTOCOL_TYPE_TMODE 0x09
710 } IPMI_CHANNEL_INFO_CHANNEL_NUMBER
;
714 UINT8 ChannelMediumType
: 7;
718 } IPMI_CHANNEL_INFO_MEDIUM_TYPE
;
722 UINT8 ChannelProtocolType
: 5;
726 } IPMI_CHANNEL_INFO_PROTOCOL_TYPE
;
730 UINT8 ActiveSessionCount
: 6;
731 UINT8 SessionSupport
: 2;
734 } IPMI_CHANNEL_INFO_SESSION_SUPPORT
;
737 UINT8 CompletionCode
;
738 IPMI_CHANNEL_INFO_CHANNEL_NUMBER ChannelNumber
;
739 IPMI_CHANNEL_INFO_MEDIUM_TYPE MediumType
;
740 IPMI_CHANNEL_INFO_PROTOCOL_TYPE ProtocolType
;
741 IPMI_CHANNEL_INFO_SESSION_SUPPORT SessionSupport
;
743 UINT16 AuxChannelInfo
;
744 } IPMI_GET_CHANNEL_INFO_RESPONSE
;
747 IPMI_CHANNEL_INFO_CHANNEL_NUMBER ChannelNumber
;
748 } IPMI_GET_CHANNEL_INFO_REQUEST
;
751 // Constants and Structure definitions for "Get Channel Info" command to follow here
755 // Definitions for Set User Access command
757 #define IPMI_APP_SET_USER_ACCESS 0x43
760 // Constants and Structure definitions for "Set User Access" command to follow here
764 // Definitions for Get User Access command
766 #define IPMI_APP_GET_USER_ACCESS 0x44
769 // Constants and Structure definitions for "Get User Access" command to follow here
777 } IPMI_GET_USER_ACCESS_CHANNEL_NUMBER
;
788 IPMI_GET_USER_ACCESS_CHANNEL_NUMBER ChannelNumber
;
790 } IPMI_GET_USER_ACCESS_REQUEST
;
798 } IPMI_GET_USER_ACCESS_MAX_USER_ID
;
802 UINT8 CurrentUserId
: 6;
803 UINT8 UserIdEnableStatus
: 2;
806 } IPMI_GET_USER_ACCESS_CURRENT_USER
;
810 UINT8 FixedUserId
: 6;
814 } IPMI_GET_USER_ACCESS_FIXED_NAME_USER
;
818 UINT8 UserPrivilegeLimit
: 4;
819 UINT8 EnableIpmiMessaging
: 1;
820 UINT8 EnableUserLinkAuthetication
: 1;
821 UINT8 UserAccessAvailable
: 1;
825 } IPMI_GET_USER_ACCESS_CHANNEL_ACCESS
;
828 UINT8 CompletionCode
;
829 IPMI_GET_USER_ACCESS_MAX_USER_ID MaxUserId
;
830 IPMI_GET_USER_ACCESS_CURRENT_USER CurrentUser
;
831 IPMI_GET_USER_ACCESS_FIXED_NAME_USER FixedNameUser
;
832 IPMI_GET_USER_ACCESS_CHANNEL_ACCESS ChannelAccess
;
833 } IPMI_GET_USER_ACCESS_RESPONSE
;
836 // Definitions for Set User Name command
838 #define IPMI_APP_SET_USER_NAME 0x45
841 // Constants and Structure definitions for "Set User Name" command to follow here
846 } IPMI_SET_USER_NAME_REQUEST
;
849 // Definitions for Get User Name command
851 #define IPMI_APP_GET_USER_NAME 0x46
854 // Constants and Structure definitions for "Get User Name" command to follow here
858 } IPMI_GET_USER_NAME_REQUEST
;
861 UINT8 CompletionCode
;
863 } IPMI_GET_USER_NAME_RESPONSE
;
866 // Definitions for Set User Password command
868 #define IPMI_APP_SET_USER_PASSWORD 0x47
871 // Constants and Structure definitions for "Set User Password" command to follow here
875 // Definitions for Set User password command operation type
877 #define IPMI_SET_USER_PASSWORD_OPERATION_TYPE_DISABLE_USER 0x0
878 #define IPMI_SET_USER_PASSWORD_OPERATION_TYPE_ENABLE_USER 0x1
879 #define IPMI_SET_USER_PASSWORD_OPERATION_TYPE_SET_PASSWORD 0x2
880 #define IPMI_SET_USER_PASSWORD_OPERATION_TYPE_TEST_PASSWORD 0x3
883 // Definitions for Set user password command password size
885 #define IPMI_SET_USER_PASSWORD_PASSWORD_SIZE_16 0x0
886 #define IPMI_SET_USER_PASSWORD_PASSWORD_SIZE_20 0x1
892 UINT8 PasswordSize
: 1;
895 } IPMI_SET_USER_PASSWORD_USER_ID
;
903 } IPMI_SET_USER_PASSWORD_OPERATION
;
906 IPMI_SET_USER_PASSWORD_USER_ID UserId
;
907 IPMI_SET_USER_PASSWORD_OPERATION Operation
;
908 UINT8 PasswordData
[0]; // 16 or 20 bytes, depending on the 'PasswordSize' field
909 } IPMI_SET_USER_PASSWORD_REQUEST
;
912 // Below is Definitions for RMCP+ Support and Payload Commands (Chapter 24)
916 // Definitions for Activate Payload command
918 #define IPMI_APP_ACTIVATE_PAYLOAD 0x48
921 // Constants and Structure definitions for "Activate Payload" command to follow here
925 // Definitions for De-Activate Payload command
927 #define IPMI_APP_DEACTIVATE_PAYLOAD 0x49
930 // Constants and Structure definitions for "DeActivate Payload" command to follow here
934 // Definitions for Get Payload activation Status command
936 #define IPMI_APP_GET_PAYLOAD_ACTIVATION_STATUS 0x4a
939 // Constants and Structure definitions for "Get Payload activation Status" command to follow here
943 // Definitions for Get Payload Instance Info command
945 #define IPMI_APP_GET_PAYLOAD_INSTANCE_INFO 0x4b
948 // Constants and Structure definitions for "Get Payload Instance Info" command to follow here
952 // Definitions for Set User Payload Access command
954 #define IPMI_APP_SET_USER_PAYLOAD_ACCESS 0x4C
957 // Constants and Structure definitions for "Set User Payload Access" command to follow here
961 // Definitions for Get User Payload Access command
963 #define IPMI_APP_GET_USER_PAYLOAD_ACCESS 0x4D
966 // Constants and Structure definitions for "Get User Payload Access" command to follow here
970 // Definitions for Get Channel Payload Support command
972 #define IPMI_APP_GET_CHANNEL_PAYLOAD_SUPPORT 0x4E
975 // Constants and Structure definitions for "Get Channel Payload Support" command to follow here
979 // Definitions for Get Channel Payload Version command
981 #define IPMI_APP_GET_CHANNEL_PAYLOAD_VERSION 0x4F
984 // Constants and Structure definitions for "Get Channel Payload Version" command to follow here
988 // Definitions for Get Channel OEM Payload Info command
990 #define IPMI_APP_GET_CHANNEL_OEM_PAYLOAD_INFO 0x50
993 // Constants and Structure definitions for "Get Channel OEM Payload Info" command to follow here
997 // Definitions for Master Write-Read command
999 #define IPMI_APP_MASTER_WRITE_READ 0x52
1002 // Constants and Structure definitions for "Master Write Read" command to follow here
1006 // Definitions for Get Channel Cipher Suites command
1008 #define IPMI_APP_GET_CHANNEL_CIPHER_SUITES 0x54
1011 // Constants and Structure definitions for "Get Channel Cipher Suites" command to follow here
1015 // Below is Definitions for RMCP+ Support and Payload Commands (Chapter 24, Section 3)
1019 // Definitions for Suspend-Resume Payload Encryption command
1021 #define IPMI_APP_SUSPEND_RESUME_PAYLOAD_ENCRYPTION 0x55
1024 // Constants and Structure definitions for "Suspend-Resume Payload Encryption" command to follow here
1028 // Below is Definitions for IPMI Messaging Support Commands (Chapter 22, Section 25 and 9)
1032 // Definitions for Set Channel Security Keys command
1034 #define IPMI_APP_SET_CHANNEL_SECURITY_KEYS 0x56
1037 // Constants and Structure definitions for "Set Channel Security Keys" command to follow here
1041 // Definitions for Get System Interface Capabilities command
1043 #define IPMI_APP_GET_SYSTEM_INTERFACE_CAPABILITIES 0x57
1046 // Constants and Structure definitions for "Get System Interface Capabilities" command to follow here
1050 // Definitions for Get System Interface Capabilities command SSIF transaction support
1052 #define IPMI_GET_SYSTEM_INTERFACE_CAPABILITIES_SSIF_TRANSACTION_SUPPORT_SINGLE_PARTITION_RW 0x0
1053 #define IPMI_GET_SYSTEM_INTERFACE_CAPABILITIES_SSIF_TRANSACTION_SUPPORT_MULTI_PARTITION_RW 0x1
1054 #define IPMI_GET_SYSTEM_INTERFACE_CAPABILITIES_SSIF_TRANSACTION_SUPPORT_MULTI_PARTITION_RW_WITH_MIDDLE 0x2