Intelligent Platform Mangement Interface (IPMI) does not have any type of automatic routing. Instead, commands and responses are “bridged” between different interfaces generally using a “Send Message” com- mand. So you have to know the route to the destination when you send the message. Generally, this is not a big deal because only one level is generally bridged (eg system interface to IPMB, Local Area Network (LAN) interface to IPMB).
Note that OpenIPMI handles most of the bridging work for you. The OpenIPMI address described in section 3.14 has address formats for routing messages to the proper places. But knowing what goes on behind the scenes can be helpful, and some of this information is required even with OpenIPMI.
An interface has the concept of a “channel”. A channel is an indepedent communication interface. Each LAN interface, serial interface, IPMB interface, and system interface has its own channel number. Messages are bridged to specific channels.
There are 16 specified channels. Channel 0 is always the primary IPMB channel. Channels 1-7 are for general use, like for LAN, secondary IPMB, Intelligent Chassis Management Bus (ICMB), etc. Channels 8-Dh are reserved. Channel Fh is for the system interface. Channel Eh is used for whatever the present interface. This is useful because some commands take a channel as one of their fields, if you just want to use the current channel you can put Eh here.
To discover the channels in a system, the “Get Channel Info” command shown in table 3.3 must be sent for each possible channel.
bits 0-3 - Channel number bits 4-7 - reserved
bits 0-3 - Actual channel number (if you put Eh in the request, the real channel number is returned here) bits 4-7 - reserved