diff --git a/dump-extensions/openpower-dumps/dump-extensions.cpp b/dump-extensions/openpower-dumps/dump-extensions.cpp
index 739bc78..ed5956f 100644
--- a/dump-extensions/openpower-dumps/dump-extensions.cpp
+++ b/dump-extensions/openpower-dumps/dump-extensions.cpp
@@ -13,9 +13,9 @@
 void loadExtensions(sdbusplus::bus::bus& bus, DumpManagerList& dumpList)
 {
 
-    dumpList.push_back(std::make_unique<phosphor::dump::system::Manager>(
+    dumpList.push_back(std::make_unique<openpower::dump::system::Manager>(
         bus, SYSTEM_DUMP_OBJPATH, SYSTEM_DUMP_OBJ_ENTRY));
-    dumpList.push_back(std::make_unique<phosphor::dump::resource::Manager>(
+    dumpList.push_back(std::make_unique<openpower::dump::resource::Manager>(
         bus, RESOURCE_DUMP_OBJPATH, RESOURCE_DUMP_OBJ_ENTRY));
 }
 } // namespace dump
diff --git a/dump-extensions/openpower-dumps/dump_manager_resource.cpp b/dump-extensions/openpower-dumps/dump_manager_resource.cpp
index cde0d52..76580ee 100644
--- a/dump-extensions/openpower-dumps/dump_manager_resource.cpp
+++ b/dump-extensions/openpower-dumps/dump_manager_resource.cpp
@@ -9,7 +9,7 @@
 #include <phosphor-logging/elog-errors.hpp>
 #include <phosphor-logging/elog.hpp>
 
-namespace phosphor
+namespace openpower
 {
 namespace dump
 {
@@ -32,8 +32,8 @@
     // if not the source id will stay as invalid one.
     for (auto& entry : entries)
     {
-        phosphor::dump::resource::Entry* resEntry =
-            dynamic_cast<phosphor::dump::resource::Entry*>(entry.second.get());
+        openpower::dump::resource::Entry* resEntry =
+            dynamic_cast<openpower::dump::resource::Entry*>(entry.second.get());
         if ((resEntry->status() ==
              phosphor::dump::OperationStatus::InProgress) &&
             ((resEntry->sourceDumpId() == dumpId) ||
@@ -123,4 +123,4 @@
 
 } // namespace resource
 } // namespace dump
-} // namespace phosphor
+} // namespace openpower
diff --git a/dump-extensions/openpower-dumps/dump_manager_resource.hpp b/dump-extensions/openpower-dumps/dump_manager_resource.hpp
index b8c8c73..c0b4666 100644
--- a/dump-extensions/openpower-dumps/dump_manager_resource.hpp
+++ b/dump-extensions/openpower-dumps/dump_manager_resource.hpp
@@ -8,7 +8,7 @@
 #include <sdbusplus/server/object.hpp>
 #include <xyz/openbmc_project/Dump/Create/server.hpp>
 
-namespace phosphor
+namespace openpower
 {
 namespace dump
 {
@@ -73,4 +73,4 @@
 
 } // namespace resource
 } // namespace dump
-} // namespace phosphor
+} // namespace openpower
diff --git a/dump-extensions/openpower-dumps/dump_manager_system.cpp b/dump-extensions/openpower-dumps/dump_manager_system.cpp
index 93d56dc..8c536d0 100644
--- a/dump-extensions/openpower-dumps/dump_manager_system.cpp
+++ b/dump-extensions/openpower-dumps/dump_manager_system.cpp
@@ -9,7 +9,7 @@
 #include <phosphor-logging/elog-errors.hpp>
 #include <phosphor-logging/elog.hpp>
 
-namespace phosphor
+namespace openpower
 {
 namespace dump
 {
@@ -33,8 +33,8 @@
     // if there is an entry with invalid sourceId update that.
     for (auto& entry : entries)
     {
-        phosphor::dump::system::Entry* sysEntry =
-            dynamic_cast<phosphor::dump::system::Entry*>(entry.second.get());
+        openpower::dump::system::Entry* sysEntry =
+            dynamic_cast<openpower::dump::system::Entry*>(entry.second.get());
         if (sysEntry->sourceDumpId() == INVALID_SOURCE_ID)
         {
             sysEntry->update(timeStamp, size, dumpId);
@@ -127,4 +127,4 @@
 
 } // namespace system
 } // namespace dump
-} // namespace phosphor
+} // namespace openpower
diff --git a/dump-extensions/openpower-dumps/dump_manager_system.hpp b/dump-extensions/openpower-dumps/dump_manager_system.hpp
index 61e4218..b690203 100644
--- a/dump-extensions/openpower-dumps/dump_manager_system.hpp
+++ b/dump-extensions/openpower-dumps/dump_manager_system.hpp
@@ -8,7 +8,7 @@
 #include <sdbusplus/server/object.hpp>
 #include <xyz/openbmc_project/Dump/Create/server.hpp>
 
-namespace phosphor
+namespace openpower
 {
 namespace dump
 {
@@ -73,4 +73,4 @@
 
 } // namespace system
 } // namespace dump
-} // namespace phosphor
+} // namespace openpower
diff --git a/dump-extensions/openpower-dumps/resource_dump_entry.cpp b/dump-extensions/openpower-dumps/resource_dump_entry.cpp
index 144c42d..efbb758 100644
--- a/dump-extensions/openpower-dumps/resource_dump_entry.cpp
+++ b/dump-extensions/openpower-dumps/resource_dump_entry.cpp
@@ -6,7 +6,7 @@
 #include <phosphor-logging/elog-errors.hpp>
 #include <xyz/openbmc_project/Common/error.hpp>
 
