Add state set id support for remote sensor events

In the current state, PLDM does not support having a state set ID
field in the event JSONs, this commit would add that support in
PLDM there by allowing hosts to have multiple sensors with the
same entity instance number, type and container id, but with different
state sets.

TESTED: with pldmtool raw commands sending sensor events to the BMC.

Signed-off-by: Sagar Srinivas <sagar.srinivas@ibm.com>
Change-Id: If9bb9bde27d6b35f5904ac199801dbdffde0f57e
diff --git a/common/types.hpp b/common/types.hpp
index 6f06ecc..0c7514c 100644
--- a/common/types.hpp
+++ b/common/types.hpp
@@ -131,7 +131,8 @@
 //!< composite efffecter/sensor
 using CompositeSensorStates = std::vector<PossibleStates>;
 using EntityInfo = std::tuple<ContainerID, EntityType, EntityInstance>;
-using SensorInfo = std::tuple<EntityInfo, CompositeSensorStates>;
+using SensorInfo =
+    std::tuple<EntityInfo, CompositeSensorStates, std::vector<StateSetId>>;
 
 } // namespace pdr
 
diff --git a/configurations/events/stateSensorPdrs.json b/configurations/events/stateSensorPdrs.json
index 37d8df4..baab3e3 100644
--- a/configurations/events/stateSensorPdrs.json
+++ b/configurations/events/stateSensorPdrs.json
@@ -1,10 +1,36 @@
 {
     "entries": [
         {
+            "containerID": 1,
+            "entityType": 32801,
+            "entityInstance": 0,
+            "sensorOffset": 0,
+            "stateSetId": 196,
+            "event_states": [1, 2, 3, 5, 7, 9, 21, 22, 26],
+            "dbus": {
+                "object_path": "/xyz/openbmc_project/state/host0",
+                "interface": "xyz.openbmc_project.State.Boot.Progress",
+                "property_name": "BootProgress",
+                "property_type": "string",
+                "property_values": [
+                    "xyz.openbmc_project.State.Boot.Progress.ProgressStages.Unspecified",
+                    "xyz.openbmc_project.State.Boot.Progress.ProgressStages.SystemInitComplete",
+                    "xyz.openbmc_project.State.Boot.Progress.ProgressStages.MemoryInit",
+                    "xyz.openbmc_project.State.Boot.Progress.ProgressStages.SecondaryProcInit",
+                    "xyz.openbmc_project.State.Boot.Progress.ProgressStages.SystemSetup",
+                    "xyz.openbmc_project.State.Boot.Progress.ProgressStages.PCIInit",
+                    "xyz.openbmc_project.State.Boot.Progress.ProgressStages.OSRunning",
+                    "xyz.openbmc_project.State.Boot.Progress.ProgressStages.BusInit",
+                    "xyz.openbmc_project.State.Boot.Progress.ProgressStages.PrimaryProcInit"
+                ]
+            }
+        },
+        {
             "containerID": 0,
             "entityType": 32801,
             "entityInstance": 0,
             "sensorOffset": 0,
+            "stateSetId": 196,
             "event_states": [1, 2, 3, 5, 7, 9, 21, 22, 26],
             "dbus": {
                 "object_path": "/xyz/openbmc_project/state/host0",
@@ -50,6 +76,7 @@
             "entityType": 66,
             "entityInstance": 0,
             "sensorOffset": 0,
+            "stateSetId": 1,
             "event_states": [1, 3],
             "dbus": {
                 "object_path": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm0",
@@ -64,6 +91,7 @@
             "entityType": 66,
             "entityInstance": 1,
             "sensorOffset": 0,
+            "stateSetId": 1,
             "event_states": [1, 3],
             "dbus": {
                 "object_path": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm1",
@@ -78,6 +106,7 @@
             "entityType": 66,
             "entityInstance": 2,
             "sensorOffset": 0,
+            "stateSetId": 1,
             "event_states": [1, 3],
             "dbus": {
                 "object_path": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm2",
@@ -92,6 +121,7 @@
             "entityType": 66,
             "entityInstance": 3,
             "sensorOffset": 0,
+            "stateSetId": 1,
             "event_states": [1, 3],
             "dbus": {
                 "object_path": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm3",
@@ -106,6 +136,7 @@
             "entityType": 66,
             "entityInstance": 4,
             "sensorOffset": 0,
+            "stateSetId": 1,
             "event_states": [1, 3],
             "dbus": {
                 "object_path": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm4",
@@ -120,6 +151,7 @@
             "entityType": 66,
             "entityInstance": 5,
             "sensorOffset": 0,
+            "stateSetId": 1,
             "event_states": [1, 3],
             "dbus": {
                 "object_path": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm5",
@@ -134,6 +166,7 @@
             "entityType": 66,
             "entityInstance": 6,
             "sensorOffset": 0,
+            "stateSetId": 1,
             "event_states": [1, 3],
             "dbus": {
                 "object_path": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm6",
@@ -148,6 +181,7 @@
             "entityType": 66,
             "entityInstance": 7,
             "sensorOffset": 0,
+            "stateSetId": 1,
             "event_states": [1, 3],
             "dbus": {
                 "object_path": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm7",
@@ -162,6 +196,7 @@
             "entityType": 66,
             "entityInstance": 8,
             "sensorOffset": 0,
+            "stateSetId": 1,
             "event_states": [1, 3],
             "dbus": {
                 "object_path": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm8",
@@ -176,6 +211,7 @@
             "entityType": 66,
             "entityInstance": 9,
             "sensorOffset": 0,
+            "stateSetId": 1,
             "event_states": [1, 3],
             "dbus": {
                 "object_path": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm9",
@@ -190,6 +226,7 @@
             "entityType": 66,
             "entityInstance": 10,
             "sensorOffset": 0,
+            "stateSetId": 1,
             "event_states": [1, 3],
             "dbus": {
                 "object_path": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm10",
@@ -218,6 +255,7 @@
             "entityType": 66,
             "entityInstance": 12,
             "sensorOffset": 0,
+            "stateSetId": 1,
             "event_states": [1, 3],
             "dbus": {
                 "object_path": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm12",
@@ -232,6 +270,7 @@
             "entityType": 66,
             "entityInstance": 13,
             "sensorOffset": 0,
+            "stateSetId": 1,
             "event_states": [1, 3],
             "dbus": {
                 "object_path": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm13",
@@ -246,6 +285,7 @@
             "entityType": 66,
             "entityInstance": 14,
             "sensorOffset": 0,
+            "stateSetId": 1,
             "event_states": [1, 3],
             "dbus": {
                 "object_path": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm14",
@@ -260,6 +300,7 @@
             "entityType": 66,
             "entityInstance": 15,
             "sensorOffset": 0,
+            "stateSetId": 1,
             "event_states": [1, 3],
             "dbus": {
                 "object_path": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm15",
@@ -274,6 +315,7 @@
             "entityType": 66,
             "entityInstance": 16,
             "sensorOffset": 0,
+            "stateSetId": 1,
             "event_states": [1, 3],
             "dbus": {
                 "object_path": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm16",
@@ -288,6 +330,7 @@
             "entityType": 66,
             "entityInstance": 17,
             "sensorOffset": 0,
+            "stateSetId": 1,
             "event_states": [1, 3],
             "dbus": {
                 "object_path": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm17",
@@ -302,6 +345,7 @@
             "entityType": 66,
             "entityInstance": 18,
             "sensorOffset": 0,
+            "stateSetId": 1,
             "event_states": [1, 3],
             "dbus": {
                 "object_path": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm18",
@@ -316,6 +360,7 @@
             "entityType": 66,
             "entityInstance": 19,
             "sensorOffset": 0,
+            "stateSetId": 1,
             "event_states": [1, 3],
             "dbus": {
                 "object_path": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm19",
@@ -330,6 +375,7 @@
             "entityType": 66,
             "entityInstance": 20,
             "sensorOffset": 0,
+            "stateSetId": 1,
             "event_states": [1, 3],
             "dbus": {
                 "object_path": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm20",
@@ -344,6 +390,7 @@
             "entityType": 66,
             "entityInstance": 21,
             "sensorOffset": 0,
+            "stateSetId": 1,
             "event_states": [1, 3],
             "dbus": {
                 "object_path": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm21",
@@ -358,6 +405,7 @@
             "entityType": 66,
             "entityInstance": 22,
             "sensorOffset": 0,
+            "stateSetId": 1,
             "event_states": [1, 3],
             "dbus": {
                 "object_path": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm22",
@@ -372,6 +420,7 @@
             "entityType": 66,
             "entityInstance": 23,
             "sensorOffset": 0,
+            "stateSetId": 1,
             "event_states": [1, 3],
             "dbus": {
                 "object_path": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm23",
@@ -386,6 +435,7 @@
             "entityType": 66,
             "entityInstance": 24,
             "sensorOffset": 0,
+            "stateSetId": 1,
             "event_states": [1, 3],
             "dbus": {
                 "object_path": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm24",
@@ -400,6 +450,7 @@
             "entityType": 66,
             "entityInstance": 25,
             "sensorOffset": 0,
+            "stateSetId": 1,
             "event_states": [1, 3],
             "dbus": {
                 "object_path": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm25",
@@ -414,6 +465,7 @@
             "entityType": 66,
             "entityInstance": 26,
             "sensorOffset": 0,
+            "stateSetId": 1,
             "event_states": [1, 3],
             "dbus": {
                 "object_path": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm26",
@@ -428,6 +480,7 @@
             "entityType": 66,
             "entityInstance": 27,
             "sensorOffset": 0,
+            "stateSetId": 1,
             "event_states": [1, 3],
             "dbus": {
                 "object_path": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm27",
@@ -442,6 +495,7 @@
             "entityType": 66,
             "entityInstance": 28,
             "sensorOffset": 0,
+            "stateSetId": 1,
             "event_states": [1, 3],
             "dbus": {
                 "object_path": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm28",
@@ -456,6 +510,7 @@
             "entityType": 66,
             "entityInstance": 29,
             "sensorOffset": 0,
+            "stateSetId": 1,
             "event_states": [1, 3],
             "dbus": {
                 "object_path": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm29",
@@ -470,6 +525,7 @@
             "entityType": 66,
             "entityInstance": 30,
             "sensorOffset": 0,
+            "stateSetId": 1,
             "event_states": [1, 3],
             "dbus": {
                 "object_path": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm30",
@@ -484,6 +540,7 @@
             "entityType": 66,
             "entityInstance": 31,
             "sensorOffset": 0,
+            "stateSetId": 1,
             "event_states": [1, 3],
             "dbus": {
                 "object_path": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm31",
@@ -972,486 +1029,6 @@
                 "property_type": "bool",
                 "property_values": [true, false]
             }
-        },
-        {
-            "containerID": 3,
-            "entityType": 66,
-            "entityInstance": 32,
-            "sensorOffset": 0,
-            "stateSetId": 1,
-            "event_states": [1, 3],
-            "dbus": {
-                "object_path": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm32",
-                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-                "property_name": "Functional",
-                "property_type": "bool",
-                "property_values": [true, false]
-            }
-        },
-        {
-            "containerID": 3,
-            "entityType": 66,
-            "entityInstance": 33,
-            "sensorOffset": 0,
-            "stateSetId": 1,
-            "event_states": [1, 3],
-            "dbus": {
-                "object_path": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm33",
-                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-                "property_name": "Functional",
-                "property_type": "bool",
-                "property_values": [true, false]
-            }
-        },
-        {
-            "containerID": 3,
-            "entityType": 66,
-            "entityInstance": 34,
-            "sensorOffset": 0,
-            "stateSetId": 1,
-            "event_states": [1, 3],
-            "dbus": {
-                "object_path": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm34",
-                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-                "property_name": "Functional",
-                "property_type": "bool",
-                "property_values": [true, false]
-            }
-        },
-        {
-            "containerID": 3,
-            "entityType": 66,
-            "entityInstance": 35,
-            "sensorOffset": 0,
-            "stateSetId": 1,
-            "event_states": [1, 3],
-            "dbus": {
-                "object_path": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm35",
-                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-                "property_name": "Functional",
-                "property_type": "bool",
-                "property_values": [true, false]
-            }
-        },
-        {
-            "containerID": 3,
-            "entityType": 66,
-            "entityInstance": 36,
-            "sensorOffset": 0,
-            "stateSetId": 1,
-            "event_states": [1, 3],
-            "dbus": {
-                "object_path": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm36",
-                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-                "property_name": "Functional",
-                "property_type": "bool",
-                "property_values": [true, false]
-            }
-        },
-        {
-            "containerID": 3,
-            "entityType": 66,
-            "entityInstance": 37,
-            "sensorOffset": 0,
-            "stateSetId": 1,
-            "event_states": [1, 3],
-            "dbus": {
-                "object_path": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm37",
-                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-                "property_name": "Functional",
-                "property_type": "bool",
-                "property_values": [true, false]
-            }
-        },
-        {
-            "containerID": 3,
-            "entityType": 66,
-            "entityInstance": 38,
-            "sensorOffset": 0,
-            "stateSetId": 1,
-            "event_states": [1, 3],
-            "dbus": {
-                "object_path": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm38",
-                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-                "property_name": "Functional",
-                "property_type": "bool",
-                "property_values": [true, false]
-            }
-        },
-        {
-            "containerID": 3,
-            "entityType": 66,
-            "entityInstance": 39,
-            "sensorOffset": 0,
-            "stateSetId": 1,
-            "event_states": [1, 3],
-            "dbus": {
-                "object_path": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm39",
-                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-                "property_name": "Functional",
-                "property_type": "bool",
-                "property_values": [true, false]
-            }
-        },
-        {
-            "containerID": 3,
-            "entityType": 66,
-            "entityInstance": 40,
-            "sensorOffset": 0,
-            "stateSetId": 1,
-            "event_states": [1, 3],
-            "dbus": {
-                "object_path": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm40",
-                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-                "property_name": "Functional",
-                "property_type": "bool",
-                "property_values": [true, false]
-            }
-        },
-        {
-            "containerID": 3,
-            "entityType": 66,
-            "entityInstance": 41,
-            "sensorOffset": 0,
-            "stateSetId": 1,
-            "event_states": [1, 3],
-            "dbus": {
-                "object_path": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm41",
-                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-                "property_name": "Functional",
-                "property_type": "bool",
-                "property_values": [true, false]
-            }
-        },
-        {
-            "containerID": 3,
-            "entityType": 66,
-            "entityInstance": 42,
-            "sensorOffset": 0,
-            "stateSetId": 1,
-            "event_states": [1, 3],
-            "dbus": {
-                "object_path": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm42",
-                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-                "property_name": "Functional",
-                "property_type": "bool",
-                "property_values": [true, false]
-            }
-        },
-        {
-            "containerID": 3,
-            "entityType": 66,
-            "entityInstance": 43,
-            "sensorOffset": 0,
-            "stateSetId": 1,
-            "event_states": [1, 3],
-            "dbus": {
-                "object_path": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm43",
-                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-                "property_name": "Functional",
-                "property_type": "bool",
-                "property_values": [true, false]
-            }
-        },
-        {
-            "containerID": 3,
-            "entityType": 66,
-            "entityInstance": 44,
-            "sensorOffset": 0,
-            "stateSetId": 1,
-            "event_states": [1, 3],
-            "dbus": {
-                "object_path": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm44",
-                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-                "property_name": "Functional",
-                "property_type": "bool",
-                "property_values": [true, false]
-            }
-        },
-        {
-            "containerID": 3,
-            "entityType": 66,
-            "entityInstance": 45,
-            "sensorOffset": 0,
-            "stateSetId": 1,
-            "event_states": [1, 3],
-            "dbus": {
-                "object_path": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm45",
-                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-                "property_name": "Functional",
-                "property_type": "bool",
-                "property_values": [true, false]
-            }
-        },
-        {
-            "containerID": 3,
-            "entityType": 66,
-            "entityInstance": 46,
-            "sensorOffset": 0,
-            "stateSetId": 1,
-            "event_states": [1, 3],
-            "dbus": {
-                "object_path": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm46",
-                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-                "property_name": "Functional",
-                "property_type": "bool",
-                "property_values": [true, false]
-            }
-        },
-        {
-            "containerID": 3,
-            "entityType": 66,
-            "entityInstance": 47,
-            "sensorOffset": 0,
-            "stateSetId": 1,
-            "event_states": [1, 3],
-            "dbus": {
-                "object_path": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm47",
-                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-                "property_name": "Functional",
-                "property_type": "bool",
-                "property_values": [true, false]
-            }
-        },
-        {
-            "containerID": 3,
-            "entityType": 66,
-            "entityInstance": 48,
-            "sensorOffset": 0,
-            "stateSetId": 1,
-            "event_states": [1, 3],
-            "dbus": {
-                "object_path": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm48",
-                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-                "property_name": "Functional",
-                "property_type": "bool",
-                "property_values": [true, false]
-            }
-        },
-        {
-            "containerID": 3,
-            "entityType": 66,
-            "entityInstance": 49,
-            "sensorOffset": 0,
-            "stateSetId": 1,
-            "event_states": [1, 3],
-            "dbus": {
-                "object_path": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm49",
-                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-                "property_name": "Functional",
-                "property_type": "bool",
-                "property_values": [true, false]
-            }
-        },
-        {
-            "containerID": 3,
-            "entityType": 66,
-            "entityInstance": 50,
-            "sensorOffset": 0,
-            "stateSetId": 1,
-            "event_states": [1, 3],
-            "dbus": {
-                "object_path": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm50",
-                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-                "property_name": "Functional",
-                "property_type": "bool",
-                "property_values": [true, false]
-            }
-        },
-        {
-            "containerID": 3,
-            "entityType": 66,
-            "entityInstance": 51,
-            "sensorOffset": 0,
-            "stateSetId": 1,
-            "event_states": [1, 3],
-            "dbus": {
-                "object_path": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm51",
-                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-                "property_name": "Functional",
-                "property_type": "bool",
-                "property_values": [true, false]
-            }
-        },
-        {
-            "containerID": 3,
-            "entityType": 66,
-            "entityInstance": 52,
-            "sensorOffset": 0,
-            "stateSetId": 1,
-            "event_states": [1, 3],
-            "dbus": {
-                "object_path": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm52",
-                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-                "property_name": "Functional",
-                "property_type": "bool",
-                "property_values": [true, false]
-            }
-        },
-        {
-            "containerID": 3,
-            "entityType": 66,
-            "entityInstance": 53,
-            "sensorOffset": 0,
-            "stateSetId": 1,
-            "event_states": [1, 3],
-            "dbus": {
-                "object_path": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm53",
-                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-                "property_name": "Functional",
-                "property_type": "bool",
-                "property_values": [true, false]
-            }
-        },
-        {
-            "containerID": 3,
-            "entityType": 66,
-            "entityInstance": 54,
-            "sensorOffset": 0,
-            "stateSetId": 1,
-            "event_states": [1, 3],
-            "dbus": {
-                "object_path": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm54",
-                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-                "property_name": "Functional",
-                "property_type": "bool",
-                "property_values": [true, false]
-            }
-        },
-        {
-            "containerID": 3,
-            "entityType": 66,
-            "entityInstance": 55,
-            "sensorOffset": 0,
-            "stateSetId": 1,
-            "event_states": [1, 3],
-            "dbus": {
-                "object_path": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm55",
-                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-                "property_name": "Functional",
-                "property_type": "bool",
-                "property_values": [true, false]
-            }
-        },
-        {
-            "containerID": 3,
-            "entityType": 66,
-            "entityInstance": 56,
-            "sensorOffset": 0,
-            "stateSetId": 1,
-            "event_states": [1, 3],
-            "dbus": {
-                "object_path": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm56",
-                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-                "property_name": "Functional",
-                "property_type": "bool",
-                "property_values": [true, false]
-            }
-        },
-        {
-            "containerID": 3,
-            "entityType": 66,
-            "entityInstance": 57,
-            "sensorOffset": 0,
-            "stateSetId": 1,
-            "event_states": [1, 3],
-            "dbus": {
-                "object_path": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm57",
-                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-                "property_name": "Functional",
-                "property_type": "bool",
-                "property_values": [true, false]
-            }
-        },
-        {
-            "containerID": 3,
-            "entityType": 66,
-            "entityInstance": 58,
-            "sensorOffset": 0,
-            "stateSetId": 1,
-            "event_states": [1, 3],
-            "dbus": {
-                "object_path": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm58",
-                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-                "property_name": "Functional",
-                "property_type": "bool",
-                "property_values": [true, false]
-            }
-        },
-        {
-            "containerID": 3,
-            "entityType": 66,
-            "entityInstance": 59,
-            "sensorOffset": 0,
-            "stateSetId": 1,
-            "event_states": [1, 3],
-            "dbus": {
-                "object_path": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm59",
-                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-                "property_name": "Functional",
-                "property_type": "bool",
-                "property_values": [true, false]
-            }
-        },
-        {
-            "containerID": 3,
-            "entityType": 66,
-            "entityInstance": 60,
-            "sensorOffset": 0,
-            "stateSetId": 1,
-            "event_states": [1, 3],
-            "dbus": {
-                "object_path": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm60",
-                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-                "property_name": "Functional",
-                "property_type": "bool",
-                "property_values": [true, false]
-            }
-        },
-        {
-            "containerID": 3,
-            "entityType": 66,
-            "entityInstance": 61,
-            "sensorOffset": 0,
-            "stateSetId": 1,
-            "event_states": [1, 3],
-            "dbus": {
-                "object_path": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm61",
-                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-                "property_name": "Functional",
-                "property_type": "bool",
-                "property_values": [true, false]
-            }
-        },
-        {
-            "containerID": 3,
-            "entityType": 66,
-            "entityInstance": 62,
-            "sensorOffset": 0,
-            "stateSetId": 1,
-            "event_states": [1, 3],
-            "dbus": {
-                "object_path": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm62",
-                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-                "property_name": "Functional",
-                "property_type": "bool",
-                "property_values": [true, false]
-            }
-        },
-        {
-            "containerID": 3,
-            "entityType": 66,
-            "entityInstance": 63,
-            "sensorOffset": 0,
-            "stateSetId": 1,
-            "event_states": [1, 3],
-            "dbus": {
-                "object_path": "/xyz/openbmc_project/inventory/system/chassis/motherboard/dimm63",
-                "interface": "xyz.openbmc_project.State.Decorator.OperationalStatus",
-                "property_name": "Functional",
-                "property_type": "bool",
-                "property_values": [true, false]
-            }
         }
     ]
 }
diff --git a/host-bmc/host_pdr_handler.cpp b/host-bmc/host_pdr_handler.cpp
index c309c2a..72f2478 100644
--- a/host-bmc/host_pdr_handler.cpp
+++ b/host-bmc/host_pdr_handler.cpp
@@ -857,10 +857,12 @@
                         pldm::pdr::EntityInfo entityInfo{};
                         pldm::pdr::CompositeSensorStates
                             compositeSensorStates{};
+                        std::vector<pldm::pdr::StateSetId> stateSetIds{};
 
                         try
                         {
-                            std::tie(entityInfo, compositeSensorStates) =
+                            std::tie(entityInfo, compositeSensorStates,
+                                     stateSetIds) =
                                 lookupSensorInfo(sensorEntry);
                         }
                         catch (const std::out_of_range&)
@@ -868,7 +870,8 @@
                             try
                             {
                                 sensorEntry.terminusID = PLDM_TID_RESERVED;
-                                std::tie(entityInfo, compositeSensorStates) =
+                                std::tie(entityInfo, compositeSensorStates,
+                                         stateSetIds) =
                                     lookupSensorInfo(sensorEntry);
                             }
                             catch (const std::out_of_range&)
@@ -893,9 +896,11 @@
                         }
                         const auto& [containerId, entityType,
                                      entityInstance] = entityInfo;
+                        auto stateSetId = stateSetIds[sensorOffset];
                         pldm::responder::events::StateSensorEntry
                             stateSensorEntry{containerId, entityType,
-                                             entityInstance, sensorOffset};
+                                             entityInstance, sensorOffset,
+                                             stateSetId};
                         handleStateSensorEvent(stateSensorEntry, eventState);
                     }
                 };
diff --git a/libpldmresponder/event_parser.cpp b/libpldmresponder/event_parser.cpp
index d070758..303a553 100644
--- a/libpldmresponder/event_parser.cpp
+++ b/libpldmresponder/event_parser.cpp
@@ -5,7 +5,6 @@
 
 #include <filesystem>
 #include <fstream>
-#include <iostream>
 #include <set>
 
 PHOSPHOR_LOG2_USING;
@@ -58,6 +57,8 @@
                 static_cast<uint16_t>(entry.value("entityInstance", 0));
             stateSensorEntry.sensorOffset =
                 static_cast<uint8_t>(entry.value("sensorOffset", 0));
+            stateSensorEntry.stateSetid =
+                static_cast<uint16_t>(entry.value("stateSetId", 0));
 
             pldm::utils::DBusMapping dbusInfo{};
 
diff --git a/libpldmresponder/event_parser.hpp b/libpldmresponder/event_parser.hpp
index 4d95e3a..7498c4c 100644
--- a/libpldmresponder/event_parser.hpp
+++ b/libpldmresponder/event_parser.hpp
@@ -27,13 +27,14 @@
     pdr::EntityType entityType;
     pdr::EntityInstance entityInstance;
     pdr::SensorOffset sensorOffset;
+    pdr::StateSetId stateSetid;
 
     bool operator==(const StateSensorEntry& e) const
     {
-        return ((containerId == e.containerId) &&
-                (entityType == e.entityType) &&
-                (entityInstance == e.entityInstance) &&
-                (sensorOffset == e.sensorOffset));
+        return (
+            (containerId == e.containerId) && (entityType == e.entityType) &&
+            (entityInstance == e.entityInstance) &&
+            (sensorOffset == e.sensorOffset) && (stateSetid == e.stateSetid));
     }
 
     bool operator<(const StateSensorEntry& e) const
@@ -45,7 +46,10 @@
              (entityInstance < e.entityInstance)) ||
             ((containerId == e.containerId) && (entityType == e.entityType) &&
              (entityInstance == e.entityInstance) &&
-             (sensorOffset < e.sensorOffset)));
+             (sensorOffset < e.sensorOffset)) ||
+            ((containerId == e.containerId) && (entityType == e.entityType) &&
+             (entityInstance == e.entityInstance) &&
+             (sensorOffset == e.sensorOffset) && (stateSetid < e.stateSetid)));
     }
 };
 
diff --git a/libpldmresponder/pdr_utils.cpp b/libpldmresponder/pdr_utils.cpp
index 06f080d..e7f6d42 100644
--- a/libpldmresponder/pdr_utils.cpp
+++ b/libpldmresponder/pdr_utils.cpp
@@ -166,6 +166,7 @@
     CompositeSensorStates sensors{};
     auto statesPtr = pdr->possible_states;
     auto compositeSensorCount = pdr->composite_sensor_count;
+    std::vector<StateSetId> stateSetIds{};
 
     while (compositeSensorCount--)
     {
@@ -189,6 +190,8 @@
                       updateStates);
 
         sensors.emplace_back(std::move(possibleStates));
+        stateSetIds.emplace_back(state->state_set_id);
+
         if (compositeSensorCount)
         {
             statesPtr += sizeof(state_sensor_possible_states) +
@@ -200,8 +203,8 @@
         std::make_tuple(static_cast<ContainerID>(pdr->container_id),
                         static_cast<EntityType>(pdr->entity_type),
                         static_cast<EntityInstance>(pdr->entity_instance));
-    auto sensorInfo = std::make_tuple(std::move(entityInfo),
-                                      std::move(sensors));
+    auto sensorInfo = std::make_tuple(std::move(entityInfo), std::move(sensors),
+                                      std::move(stateSetIds));
     return std::make_tuple(pdr->terminus_handle, pdr->sensor_id,
                            std::move(sensorInfo));
 }
diff --git a/libpldmresponder/platform.cpp b/libpldmresponder/platform.cpp
index 70ac4bc..0e5455c 100644
--- a/libpldmresponder/platform.cpp
+++ b/libpldmresponder/platform.cpp
@@ -450,10 +450,11 @@
 
         pldm::pdr::EntityInfo entityInfo{};
         pldm::pdr::CompositeSensorStates compositeSensorStates{};
+        std::vector<pldm::pdr::StateSetId> stateSetIds{};
 
         try
         {
-            std::tie(entityInfo, compositeSensorStates) =
+            std::tie(entityInfo, compositeSensorStates, stateSetIds) =
                 hostPDRHandler->lookupSensorInfo(sensorEntry);
         }
         catch (const std::out_of_range&)
@@ -464,7 +465,7 @@
             try
             {
                 sensorEntry.terminusID = PLDM_TID_RESERVED;
-                std::tie(entityInfo, compositeSensorStates) =
+                std::tie(entityInfo, compositeSensorStates, stateSetIds) =
                     hostPDRHandler->lookupSensorInfo(sensorEntry);
             }
             // If there is no mapping for events return PLDM_SUCCESS
@@ -487,7 +488,8 @@
 
         const auto& [containerId, entityType, entityInstance] = entityInfo;
         events::StateSensorEntry stateSensorEntry{containerId, entityType,
-                                                  entityInstance, sensorOffset};
+                                                  entityInstance, sensorOffset,
+                                                  stateSetIds[sensorOffset]};
         return hostPDRHandler->handleStateSensorEvent(stateSensorEntry,
                                                       eventState);
     }
diff --git a/libpldmresponder/test/event_jsons/good/event_state_sensor.json b/libpldmresponder/test/event_jsons/good/event_state_sensor.json
index f917b90..b966076 100644
--- a/libpldmresponder/test/event_jsons/good/event_state_sensor.json
+++ b/libpldmresponder/test/event_jsons/good/event_state_sensor.json
@@ -5,6 +5,7 @@
             "entityType": 64,
             "entityInstance": 1,
             "sensorOffset": 0,
+            "stateSetId": 1,
             "event_states": [0, 1, 2],
             "dbus": {
                 "object_path": "/xyz/abc/def",
@@ -23,6 +24,7 @@
             "entityType": 64,
             "entityInstance": 1,
             "sensorOffset": 1,
+            "stateSetId": 1,
             "event_states": [2, 3],
             "dbus": {
                 "object_path": "/xyz/abc/def",
@@ -37,6 +39,7 @@
             "entityType": 67,
             "entityInstance": 2,
             "sensorOffset": 0,
+            "stateSetId": 1,
             "event_states": [0, 1],
             "dbus": {
                 "object_path": "/xyz/abc/ghi",
@@ -45,6 +48,21 @@
                 "property_type": "bool",
                 "property_values": [false, true]
             }
+        },
+        {
+            "containerID": 2,
+            "entityType": 67,
+            "entityInstance": 2,
+            "sensorOffset": 0,
+            "stateSetId": 2,
+            "event_states": [0, 1, 2],
+            "dbus": {
+                "object_path": "/xyz/abc/jkl",
+                "interface": "xyz.openbmc_project.example4.value",
+                "property_name": "value4",
+                "property_type": "string",
+                "property_values": ["Enabled", "Disabled", "Auto"]
+            }
         }
     ]
 }
diff --git a/libpldmresponder/test/libpldmresponder_platform_test.cpp b/libpldmresponder/test/libpldmresponder_platform_test.cpp
index c56cf06..ad3cb8e 100644
--- a/libpldmresponder/test/libpldmresponder_platform_test.cpp
+++ b/libpldmresponder/test/libpldmresponder_platform_test.cpp
@@ -603,7 +603,7 @@
 
     // Event Entry 1
     {
-        StateSensorEntry entry{1, 64, 1, 0};
+        StateSensorEntry entry{1, 64, 1, 0, 1};
         const auto& [dbusMapping, eventStateMap] = handler.getEventInfo(entry);
         DBusMapping mapping{"/xyz/abc/def",
                             "xyz.openbmc_project.example1.value", "value1",
@@ -626,7 +626,7 @@
 
     // Event Entry 2
     {
-        StateSensorEntry entry{1, 64, 1, 1};
+        StateSensorEntry entry{1, 64, 1, 1, 1};
         const auto& [dbusMapping, eventStateMap] = handler.getEventInfo(entry);
         DBusMapping mapping{"/xyz/abc/def",
                             "xyz.openbmc_project.example2.value", "value2",
@@ -643,7 +643,7 @@
 
     // Event Entry 3
     {
-        StateSensorEntry entry{2, 67, 2, 0};
+        StateSensorEntry entry{2, 67, 2, 0, 1};
         const auto& [dbusMapping, eventStateMap] = handler.getEventInfo(entry);
         DBusMapping mapping{"/xyz/abc/ghi",
                             "xyz.openbmc_project.example3.value", "value3",
@@ -658,9 +658,29 @@
         ASSERT_EQ(value1 == propValue1, true);
     }
 
+    // Event Entry 4
+    {
+        StateSensorEntry entry{2, 67, 2, 0, 2};
+        const auto& [dbusMapping, eventStateMap] = handler.getEventInfo(entry);
+        DBusMapping mapping{"/xyz/abc/jkl",
+                            "xyz.openbmc_project.example4.value", "value4",
+                            "string"};
+        ASSERT_EQ(mapping == dbusMapping, true);
+
+        const auto& propValue0 = eventStateMap.at(eventState0);
+        const auto& propValue1 = eventStateMap.at(eventState1);
+        const auto& propValue2 = eventStateMap.at(eventState2);
+        PropertyValue value0{std::in_place_type<std::string>, "Enabled"};
+        PropertyValue value1{std::in_place_type<std::string>, "Disabled"};
+        PropertyValue value2{std::in_place_type<std::string>, "Auto"};
+        ASSERT_EQ(value0 == propValue0, true);
+        ASSERT_EQ(value1 == propValue1, true);
+        ASSERT_EQ(value2 == propValue2, true);
+    }
+
     // Invalid Entry
     {
-        StateSensorEntry entry{0, 0, 0, 0};
+        StateSensorEntry entry{0, 0, 0, 0, 1};
         ASSERT_THROW(handler.getEventInfo(entry), std::out_of_range);
     }
 }