diff --git a/src/network_config.cpp b/src/network_config.cpp
index 4f59643..249be58 100644
--- a/src/network_config.cpp
+++ b/src/network_config.cpp
@@ -2,8 +2,7 @@
 
 #include "network_config.hpp"
 
-#include <fstream>
-#include <string>
+#include "config_parser.hpp"
 
 namespace phosphor
 {
@@ -12,38 +11,39 @@
 
 namespace bmc
 {
-void writeDHCPDefault(const std::string& filename, const std::string& interface)
+void writeDHCPDefault(const std::filesystem::path& filename,
+                      std::string_view interface)
 {
-    std::ofstream filestream;
-
-    filestream.open(filename);
-    // Add the following line to your phosphor-network bbappend file
-    // to control IPV6_ACCEPT_RA
-    //   EXTRA_OECONF_append = " --enable-ipv6-accept-ra=yes"
-    // If this switch is not present or set to 'no'
-    // ENABLE_IPV6_ACCEPT_RA will be undefined.
-    // The new value is only assigned on first boot, when the default
-    // file is not present, or after the default file has been
-    // manually removed.
-    filestream << "[Match]\nName=" << interface <<
-                "\n[Network]\nDHCP=true\n"
+    config::Parser config;
+    config.map["Match"].emplace_back()["Name"].emplace_back(interface);
+    {
+        auto& network = config.map["Network"].emplace_back();
+        network["DHCP"].emplace_back("true");
+        auto& lla = network["LinkLocalAddressing"];
 #ifdef LINK_LOCAL_AUTOCONFIGURATION
-                "LinkLocalAddressing=yes\n"
+        lla.emplace_back("true");
 #else
-                "LinkLocalAddressing=no\n"
+        lla.emplace_back("false");
 #endif
+        auto& ra = network["IPv6AcceptRA"];
 #ifdef ENABLE_IPV6_ACCEPT_RA
-                "IPv6AcceptRA=true\n"
+        ra.emplace_back("true");
 #else
-                "IPv6AcceptRA=false\n"
+        ra.emplace_back("false");
 #endif
-                "[DHCP]\nClientIdentifier=mac\n"
-                "UseDNS=true\nUseDomains=true\n"
-                "UseNTP=true\nUseHostname=true\n"
-                "SendHostname=true\n"
-                "[IPv6AcceptRA]\nDHCPv6Client=true\n";
-
-    filestream.close();
+    }
+    {
+        auto& dhcp = config.map["DHCP"].emplace_back();
+        dhcp["ClientIdentifier"].emplace_back("mac");
+        dhcp["UseDNS"].emplace_back("true");
+        dhcp["UseDomains"].emplace_back("true");
+        dhcp["UseNTP"].emplace_back("true");
+        dhcp["UseHostname"].emplace_back("true");
+        dhcp["SendHostname"].emplace_back("true");
+    }
+    config.map["IPv6AcceptRA"].emplace_back()["DHCPv6Client"].emplace_back(
+        "true");
+    config.writeFile(filename);
 }
 } // namespace bmc
 
diff --git a/src/network_config.hpp b/src/network_config.hpp
index 7260ca2..a5c7300 100644
--- a/src/network_config.hpp
+++ b/src/network_config.hpp
@@ -1,4 +1,5 @@
-#include <string>
+#include <filesystem>
+#include <string_view>
 
 namespace phosphor
 {
@@ -7,8 +8,8 @@
 
 namespace bmc
 {
-void writeDHCPDefault(const std::string& filename,
-                      const std::string& interface);
+void writeDHCPDefault(const std::filesystem::path& filename,
+                      std::string_view interface);
 }
 
 } // namespace network
diff --git a/src/network_manager.cpp b/src/network_manager.cpp
index 86b8550..7d288be 100644
--- a/src/network_manager.cpp
+++ b/src/network_manager.cpp
@@ -70,9 +70,9 @@
 
             // create the interface specific network file
             // if not existing.
-            if (!fs::is_regular_file(filePath.string()))
+            if (!fs::is_regular_file(filePath))
             {
-                bmc::writeDHCPDefault(filePath.string(), interface);
+                bmc::writeDHCPDefault(filePath, interface);
                 log<level::INFO>("Created the default network file.",
                                  entry("INTERFACE=%s", interface.c_str()));
                 isCreated = true;
