diff options
author | Matt Spinler <spinler@us.ibm.com> | 2019-12-16 10:50:43 -0600 |
---|---|---|
committer | Matt Spinler <spinler@us.ibm.com> | 2020-01-27 08:25:12 -0600 |
commit | 0e1593ec7102b3a4e273953b2ffb6babae421213 (patch) | |
tree | 66c8695b13fa0cc3f681d945e7ace0cd19237bad /extensions | |
parent | 6b1a5c83bdb6c4d0619d7c154a223f6a1d97d52d (diff) | |
download | phosphor-logging-0e1593ec7102b3a4e273953b2ffb6babae421213.tar.gz phosphor-logging-0e1593ec7102b3a4e273953b2ffb6babae421213.zip |
PEL: Add additional HostNotifier documentation
Give a high level overview of how the class works.
Signed-off-by: Matt Spinler <spinler@us.ibm.com>
Change-Id: I83957e572239997cde6757abb77481890cf98b7a
Diffstat (limited to 'extensions')
-rw-r--r-- | extensions/openpower-pels/host_notifier.hpp | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/extensions/openpower-pels/host_notifier.hpp b/extensions/openpower-pels/host_notifier.hpp index 01eac48..cad2b36 100644 --- a/extensions/openpower-pels/host_notifier.hpp +++ b/extensions/openpower-pels/host_notifier.hpp @@ -16,6 +16,34 @@ namespace openpower::pels * @class HostNotifier * * This class handles notifying the host firmware of new PELs. + * + * It uses the Repository class's subscription feature to be + * notified about new PELs. + * + * Some PELs do not need to be sent - see enqueueRequired() and + * notifyRequired(). + * + * The high level good path flow for sending a single PEL is: + * + * 1) Send the ID and size of the new PEL to the host. + * - The command response is asynchronous. + * + * 2) The host reads the raw PEL data (outside of this class). + * + * 3) The host sends the PEL to the OS, and then sends an AckPEL + * PLDM command to the PLDM daemon, who makes a D-Bus method + * call to this daemon, which calls HostNotifer::ackPEL(). + * + * After this, a PEL never needs to be sent again, but if the + * host is rebooted before the ack comes it will. + * + * The host firmware has a finite amount of space to store PELs before + * sending to the OS, and it's possible it will fill up. In this case, + * the AckPEL command will have a special response that will tell the + * PLDM daemon to call HostReject D-Bus method on this daemon instead + * which will invoke HostNotifier::setHostFull(). This will stop new + * PELs from being sent, and the first PEL that hits this will have + * a timer set to retry again later. */ class HostNotifier { |