diff --git a/dump-extensions/openpower-dumps/dump_manager_resource.cpp b/dump-extensions/openpower-dumps/dump_manager_resource.cpp
index 604e796..93ce98c 100644
--- a/dump-extensions/openpower-dumps/dump_manager_resource.cpp
+++ b/dump-extensions/openpower-dumps/dump_manager_resource.cpp
@@ -113,7 +113,6 @@
 sdbusplus::message::object_path
     Manager::createDump(phosphor::dump::DumpCreateParams params)
 {
-
     using NotAllowed =
         sdbusplus::xyz::openbmc_project::Common::Error::NotAllowed;
     using Reason = xyz::openbmc_project::Common::NotAllowed::REASON;
diff --git a/dump-extensions/openpower-dumps/meson.build b/dump-extensions/openpower-dumps/meson.build
index abb9904..c367421 100644
--- a/dump-extensions/openpower-dumps/meson.build
+++ b/dump-extensions/openpower-dumps/meson.build
@@ -28,5 +28,6 @@
         'dump-extensions/openpower-dumps/dump_manager_system.cpp',
         'dump-extensions/openpower-dumps/system_dump_entry.cpp',
         'dump-extensions/openpower-dumps/dump_manager_resource.cpp',
-        'dump-extensions/openpower-dumps/resource_dump_entry.cpp'
+        'dump-extensions/openpower-dumps/resource_dump_entry.cpp',
+	'dump-extensions/openpower-dumps/op_dump_util.cpp'
     ]
diff --git a/dump-extensions/openpower-dumps/op_dump_util.cpp b/dump-extensions/openpower-dumps/op_dump_util.cpp
new file mode 100644
index 0000000..14377a6
--- /dev/null
+++ b/dump-extensions/openpower-dumps/op_dump_util.cpp
@@ -0,0 +1,67 @@
+#include "op_dump_util.hpp"
+
+#include "xyz/openbmc_project/Common/error.hpp"
+#include "xyz/openbmc_project/Dump/Create/error.hpp"
+
+#include <fmt/core.h>
+#include <unistd.h>
+
+#include <phosphor-logging/elog-errors.hpp>
+#include <phosphor-logging/elog.hpp>
+
+#include <filesystem>
+
+namespace openpower
+{
+namespace dump
+{
+namespace util
+{
+using namespace phosphor::logging;
+using InternalFailure =
+    sdbusplus::xyz::openbmc_project::Common::Error::InternalFailure;
+
+void isOPDumpsEnabled()
+{
+    auto enabled = true;
+    constexpr auto enable = "xyz.openbmc_project.Object.Enable";
+    constexpr auto policy = "/xyz/openbmc_project/dump/system_dump_policy";
+    constexpr auto property = "org.freedesktop.DBus.Properties";
+
+    using disabled =
+        sdbusplus::xyz::openbmc_project::Dump::Create::Error::Disabled;
+
+    try
+    {
+        auto bus = sdbusplus::bus::new_default();
+
+        auto service = phosphor::dump::getService(bus, policy, enable);
+
+        auto method =
+            bus.new_method_call(service.c_str(), policy, property, "Get");
+        method.append(enable, "Enabled");
+        auto reply = bus.call(method);
+        std::variant<bool> v;
+        reply.read(v);
+        enabled = std::get<bool>(v);
+    }
+    catch (const sdbusplus::exception::SdBusError& e)
+    {
+        log<level::ERR>(
+            fmt::format("Error({}) in getting dump policy, default is enabled",
+                        e.what())
+                .c_str());
+        report<InternalFailure>();
+    }
+
+    if (!enabled)
+    {
+        log<level::ERR>("OpePOWER dumps are disabled, skipping");
+        elog<disabled>();
+    }
+    log<level::INFO>("OpenPOWER dumps are enabled");
+}
+
+} // namespace util
+} // namespace dump
+} // namespace openpower
diff --git a/dump-extensions/openpower-dumps/op_dump_util.hpp b/dump-extensions/openpower-dumps/op_dump_util.hpp
new file mode 100644
index 0000000..7a9f66a
--- /dev/null
+++ b/dump-extensions/openpower-dumps/op_dump_util.hpp
@@ -0,0 +1,23 @@
+#pragma once
+
+#include "dump_utils.hpp"
+
+namespace openpower
+{
+namespace dump
+{
+namespace util
+{
+
+/** @brief Check whether OpenPOWER dumps are enabled
+ *
+ * A xyz.openbmc_project.Dump.Create.Error.Disabled will be thrown
+ * if the dumps are disabled.
+ * If the settings service is not running then considering as
+ * the dumps are enabled.
+ */
+void isOPDumpsEnabled();
+
+} // namespace util
+} // namespace dump
+} // namespace openpower
