sensorcommands: handle NaN in threshold interface

dbus-sensor threshold has been changed to always create high and low
interfaces. Threshold value is set to NaN when there is no actual limit.

When creating threshold attributes in SDR, verify that sensor threshold
value is not NaN.

When getting min and max from threshold interfaces, use std::fmin and
std::fmax instead of std::min and std::max. If one of the two arguments
is NaN, the value of the other argument is returned. Since sensors are
always created with default min/max values, the other argument is not
going to be NaN.

Tested:
ipmitool sensor list returns without error.
Sensor limit is na when threshold interface value is NaN.

Signed-off-by: Zhikui Ren <zhikui.ren@intel.com>
Change-Id: Ib0465ceb706a8e29bfad05092f24f545356dc0de
1 file changed
tree: 3c3f12178757d6217485a8dd8f0328698882c20e
  1. cmake/
  2. docs/
  3. include/
  4. non-yocto/
  5. src/
  6. tests/
  7. .clang-format
  8. .gitignore
  9. cmake-format.json
  10. CMakeLists.txt
  11. CMakeLists.txt.in
  12. generate-whitelist.py
  13. ipmi-whitelist.conf
  14. LICENSE
  15. MAINTAINERS
  16. OWNERS
  17. README.md
README.md

Intel IPMI OEM support library

This component is intended to provide Intel-specific IPMI[3] command handlers for OpenBMC. These handlers are intended to integrate BMC with servers based on Intel architecture.

Overview

intel-ipmi-oem serves as an extension[1] to OpenBMC IPMI daemon[2]. It is compiled as a shared library and intended to both:

  • override existing implementation of standard IPMI commands to comply with Intel-specific solutions,
  • provide implementation for non-standard OEM extensions.

Capabilities

Related features provided by the library are grouped in separate source files. Main extensions to vanilla OpenBMC IPMI stack are the following:

  • Acquiring SMBIOS data over IPMI
  • Commands for better integration with Intel hardware
  • Firmware update extensions
  • Extended parsing of IPMI Platform Events[4]

References

  1. OpenBMC IPMI Architecture
  2. Phosphor IPMI Host
  3. IPMI Specification v2.0
  4. Intel Platform Events parsing