Inband code update: send PLDM events up for all code update states
send pldm events to Host to respond to the code update commands.
Signed-off-by: Varsha Kaverappa <vkaverap@in.ibm.com>
Change-Id: Iae90a4663d4c5ed20b3a8a6222edb6055a533589
diff --git a/libpldmresponder/oem_handler.hpp b/libpldmresponder/oem_handler.hpp
index ca51366..37d785e 100644
--- a/libpldmresponder/oem_handler.hpp
+++ b/libpldmresponder/oem_handler.hpp
@@ -49,18 +49,19 @@
* @param[in] entityInstance - entity instance
* @param[in] stateSetId - state set id
* @param[in] compEffecterCnt - composite effecter count
- * param[in] stateField - The state field data for each of the states,
+ * @param[in] stateField - The state field data for each of the states,
* equal to compEffecterCnt in number
+ * @param[in] effecterId - Effecter id
*
* @return - Success or failure in setting the states.Returns failure in
* terms of PLDM completion codes if atleast one state fails to
* be set
*/
-
- virtual int oemSetStateEffecterStatesHandler(
- EntityType entityType, EntityInstance entityInstance,
- StateSetId stateSetId, CompositeCount compEffecterCnt,
- const std::vector<set_effecter_state_field>& stateField) = 0;
+ virtual int OemSetStateEffecterStatesHandler(
+ uint16_t entityType, uint16_t entityInstance, uint16_t stateSetId,
+ uint8_t compEffecterCnt,
+ std::vector<set_effecter_state_field>& stateField,
+ uint16_t effecterId) = 0;
/** @brief Interface to generate the OEM PDRs
*
diff --git a/libpldmresponder/platform.cpp b/libpldmresponder/platform.cpp
index 24d1956..0e5b22d 100644
--- a/libpldmresponder/platform.cpp
+++ b/libpldmresponder/platform.cpp
@@ -260,9 +260,9 @@
entityInstance, stateSetId) &&
oemPlatformHandler != nullptr)
{
- rc = oemPlatformHandler->oemSetStateEffecterStatesHandler(
- entityType, entityInstance, stateSetId, compEffecterCnt,
- stateField);
+ rc = oemPlatformHandler->OemSetStateEffecterStatesHandler(
+ entityType, entityInstance, stateSetId, compEffecterCnt, stateField,
+ effecterId);
}
else
{
diff --git a/oem/ibm/libpldmresponder/oem_ibm_handler.cpp b/oem/ibm/libpldmresponder/oem_ibm_handler.cpp
index 1c6b3fd..09a46a5 100644
--- a/oem/ibm/libpldmresponder/oem_ibm_handler.cpp
+++ b/oem/ibm/libpldmresponder/oem_ibm_handler.cpp
@@ -42,10 +42,11 @@
}
int pldm::responder::oem_ibm_platform::Handler::
- oemSetStateEffecterStatesHandler(
- EntityType entityType, EntityInstance entityInstance,
- StateSetId stateSetId, CompositeCount compEffecterCnt,
- const std::vector<set_effecter_state_field>& stateField)
+ OemSetStateEffecterStatesHandler(
+ uint16_t entityType, uint16_t entityInstance, uint16_t stateSetId,
+ uint8_t compEffecterCnt,
+ std::vector<set_effecter_state_field>& stateField,
+ uint16_t /*effecterId*/)
{
int rc = PLDM_SUCCESS;
diff --git a/oem/ibm/libpldmresponder/oem_ibm_handler.hpp b/oem/ibm/libpldmresponder/oem_ibm_handler.hpp
index 17ad008..f8d261d 100644
--- a/oem/ibm/libpldmresponder/oem_ibm_handler.hpp
+++ b/oem/ibm/libpldmresponder/oem_ibm_handler.hpp
@@ -48,10 +48,10 @@
StateSetId stateSetId, CompositeCount compSensorCnt,
std::vector<get_sensor_state_field>& stateField);
- int oemSetStateEffecterStatesHandler(
- EntityType entityType, EntityInstance entityInstance,
- StateSetId stateSetId, CompositeCount compEffecterCnt,
- const std::vector<set_effecter_state_field>& stateField);
+ int OemSetStateEffecterStatesHandler(
+ uint16_t entityType, uint16_t entityInstance, uint16_t stateSetId,
+ uint8_t compEffecterCnt,
+ std::vector<set_effecter_state_field>& stateField, uint16_t effecterId);
/** @brief Method to set the platform handler in the
* oem_ibm_handler class
diff --git a/oem/ibm/test/libpldmresponder_oem_platform_test.cpp b/oem/ibm/test/libpldmresponder_oem_platform_test.cpp
index 64de610..3b2d681 100644
--- a/oem/ibm/test/libpldmresponder_oem_platform_test.cpp
+++ b/oem/ibm/test/libpldmresponder_oem_platform_test.cpp
@@ -33,6 +33,7 @@
uint16_t stateSetId_ = PLDM_OEM_IBM_BOOT_STATE;
uint16_t entityInstance_ = 0;
uint8_t compSensorCnt_ = 1;
+ uint16_t effecterId = 0xA;
sdbusplus::bus::bus bus(sdbusplus::bus::new_default());
Requester requester(bus, "/abc/def");
@@ -83,24 +84,24 @@
std::vector<set_effecter_state_field> setEffecterStateField;
setEffecterStateField.push_back({PLDM_REQUEST_SET, pSideNum});
- rc = oemPlatformHandler->oemSetStateEffecterStatesHandler(
+ rc = oemPlatformHandler->OemSetStateEffecterStatesHandler(
entityID_, entityInstance_, stateSetId_, compSensorCnt_,
- setEffecterStateField);
+ setEffecterStateField, effecterId);
ASSERT_EQ(rc, PLDM_SUCCESS);
entityInstance_ = 2;
- rc = oemPlatformHandler->oemSetStateEffecterStatesHandler(
+ rc = oemPlatformHandler->OemSetStateEffecterStatesHandler(
entityID_, entityInstance_, stateSetId_, compSensorCnt_,
- setEffecterStateField);
+ setEffecterStateField, effecterId);
ASSERT_EQ(rc, PLDM_PLATFORM_INVALID_STATE_VALUE);
entityID_ = 34;
stateSetId_ = 99;
entityInstance_ = 0;
- rc = oemPlatformHandler->oemSetStateEffecterStatesHandler(
+ rc = oemPlatformHandler->OemSetStateEffecterStatesHandler(
entityID_, entityInstance_, stateSetId_, compSensorCnt_,
- setEffecterStateField);
+ setEffecterStateField, effecterId);
ASSERT_EQ(rc, PLDM_PLATFORM_SET_EFFECTER_UNSUPPORTED_SENSORSTATE);
}