PLDM: Reset Reload usecase to check the BMC state

This commit implements the RR usecase.
When the BMC takes a reboot when the host is up and we get
the getPDR request from host even when BMC is NotReady which leads
to problem.
This commit checks if the BMC is ready or not and then handles
the getPDR request from host.

In the current state, pldm stack does not dynamically generate
all the PDRs for us to send PDR repository change event to host at
runtime. IBM has plans to make the PDR exchange dynamic in future,
but until we come up with that feature, just as a temporary fix
we check the BMC state to determine if PLDM stack is ready for
a PDR exchange.

When services like inventory and led manager are added to the
dependency list of pldm, MCTP will start first but PLDM starts late,
the host assumes that BMC is not back and reboots us.

This commit also solves the pldmd crash which was because
some fru was getting a remove signal but the fru table was not
completely built after a reboot.

Tested:
set the BMC state property to NotReady using busctl and then
using pldmtool requested a getPDR.
pldmtool platform getpdr -d 2
BMC is not ready
Response Message Error: rc=0,cc=4

Signed-off-by: Pavithra Barithaya <pavithra.b@ibm.com>
Change-Id: I6599409a154d6359db389be5e44da139ee2f3205
diff --git a/oem/ibm/libpldmresponder/oem_ibm_handler.hpp b/oem/ibm/libpldmresponder/oem_ibm_handler.hpp
index 8181149..3f4e778 100644
--- a/oem/ibm/libpldmresponder/oem_ibm_handler.hpp
+++ b/oem/ibm/libpldmresponder/oem_ibm_handler.hpp
@@ -178,6 +178,9 @@
     /** @brief To disable to the watchdog timer on host poweron completion*/
     void disableWatchDogTimer();
 
+    /** @brief to check the BMC state*/
+    int checkBMCState();
+
     ~Handler() = default;
 
     pldm::responder::CodeUpdate* codeUpdate; //!< pointer to CodeUpdate object