diff --git a/include/dbus_utility.hpp b/include/dbus_utility.hpp
index ea06101..854c2c1 100644
--- a/include/dbus_utility.hpp
+++ b/include/dbus_utility.hpp
@@ -206,5 +206,20 @@
         "xyz.openbmc_project.Association", "endpoints", std::move(callback));
 }
 
+inline void
+    getManagedObjects(const std::string& service,
+                      const sdbusplus::message::object_path& path,
+                      std::function<void(const boost::system::error_code&,
+                                         const ManagedObjectType&)>&& callback)
+{
+    crow::connections::systemBus->async_method_call(
+        [callback{std::move(callback)}](const boost::system::error_code& ec,
+                                        const ManagedObjectType& objects) {
+        callback(ec, objects);
+        },
+        service, path, "org.freedesktop.DBus.ObjectManager",
+        "GetManagedObjects");
+}
+
 } // namespace utility
 } // namespace dbus
diff --git a/redfish-core/lib/ethernet.hpp b/redfish-core/lib/ethernet.hpp
index fd107e8..ec754fa 100644
--- a/redfish-core/lib/ethernet.hpp
+++ b/redfish-core/lib/ethernet.hpp
@@ -795,7 +795,9 @@
 void getEthernetIfaceData(const std::string& ethifaceId,
                           CallbackFunc&& callback)
 {
-    crow::connections::systemBus->async_method_call(
+    sdbusplus::message::object_path path("/xyz/openbmc_project/network");
+    dbus::utility::getManagedObjects(
+        "xyz.openbmc_project.Network", path,
         [ethifaceId{std::string{ethifaceId}},
          callback{std::forward<CallbackFunc>(callback)}](
             const boost::system::error_code& errorCode,
@@ -832,9 +834,7 @@
         extractIPV6Data(ethifaceId, resp, ipv6Data);
         // Finally make a callback with useful data
         callback(true, ethData, ipv4Data, ipv6Data);
-        },
-        "xyz.openbmc_project.Network", "/xyz/openbmc_project/network",
-        "org.freedesktop.DBus.ObjectManager", "GetManagedObjects");
+        });
 }
 
 /**
@@ -846,10 +846,12 @@
 template <typename CallbackFunc>
 void getEthernetIfaceList(CallbackFunc&& callback)
 {
-    crow::connections::systemBus->async_method_call(
+    sdbusplus::message::object_path path("/xyz/openbmc_project/network");
+    dbus::utility::getManagedObjects(
+        "xyz.openbmc_project.Network", path,
         [callback{std::forward<CallbackFunc>(callback)}](
             const boost::system::error_code& errorCode,
-            dbus::utility::ManagedObjectType& resp) {
+            const dbus::utility::ManagedObjectType& resp) {
         // Callback requires vector<string> to retrieve all available
         // ethernet interfaces
         boost::container::flat_set<std::string> ifaceList;
@@ -884,9 +886,7 @@
         }
         // Finally make a callback with useful data
         callback(true, ifaceList);
-        },
-        "xyz.openbmc_project.Network", "/xyz/openbmc_project/network",
-        "org.freedesktop.DBus.ObjectManager", "GetManagedObjects");
+        });
 }
 
 inline void
