Introduction
Audience
Reference Documents
Conventions and Terminology
Background - Architectural Goals
New for IPMI v1.5
New for IPMI v2.0
IPMI Overview
Intelligent Platform Management
IPMI Relationship to other Management Standards
Management Controllers and the IPMB
IPMI Messaging
Sensor Model
System Event Log and Event Messages
Sensor Data Records & Capabilities Commands
Initialization Agent
Sensor Data Record Repository
Private Management Busses
FRU Information
FRU Devices
Entity Association Records
Linkage between Events and FRU Information
Differentiation and Feature Extensibility
System Interfaces
Other Messaging Interfaces
Serial/Modem Interface
LAN Interface
1.7.19aPayloads
Serial Over LAN (SOL)
IPMI and ASF
LAN Alerting
Serial/Modem Alerting and Paging
Platform Event Filtering (PEF)
Call Down Lists and Alert Policies
Channel Model, Authentication, Sessions, and Users
Standardized Watchdog Timer
Standardized POH Counter
Firmware Firewall
Command and Function Discovery
IPMI Hardware Components
Configuration Interfaces
IPMI and BIOS
System Management Software (SMS)
SMI Handler
Overview of Changes from IPMI v1.0
Logical Management Device Types
Baseboard Management Controller (BMC)
Required BMC Functions
General Mgmt. Satellite Controller Required Functions
Message Interface Description
Network Function Codes
Completion Codes
Completion Code Requirements
Response Field Truncation on non-zero Generic Completion Codes
Summary of Completion Code Use
Sensor Owner Identification
Software IDs (SWIDs)
Isolation from Message Content
IPMI Messaging Interfaces
Terminology
Channel Model
Channel Numbers
Channel Protocol Type
Channel Medium Type
Channel Access Modes
Logical Channels
Channel Privilege Levels
Users & Password Support
‘Anonymous Login’ Convention
Anonymous Login Status
System Interface Messaging
BMC Channels and Receive Message Queue
Event Message Buffer
System Interface Discovery and Multiple Interfaces
IPMI Sessions
Session-less Connections
Single-session Connections
Multi-session Connections
Per-Message and User Level Authentication Disables
Link Authentication
Summary of Connection Characteristics
Session Activation and IPMI Challenge-Response
Session Sequence Numbers
IPMI v1.5 Session Sequence Number Handling
Session Sequence Number Generation
IPMI v1.5 Inbound Session Sequence Number Tracking and Handling
IPMI v1.5 Out-of-order Packet Handling
IPMI v1.5 Outbound Session Sequence Number Tracking and Handling
IPMI v2.0 RMCP+ Session Sequence Number Handling
IPMI v2.0 RMCP+ Sliding Window
Session Inactivity Timeouts
Avoiding ‘Slot Stealing’
Additional Session Specifications and Characteristics
BMC Message Bridging
BMC LUN 10b Routing
Send Message Command From System Interface
Send Message Command with Response Tracking
Bridged Request Example
Message Size & Private Bus Transaction Size Requirements
IPMB Interface
IPMB Access via Master Write-Read command
BMC IPMB LUNs
Sending Messages to IPMB from System Software
Sending IPMB Messages to System Software
Testing for Event Message Buffer Support
ICMB Interface
Virtual ICMB Bridge Device
ICMB Bridge Commands in BMC using Channels
ICMB Bridging from System Interface to Remote IPMB using Channels
ICMB Bridging from Local IPMB to Remote IPMB using Channels
Keyboard Controller Style (KCS) Interface
KCS Interface/BMC LUNs
KCS Interface-BMC Request Message Format
BMC-KCS Interface Response Message Format
Logging Events from System Software via KCS Interface
KCS Interface Registers
KCS Interface Control Codes
Status Register
SMS_ATN Flag Usage
Command Register
Data Registers
KCS Control Codes
Performing KCS Interface Message Transfers
KCS Communication and Non-communication Interrupts
Physical Interrupt Line Sharing
Additional Specifications for the KCS interface
KCS Flow Diagrams
Write Processing Summary
Read Processing Summary
Error Processing Summary
Interrupting Messages in Progress
KCS Driver Design Recommendations
SMIC Interface
SMS Transfer Streams
SMIC Communication Register Overview
SMIC/BMC Message Interface Registers
Flags Register
Control/Status Register
Control and Status Codes
Data Register
Performing a single SMIC/BMC Transaction
Performing a SMIC/BMC Message Transfer
Interrupting Streams in Progress
Stream Switching
DATA_RDY Flag Handling
SMIC Control and Status Code Ranges
SMIC SMS Stream Control Codes
SMIC SMS Stream Status Codes
SMIC Messaging
SMIC/BMC LUNs
SMIC-BMC Request Message Format
BMC-SMIC Response Message Format
Logging Events from System Software via SMIC
Block Transfer (BT) Interface
BT Interface-BMC Request Message Format
BMC-BT Interface Response Message Format
Using the Seq Field
Response Expiration Handling
Logging Events from System Software via BT Interface
Host to BMC Interface
BT Host Interface Registers
BT BMC to Host Buffer (BMC2HOST)
BT Host to BMC Buffer (HOST2BMC)
BT Control Register (BT_CTRL)
BT Interrupt Mask Register (INTMASK)
Communication Protocol
Host and BMC Busy States
Host Command Power-On/Reset States
SMBus System Interface (SSIF)
Single Threaded Interface
Single-part Write
Multi-part Write
Error conditions for Multi-part Writes
Single-part Read Transaction
Multi-part Read Transactions
Retention of Output Data
SMBAlert Signal Handling
Enabling/disabling SSIF SMBAlert
Polling for output data
SMBus NACKs and Error Recovery
PEC Handling
SMBus Timeout and Hang Handling
Discovering SSIF
SSIF Support Requirements for IPMI v1.5-only BMCs
SSIF Support Requirements for IPMI v2.0 & Later BMCs
Summary of SMBus Commands Values for SSIF
SSIF IPMI Commands
SSIF Timing
IPMI LAN Interface
RMCP
ASF Messages in RMCP
RMCP Port Numbers
RMCP Message Format
Required ASF/RMCP Messages for IPMI-over-LAN
RMCP ACK Messages
RMCP ACK Handling
RMCP/ASF Presence Ping Message
RMCP/ASF Pong Message (Ping Response)
RMCP+
BMC Support Requirements for v1.5 and v2.0/RMCP+ Protocols
Session-less Command Support
IPMI Messages Encapsulation Under RMCP
RMCP/ASF and IPMI Byte Order
Example IPMI over LAN Packet
VLAN Support
IPMI LAN Message Format
LAN Alerting
IPMI LAN Configuration
IP and MAC Address Configuration
‘Teamed’ and Fail-over LAN Channels
ARP Handling and Gratuitous ARP
OS-Absent problems with ARP
Resolving ARP issues
BMC-generated ARPs
Retaining IP Addresses in a DHCP Environment
Resolving DHCP issues
Discovering Support For IPMI over IP Connections
IPMI v1.5 LAN Session Activation
IPMI v2.0/RMCP+ Session Activation
RMCP+ Session Termination
RMCP+ Open Session Request
RMCP+ Open Session Response
RAKP Messages
RAKP Message 1
RAKP Message 2
RAKP Message 3
RAKP Message 4
RMCP+ and RAKP Message Status Codes
Differences between v1.5 and v2.0/RMCP+ Sessions
IPMI v2.0 RMCP+ Payload Types
Payloads and Payload Type Numbers
IPMI Message Payloads and IPMI Commands
OEM Payload Type Handles
Payload Type Numbers
Authentication, Integrity, and Confidentiality Algorithm Numbers
RAKP-HMAC-SHA1 Authentication Algorithm
13.28.1b RAKP-HMAC-SHA256 Authentication Algorithm
RAKP-none Authentication Algorithm
RAKP-HMAC-MD5 Authentication Algorithm
Integrity Algorithms
Confidentiality (Encryption) Algorithms
AES-CBC-128 Encrypted Payload Format
Generating the Initialization Vector
Encryption with AES
CBC (Cipher Block Chaining)
xRC4 Encrypted Payload Format
Generating the xRC4 Initialization Vector
Initializing the xRC4 State Machines
RMCP+ Authenticated Key-Exchange Protocol (RAKP)
Generating Additional Keying Material
Setting User Passwords and Keys
Random Number Generation
Random Number Key
Random Number Generator Counters
Random Number Generator Operation
IPMI Serial/Modem Interface
Serial/Modem Capabilities
Connection Modes
PPP/UDP Proxy Operation
Asynchronous Communication Parameters
Serial Port Sharing
Serial Port Switching
Access Modes
Console Redirection with Serial Port Sharing
Detecting Who Answered The Phone
Connecting to the BMC
Connecting to the Console Redirection
Directing the Connection After Power Up / Reset
Interaction with Microsoft ‘Headless’ Operation
Pre-boot Only Mode
Always Available Mode
Shared Mode
Serial Port Sharing Access Characteristics
Serial Port Sharing Hardware Implementation Notes
Connection Mode Auto-detect
Modem-specific Options
Modem Activation
Serial/Modem Connection Active (Ping) Message
Serial/Modem Connection Active Message Parameters
Mux Switch Coordination
Receive During Ping
Application Handling of the Serial/Modem Connection Active Message
Basic Mode
Basic Mode Packet Framing
Data Byte Escaping
Message Fields
Message Retries
Packet Handshake
PPP/UDP Mode
PPP/UDP Mode Sessions
PPP Frame Format
PPP Frame Implementation Requirements
Link Control Protocol (LCP) packets
Configuration Requests
Maximum Receive Unit Handling
Protocol Field Compression Handling
Address & Control Field Compression Handling
IPMI/RMCP Message Format in PPP Frame
Example of IPMI Frame with Field Compression
Frame Data Encoding
Escaping Algorithm
Escaped Character Handling
Asynch Control Character Maps (ACCM)
IP Network Protocol Negotiation (IPCP)
CHAP Operation in PPP Mode
Serial/Modem Callback
Callback Control Protocol (CBCP) Support
CBCP Address Type and Dial String Characters
Terminal Mode
Terminal Mode Versus Basic Mode Differences
Terminal Mode Message Format
IPMI Message Data
Terminal Mode IPMI Message Bridging
Sending Messages to SMS
Sending Messages to Other Media
Terminal Mode Packet Handshake
Terminal Mode ASCII Text Commands
Terminal Mode Text Command and IPMI Message Examples
Terminal Mode Line Editing
Terminal Mode Input Restrictions
Page Blackout Interval
Dial Paging
Alert Strings for Dial Paging
Dialing Digits
Character (control-M)
Long Pause Character (control-L)
Empty (delimiter) Character (FFh)
‘Null’ Terminator Character (00h)
TAP Paging
TAP Escaping (data transparency)
TAP Checksum
TAP Response Codes
TAP Page Success Criteria
PPP Alerting
Serial Over LAN
System Serial Controller Requirements
SOL and Serial Port Sharing
SOL Operation Overview
SOL Security
SOL Sequence Numbers
Flow Control
Bit Rate Handling
Volatile and Non-volatile SOL Configuration Parameters
SOL Payload Data Format
Activating SOL using RMCP+ Authentication
SOL Packet Acknowledge and Retries
SOL Interaction with Windows.NET Escape Sequences
SOL Payload Activated with Serial Port Sharing
Event Messages
Critical Events and System Event Log Restrictions
Event Receiver Handling of Event Messages
IPMB Seq Field use in Event Messages
Event Status, Event Conditions, and Present State
System Software use of Sensor Scanning bits & Entity Info
Re-arming
‘Global’ Re-arm
‘Platform Event Filtering (PEF)
Alert Policies
Deferred Alerts
PEF Postpone Timer
PEF Startup Delay
Last Processed Event Tracking
Event Processing When The SEL Is Full
PEF Actions
Event Filter Table
Event Data 1 Event Offset Mask
Using the Mask and Compare Fields
Mask and Compare Field Examples
Alert Policy Table
Alert Testing
Alert Processing
Alert Processing after Power Loss
Processing non-Alert Actions after Power Loss
Alert Processing when IPMI Messaging is in Progress
Sending Multiple Alerts On One Call
Serial/Modem Alert Processing
PEF and Alert Handling Example
Event Filter, Policy, Destination, and String Relationships
Populating a PET
OEM Custom Fields and Text Alert Strings for IPMI v1.5 PET
PEF Performance Target
Firmware Firewall & Command Discovery
Command Specification Information
Specification of Completion Codes
Handling ‘Reserved’ Bits and Fields
Logical Unit Numbers (LUNs) for Commands
Command Table Notation
IPM Device “Global” Commands
Get Device ID Command
Cold Reset Command
Warm Reset Command
Get Self Test Results Command
Manufacturing Test On Command
Set ACPI Power State Command
Get ACPI Power State Command
Get Device GUID Command
Broadcast ‘Get Device ID’
Firmware Firewall & Command Discovery Commands
Completion Codes with Firmware Firewall
Get NetFn Support Command
Get Command Support Command
Get Command Sub-function Support Command
Get Configurable Commands Command
Get Configurable Command Sub-functions Command
Set Command Enables Command
Get Command Enables Command
Set Configurable Command Sub-function Enables Command
Get Configurable Command Sub-function Enables Command
Get OEM NetFn IANA Support Command
IPMI Messaging Support Commands
Set BMC Global Enables Command
Get BMC Global Enables Command
Clear Message Flags Command
Get Message Flags Command
Enable Message Channel Receive Command
Get Message Command
Send Message Command
Read Event Message Buffer Command
Get System Interface Capabilities Command
Get BT Interface Capabilities Command
Master Write-Read Command
Session Header Fields
Get Channel Authentication Capabilities Command
Get System GUID Command
22.14a Set System Info Parameters Command
22.14b Get System Info Parameters Command
Get Channel Cipher Suites Command
Cipher Suite Records
Cipher Suite IDs
Get Session Challenge Command
Activate Session Command
AuthCode Algorithms
Set Session Privilege Level Command
Close Session Command
Get Session Info Command
Get AuthCode Command
Set Channel Access Command
Get Channel Access Command
Get Channel Info Command
Set Channel Security Keys Command
Set User Access Command
Get User Access Command
Set User Name Command
Get User Name Command
Set User Password Command
IPMI LAN Commands
Set LAN Configuration Parameters Command
Get LAN Configuration Parameters Command
Suspend BMC ARPs Command
Get IP/UDP/RMCP Statistics Command
RMCP+ Support and Payload Commands
Activate Payload Command
Deactivate Payload Command
Suspend/Resume Payload Encryption Command
Get Payload Activation Status Command
Get Payload Instance Info Command
Set User Payload Access Command
Get User Payload Access Command
Get Channel Payload Support Command
Get Channel Payload Version Command
Get Channel OEM Payload Info Command
IPMI Serial/Modem Commands
Set Serial/Modem Configuration Command
Get Serial/Modem Configuration Command
Set Serial/Modem Mux Command
Get TAP Response Codes Command
Set PPP UDP Proxy Transmit Data Command
Get PPP UDP Proxy Transmit Data Command
Send PPP UDP Proxy Packet Command
Get PPP UDP Proxy Receive Data Command
Serial/Modem Connection Active (Ping) Command
Callback Command
Set User Callback Options Command
Get User Callback Options Command
Set Serial Routing Mux Command
SOL Commands
SOL Activating Command
Set SOL Configuration Parameters Command
Get SOL Configuration Parameters Command
BMC Watchdog Timer Commands
Watchdog Timer Actions
Watchdog Timer Use Field and Expiration Flags
Using the Timer Use field and Expiration flags
Watchdog Timer Event Logging
Pre-timeout Interrupt
Pre-timeout Interrupt Support Detection
BIOS Support for Watchdog Timer
Reset Watchdog Timer Command
Set Watchdog Timer Command
Get Watchdog Timer Command
Chassis Commands
Get Chassis Capabilities Command
Get Chassis Status Command
Chassis Control Command
Chassis Reset Command
Chassis Identify Command
Set Front Panel Enables
Set Chassis Capabilities Command
Set Power Restore Policy Command
Set Power Cycle Interval
Remote Access Boot control
Get System Restart Cause Command
Set System Boot Options Command
Get System Boot Options Command
Get POH Counter Command
Event Commands
Set Event Receiver Command
Get Event Receiver Command
Platform Event Message Command
Event Request Message Fields
IPMB Event Message Formats
System Interface Event Request Message Format
Event Data Field Formats
PEF and Alerting Commands
Get PEF Capabilities Command
Arm PEF Postpone Timer Command
Set PEF Configuration Parameters Command
Get PEF Configuration Parameters Command
Set Last Processed Event ID Command
Get Last Processed Event ID Command
Alert Immediate Command
PET Acknowledge Command
System Event Log (SEL) Commands
SEL Device Commands
Get SEL Info Command
Get SEL Allocation Info Command
Reserve SEL Command
Reservation Restricted Commands
Reservation Cancellation
Get SEL Entry Command
Add SEL Entry Command
SEL Record Type Ranges
Partial Add SEL Entry Command
Delete SEL Entry Command
Clear SEL Command
Get SEL Time Command
Set SEL Time Command
Get SEL Time UTC Offset
Set SEL Time UTC Offset
Get Auxiliary Log Status Command
Set Auxiliary Log Status Command
SEL Record Formats
SEL Event Records
OEM SEL Record - Type C0h-DFh
OEM SEL Record - Type E0h-FFh
SDR Repository
SDR Repository Device
Modal and Non-modal SDR Repositories
Command Support while in SDR Repository Update Mode
Populating the SDR Repository
SDR Repository Updating
Discovering Management Controllers and Device SDRs
Reading the SDR Repository
Sensor Initialization Agent
System Support Requirements for the Initialization Agent
IPMI and ACPI Interaction
Recommended Initialization Agent Steps
SDR Repository Device Commands
SDR ‘Record IDs’
Get SDR Repository Info Command
Get SDR Repository Allocation Info Command
Reserve SDR Repository Command
Reservation Restricted Commands
Reservation Cancellation
Get SDR Command
Add SDR Command
Partial Add SDR Command
Delete SDR Command
Clear SDR Repository Command
Get SDR Repository Time Command
Set SDR Repository Time Command
Enter SDR Repository Update Mode Command
Exit SDR Repository Update Mode Command
Run Initialization Agent Command
FRU Inventory Device Commands
Get FRU Inventory Area Info Command
Read FRU Data Command
Write FRU Data Command
Sensor Device Commands
Static and Dynamic Sensor Devices
Get Device SDR Info Command
Get Device SDR Command
Reserve Device SDR Repository Command
Get Sensor Reading Factors Command
Set Sensor Hysteresis Command
Get Sensor Hysteresis Command
Set Sensor Thresholds Command
Get Sensor Thresholds Command
Set Sensor Event Enable Command
Get Sensor Event Enable Command
Re-arm Sensor Events Command
Get Sensor Event Status Command
Response According to Sensor Type
Hysteresis and Event Status
High-going versus Low-going Threshold Events
Get Sensor Event Status Command Format
Get Sensor Reading Command
Set Sensor Type Command
Get Sensor Type Command
Set Sensor Reading And Event Status Command
35b. Command Forwarding Commands
35b.1 Get Forwarded Commands Command
35b.2Set Forwarded Commands Command
35b.3Enable Forwarded Commands Command
35b.4Forwarded Command Command
Sensor Types and Data Conversion
Linear and Linearized Sensors
Non-Linear Sensors
Sensor Reading Conversion Formula
Resolution, Tolerance and Accuracy
Tolerance
Resolution
Resolution for Non-linear & Linearizable Sensors
Offset Constant Relationship to Resolution
Management Software, SDRs, and Sensor Display
Software Display of Threshold Settings
Notes on Displaying Sensor Readings & Thresholds
Timestamp Format
Special Timestamp values
Accessing FRU Devices
Using Entity IDs
System- and Device-relative Entity Instance Values
Restrictions on Using Device-relative Entity Instance Values
Sensor-to-FRU Association
Handling Sensor Associations
Entity Presence
Software detection of Entities
Using Entity Association Records
Sensor & Event Message Codes
Sensor Type Code
Event/Reading Type Code
SDR Specification of Event Types
SDR Specification of Reading Types
Use of Codes in Event Messages
Sensor and Event Code Tables
Event/Reading Type Codes
Sensor Type Codes and Data
Sensor Data Record Formats
SDR Type 01h, Full Sensor Record
SDR Type 02h, Compact Sensor Record
SDR Type 03h, Event-Only Record
SDR Type 08h - Entity Association Record
SDR Type 09h - Device-relative Entity Association Record
SDR Type 0Ah:0Fh - Reserved Records
SDR Type 10h - Generic Device Locator Record
SDR Type 11h - FRU Device Locator Record
SDR Type 12h - Management Controller Device Locator Record
SDR Type 13h - Management Controller Confirmation Record
SDR Type 14h - BMC Message Channel Info Record
SDR Type C0h - OEM Record
Device Type Codes
Entity IDs
Type/Length Byte Format
6-bit ASCII Packing Example
Sensor Unit Type Codes
Examples
Processor Sensor with Sensor-specific States & Event Generation
Processor Sensor with Generic States & Event Generation
Appendix A - Previous Sequence Number Tracking
Appendix B - Example PEF Mask Compare Algorithm
Appendix C1 - Locating IPMI System Interfaces via SM BIOS Tables
C1-1IPMI Device Information - BMC Interface
C1-1.1Interface Type
C1-1.2IPMI Specification Revision Field
C1-1.3I2C Slave Address Field
C1-1.4NV Storage Device Address Field
C1-1.5Base Address Field
C1-1.6Base Address Modifier Field
C1-1.7System Interface Register Alignment
C1-1.7.1Byte-spaced I/O Address Examples
C1-1.7.232-bit Spaced I/O Address Examples
C1-1.7.3Memory-mapped Base Address
C1-1.7.4Interrupt Info Field
C1-1.8Interrupt Number Field
Appendix C2 - Locating IPMI System Interfaces on PCI
Appendix C3 - Locating IPMI System Interfaces with ACPI
C3-1SPMI Description Table and ACPI Control Methods
C3-2Locating IPMI System Interfaces in ACPI Name Space
C3-3Example IPMI Definition ASL Code
Example 1: SMIC Interface in I/O Space
Example 2: KCS Interface in 64-bit Address Space
Example 3: SMIC Interface in I/O Space
Example 4: SSIF Interface
Appendix D - Determining Message Size Requirements
Appendix E - Terminal Mode Grammar
E-1Notation
E-2Grammar for Terminal Mode Input
E-3Grammar for Terminal Mode Output
Appendix F - TAP Flow Summary
Appendix G - Command Assignments
Appendix H - Sub-function Assignments