diff --git a/common/utils.cpp b/common/utils.cpp
index ae41265..8afa1f4 100644
--- a/common/utils.cpp
+++ b/common/utils.cpp
@@ -804,5 +804,10 @@
     return isPresent;
 }
 
+bool checkIfLogicalBitSet(const uint16_t& containerId)
+{
+    return !(containerId & 0x8000);
+}
+
 } // namespace utils
 } // namespace pldm
diff --git a/common/utils.hpp b/common/utils.hpp
index 73e10eb..cdc539b 100644
--- a/common/utils.hpp
+++ b/common/utils.hpp
@@ -457,5 +457,12 @@
  */
 bool checkForFruPresence(const std::string& objPath);
 
+/** @brief Method to check if the logical bit is set
+ *
+ *  @param[containerId] - container id of the entity
+ *
+ *  @return true or false based on the logic bit set
+ */
+bool checkIfLogicalBitSet(const uint16_t& containerId);
 } // namespace utils
 } // namespace pldm
diff --git a/host-bmc/host_pdr_handler.cpp b/host-bmc/host_pdr_handler.cpp
index 7b5e057..306b79e 100644
--- a/host-bmc/host_pdr_handler.cpp
+++ b/host-bmc/host_pdr_handler.cpp
@@ -3,8 +3,6 @@
 #include "libpldm/fru.h"
 #ifdef OEM_IBM
 #include "libpldm/fru_oem_ibm.h"
-
-#include "oem/ibm/libpldmresponder/utils.hpp"
 #endif
 #include "custom_dbus.hpp"
 
@@ -296,8 +294,7 @@
             if (oemPlatformHandler)
             {
                 isUpdateContainerId =
-                    pldm::responder::utils::checkIfLogicalBitSet(
-                        entities[i].entity_container_id);
+                    checkIfLogicalBitSet(entities[i].entity_container_id);
             }
             auto node = pldm_entity_association_tree_add_entity(
                 entityTree, &entities[i], entities[i].entity_instance_num,
diff --git a/oem/ibm/libpldmresponder/utils.cpp b/oem/ibm/libpldmresponder/utils.cpp
index 231a476..c41211e 100644
--- a/oem/ibm/libpldmresponder/utils.cpp
+++ b/oem/ibm/libpldmresponder/utils.cpp
@@ -139,11 +139,6 @@
     return 0;
 }
 
-bool checkIfLogicalBitSet(const uint16_t& containerId)
-{
-    return !(containerId & 0x8000);
-}
-
 } // namespace utils
 } // namespace responder
 } // namespace pldm
diff --git a/oem/ibm/libpldmresponder/utils.hpp b/oem/ibm/libpldmresponder/utils.hpp
index 0ad6e74..e8f341d 100644
--- a/oem/ibm/libpldmresponder/utils.hpp
+++ b/oem/ibm/libpldmresponder/utils.hpp
@@ -36,13 +36,6 @@
 int writeToUnixSocket(const int sock, const char* buf,
                       const uint64_t blockSize);
 
-/** @brief Method to check if the logical bit is set
- *
- *  @param[containerId] - container id of the entity
- *
- *  @return true or false based on the logic bit set
- * */
-bool checkIfLogicalBitSet(const uint16_t& containerId);
 } // namespace utils
 } // namespace responder
 } // namespace pldm
