diff --git a/extensions/openpower-pels/repository.cpp b/extensions/openpower-pels/repository.cpp
index f90a628..3bf3cb0 100644
--- a/extensions/openpower-pels/repository.cpp
+++ b/extensions/openpower-pels/repository.cpp
@@ -197,6 +197,29 @@
     return std::nullopt;
 }
 
+std::optional<sdbusplus::message::unix_fd> Repository::getPELFD(const LogID& id)
+{
+    auto pel = findPEL(id);
+    if (pel != _pelAttributes.end())
+    {
+        FILE* fp = fopen(pel->second.path.c_str(), "rb");
+
+        if (fp == nullptr)
+        {
+            auto e = errno;
+            log<level::ERR>("Unable to open PEL File", entry("ERRNO=%d", e),
+                            entry("PATH=%s", pel->second.path.c_str()));
+            throw file_error::Open();
+        }
+
+        // Must leave the file open here.  It will be closed by sdbusplus
+        // when it sends it back over D-Bus.
+
+        return fileno(fp);
+    }
+    return std::nullopt;
+}
+
 void Repository::for_each(ForEachFunc func) const
 {
     for (const auto& [id, attributes] : _pelAttributes)
diff --git a/extensions/openpower-pels/repository.hpp b/extensions/openpower-pels/repository.hpp
index b6ac545..e55808f 100644
--- a/extensions/openpower-pels/repository.hpp
+++ b/extensions/openpower-pels/repository.hpp
@@ -169,6 +169,16 @@
      */
     std::optional<std::vector<uint8_t>> getPELData(const LogID& id);
 
+    /**
+     * @brief Get a file descriptor to the PEL data
+     *
+     * @param[in] id - The ID to get the FD for
+     *
+     * @return std::optional<sdbusplus::message::unix_fd> -
+     *         The FD, or an empty optional object.
+     */
+    std::optional<sdbusplus::message::unix_fd> getPELFD(const LogID& id);
+
     using ForEachFunc = std::function<bool(const PEL&)>;
 
     /**
