IPMI Messaging Support Commands¶
This section describes the commands used to support the system messaging interfaces. This includes control bits for using the BMC as an Event receiver and SEL Device. SMM Messaging and Event Message Buffer support is optional. The IPMI standard defines the following IPMI Messaging Support commands:
Command | O/M | Support | API |
---|---|---|---|
Set BMC Global Enables | M | Yes | No |
Get BMC Global Enables | M | Yes | No |
Clear Message Flags | M | Yes | No |
Get Message Flags | M | Yes | No |
Enable Message Channel Receive | O | Yes | No |
Get Message | M | Yes | No |
Send Message | M | Yes | No |
Read Event Message Buffer | O | Yes | No |
Get System Interface Capabilities | O | No | No |
Get BT Interface Capabilities | M | No | No |
Master Write-Read | M | Yes | Yes |
Get System GUID | O | No | No |
Set System Info | O | No | No |
Get System Info | O | No | No |
Get Channel Authentication Capabilities | O | Yes | Yes |
Get Channel Cipher Suites | O | No | No |
Get Session Challenge | O | Yes | No |
Activate Session | O | Yes | No |
Set Session Privilege Level | O | Yes | No |
Close Session | O | Yes | Yes |
Get Session Info | O | No | No |
Get AuthCode | O | No | No |
Set Channel Access | O | No | No |
Get Channel Access | O | No | No |
Get Channel Info | O | No | No |
Set Channel Security Keys | O | No | No |
Set User Access | O | No | No |
Get User Access | O | No | No |
Set User Name | O | No | No |
Get User Name | O | No | No |
Set User Password | O | No | No |
Note
- O/M - Optional/Mandatory command as stated by the IPMI standard
- Support - Supported command by send_message_with_name method
- API - High level API support implemented in this library
Establish Session¶
This is not equivalent with a single IPMI command, but represents a high level API function using several IPMI commands. It is used to establish a session between the Slave and the Target. The method
establish() |
creates and activates a session of the ipmi.session
instance with the given authentication and privilige level. Multiple IPMI commands are used to establish the session. The following steps are done during the session establishment for an RMCP interface:
- ping the Target IP address
- issue a “Get Channel Authentication Capabilities” command
- issue a “Get Session Challenge” command
- issue an “Activate Session” command
- issue a “Set Session Privilege Level” command (privilige is set always to ADMINISTRATOR level)
If keep_alive_interval
argument for the interface instantiation was set to a nonzero value then the channel is kept alive by regularly sending the “Get Device ID” IPMI command.
Example of establishing a session:
ipmi.session.establsih()
Get Channel Authentication Capabilities Command¶
This command is used to retrieve capability information about a particular channel.
get_channel_authentication_capabilities(channel, priv_lvl) |
You should pass the channel number to channel
, and the requested maximum privilige level to priv_lvl
.
Example:
ipmi.get_channel_authentication_capabilities(channel=0x0E,priv_lvl=1)
Master Write-Read Command¶
This command can be used for low level I2C/SMBus write, read, or write-read accesses to the IPMB or private busses behind a management controller. The command can also be used for providing low-level access to devices that provide an SMBus slave interface.
i2c_write_read(bus_type, bus_id, channel, address, count, data=None) |
Close Session Command¶
This command is used to immediately terminate a session in progress. The method
close() |
closes the session of the ipmi.session
instance. Example of closing a session:
ipmi.session.close()