IPMI Library for Java

Verax IPMI is an asynchronous, highly scalable Java library implementing IPMI (Intelligent Platform Management Interface) protocol 2.0 over UDP in accordance with the v2.0, revision 1.0 standard. The IPMI interface has been adopted as a SNMP alternative for hardware management by many vendors.

Features

  • UDP session management: connect, disconnect, keep-alive, sliding window for messages and message sequence numbers
  • Encoders and decoders for: event log, sensor values and hardware information (FRU - Field Replaceable Unit)
  • Extensibility with additional, user-defined encoders
  • Timeout and retry handling for UDP IPMI messages
  • Support for unlimited concurrent sessions
  • IPMP standard-required, encryption algorithms for authentication (RAKP-HMAC-SHA1), confidentiality (AES-CBC-128) and integrity (HMAC-SHA1-96). Additional, user-defined algorithms can be plugged in
  • JVM Thread Management: incoming messages are handled in a separate JVM Thread for each connection
  • Supported for LAN - RMCP+ interfaces
  • Unlimited IPMI message throughput
  • Unlimited number of maximum managed CPUs per IPMI instance

IMPI 1.5 limited support

The library supports encoders/decoders for IMPI version 1.5 messages, however session management is provided only for version 2.0.

help iconProject JavaDocs

IPMI monitoring templates
Temperature
Voltage
Current
Fan
Physical Security (Chassis Intrusion)
Platform Security Violation Attempt
Processor
Power supply
Power unit
Cooling device
Memory
Disk Drive Bay
POST Memory Resize
System Firmware Progress
Event Logging Disabled
Watchdog 1
System Event
Critical Interrupt
Button / Switch
Module / Board
Microcontroller / Coprocessor
Add-in Card
Chassis
Chip set
Other FRU
Cable / Interconnect
Terminator
System Boot / Restart Initiated
Boot Error
OS Boot
OS Stop / Shutdown
Slot / Connector
System ACPI Power State
Watchdog 2
Platform Alert
Entity Presence
Monitor ASIC / IC
LAN
Management subsystem health
Battery
Session Audit
Version Change
FRU State

The following IPMI commands are supported by the library (additional, user-defined commands can be plugged-in):

IPMI chassis commands
Chassis Control
Get Chassis Status
IPMI FRU (Field Replaceable Unit) commands
Get FRU inventory area info
Read FRU data
IPMI SDR (Sensor Data Record) commands
Get SDR repository info
Get SDR
Get sensor reading
Reserve SDR repository
IPMI SEL (System Event Log) commands
Get SEL info
Get SEL entry
Reserve SEL
IPMI session commands
Get channel cipher suites
Get channel authentication capabilities
Open session
RAKP1-4
Close session

Implementation

  • Efficient, fully asynchronous, stage machine based API
  • Synchronous API support
  • Native Java 1.6 implementation - no additional native libraries or drivers required
  • JProfiler tested for memory leaks & performance

Due to its high performance the library is used as IPMI communication layer in the Verax NMS & APM.

License

The software is provided "as is" with no warranty and no support under the GPL v3 license. For a commercial, non-GPL license and support please contact sales at veraxsystems.com.