Implement PDR.FindStateEffecterPDR DBus API
This commit implements a DBus API defined at
https://gerrit.openbmc-project.xyz/c/openbmc/phosphor-dbus-interfaces/+/31774
to find the stateEffecterPDR based on the entity ID
and stateSetID.
Tested: Unit tests and in witherspoon system
busctl call :1.187 /xyz/openbmc_project/pldm xyz.openbmc_project.PLDM.PDR FindStateEffecterPDR yqq 1 33 196
aay 1 29 1 0 0 0 1 11 0 0 19 0 0 0 1 0 33 0 0 0 0 0 0 0 0 0 1 196 0 1 6
busctl call :1.187 /xyz/openbmc_project/pldm xyz.openbmc_project.PLDM.PDR FindStateEffecterPDR yqq 1 31 129
aay 1 29 3 0 0 0 1 11 0 0 19 0 0 0 3 0 31 0 0 0 0 0 0 0 0 0 1 129 0 1 64
Change-Id: I5c15be5303b511465c36914f5b60a0957cd3857e
Signed-off-by: Pavithra Barithaya <pbaritha@in.ibm.com>
diff --git a/utils.hpp b/utils.hpp
index abf525b..0814de2 100644
--- a/utils.hpp
+++ b/utils.hpp
@@ -259,5 +259,17 @@
PropertyValue jsonEntryToDbusVal(std::string_view type,
const nlohmann::json& value);
+/** @brief Find State Effecter PDR
+ * @param[in] tid - PLDM terminus ID.
+ * @param[in] entityID - entity that can be associated with PLDM State set.
+ * @param[in] stateSetId - value that identifies PLDM State set.
+ * @param[in] repo - pointer to BMC's primary PDR repo.
+ * @return array[array[uint8_t]] - StateEffecterPDRs
+ */
+std::vector<std::vector<uint8_t>> findStateEffecterPDR(uint8_t tid,
+ uint16_t entityID,
+ uint16_t stateSetId,
+ const pldm_pdr* repo);
+
} // namespace utils
} // namespace pldm