tree: 734a6c3916a013c6e2f3c420f3c11cf670ec75a6 [path history] [tgz]
  1. registry/
  2. tools/
  3. additional_data.hpp
  4. ascii_string.cpp
  5. ascii_string.hpp
  6. bcd_time.cpp
  7. bcd_time.hpp
  8. callout.cpp
  9. callout.hpp
  10. callouts.cpp
  11. callouts.hpp
  12. data_interface.cpp
  13. data_interface.hpp
  14. dbus_types.hpp
  15. dbus_watcher.hpp
  16. entry_points.cpp
  17. event_logger.hpp
  18. extended_user_header.cpp
  19. extended_user_header.hpp
  20. failing_mtms.cpp
  21. failing_mtms.hpp
  22. fru_identity.cpp
  23. fru_identity.hpp
  24. generic.cpp
  25. generic.hpp
  26. host_interface.hpp
  27. host_notifier.cpp
  28. host_notifier.hpp
  29. json_utils.cpp
  30. json_utils.hpp
  31. log_id.cpp
  32. log_id.hpp
  33. manager.cpp
  34. manager.hpp
  35. mru.cpp
  36. mru.hpp
  37. mtms.cpp
  38. mtms.hpp
  39. openpower-pels.mk
  40. paths.cpp
  41. paths.hpp
  42. pce_identity.cpp
  43. pce_identity.hpp
  44. pel.cpp
  45. pel.hpp
  46. pel_rules.cpp
  47. pel_rules.hpp
  48. pel_types.hpp
  49. pel_values.cpp
  50. pel_values.hpp
  51. pldm_interface.cpp
  52. pldm_interface.hpp
  53. private_header.cpp
  54. private_header.hpp
  55. README.md
  56. registry.cpp
  57. registry.hpp
  58. repository.cpp
  59. repository.hpp
  60. section.hpp
  61. section_factory.cpp
  62. section_factory.hpp
  63. section_header.hpp
  64. severity.cpp
  65. severity.hpp
  66. src.cpp
  67. src.hpp
  68. stream.hpp
  69. user_data.cpp
  70. user_data.hpp
  71. user_data_formats.hpp
  72. user_data_json.cpp
  73. user_data_json.hpp
  74. user_header.cpp
  75. user_header.hpp
extensions/openpower-pels/README.md

OpenPower Platform Event Log (PEL) extension

This extension will create PELs for every OpenBMC event log. It is also possible to point to the raw PEL to use in the OpenBMC event, and then that will be used instead of creating one.

Passing PEL related data within an OpenBMC event log

An error log creator can pass in data that is relevant to a PEL by using certain keywords in the AdditionalData property of the event log.

AdditionalData keywords

RAWPEL

This keyword is used to point to an existing PEL in a binary file that should be associated with this event log. The syntax is:

RAWPEL=<path to PEL File>
e.g.
RAWPEL="/tmp/pels/pel.5"

The code will assign its own error log ID to this PEL, and also update the commit timestamp field to the current time.

ESEL

This keyword's data contains a full PEL in string format. This is how hostboot sends down PELs when it is configured in IPMI communication mode. The PEL is handled just like the PEL obtained using the RAWPEL keyword.

The syntax is:

ESEL=
"00 00 df 00 00 00 00 20 00 04 12 01 6f aa 00 00 50 48 00 30 01 00 33 00 00..."

Note that there are 16 bytes of IPMI SEL data before the PEL data starts.

_PID

This keyword that contains the application's PID is added automatically by the phosphor-logging daemon when the commit or report APIs are used to create an event log, but not when the Create D-Bus method is used. If a caller of the Create API wishes to have their PID captured in the PEL this should be used.

This will be added to the PEL in a section of type User Data (UD), along with the application name it corresponds to.

The syntax is:

_PID=<PID of application>
e.g.
_PID="12345"

Default UserData sections for BMC created PELs

The extension code that creates PELs will add these UserData sections to every PEL:

  • The AdditionalData property contents
    • If the AdditionalData property in the OpenBMC event log has anything in it, it will be saved in a UserData section as a JSON string.

The PEL Message Registry

The PEL message registry is used to create PELs from OpenBMC event logs. Documentation can be found here.

Action Flags and Event Type Rules

The Action Flags and Event Type PEL fields are optional in the message registry, and if not present the code will set them based on certain rules layed out in the PEL spec. In fact, even if they were specified, the checks are still done to ensure consistency across all the logs.

These rules are:

  1. Always set the Report flag, unless the Do Not Report flag is already on.
  2. Always clear the SP Call Home flag, as that feature isn't supported.
  3. If the severity is Non-error Event:
    • Clear the Service Action flag.
    • Clear the Call Home flag.
    • If the Event Type field is Not Applicable, change it to Information Only.
    • If the Event Type field is Information Only or Tracing, set the Hidden flag.
  4. If the severity is Recovered:
    • Set the Hidden flag.
    • Clear the Service Action flag.
    • Clear the Call Home flag.
  5. For all other severities:
    • Clear the Hidden flag.
    • Set the Service Action flag.
    • Set the Call Home flag.

Additional rules may be added in the future if necessary.

D-Bus Interfaces