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.cpp b/extensions/openpower-pels/pel_entry.cpp
new file mode 100644
index 0000000..403befd
--- /dev/null
+++ b/extensions/openpower-pels/pel_entry.cpp
@@ -0,0 +1,39 @@
+#include "pel_entry.hpp"
+
+#include <iostream>
+#include <xyz/openbmc_project/Common/error.hpp>
+
+namespace openpower
+{
+namespace pels
+{
+
+namespace common_error = sdbusplus::xyz::openbmc_project::Common::Error;
+
+bool PELEntry::managementSystemAck(bool value)
+{
+ auto current = sdbusplus::org::open_power::Logging::PEL::server::Entry::
+ managementSystemAck();
+ if (value != current)
+ {
+ current = sdbusplus::org::open_power::Logging::PEL::server::Entry::
+ managementSystemAck(value);
+
+ Repository::LogID id{Repository::LogID::Obmc(getMyId())};
+ if (auto logId = _repo->getLogID(id); logId.has_value())
+ {
+ // Update HMC acknowledge bit in PEL
+ _repo->setPELHMCTransState(
+ logId->pelID.id,
+ (value ? TransmissionState::acked : TransmissionState::newPEL));
+ }
+ else
+ {
+ throw common_error::InvalidArgument();
+ }
+ }
+ return current;
+}
+
+} // namespace pels
+} // namespace openpower