OpenHPI is an open source project created with the intent of providing an implementation of the SA Forum's Hardware Platform Interface (HPI). HPI provides an abstracted interface to managing computer hardware, typically for chassis and rack based servers. HPI includes resource modeling; access to and control over sensor, control, watchdog, and inventory data associated with resources; abstracted System Event Log interfaces; hardware events and alerts; and a managed hotswap interface.

OpenHPI provides a modular mechanism for adding new hardware and device support easily. Many plugins exist in the OpenHPI source tree to provide access to various types of hardware. This includes, but is not limited to, IPMI based servers, Blade Center, and machines which export data via sysfs. For up to date status on these components, please check out the status page.

The OpenHPI project is always looking for more participants. If you are interested in using OpenHPI, or taking a part in the evolution of OpenHPI, please join our mailing list and drop us a line.


OpenHPI 2.6.2 has been released! (09/15/2006)

OpenHPI 2.6 underwent intense conformance testing using the SAFTest suite. The result is 2.6.2.
Some highlights:
  • Plugins now build correctly whether the daemon is enabled or not
  • There was a deadlock issue found in SaHpiEventLogTimeSet that has been fixed.
  • The domain event log now properly represents absolute and relative times
  • The simulator plugin received much improvement during conformance testing. Better support for recording power, timeout, and hotswap state has been added.
  • ...and many more bug fixes. Check the changelogs
For a complete list of 2.6.2 bugs and features, take a look a the Changelog for 2.6.1 and the Changelog for 2.6.2

SNMP Subagent 2.3.4 has been released (09/13/06)

An updated OpenHPI SNMP Subagent, version 2.3.4, was released with a much needed update of the SAF MIB files.
  • MIB files have been updated to latest version available from the SAF
  • Installation now also installs the needed mibs under $prefix/share/snmp/mibs
  • Patched up to work with OpenHPI 2.6 latest stable.

PyOpenHPI - OpenHPI wrapper for Python programs! (9/1/2006)

Yes, you heard right. The OpenHPI team presents its python binding module. There is no official release for this yet, but you can get it from the subversion repository. Even though this is in beta state, the module already features all of the APIs made available through libopenhpi and the very handy libopenhpiutils.

We would very much like to know what people think of this python module. So check it out, take a look at and try the examples. Make sure you read the README file before you start as there is some good information about usage and system requirements for building the module. I think you'll be surprised by how well the APIs have been adapted to python, but you be the final judge on that.

Assuming you have subversion installed, type the following to checkout the PyOpenHPI python module:

svn co https://svn.sourceforge.net/svnroot/openhpi/python/trunk pyopenhpi

Enjoy and post your impressions on the mailing list.

OpenHPI 2.6.0 has been released! (7/31/2006)

