| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This commit doesn't change the behavior, it just makes the following
changes to the testcase infrastructure so there is less duplication:
* Move the hostIface, mockHostIface, repo, and dataIface instances into
the test class HostNotifierTest so that all testcases can use them,
and then remove creating them in every testcase.
* MockHostIface is now a pointer, so have to change its use.
* Make the DataInterface and HosttInterface mocks be NiceMocks so that
gtest won't print warnings about functions called that don't have
EXPECT_CALLs.
* Have the default behavior of sendNewLogCmd be to send a command
successfully so that it doesn't have to be specified in every
testcase.
Change-Id: Ic393933629753b884299ee4dfa30a8bb6007ee63
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If the code somehow sent the host a malformed PEL, it will
respond with the 'Ack PEL' PLDM command with a special value
that indicates this, and the PLDM daemon will relay it to this
daemon.
In this case, change the host transmission state to 'bad' so
it doesn't get sent again. This should never happen as the
Repository class already validates PELs and removes bad ones,
though maybe the host and Repository have different ideas
about what constitutes a malformed PEL.
In the future, if event logging support is added to the PEL
code running inside the logging daemon, it may be a good
idea to create a new PEL for this case.
Signed-off-by: Matt Spinler <spinler@us.ibm.com>
Change-Id: Id6f9fd37764bf5b5d09b4277a1e36b1f26b3e9a5
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The host firmware may have a limited size for its staging area
before it passes the PELs through to the OS, and this area may
fill up with PELs it can't send if there are too many or the OS
isn't up yet.
In this case, it will send down an 'Ack PEL' PLDM command with a
special response indicating this host full condition. The PLDM
daemon will then call a method on this daemon to let it know.
This command handles the host full condition on the HostNotifier
class. When this is set:
* The PEL that hit this condition will be put back on the queue
to be sent again.
* No new PELs will be sent up, except as noted below
* A 60s timer will be started at the end of which another attempt
will be made to send a PEL, in the hopes the condition went away.
- If it didn't go away, this process will repeat.
- If it did go away, a successful ack will be received and things
will proceed as normal.
Signed-off-by: Matt Spinler <spinler@us.ibm.com>
Change-Id: Iaeb38f43f7acc595bcff234ba50cedf8188b3d9b
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
After the host firmware successfully transfers a PEL to the OS,
it will respond with an 'Ack' command that the PLDM daemon sends
over to this daemon via a D-Bus method call.
Add support to the HostNotifier class for this. It will change the
state field in the PEL to 'acked' so that it doesn't get sent up
again.
Signed-off-by: Matt Spinler <spinler@us.ibm.com>
Change-Id: Id2a9985965017d9431419c1375d5374a2d0ae00b
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When a new PEL comes in, send it to the host now if the host
is up and the class is currently idle.
The PLDM command will be dispatched in a standalone function
called from the event loop so that this function, which may
be part of the 'Create new log' D-Bus method response, can
return first.
Also added testcases to start verifying these paths now that
there is a full mock of the HostInterface class.
Signed-off-by: Matt Spinler <spinler@us.ibm.com>
Change-Id: Ib30a99cc61be9205122287ba310bc315d762e863
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fill in the code that looks for the first PEL on the queue that still
needs to be sent up, and send it.
If the failure retry timer is active, or it has already retried the max
number of times, then don't send anything. In the former case the timer
callback will do the send, and in the latter the next time a log comes
in it will start trying again.
Signed-off-by: Matt Spinler <spinler@us.ibm.com>
Change-Id: Ibb9692ca83b23e5e021db8b8a89b5549fb979df1
|
|
|
|
|
|
|
|
|
| |
Fill in the function to determine if a PEL needs to be placed on the
qeueue to be sent up to the host. It involves checking both the host
and HMC transmission states, as well as the PEL action flags field.
Signed-off-by: Matt Spinler <spinler@us.ibm.com>
Change-Id: I9f1a9fba1b7e6dc7a167f1c7e9dfd6c40d90883f
|
|
This class will watch for new PELs being created, and handle sending
them up to the host. This first commit for this class mostly just fills
in the constructor to set up the various callbacks it will use.
It is only instantiated in the Manager class if the Manager constructor
used is the one that passes in the HostInterface object, to allow for
configurations that don't need PELs passed up.
Signed-off-by: Matt Spinler <spinler@us.ibm.com>
Change-Id: I0ddcf94d047979eb78209d396c2351566c634dbe
|