PEL.Entry - Add managementSystemAck property
Add managementSystemAck property to PEL.Entry interface to support HMC
acknowledgement of event receipt.
Tested:
1. Created a PEL log using busctl and set-property managementSystemAck
to true. Verified that the flag is set by using peltool
Result:(output of peltool)
"Host Transmission": "Not Sent",
"HMC Transmission": "Acked"
Restarted phosphor-log-manager and verified that the flag is true.
2. Generated PEL using RAWPEL and verified all the steps as in 1.
Change-Id: Ifa06cca0063c6c609317192f9c18bb2524e2f292
Signed-off-by: Vijay Lobo <vijaylobo@gmail.com>
diff --git a/extensions/openpower-pels/pel_entry.hpp b/extensions/openpower-pels/pel_entry.hpp
new file mode 100644
index 0000000..7decb42
--- /dev/null
+++ b/extensions/openpower-pels/pel_entry.hpp
@@ -0,0 +1,68 @@
+#pragma once
+
+#include "manager.hpp"
+namespace openpower
+{
+namespace pels
+{
+
+using PELEntryIface = sdbusplus::org::open_power::Logging::PEL::server::Entry;
+using PropertiesVariant = PELEntryIface::PropertiesVariant;
+
+class PELEntry : public PELEntryIface
+{
+
+ public:
+ PELEntry() = delete;
+ PELEntry(const PELEntry&) = delete;
+ PELEntry& operator=(const PELEntry&) = delete;
+ PELEntry(PELEntry&&) = delete;
+ PELEntry& operator=(PELEntry&&) = delete;
+ virtual ~PELEntry() = default;
+
+ /** @brief Constructor to put an object onto the bus at a dbus path.
+ * @param[in] bus - Bus to attach to.
+ * @param[in] path - Path to attach at.
+ * @param[in] prop - Default property values to be set when this interface
+ * is added to the bus.
+ * @param[in] id - obmc id for this instance.
+ * @param[in] repo - Repository pointer to lookup PEL to set appropriate
+ * attributes.
+ */
+
+ PELEntry(sdbusplus::bus::bus& bus, const std::string& path,
+ const std::map<std::string, PropertiesVariant>& prop, uint32_t id,
+ Repository* repo) :
+ PELEntryIface(bus, path.c_str(), prop),
+ _obmcId(id), _repo(repo)
+ {
+ }
+
+ /** @brief Update managementSystemAck flag.
+ * @param[in] value - A true value says HMC acknowledged the PEL.
+ * @returns New property value
+ */
+ bool managementSystemAck(bool value) override;
+
+ /**
+ * @brief Returns OpenBMC event log ID associated with this interface.
+ */
+ uint32_t getMyId(void) const
+ {
+ return _obmcId;
+ }
+
+ private:
+ /**
+ * @brief Corresponding OpenBMC event log id of this interface.
+ */
+ uint32_t _obmcId;
+
+ /**
+ * @brief Repository pointer to look for updating PEL fields.
+ */
+ Repository* _repo;
+};
+
+} // namespace pels
+} // namespace openpower
\ No newline at end of file