The 2.6.0 stable release is available on SourceForge (http://sourceforge.net/projects/openhpi). This version places the OpenHPI daemon as the standard way to get HPI data. The old non-daemon configuration is still available for debugging purposes, but you have to recompile the library with the right options, and it will not be the supported way for using OpenHPI.
Various features had been added to the 2.5.x development line for this release including:
  • Blade Center Telco H support
  • IPMI ATCA support
  • Blade Center topology is now 'ATCA topology friendly'
  • More blade sensors supported
  • PowerPC support
  • Unicode text buffer validation added
Highlights for 2.6.0 are:
  • Persistence of Domain Alarm Table - Alarms are now persisted to disk per domain. This feature has to be enabled in openhpi.conf.
  • Hotswap management enhancements - More plugin abi functions where added to give them a better control over insertion and extraction events.
  • Daemon enhancements - The daemon is the standard way to use OpenHPI now. The advantage of the daemon is that you now have a default installation in which automatic discovery starts out much earlier regardless of any client connection. It also allows multiple connections to see the exact same HPI domain from different places in the network. Also, the daemon now logs to /var/log/messages for any error condition.
  • Blade Center plugin improvements - Added blade bmc reset control and made blade operational sensors readable.
For a complete list of 2.6.0 bugs and features, take a look a the Changelog for 2.6.0

OpenHPI 2.5.2 released! (6/13/2006)

2.5.2 is out the door. A lot of clean up has been done in several areas to make the code nimbler and more bug-free. Note that for this release, threaded mode is always on. The option to choose otherwise has been eliminated. This is to prepare for a related change coming in 2.6.x concerning the integration of the standard core library into the daemon.
Highlights are:
  • Blade Center H support - Yes, support for the new blade center model is already in OpenHPI through the snmp_bc plugin.
  • More blade sensors - snmp_bc has added code to detect additional sensors (see changelog for details).
  • Client programs cleaned up - Obsolete programs deleted. hpiel was revamped and now accepts long-style options. The rest of the client programs will follow this trend in future releases.
  • Fixed client library connection bug - Default timeout for connections to the daemon is now unlimited. Used to be 30 minutes unless you specified a different one when running openhpid.
  • Code cleanup - Thanks to patches from the community, there where a couple of HPI conformance bugs fixed, better error checking added, and other build related issues ironed out.
For a complete list of 2.5.2 bugs and features, take a look a the Changelog for 2.5.2

OpenHPI 2.5.1 development release (5/04/2006)

OpenHPI 2.5.1 is out on sourceforge. Get it and give us your feedback. This release serves as the development base for a couple of major changes coming for 2.6 which include a revamped multi-domain handling that takes the load off of the plugin developers, and an exclusive client/server oriented architecture. 2.5.1 rolls out with SNMPv3-related added features, hotswap improvements, UTF-16 validation support, stronger testing for annunciators, a more sculpted daemon, and several bugs caught and fixed.
  • Blade Center - support for snmpv3 added parameters, managed hotswap support, MM standby support, targeted discovery enhancing performance
  • Core library - UTF-16 string validation, annunciator utility bugs fixed, hotswap policy cancel abi added.
  • Build system - SNMP wrappers more selectively built, better cflag filtering
  • Daemon - better suited for running in threaded mode. memory leak fixed in client library.
For a complete list of 2.5.1 bugs and features, take a look a the Changelog for 2.5.1

OpenHPI 2.5.0 development release (3/24/2006)

This is a development release based on the latest stable which has several bugfixes and includes a more robust BladeCenter plugin.
  • ATCA-HPI support now added to utilities - These utilities are used both internally and externally
  • PowerPC plugin (RTAS) supports inventory (vpd) reading, resource functions, and power off
For a complete list of 2.5.0 bugs and features, take a look a the Changelog for 2.5.0

New Stable Version OpenHPI 2.4.0 is released! (2/12/2006)

OpenHPI presents the new stable version 2.4.0. This is the first stable release of the year after having gone through the maturing development release cycles of 2.3.x, and paves the way for 2.6 around mid-year which will incorporate some big changes like better multi-domain configurability and an exclusive client-server infrastructure for added conformance to HPI. In this release, you will find:
  • PowerPC plugin using RTAS interface (BETA stage) - reading of sensors is supported
  • ATCA-HPI mapping support added to OpenIPMI plugin
  • Installation of HPI daemon as an init.d service
  • ..and many bug fixes. See the changelog for details
For a complete list of 2.4.0 bugs and features, take a look a the Changelog for 2.4.0

OpenHPI 2.3.1 Development Release is out! (1/12/2006)

Happy New Year 2006! The OpenHPI Team welcomed the new year with a new 2.3.1 development release. Bugs have been fixed in the core library that came out of conformance testing. The Blade Center plugin went through some live testing where several bugs were found and fixed, along with added improvements. Here are the highlights:
  • Blade Center plugin - now recognizes more types of events from the Management Module.
  • Blade Center simulator - Along with more test cases, more types of resources were added in order to simulate the additional types of events.
  • Better initialization - OpenHPI now initializes itself at linked time rather than waiting for the first session open. This is an advantage in threaded mode as it improves how quickly the resource presence table gets populated.
For a complete list of 2.3.1 bugs and features, take a look a the Changelog for 2.3.1

OpenHPI 2.3.0 Development Release is out! (11/19/2005)

After a long wait, the first development release since the latest stable version is finally out. The wait was worth it, though, as this release comes with many important fixes and improvements to both the library and plugins.


  • C++ wrappers to SaHpi structures - an experimental set of wrappers has been created that enables coders to use SaHpi strucures using C++ syntax. Check it out under the top cpp directory in the source tree.
  • saHpiEventGet Optimization - The code responsible for fetching HPI events has been tightened up and is now leaner, meaner, and quicker. Any delays to get existing events is reduced.
  • Improved Blade Center plugin - Much better mappings of hardware have been added to this plugin
  • IA64 cleanliness
  • Client library improvement - sharing of session ids between threads is now possible (experimental).
For a complete list of 2.3.0 bugs and features, take a look a the Changelog for 2.3.0

OpenHPI SNMP Subagent 2.3 released (11/19/2005)

This is the third stable release this year. A lot of features have been added to the subagent, along with a few bug fixes. Release 2.3.0, the most solid subagent release up to date.


  • Changed MIB name from HPI-MIB to HPI-B0101-MIB.
  • The MIB now conforms to standards set forth in RFC 2578 and compiles cleanly with various MIB compilers (e.g., SMICng).
  • Timestamps are now represented as an Octet string rather than a Counter64.
  • All timestamps are now displayed in network-byte order.
  • Added mechanisms to convert time from network-byte order to little-endian form and vice versa
  • Entry_Count and Entry_Count_Total scalars have been replaced by Active_Entries and Lifetime_Changes, respectively.
  • Supports threads by the use of a newly implemented locking mechanism.

OpenHPI SNMP Subagent 2.2 Stable Released! (10/14/2005)

The OpenHPI SNMP Subagent 2.2 was released today after several months of improvements and bug fixes. The HPI MIB that it uses was home-grown in the OpenHPI project and has been adopted by the SA Forum as the official HPI SNMP MIB. So come and get the first open source SNMP Subagent for HPI, from the very originators of the HPI MIB, right here.

Highlighted features:

  • Supports threaded or unthreaded modes of operation.
  • Added synchronization between HPI event logs and SNMP event log tables.
  • Added synchronization between HPI announcements and SNMP announcement tables.
  • Supports user initiated snmpset commands for read-write SNMP nodes.
  • Supports reinitialization of SNMP tables through user-initiated snmpset command via setting the saHpiDiscover scalar.
  • Time values are now displayed in network-byte order.
  • All sensor reading values are now displayed using ASCII decimal digits.

OpenHPI 2.2.0 Stable Release! (09/19/2005)

OpenHPI 2.2.0 Stable has been released. This is the second stable release this year after several previous development releases. A lot of bug fixes have gone into it, along with all of the new features. 2.2.0 is the most solid and HPI conformant release up to date.
New features include:
  • Improved threaded mode which now automatically discovers resources
  • Better gcc-4.0 support
  • Multi-domain support in IPMI Direct plugin
  • More efficient synchronization on plugin access
  • Get next lookups have been optimized for speed
For a complete list of 2.2.0 bugs and features, take a look a the Changelog for 2.2.0

OpenHPI 2.1.2 Development Release! (07/25/2005)

This is the third development release since OpenHPI 2.0.0 stable came out. The next release will be 2.2.0 stable. This development release has bug fixes across the board. New features include:
  • Blade Center plugin - alarm panel support
  • HPI Clients - we have a new client to display the domain event log
  • IPMI Direct plugin - exposure of all OEM FRU multirecords
  • New plugin loader - This will prevent plugins from having to be rebuilt if the plugin abi changes. Furthermore, it prevents segfaults if new functions are added that a plugin doesn't support. Overall, this this makes the plugin abi much more flexible to future changes.
For a complete list of 2.1.2 bugs and features, take a look a the Changelog for 2.1.2

OpenHPI SNMP Subagent 2.0.0 released! (05/20/2005)

This is the second stable release of the SNMP subagent. Many bugs have been fixed, but the major feature with this new release is that 2.0.0 supports the HPI B.01.01 specification created by the SA Forum.

With the subagent 2.0.0 you can: do discovery, write rows, create rows, and delete rows where applicable.

In addition, the following tables have been completed (29 out of 56).:
  • saHpiDomainInfoTable
  • saHpiDomainAlarmTable
  • saHpiDomainReferenceTable
  • saHpiResourceTable
  • saHpiRdrTable
  • saHpiCtrlDigitalTable
  • saHpiCtrlDiscreteTable
  • saHpiCtrlAnalogTable
  • saHpiCtrlStreamTable
  • saHpiCtrlTextTable
  • saHpiCtrlOemTable
  • saHpiSensorTable
  • saHpiCurrentSensorStateTable
  • saHpiSensorReadingMaxTable
  • saHpiSensorReadingMinTable
  • saHpiSensorReadingNominalTable
  • saHpiSensorReadingNormalMaxTable
  • saHpiSensorReadingNormalMinTable
  • saHpiSensorThdLowCriticalTable
  • saHpiSensorThdLowMajorTable
  • saHpiSensorThdLowMinorTable
  • saHpiSensorThdUpCriticalTable
  • saHpiSensorThdUpMajorTable
  • saHpiSensorThdUpMinorTable
  • saHpiSensorThdPosHysteresisTable
  • saHpiSensorThdNegHysteresisTable
  • saHpiAnnunciatorTable
  • saHpiInventoryTable
  • saHpiAreaTable
  • saHpiFieldTable
The subagent 2.0.0 works with the latest stable OpenHPI 2.0.4. Get it while its hot in the releases section on the left sidebar. Thanks to Dave Judkovics for all his work on this release.

OpenHPI 2.0.4 Stable Release (05/20/2005)

A quick 2.0.4 release was made to fix some installations issues in the utilities library. Applications using the installed utils library should compile without issues now.

OpenHPI 2.1.1 Development Release! (05/02/2005)

The OpenHPI development 2.1.1 release is out! Our second development release since OpenHPI 2. Several feautures and bug fixes came through for this version including multiple domain capability.
  • Multiple domain support.
  • hpitree client shows more information.
  • Several installation bugs fixed
  • Increased space for global parameters
Changelog for 2.1.1

OpenHPI 2.1.0 Development Release is out! (04/04/2005)

OpenHPI 2.1.0 is out! This is our first development release since 2.0.0 came out. Following, a summary of the features for this release:
  • openhpi-switcher - OpenHPI has 2 different connection libraries, a stand alone version suitable for most purposes, and a client library which connects to an HPI service daemon, needed in more demanding environments. openhpi-switcher manages which one is the default on the system.
  • Improved session management in the client library.
  • New client, hpitree, shows existing resource topology.
  • Ported IPMI pluging to work with the latest OpenIPMI 1.4.x library. With this come fast discovery, physical slot numbers in HPI EntityPath and overall improved IPMI->HPI mapping.
Changelog for 2.1.0

OpenHPI 2.0.3 Stable Release (03/08/2005)

OpenHPI 2.0.3 has been released. This is essentially a bug fix from head to tail. The following bug fixes were geared to resolve threading issues:
  • The event loop was reworked and improved
  • The Blade Center plugin is now completely thread safe
  • The snmp utility wrappers are now using the net-snmp thread safe model
Other fixes include:
  • Improved resource and inventory readings in IPMI plugin
  • IPMI direct plugin now ported to B spec
  • More unit tests added to the resource precense table and event log utilities
  • Restriction lifted in resource table to accept an HPI defined set of resource types for compatibility with ipmi plugins which can report a larger set of types not in the HPI resource set.
Changelog for 2.0.3

OpenHPI 2.0.0 Stable Release (12/31/2004)

OpenHPI 2.0.0 has been released! This is the first stable release of OpenHPI providing well-tested and robust implementation of the HPI B.01.01 specification.
The current stable release provides:
  • Complete library and plugin interface support for HPI B spec.
  • Improved library configuration with added event queue, alarm table and event log limits.
  • Managed and simplified hot-swap support.
  • Resource-level Event Log & Domain Alarm Table support.
  • Persistent Domain Event Log.
  • Sensors, inventory-data & controls.
  • Dynamic plug-in load/unload interface allowing for addition and removal of platforms/resouces within a live HPI session.
  • IPMI plug-in with support for IPMI 1.0 and 1.5 platforms.
  • BladeCenter plug-in (RSA and SNMP_BC).
  • A set of command line utilities exercising the HPI interfaces.
  • An Hpi Shell command line utility providing a single client for HPI interfaces
  • A large number of bug fixes and feature completions has been achieved. (<20 open bugs)
Bundled with the release is a preview of HpiView, a GTK based GUI application to be run with OpenHPI.

The binaries and source can be obtained by accessing the Files section in SourceForge. For convenience a direct link is also available on this web site.
RPMs for SuSE are provided; however, the build has been tested on RedHat/Fedora as well and Source RPM is provided.
For Assistance with installing/running the release, feel free to contact us via the mailing list or at #openhpi on irc.freenode.net.

Quality and Testing:
The OpenHPI team has worked very hard to achieve a high-quality implementation.
As noted above, the current bug count is very low and is primarily in platform support versus interface implementation, feature support and/or specification conformance.
The current release was based on a criteria taking into account both conformance and functional aspects of the code.
 Platform: Intel Carrier Grade TIGPR2U Server with IPMI 1.5 .
 OpenHPI Plug-in: IPMI
 OpenIPMI Version: 1.3.16 (latest)
 Conformance results (hpitest):
 Total test cases: 530
 Pass: 341 (64%)
 Fail: 3 (<1%)
 N/A: 186 (35%)

 Functional stats(hpifun):
 Total test cases: 81
 Pass: 51 (63%)
	Fail: 0 (0%)
	N/A: 186 (35%)

*Note: N/A means platform does not support tested features. IPMI plug-in currently does not support Inventory write/add functionality due to lack of support in current supported version of OpenIPMI (1.3.16). This will be resolved once we start using OpenIPMI 1.4.x tree.
Changelog for 2.0.0
For questions or comments, please email the openhpi developers.

You can also contact Renier Morales (renierm at users dot sf dot net) or Tariq Shureih (tariq at linux dot intel dot com).
Last modified: Mon Sep 26 16:44:53 EDT 2005