-namespace phosphor
+namespace openpower
 {
 namespace dump
 {
@@ -32,4 +32,4 @@
 
 } // namespace resource
 } // namespace dump
-} // namespace phosphor
+} // namespace openpower
diff --git a/dump-extensions/openpower-dumps/resource_dump_entry.hpp b/dump-extensions/openpower-dumps/resource_dump_entry.hpp
index e21111d..fd4c396 100644
--- a/dump-extensions/openpower-dumps/resource_dump_entry.hpp
+++ b/dump-extensions/openpower-dumps/resource_dump_entry.hpp
@@ -7,7 +7,7 @@
 #include <sdbusplus/bus.hpp>
 #include <sdbusplus/server/object.hpp>
 
-namespace phosphor
+namespace openpower
 {
 namespace dump
 {
@@ -90,4 +90,4 @@
 
 } // namespace resource
 } // namespace dump
-} // namespace phosphor
+} // namespace openpower
diff --git a/dump-extensions/openpower-dumps/system_dump_entry.cpp b/dump-extensions/openpower-dumps/system_dump_entry.cpp
index 970a03c..f950c5d 100644
--- a/dump-extensions/openpower-dumps/system_dump_entry.cpp
+++ b/dump-extensions/openpower-dumps/system_dump_entry.cpp
@@ -6,7 +6,7 @@
 #include <phosphor-logging/elog-errors.hpp>
 #include <xyz/openbmc_project/Common/error.hpp>
 
-namespace phosphor
+namespace openpower
 {
 namespace dump
 {
@@ -47,4 +47,4 @@
 }
 } // namespace system
 } // namespace dump
-} // namespace phosphor
+} // namespace openpower
diff --git a/dump-extensions/openpower-dumps/system_dump_entry.hpp b/dump-extensions/openpower-dumps/system_dump_entry.hpp
index 96d5f9a..f57c484 100644
--- a/dump-extensions/openpower-dumps/system_dump_entry.hpp
+++ b/dump-extensions/openpower-dumps/system_dump_entry.hpp
@@ -6,7 +6,7 @@
 #include <sdbusplus/bus.hpp>
 #include <sdbusplus/server/object.hpp>
 
-namespace phosphor
+namespace openpower
 {
 namespace dump
 {
@@ -88,4 +88,4 @@
 
 } // namespace system
 } // namespace dump
-} // namespace phosphor
+} // namespace openpower
