CHAPTER 3. IPMI INTERFACES
In the examples below, a Get Device ID is encasulated in a Send Message and sent to IPMB address C0h. For these examples, the RMCP headers and authentication information are skipped, we start directly with the IPMI message. The sent data is always the same, and is:
Byte Value Description
LAN Responder address, this is the BMC’s IPMB, generally LAN Responder LUN in bits 0-1 (0 in this case), Send Message NetFN in bits 2-7 (6 in this case) Checksum for the previous two bytes LAN Requester address (this is the value for system managmenet software) Requester LUN in bits 0-1 (0 in this case), Sequence number in bits 2-7 (2eh in this case). Note that the sequence number is returned in the response as-is and helps differentiate the messages. The command, a Send Message for NetFN 6. The channel number in bits 0-4 (0 in this case), and message tracking selec- tion in bits 6-7 (10b in this case, message tracking is on). The destination IPMB address IPMB Responder LUN in bits 0-1 (0 in this case), Get Device ID NetFN in bits 2-7 (6 in this case) Checksum for the previous two bytes Source address, the IPMB address of the BMC. Requester LUN in bits 0-1 (2 in this case, although it generally doesn’t matter), Sequence number in bits 2-7 (2fh in this case). The command, a Get Device Id for NetFN 6 Checksum for the IPMB message (from bytes 7-12) Checksum for the whole message
If you look at this, a lot of the contents seem pretty silly. The addresses in the LAN header, for instance, are pretty useless, but probably there for consistency.
Response comes back in the Send Message response
In this possibility, the send message response contains the message data response. This seems to be implied in the text of the Send Message command, and is certainly the most efficient way to handle this. However, it does not seem to be the accepted way.
As an example, the following shows the response to the Get Device ID previously sent:
Byte Value Description
2 3 4
63 20 b8
Requester Address LAN Requester LUN in bits 0-1 (0 in this case), Send Message response NetFN in bits 2-7 (7 in this case) Checksum for the previous two bytes Responder Address Responder LUN in bits 0-1 (0 in this case), Sequence number in bits 2-7
(2eh in this case).