pldmtool: Display GetPDR state set ID possible state names in an array
Note: Also, displays OEM state set and their possible states.
Created new oem_ibm_state_set.hpp for OEM IBM PDR's possible states.
Example:
{
"nextRecordHandle": 115,
"responseCount": 27,
"recordHandle": 114,
"PDRHeaderVersion": 1,
"PDRType": "State Sensor PDR",
"recordChangeNumber": 0,
"dataLength": 17,
"PLDMTerminusHandle": 0,
"sensorID": 93,
"entityType": "[Physical] Unspecified",
"entityInstanceNumber": 0,
"containerID": 0,
"sensorInit": "noInit",
"sensorAuxiliaryNamesPDR": false,
"compositeSensorCount": 1,
"stateSetID[0]": "Identify State(17)",
"possibleStatesSize[0]": 1,
"possibleStates[0]": [
"Identify State Unasserted(1)",
"Identify State Asserted(2)"
]
}
{
"nextRecordHandle": 125,
"responseCount": 27,
"recordHandle": 124,
"PDRHeaderVersion": 1,
"PDRType": "State Sensor PDR",
"recordChangeNumber": 0,
"dataLength": 17,
"PLDMTerminusHandle": 0,
"sensorID": 103,
"entityType": "[Physical] System chassis (main enclosure)",
"entityInstanceNumber": 1,
"containerID": 0,
"sensorInit": "noInit",
"sensorAuxiliaryNamesPDR": false,
"compositeSensorCount": 1,
"stateSetID[0]": "Operational Fault Status(10)",
"possibleStatesSize[0]": 1,
"possibleStates[0]": [
"Normal(1)",
"Stressed(2)"
]
}
{
"nextRecordHandle": 249,
"responseCount": 30,
"recordHandle": 248,
"PDRHeaderVersion": 1,
"PDRType": "State Effecter PDR",
"recordChangeNumber": 0,
"dataLength": 16,
"PLDMTerminusHandle": 1,
"effecterID": 116,
"entityType": "[Physical] OEM IBM Firmware Update",
"entityInstanceNumber": 1,
"containerID": 0,
"effecterSemanticID": 0,
"effecterInit": "noInit",
"effecterDescriptionPDR": false,
"compositeEffecterCount": 1,
"stateSetID[0]": "OEM IBM Boot State(32769)",
"possibleStatesSize[0]": 2,
"possibleStates[0]": [
"P Side(1)",
"T side(2)"
]
}
Signed-off-by: Sridevi Ramesh <sridevra@in.ibm.com>
Change-Id: Iae44b14dab071683c86fd65c95e984b9287eca80
diff --git a/pldmtool/oem/ibm/oem_ibm_state_set.hpp b/pldmtool/oem/ibm/oem_ibm_state_set.hpp
new file mode 100644
index 0000000..a804ba1
--- /dev/null
+++ b/pldmtool/oem/ibm/oem_ibm_state_set.hpp
@@ -0,0 +1,105 @@
+#include "oem/ibm/libpldmresponder/oem_ibm_handler.hpp"
+
+using namespace pldm::responder::oem_ibm_platform;
+
+/** @brief PLDM OEM State Set range as per DSP0249_1.1.0 specification
+ */
+enum pldm_oem_state_set_id_codes
+{
+ PLDM_OEM_STATE_SET_START = 32768,
+ PLDM_OEM_STATE_SET_END = 65535,
+
+};
+
+/** @brief PLDM OEM IBM Code Update possible state set values
+ */
+enum pldm_oem_ibm_cu_state_set_values
+{
+ OEM_IBM_STATE_SET_CU_START = 1,
+ OEM_IBM_STATE_SET_CU_END = 2,
+ OEM_IBM_STATE_SET_CU_FAIL = 3,
+ OEM_IBM_STATE_SET_CU_ABORT = 4,
+ OEM_IBM_STATE_SET_CU_ACCEPT = 5,
+ OEM_IBM_STATE_SET_CU_REJECT = 6,
+};
+
+/** @brief PLDM OEM IBM Verification possible state set values
+ */
+enum pldm_oem_ibm_verification_state_set_values
+{
+ OEM_IBM_STATE_SET_VERFICATION_VALID = 0,
+ OEM_IBM_STATE_SET_VERFICATION_ENTITLEMENT_FAIL = 1,
+ OEM_IBM_STATE_SET_VERFICATION_BANNED_PLATFORM_FAIL = 2,
+ OEM_IBM_STATE_SET_VERFICATION_MIN_MIF_FAIL = 4,
+};
+
+/** @brief PLDM OEM IBM system power state possible state set values
+ */
+enum pldm_oem_ibm_sys_power_state_set_values
+{
+ OEM_IBM_STATE_SET_SYS_PWR_STATE_RECYCLE_HARD = 1,
+};
+
+/** @brief PLDM OEM IBM boot state possible state set values
+ */
+enum pldm_oem_ibm_boot_state_set_values
+{
+ OEM_IBM_STATE_SET_BOOT_STATE_P_SIDE = 1,
+ OEM_IBM_STATE_SET_BOOT_STATE_T_SIDE = 2,
+};
+
+/** @brief Map for PLDM OEM IBM Entity Types
+ */
+extern const std::map<uint8_t, std::string> OemIBMEntityType{
+ {PLDM_OEM_IBM_ENTITY_FIRMWARE_UPDATE, "OEM IBM Firmware Update"},
+ {PLDM_OEM_ENTITY_TYPE_START, "OEM IBM Entity Type Start"},
+ {PLDM_OEM_ENTITY_TYPE_END, "OEM IBM Entity Type End"},
+};
+
+/** @brief Map for PLDM OEM IBM State Sets
+ */
+extern const std::map<uint16_t, std::string> OemIBMstateSet{
+ {PLDM_OEM_IBM_FIRMWARE_UPDATE_STATE, "OEM IBM Firmware Update State"},
+ {PLDM_OEM_IBM_BOOT_STATE, "OEM IBM Boot State"},
+ {PLDM_OEM_IBM_VERIFICATION_STATE, "OEM IBM Verification State"},
+ {PLDM_OEM_IBM_SYSTEM_POWER_STATE, "OEM IBM System Power State"}};
+
+/** @brief Map for PLDM OEM IBM firmware update possible state values
+ */
+extern const std::map<uint8_t, std::string> SetOemIBMFWUpdateStateValues{
+ {OEM_IBM_STATE_SET_CU_START, "Start"},
+ {OEM_IBM_STATE_SET_CU_END, "End"},
+ {OEM_IBM_STATE_SET_CU_FAIL, "Fail"},
+ {OEM_IBM_STATE_SET_CU_ABORT, "Abort"},
+ {OEM_IBM_STATE_SET_CU_ACCEPT, "Accept"},
+ {OEM_IBM_STATE_SET_CU_REJECT, "Reject"}};
+
+/** @brief Map for PLDM OEM IBM verification state possible state values
+ */
+extern const std::map<uint8_t, std::string> SetOemIBMVerStateValues{
+ {OEM_IBM_STATE_SET_VERFICATION_VALID, "Valid"},
+ {OEM_IBM_STATE_SET_VERFICATION_ENTITLEMENT_FAIL, "Entitlement Fail"},
+ {OEM_IBM_STATE_SET_VERFICATION_BANNED_PLATFORM_FAIL,
+ "Banned Platform Fail"},
+ {OEM_IBM_STATE_SET_VERFICATION_MIN_MIF_FAIL, "Minimum MIF Fail"}};
+
+/** @brief Map for PLDM OEM IBM systerm power state possible state values
+ */
+extern const std::map<uint8_t, std::string> SetOemIBMSysPowerStatesValues{
+ {OEM_IBM_STATE_SET_SYS_PWR_STATE_RECYCLE_HARD, "Power Cycle Hard"}};
+
+/** @brief Map for PLDM OEM IBM boot state possible state values
+ */
+extern const std::map<uint8_t, std::string> SetOemIBMBootStateValues{
+ {OEM_IBM_STATE_SET_BOOT_STATE_P_SIDE, "P Side"},
+ {OEM_IBM_STATE_SET_BOOT_STATE_T_SIDE, "T side"}};
+
+/** @brief Map for populating PLDM OEM IBM state sets with possible state values
+ */
+extern const std::map<uint16_t, const std::map<uint8_t, std::string>>
+ populateOemIBMStateMaps{
+ {PLDM_OEM_IBM_VERIFICATION_STATE, SetOemIBMVerStateValues},
+ {PLDM_OEM_IBM_SYSTEM_POWER_STATE, SetOemIBMSysPowerStatesValues},
+ {PLDM_OEM_IBM_BOOT_STATE, SetOemIBMBootStateValues},
+ {PLDM_OEM_IBM_FIRMWARE_UPDATE_STATE, SetOemIBMFWUpdateStateValues},
+ };