NVMeContext: Improve encapsulation of state

Consolidate NVMe MI MCTP message exchange and data parsing in the
NVMeContext implementation, and prevent NVMeSensorMain reaching into
internal details of NVMeContext when adding new sensors.

Previously message data parsing was intermixed with the MCTP message
handler implementation. Instead, make the MCTP message handler simply
dispatch the message buffer to the appropriate context instance.

Refactoring the code in this way makes it easier to later extract a base
class from the NVMeContext implementation.

Change-Id: I77bdfb703fd3da43186994d7b306076bd092afcf
Signed-off-by: Andrew Jeffery <andrew@aj.id.au>
3 files changed
tree: bcad0d4a67adce8e645692d76203a68836bc180a
  1. include/
  2. service_files/
  3. src/
  4. tests/
  5. .clang-format
  6. .clang-ignore
  7. .clang-tidy
  8. .gitignore
  9. Jenkinsfile
  10. LICENSE
  11. MAINTAINERS
  12. meson.build
  13. meson_options.txt
  14. README.md
README.md

dbus-sensors

dbus-sensors is a collection of sensor applications that provide the xyz.openbmc_project.Sensor collection of interfaces. They read sensor values from hwmon, d-bus, or direct driver access to provide readings. Some advance non-sensor features such as fan presence, pwm control, and automatic cpu detection (x86) are also supported.

key features

  • runtime re-configurable from d-bus (entity-manager or the like)

  • isolated: each sensor type is isolated into its own daemon, so a bug in one sensor is unlikely to affect another, and single sensor modifications are possible

  • async single-threaded: uses sdbusplus/asio bindings

  • multiple data inputs: hwmon, d-bus, direct driver access

sensor documentation