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.
Here is an example of multi packets IPMB shown in Wireshark
There are different ways to capture IPMB traffic.
Pigeon Point Systems provide a utility, ipmb_traced, for its shelf managers which generates captures in different format from the above. The main difference is that the utility provides additional information about events noticed by the shelf manager (e.g. bus error). Dissection for these captures is submitted in bug 2787.
Example capture files
- Totalphase Aardvark capture: ipmb.multi.packets.pcap : this is sample capture file using other sniffer device to capture raw packets data.
- ipmb_traced capture: ipmb.ipmb_traced.pcap
- Which SVN revision is this dissector supposed to be in? Thanks.
The IPMB dissector is pending review. You can check the status on bug 1970