CHAPTER 3. IPMI INTERFACES
Channel 0 is the primary IPMB bus on the system.
These channel may be any type of channel, including IPMB, and LAN inter- faces. Reserved This specifies the channel the message is going over. It’s not really very useful, since you have to put the real channel in the command to send a message to it. This specifies the system interface, but is really never used.
Table 3.2: Channel Numbers
r v = i o c t l ( f d , I P M I C T L _ S E T _ M Y _ A D D R E S S _ C M D , & i p m b _ a if (rv == -1) error handling... d d r ) ;
The driver also has ioctls to get and set the LUN, but you should almost certainly leave that alone.
The OpenIPMI System Interface
The OpenIPMI library system interface can be set up with the following function:
_ os_handler t
_ _ ipmi con t
i n t i p m i _ s m i _ s e t u p _ c o n ( i n t
i f _ n u m ,
The if_num is the specific interface number. Generally this is 0, but if a system has more than one system interface then this will be the specific interface number. The handlers is the OS handler data to use for the connection (as described in section 2.2.2). The user_data field is put into the user_data filed in the ipmi_con_t data structure. A new connection is returned in new_con.
The OpenIPMI library understands how to get the local IPMB address for certain sytems. If it can get the local IPMB address, it will set it automatically.
Once you have a connection, you can start it and use it directly. However, usually you pass this to the domain startup code for creation of a domain, as described in section 2.5.
The IPMI interfaces on a management controller are called “channels”. These are messaging channels. LAN, IPMB, system interface, and any other messaging interfaces will each have their own channel on the MC.
Messages directly sent to the local management controller do not require any type of channel information. When the user sends a message out to another interface, it must specify the channel. This is called “bridging”. Channels also may have some type of configuration information such as users and passwords.