Repository navigation
v2.1.00
Version 2.1.00 adds to the API of 2.0.00 without removing anything. Code built against 2.0.00 links unchanged. It compiles unchanged too, except for case labels that use the two renamed enum constants.
The client now reads each sensor and FRU from the controller that holds it, and returns every sensor of a shared record. It converts the readings of non-linear sensors and decodes the FRUs of memory modules and processors. It also reads FRUs with fewer requests, and opens sessions with MD5-128 and with privilege raised on demand.
See Upgrading from 2.0.00 to 2.1.00 for every behavior change.
Highlights
Each sensor and FRU is read from its owner (#84, #105)
The client follows the owner and LUN of each SDR record, and reaches controllers behind the BMC with Send Message. For example, the power supply, fan, network and drive sensors of an HPE iLO 5 now have readings. 2.0.00 asked the BMC for an unrelated sensor that has the same number. A BMC without SDR repository is walked with Get Device SDR.
Shared sensor records are expanded (#100)
A Compact record shared by several sensors gives one Sensor per instance. A Dell iDRAC 8 now lists Drive 0 to Drive 23 and its DIMM slots, where 2.0.00 returned only the first sensor of each record.
Memory modules and processors in the FRU inventory (#107, #187)
Fru.spd()decodes the SPD data of DDR3, DDR4 and DDR5 modules: type, capacity, ECC, manufacturer, part and serial numbers, and manufacturing date.Fru.pirom()decodes the Processor Information ROM of Intel processors: S-spec, PPIN, cores, frequencies, caches and TDP.ipmicli fruprints both. 2.0.00 refused these FRUs withInvalid format version.
Sessions
privilege(PrivilegeLevel.MaximumAvailable), oripmicli -L auto, starts the session at User and raises it to Operator, then Administrator, when the BMC refuses a command withD4h(#194).- Cipher suites 11 and 12 (MD5-128 integrity) are supported (#106). The default preference becomes
17, 3, 8, 16, 2, 7, 12, 11. - The library wipes its copies of the password and of the BMC key (#205).
Faster FRU reads (#102)
Read FRU Data asks for 255 bytes at a time instead of 16, and halves the count when a controller refuses it. Most BMCs need up to 16 times fewer requests.
Fixed
- Non-linear sensors have a reading, converted with Get Sensor Reading Factors (#144).
- The sensor resolution is
|M × 10^R|instead of half of it (#182). - Threshold sensors list the thresholds crossed in
states(). Discrete sensors no longer have a meaninglessreading()(#203, #204). - OEM and reserved sensor types: their threshold and generic states are decoded (#213). The new
SensorType.ReservedandtypeCode()keep the sensor type code (#211). - Percentage sensors are flagged with
Sensor.percentage()(#212). - Watchdog 1 states are named instead of
Unknown(#174). A sensor without ID string gets an empty name instead ofnull(#175). - FRU 0 of the BMC is always returned: the iLO 5 system board FRU is no longer dropped (#208). FRUs are read at the LUN of their locator record.
- SDR walk: a BMC with an empty repository no longer fails, and a loop in the record IDs no longer spins until the deadline (#210).
- Chassis status: the reserved identify state no longer throws (#207).
- Sessions: a dead session is replaced when the client only sends control commands (#209). xRC4 suites are refused up front instead of failing the login (#202). A cipher suite selector that returns
nullno longer opens the session in suite 0 (#215). - Serial over LAN: errors name the command that failed, and a read returns buffered input at once (#206, #214).
- Messages: a completion code is named once, and bytes are printed in hexadecimal (#216).
ipmicli: better handling of repeated options, of terminals on Java 22-24, and of--no-escape. The owner of each sensor and FRU appears in the output (#218).
API
- Automatic module name
org.metricshub.ipmi, replacingipmi.java(#220). - Misspelled names are fixed, and the old names are kept as deprecated aliases until 3.0 (#217):
SensorType.SystemFirmwareProgress,CompletionCode.InsufficientPrivilege,DeviceRelativeEntityAssociationRecord,CommandCodes.GET_DEVICE_SDR_INFO(now20h). - New core commands:
SendMessage,GetSensorReadingFactors,GetDeviceSdrInfo,GetDeviceSdrandReserveDeviceSdrRepository.
Build and documentation
- Releases are published to Maven Central automatically — #179
- Formatter: a single selector stays on the line, and wrapped lines are joined back when they fit (#223) — #234
- Documentation reviewed before 2.1.00, including the Windows launcher caveat (#219) — #221, #233
Dependency updates
com.github.spotbugs:spotbugs-annotations4.10.4 → 4.10.5 — #189com.github.spotbugs:spotbugs-maven-plugin4.10.4.1 → 4.10.5.0 — #190, merged with the fix of its new finding in #191org.apache.maven.plugins:maven-surefire-report-plugin3.6.0 → 3.6.1 — #236
Pull requests
- Give a sensor without ID string the empty name (#175) — #180
- Name the Watchdog 1 offsets 00h-07h of IPMI 2.0 table 42-3 (#174) — #181
- Return |M x 10^R| as the sensor resolution (#182) — #183
- Await the Suspend NACK before reading it in a SOL test — #184
- Convert the readings of non-linear sensors with Get Sensor Reading Factors (#144) — #185
- Decode the SPD data of memory module FRUs (#107) — #186
- Decode the processor information ROM of a processor FRU (#187) — #188
- Read each sensor from its owner: Send Message bridging, LUN and Device SDRs (#84, #105) — #192
- Raise the session privilege on demand: privilege(MaximumAvailable), ipmicli -L auto — #195
- Implement MD5-128 integrity (suites 11 and 12), keep xRC4 out by decision — #196
- Expand shared Compact sensor records into one sensor per instance (#100) — #197
- Read each FRU from the controller and at the LUN of its locator record — #198
- Read FRU data 255 bytes at a time, halving the count when the controller refuses it — #199
- Test the five FRU multirecord decoders that no lab BMC exercises — #200
- Fix the session, SDR walk and chassis status bugs of the docs review (#202, #207, #209, #210, #215) — #222
- Fix the sensor states, readings, type codes and percentages (#203, #204, #211, #212, #213) — #224
- Declare the module name and fix the misspelled public names (#217, #220) — #225
- Report why the SOL console cannot be opened, and read its input at once (#206, #214) — #226
- Wipe the copies of the password and of the BMC key (#205) — #227
- Return FRU 0 of the BMC whatever the records, and read FRU 0 of satellite controllers — #228
- Name a completion code once, and print FRU and SDR bytes in hex (#216) — #229
- ipmicli: repeated -p/-k message, terminal detection on Java 22-24, --no-escape on a terminal, 'power on' hint, owner in sensors and fru output (#218) — #232
Full Changelog: v2.0.00...v2.1.00