PEL: Add API to get the PLDM instance ID
In order to send a PLDM command, one must get the instance ID parameter
to use for that command from the PLDM daemon via a D-Bus method.
Implement this API in the DataInterface class, though leave the body of
it stubbed out until the PLDM daemon switches to using async D-Bus
operations as right now the logging daemon and PLDM daemon can deadlock
with each calling into the other.
Signed-off-by: Matt Spinler <spinler@us.ibm.com>
Change-Id: I592e7bad922c725edee67003e9957388df5f195c
diff --git a/extensions/openpower-pels/data_interface.hpp b/extensions/openpower-pels/data_interface.hpp
index ff0aa75..35e220c 100644
--- a/extensions/openpower-pels/data_interface.hpp
+++ b/extensions/openpower-pels/data_interface.hpp
@@ -63,6 +63,20 @@
return _hostUp;
}
+ /**
+ * @brief Returns the PLDM instance ID to use for PLDM commands
+ *
+ * The base class implementation just returns zero.
+ *
+ * @param[in] eid - The PLDM EID
+ *
+ * @return uint8_t - The instance ID
+ */
+ virtual uint8_t getPLDMInstanceID(uint8_t eid) const
+ {
+ return 0;
+ }
+
using HostStateChangeFunc = std::function<void(bool)>;
/**
@@ -192,6 +206,15 @@
*/
explicit DataInterface(sdbusplus::bus::bus& bus);
+ /**
+ * @brief Returns the PLDM instance ID to use for PLDM commands
+ *
+ * @param[in] eid - The PLDM EID
+ *
+ * @return uint8_t - The instance ID
+ */
+ uint8_t getPLDMInstanceID(uint8_t eid) const override;
+
private:
/**
* @brief Reads the machine type/model and SN from D-Bus.
@@ -236,7 +259,7 @@
* @param[in] interface - The D-Bus interface
*/
DBusService getService(const std::string& objectPath,
- const std::string& interface);
+ const std::string& interface) const;
/**
* @brief Wrapper for the 'GetAll' properties method call
*