diff --git a/network_manager.cpp b/network_manager.cpp
index 0607b0e..1612f6d 100644
--- a/network_manager.cpp
+++ b/network_manager.cpp
@@ -218,23 +218,7 @@
 
         stream.close();
     }
-    restartSystemdNetworkd();
-}
-
-void  Manager::restartSystemdNetworkd()
-{
-    constexpr auto systemdNetworkdService = "systemd-networkd.service";
-
-    auto method = bus.new_method_call(
-                      SYSTEMD_BUSNAME,
-                      SYSTEMD_PATH,
-                      SYSTEMD_INTERFACE,
-                      "RestartUnit");
-
-    method.append(systemdNetworkdService,
-                  "replace");
-
-    bus.call_noreply(method);
+    restartSystemdUnit("systemd-networkd.service");
 }
 
 bool Manager::getDHCPValue(const std::string& intf)
diff --git a/network_manager.hpp b/network_manager.hpp
index ce61737..1854364 100644
--- a/network_manager.hpp
+++ b/network_manager.hpp
@@ -75,10 +75,6 @@
 
     private:
 
-        /** @brief Restart the systemd networkd
-         */
-        void restartSystemdNetworkd();
-
         /** @brief Persistent sdbusplus DBus bus connection. */
         sdbusplus::bus::bus& bus;
 
diff --git a/util.cpp b/util.cpp
index 3c411cb..64a913c 100644
--- a/util.cpp
+++ b/util.cpp
@@ -1,4 +1,5 @@
 #include "util.hpp"
+
 #include "xyz/openbmc_project/Common/error.hpp"
 
 #include <phosphor-logging/log.hpp>
diff --git a/util.hpp b/util.hpp
index 6f27af9..3434aca 100644
--- a/util.hpp
+++ b/util.hpp
@@ -1,7 +1,10 @@
 #pragma once
 
 #include <unistd.h>
+
+#include "config.h"
 #include "types.hpp"
+#include <sdbusplus/bus.hpp>
 
 namespace phosphor
 {
@@ -42,6 +45,24 @@
  */
 IntfAddrMap getInterfaceAddrs();
 
+/** @brief Restart the systemd unit
+ *  @param[in] unit - systemd unit name which needs to be
+ *                    restarted.
+ */
+inline void restartSystemdUnit(const std::string& unit)
+{
+    auto bus = sdbusplus::bus::new_default();
+    auto method = bus.new_method_call(
+                      SYSTEMD_BUSNAME,
+                      SYSTEMD_PATH,
+                      SYSTEMD_INTERFACE,
+                      "RestartUnit");
+
+    method.append(unit, "replace");
+    bus.call_noreply(method);
+
+}
+
 } //namespace network
 
 class Descriptor
