diff --git a/libpldmresponder/examples/pdr/effecter_pdr.json b/libpldmresponder/examples/pdr/effecter_pdr.json
index 316af73..ccdc7ac 100644
--- a/libpldmresponder/examples/pdr/effecter_pdr.json
+++ b/libpldmresponder/examples/pdr/effecter_pdr.json
@@ -4,6 +4,7 @@
       "pdrType": 11,
       "entries": [
         {
+          "entity_path": "/xyz/openbmc_project/foo",
           "type": 33,
           "instance": 0,
           "container": 0,
@@ -49,6 +50,7 @@
           ]
         },
         {
+          "entity_path": "/xyz/openbmc_project/foo",
           "type": 100,
           "instance": 0,
           "container": 0,
@@ -103,6 +105,10 @@
       "pdrType": 9,
       "entries": [
         {
+          "entity_path": "/xyz/openbmc_project/foo",
+          "type": 0,
+          "instance": 0,
+          "container": 0,
           "base_unit": 21,
           "rate_unit": 3,
           "effecter_resolution_init": 1,
diff --git a/libpldmresponder/fru.cpp b/libpldmresponder/fru.cpp
index cb7d5f7..2555a97 100644
--- a/libpldmresponder/fru.cpp
+++ b/libpldmresponder/fru.cpp
@@ -93,6 +93,8 @@
 
                     auto recordInfos = parser.getRecordInfo(interface.first);
                     populateRecords(interfaces, recordInfos, entity);
+
+                    associatedEntityMap.emplace(object.first, entity);
                     break;
                 }
                 catch (const std::exception& e)
diff --git a/libpldmresponder/fru.hpp b/libpldmresponder/fru.hpp
index b19519c..c890a87 100644
--- a/libpldmresponder/fru.hpp
+++ b/libpldmresponder/fru.hpp
@@ -31,6 +31,7 @@
 using InterfaceMap = std::map<Interface, PropertyMap>;
 using ObjectValueTree = std::map<sdbusplus::message::object_path, InterfaceMap>;
 using ObjectPath = std::string;
+using AssociatedEntityMap = std::map<ObjectPath, pldm_entity>;
 
 } // namespace dbus
 
@@ -124,6 +125,18 @@
      */
     void buildFRUTable();
 
+    /** @brief Get std::map associated with the entity
+     *         key: object path
+     *         value: pldm_entity
+     *
+     *  @return std::map<ObjectPath, pldm_entity>
+     */
+    inline const pldm::responder::dbus::AssociatedEntityMap&
+        getAssociateEntityMap() const
+    {
+        return associatedEntityMap;
+    }
+
   private:
     uint16_t nextRSI()
     {
@@ -151,9 +164,13 @@
      *  @param[in] recordInfos - FRU record info to build the FRU records
      *  @param[in/out] entity - PLDM entity corresponding to FRU instance
      */
-    void populateRecords(const pldm::responder::dbus::InterfaceMap& interfaces,
+    void populateRecords(const dbus::InterfaceMap& interfaces,
                          const fru_parser::FruRecordInfos& recordInfos,
                          const pldm_entity& entity);
+
+    /** @brief Associate sensor/effecter to FRU entity
+     */
+    dbus::AssociatedEntityMap associatedEntityMap;
 };
 
 namespace fru
@@ -212,6 +229,18 @@
         impl.buildFRUTable();
     }
 
+    /** @brief Get std::map associated with the entity
+     *         key: object path
+     *         value: pldm_entity
+     *
+     *  @return std::map<ObjectPath, pldm_entity>
+     */
+    const pldm::responder::dbus::AssociatedEntityMap&
+        getAssociateEntityMap() const
+    {
+        return impl.getAssociateEntityMap();
+    }
+
     /** @brief Handler for GetFRURecordByOption
      *
      *  @param[in] request - Request message payload
diff --git a/libpldmresponder/pdr_numeric_effecter.hpp b/libpldmresponder/pdr_numeric_effecter.hpp
index 402a426..0258ab2 100644
--- a/libpldmresponder/pdr_numeric_effecter.hpp
+++ b/libpldmresponder/pdr_numeric_effecter.hpp
@@ -47,9 +47,35 @@
 
         pdr->terminus_handle = e.value("terminus_handle", 0);
         pdr->effecter_id = handler.getNextEffecterId();
-        pdr->entity_type = e.value("entity_type", 0);
-        pdr->entity_instance = e.value("entity_instance", 0);
-        pdr->container_id = e.value("container_id", 0);
+
+        try
+        {
+            std::string entity_path = e.value("entity_path", "");
+            auto& associatedEntityMap = handler.getAssociateEntityMap();
+            if (entity_path != "" && associatedEntityMap.find(entity_path) !=
+                                         associatedEntityMap.end())
+            {
+                pdr->entity_type =
+                    associatedEntityMap.at(entity_path).entity_type;
+                pdr->entity_instance =
+                    associatedEntityMap.at(entity_path).entity_instance_num;
+                pdr->container_id =
+                    associatedEntityMap.at(entity_path).entity_container_id;
+            }
+            else
+            {
+                pdr->entity_type = e.value("type", 0);
+                pdr->entity_instance = e.value("instance", 0);
+                pdr->container_id = e.value("container", 0);
+            }
+        }
+        catch (const std::exception& ex)
+        {
+            pdr->entity_type = e.value("type", 0);
+            pdr->entity_instance = e.value("instance", 0);
+            pdr->container_id = e.value("container", 0);
+        }
+
         pdr->effecter_semantic_id = e.value("effecter_semantic_id", 0);
         pdr->effecter_init = e.value("effecter_init", PLDM_NO_INIT);
         pdr->effecter_auxiliary_names = e.value("effecter_init", false);
diff --git a/libpldmresponder/pdr_state_effecter.hpp b/libpldmresponder/pdr_state_effecter.hpp
index 9d10d32..b47686b 100644
--- a/libpldmresponder/pdr_state_effecter.hpp
+++ b/libpldmresponder/pdr_state_effecter.hpp
@@ -65,9 +65,35 @@
 
         pdr->terminus_handle = pdr::BmcPldmTerminusHandle;
         pdr->effecter_id = handler.getNextEffecterId();
-        pdr->entity_type = e.value("type", 0);
-        pdr->entity_instance = e.value("instance", 0);
-        pdr->container_id = e.value("container", 0);
+
+        try
+        {
+            std::string entity_path = e.value("entity_path", "");
+            auto& associatedEntityMap = handler.getAssociateEntityMap();
+            if (entity_path != "" && associatedEntityMap.find(entity_path) !=
+                                         associatedEntityMap.end())
+            {
+                pdr->entity_type =
+                    associatedEntityMap.at(entity_path).entity_type;
+                pdr->entity_instance =
+                    associatedEntityMap.at(entity_path).entity_instance_num;
+                pdr->container_id =
+                    associatedEntityMap.at(entity_path).entity_container_id;
+            }
+            else
+            {
+                pdr->entity_type = e.value("type", 0);
+                pdr->entity_instance = e.value("instance", 0);
+                pdr->container_id = e.value("container", 0);
+            }
+        }
+        catch (const std::exception& ex)
+        {
+            pdr->entity_type = e.value("type", 0);
+            pdr->entity_instance = e.value("instance", 0);
+            pdr->container_id = e.value("container", 0);
+        }
+
         pdr->effecter_semantic_id = 0;
         pdr->effecter_init = PLDM_NO_INIT;
         pdr->has_description_pdr = false;
diff --git a/libpldmresponder/pdr_state_sensor.hpp b/libpldmresponder/pdr_state_sensor.hpp
index f57773a..04b6965 100644
--- a/libpldmresponder/pdr_state_sensor.hpp
+++ b/libpldmresponder/pdr_state_sensor.hpp
@@ -68,9 +68,35 @@
 
         pdr->terminus_handle = 0;
         pdr->sensor_id = handler.getNextSensorId();
-        pdr->entity_type = e.value("type", 0);
-        pdr->entity_instance = e.value("instance", 0);
-        pdr->container_id = e.value("container", 0);
+
+        try
+        {
+            std::string entity_path = e.value("entity_path", "");
+            auto& associatedEntityMap = handler.getAssociateEntityMap();
+            if (entity_path != "" && associatedEntityMap.find(entity_path) !=
+                                         associatedEntityMap.end())
+            {
+                pdr->entity_type =
+                    associatedEntityMap.at(entity_path).entity_type;
+                pdr->entity_instance =
+                    associatedEntityMap.at(entity_path).entity_instance_num;
+                pdr->container_id =
+                    associatedEntityMap.at(entity_path).entity_container_id;
+            }
+            else
+            {
+                pdr->entity_type = e.value("type", 0);
+                pdr->entity_instance = e.value("instance", 0);
+                pdr->container_id = e.value("container", 0);
+            }
+        }
+        catch (const std::exception& ex)
+        {
+            pdr->entity_type = e.value("type", 0);
+            pdr->entity_instance = e.value("instance", 0);
+            pdr->container_id = e.value("container", 0);
+        }
+
         pdr->sensor_init = PLDM_NO_INIT;
         pdr->sensor_auxiliary_names_pdr = false;
         if (sensors.size() > 8)
diff --git a/libpldmresponder/platform.hpp b/libpldmresponder/platform.hpp
index a4d3991..fd6821f 100644
--- a/libpldmresponder/platform.hpp
+++ b/libpldmresponder/platform.hpp
@@ -2,9 +2,9 @@
 
 #include "config.h"
 
-#include "libpldm/pdr.h"
 #include "libpldm/platform.h"
 #include "libpldm/states.h"
+#include "pdr.h"
 
 #include "common/utils.hpp"
 #include "event_parser.hpp"
@@ -46,6 +46,7 @@
     uint8_t tid, size_t eventDataOffset)>;
 using EventHandlers = std::vector<EventHandler>;
 using EventMap = std::map<EventType, EventHandlers>;
+using AssociatedEntityMap = std::map<DbusPath, pldm_entity>;
 
 // EventEntry = <uint8_t> - EventState <uint8_t> - SensorOffset <uint16_t> -
 // SensorID
@@ -436,6 +437,21 @@
      */
     void generateTerminusLocatorPDR(Repo& repo);
 
+    /** @brief Get std::map associated with the entity
+     *         key: object path
+     *         value: pldm_entity
+     *
+     *  @return std::map<ObjectPath, pldm_entity>
+     */
+    inline const AssociatedEntityMap& getAssociateEntityMap() const
+    {
+        if (fruHandler == nullptr)
+        {
+            throw InternalFailure();
+        }
+        return fruHandler->getAssociateEntityMap();
+    }
+
   private:
     pdr_utils::Repo pdrRepo;
     uint16_t nextEffecterId{};
diff --git a/test/pdr_jsons/state_effecter/good/effecter_pdr.json b/test/pdr_jsons/state_effecter/good/effecter_pdr.json
index ec77f6e..1514a59 100644
--- a/test/pdr_jsons/state_effecter/good/effecter_pdr.json
+++ b/test/pdr_jsons/state_effecter/good/effecter_pdr.json
@@ -4,6 +4,7 @@
             "pdrType": 11,
             "entries": [
                 {
+                    "entity_path": "/xyz/openbmc_project/foo",
                     "type": 33,
                     "instance": 0,
                     "container": 0,
@@ -49,6 +50,7 @@
                     ]
                 },
                 {
+                    "entity_path": "/xyz/openbmc_project/foo",
                     "type": 100,
                     "instance": 0,
                     "container": 0,
@@ -103,6 +105,10 @@
             "pdrType": 9,
             "entries": [
                 {
+                    "entity_path": "/xyz/openbmc_project/foo",
+                    "type": 0,
+                    "instance": 0,
+                    "container": 0,
                     "base_unit": 21,
                     "rate_unit": 3,
                     "effecter_resolution_init": 1,
diff --git a/test/pdr_jsons/state_effecter/malformed/effecter_pdr.json b/test/pdr_jsons/state_effecter/malformed/effecter_pdr.json
index d6b0213..826e27a 100644
--- a/test/pdr_jsons/state_effecter/malformed/effecter_pdr.json
+++ b/test/pdr_jsons/state_effecter/malformed/effecter_pdr.json
@@ -4,6 +4,7 @@
             "pdrType": 11,
             "entries": [
                 {
+                    "entity_path": "/xyz/openbmc_project/foo",
                     "type": 33
                     "instance": 0,
                     "container": 0,
@@ -49,6 +50,7 @@
                     ]
                 },
                 {
+                    "entity_path": "/xyz/openbmc_project/foo",
                     "type": 100,
                     "instance": 0,
                     "container": 0,
@@ -103,6 +105,10 @@
             "pdrType": 9,
             "entries": [
                 {
+                    "entity_path": "/xyz/openbmc_project/foo",
+                    "type": 0,
+                    "instance": 0,
+                    "container": 0,
                     "base_unit": 21,
                     "rate_unit": 3,
                     "effecter_resolution_init": 1,
