The Intelligent Platform Management Interface (IPMI) is a standard system-monitoring interface employed by many board-level standards including AdvancedTCA, MicroTCA, VME, VPX, VXS, CompactPCI, and CompactPCI Serial. IPMI support is also found on server motherboards and blade servers.

Table of Contents

  1. Introduction
  2. IPMI Features
  3. IPMI Messaging Model
  4. Sensors, Events, And Logs
  5. IPMI Open-Source Tools
  6. References
  7. Useful Links

Introduction
The IPMI platform specifies a stack that includes hardware and software. It is also designed to work with other standard software such as Simple Network Management Protocol (SNMP) and Desktop Management Interface (DMI). The hardware-level specification is designed to be software agnostic, and there are open-source tools in addition to a wide range of closed-source commercial products for IPMI-based management.

A management controller (MC) is the center of an IPMI system. A baseboard management controller (BMC) provides out-of-band capabilities for a typical motherboard-based system like a PC server, and it usually is linked to the outside world via an Ethernet connection (see the figure). It can track a range of statistics like temperature, cooling fan speeds, processor status, and power supply status. It can even check operating system (OS) status via watchdog timers. Devices can be identified, allowing real-time inventory of system components.


The baseboard management controller (BMC) sits between on-board sensors and interfaces and out-of-band communication interfaces such as Ethernet.

IPMI addresses a range of interfaces including the use of the Intelligent Platform Management Bus/Bridge (IPMB) to communicate with sensor and control devices. IPMB is also known as System Management Bus (SMBus), I²C (Inter-Integrated Circuit), and the SMBus System Interface (SSIF). Management controllers can be connected to an IPMB.

SMBus interfaces are common on power and peripheral control chips, allowing IPMI management and control. The interface also provides access to serial EEPROM (SEEPROM) or serial, nonvolatile storage devices. These devices can be based on any nonvolatile storage technology such as flash, FRAM, and MRAM.

A BMC may interface directly with some sensors or devices in addition to using IPMB. It can also hook into other management interfaces such as the PCI Management Bus.

This architecture enables IPMI to be used throughout a system, from board-level management to system-level management. It can even space hot-swap, field replaceable units (FRUs) such as boards, power supplies, or just about anything that can be monitored.

IPMI provides logging capabilities. It can also provide manual and automatic system recovery when recorded values exceed a specified range. IPMI out-of-band operation allows it to operate even when any hosts’ in-band communication isn’t working.

Furthermore, IPMI is an event-driven system. It can also be queried to check things like the speed of a fan or turn-off power. This is very handy for remote server management.

IPMI Features
A feature list of IPMI would be rather extensive, including things like system event logging (SEL) and SNMP support. Check out the specification for all the details. For now, we can look at some of the new features that were included in the latest specifications.

Here are some of the more interesting 1.5 additions:

• Serial port sharing: allows a single connector to handle host or IPMI serial communication
• Boot options: allows options to be set when booting a system
• Serial/modem messaging and alerting: specifies how alerts and status pages are generated
• Local-area network (LAN) messaging and alerting: defines how IPMI messages and alerts are sent via a LAN interface including how SNMP traps are generated when an event occurs
• Extended BMC messaging “Channel Model”: channel numbers can now be used for routing information to devices that may be connected to the BMC including ones via the IPMB
• Platform event filtering: supports actions based on internal and external events and can perform operations such as a system reset
• Alert policies: controls delivery of alert information including the ability to utilize “call down lists” when sending information to a destination fails

The 2.0 specification builds on these features and adds even more:

• Enhanced authentication: new algorithms supporting key exchange process for user authentication and establishing sessions
• VLAN support: support for IEEE 802.1q VLAN, operates with VLAN-aware routers and switches
• Serial Over LAN (SOL): allows IPMI management via remote network console
• Payloads: support for OEM “value-added” payloads over Internet protocol (IP) sessions
• Encryption support: provides more secure payloads
• Extended user login options: adds “Role Only” logins in addition to two-key logins
• Firmware firewall: allows systems to limit IPMI commands so malicious or buggy software cannot affect selected subsystems
• SMBus System Interface (SSIF): allows the SMBus connection to standard SMBus devices

IPMI Messaging Model
IPMI uses a message-passing communication model. Messages can be transported over a range of interfaces from Ethernet to IPMB. The major message components include:

• Network function
• Request/response identifier
• Requester’s ID
• Responder’s ID
• Command
• Data

A response message is sent in response to a request message. The network function designates the type of device such as chassis, sensor, and storage. The actual request is the command, with the data providing additional parameters. IPMI network functions and commands provide access to a complex set of functions that the BMC can perform.

Messages can be sent via system interfaces. These include the keyboard controller style (KCS), server management interface chip (SMIC), block transfer (BT) interface, and SSIF. Messages may flow across bridges. So, the target of a message may be a number of hops away from its source, and it may move across different transport mechanisms.

IPMI uses the channel model to specify a communication interface. It is akin to ports in TCP/IP, although channel numbers map to communication interfaces like the primary IPMB or LAN. Channels can be logical rather than physical interfaces. For example, a BMC could have a virtual IPMB interface for exposing events and services built into the BMC.

Sensors, Events, And Logs
Sensors are devices that can be monitored by IPMI through a BMC. Devices may be virtual or real. Real devices can be connected directly to the BMC or via an interface bus like SSIF. The BMC provides a central, nonvolatile system event log (SEL). IPMI commands can read and clear the SEL. IPMI event messages add entries to the SEL.

Message controllers generate event messages. Controllers can track sensor values and check threshold values to generate the desired events. More advanced systems can initiate actions based on events. For example, a system may power down if a temperature threshold is exceeded.

IPMI Open-Source Tools
Some open-source tools support and provide access to IPMI systems like OpenIPMI and IPMItool. OpenIPMI provides access to all IPMI functions, allowing its tools to manage any IPMI system from a Linux system. Used by IPMI applications, it consists of a device driver and a set of user libraries. IPMItool is an application that can interface with an IPMI system using IPMI-over-LAN interfaces or device driver interfaces like OpenIPMI.

IPMI is a checklist item for many users, but knowing its capabilities can help those designing and utilizing complex systems to provide a more robust system. This overview only touches the major components of IPMI. IPMI details are extensive, and IPMI users are directed to check out the latest IPMI specification, where they are enumerated.

References

  1. IPMI Specification 2.0: www.intel.com/design/servers/ipmi/index.htm
  2. IPMI – A Gentle Introduction with OpenIPMI, Corey Minyard, http://openipmi.sourceforge.net/IPMI.pdf

Useful Links

  1. OpenIPMI: http://openipmi.sourceforge.net/
  2. IPMItool: http://ipmitool.sourceforge.net/
  3. Wikipedia: http://en.wikipedia.org/wiki/Ipmi
  4.