Intelligent Platform Management Bus (IPMB)

The Intelligent Platform Management Bus Communications Protocol defines a byte-level transport for transferring Intelligent Platform Management Interface Specification (IPMI) messages between intelligent I2C devices. This protocol is layered above the bit stream and hardware interface defined by the 100 kbps I2C specification. Together, the protocol and I2C physical interface form the Intelligent Platform Management Bus.

The intelligent devices using the Intelligent Management Bus are typically microcontrollers that perform platform management functions such as servicing the front panel interface, monitoring the baseboard, hotswapping disk drives in the system chassis, etc. Intelligent devices are also referred to in this document as ‘management controllers’ or just ‘controllers’.

Under AdvacedTCA® environment, the Shelf uses an Intelligent Platform Management Bus (IPMB) for managing communications among all Intelligent FRUs. The reliability of the IPMB is improved by the addition of a second IPMB, with the two IPMBs referenced as IPMB-A and IPMB-B. The aggregation of the two IPMBs is IPMB-0. The IPM Controllers aggregate the information received on both IPMBs. An IPM Controller that has a message ready for transmit will use the IPMBs in a round robin fashion. An IPM Controller will try to alternate the transmission of messages between IPMB-A and IPMB-B. If an IPM Controller is unable to transmit on the desired IPMB then it will try to send the message on the alternate IPMB. By using this approach, an IPMB can become unavailable and then available without the IPM Controller needing to take specific action.

The format of IPMB packet depends on its type. The following picture demonstrate formats of IPMB packet as "request" or "response" command.



Protocol dependencies

Example traffic

Here is an example of multi packets IPMB shown in Wireshark


There are different ways to capture IPMB traffic.

Example capture files

Display Filter


Capture Filter



IPMB_protocol (last edited 2008-08-11 04:25:49 by AlexeyNeyman)