diff --git a/ipaddress.cpp b/ipaddress.cpp
index 8693123..43433e2 100644
--- a/ipaddress.cpp
+++ b/ipaddress.cpp
@@ -1,6 +1,7 @@
+#include "config.h"
+
 #include "ipaddress.hpp"
 
-#include "config.h"
 #include "ethernet_interface.hpp"
 #include "util.hpp"
 
@@ -16,28 +17,23 @@
 using namespace phosphor::logging;
 using namespace sdbusplus::xyz::openbmc_project::Common::Error;
 
-IPAddress::IPAddress(sdbusplus::bus::bus& bus,
-          const char* objPath,
-          EthernetInterface& parent,
-          IP::Protocol type,
-          const std::string& ipaddress,
-          IP::AddressOrigin origin,
-          uint8_t prefixLength,
-          const std::string& gateway):
-          IPIfaces(bus, objPath, true),
-          parent(parent)
+IPAddress::IPAddress(sdbusplus::bus::bus& bus, const char* objPath,
+                     EthernetInterface& parent, IP::Protocol type,
+                     const std::string& ipaddress, IP::AddressOrigin origin,
+                     uint8_t prefixLength, const std::string& gateway) :
+    IPIfaces(bus, objPath, true),
+    parent(parent)
 {
-   this->address(ipaddress);
-   this->prefixLength(prefixLength);
-   this->gateway(gateway);
-   this->type(type);
-   this->origin(origin);
+    this->address(ipaddress);
+    this->prefixLength(prefixLength);
+    this->gateway(gateway);
+    this->type(type);
+    this->origin(origin);
 
-   // Emit deferred signal.
-   emit_object_added();
+    // Emit deferred signal.
+    emit_object_added();
 }
 
-
 void IPAddress::delete_()
 {
     if (parent.dHCPEnabled())
@@ -51,8 +47,8 @@
     if (isLinkLocalIP(address()))
     {
         log<level::ERR>("Can not delete the LinkLocal address"),
-            entry("INTERFACE=%s ADDRESS=%s",
-                  parent.interfaceName().c_str(), address().c_str());
+            entry("INTERFACE=%s ADDRESS=%s", parent.interfaceName().c_str(),
+                  address().c_str());
         return;
     }
 #endif
@@ -60,5 +56,5 @@
     parent.deleteObject(address());
 }
 
-}//namespace network
-}//namespace phosphor
+} // namespace network
+} // namespace phosphor
