summaryrefslogtreecommitdiffstats
path: root/extensions
diff options
context:
space:
mode:
Diffstat (limited to 'extensions')
-rw-r--r--extensions/openpower-pels/host_notifier.cpp12
-rw-r--r--extensions/openpower-pels/host_notifier.hpp9
2 files changed, 21 insertions, 0 deletions
diff --git a/extensions/openpower-pels/host_notifier.cpp b/extensions/openpower-pels/host_notifier.cpp
index f2d951f..b4e92a8 100644
--- a/extensions/openpower-pels/host_notifier.cpp
+++ b/extensions/openpower-pels/host_notifier.cpp
@@ -345,4 +345,16 @@ void HostNotifier::stopCommand()
}
}
+void HostNotifier::ackPEL(uint32_t id)
+{
+ _repo.setPELHostTransState(id, TransmissionState::acked);
+
+ // No longer just 'sent', so remove it from the sent list.
+ auto sent = std::find(_sentPELs.begin(), _sentPELs.end(), id);
+ if (sent != _sentPELs.end())
+ {
+ _sentPELs.erase(sent);
+ }
+}
+
} // namespace openpower::pels
diff --git a/extensions/openpower-pels/host_notifier.hpp b/extensions/openpower-pels/host_notifier.hpp
index 3e50c83..d160dd4 100644
--- a/extensions/openpower-pels/host_notifier.hpp
+++ b/extensions/openpower-pels/host_notifier.hpp
@@ -82,6 +82,15 @@ class HostNotifier
*/
bool notifyRequired(uint32_t id) const;
+ /**
+ * @brief Called when the host sends the 'ack' PLDM command.
+ *
+ * This means the PEL never needs to be sent up again.
+ *
+ * @param[in] id - The PEL ID
+ */
+ void ackPEL(uint32_t id);
+
private:
/**
* @brief This function gets called by the Repository class
OpenPOWER on IntegriCloud