Implement the DHCP configuration interface

This commit implements the below dhcp options
1) DNS
2) NTP
3) HostName

Change-Id: Ifb66fbc86ce38abc79454ecbbf6fb3c65f892c19
Signed-off-by: Ratan Gupta <ratagupt@in.ibm.com>
diff --git a/dhcp_configuration.cpp b/dhcp_configuration.cpp
new file mode 100644
index 0000000..9e88e7c
--- /dev/null
+++ b/dhcp_configuration.cpp
@@ -0,0 +1,58 @@
+#include "config.h"
+#include "dhcp_configuration.hpp"
+#include "network_manager.hpp"
+
+namespace phosphor
+{
+namespace network
+{
+namespace dhcp
+{
+
+bool Configuration::hostNameEnabled(bool value)
+{
+    if (value == hostNameEnabled())
+    {
+        return value;
+    }
+
+    auto name = ConfigIntf::hostNameEnabled(value);
+    manager.writeToConfigurationFile();
+    restartSystemdUnit(phosphor::network::networkdService);
+
+    return name;
+}
+
+bool Configuration::nTPEnabled(bool value)
+{
+    if (value == nTPEnabled())
+    {
+        return value;
+    }
+
+    auto ntp = ConfigIntf::nTPEnabled(value);
+    manager.writeToConfigurationFile();
+    restartSystemdUnit(phosphor::network::networkdService);
+    restartSystemdUnit(phosphor::network::timeSynchdService);
+
+    return ntp;
+}
+
+
+bool Configuration::dNSEnabled(bool value)
+{
+    if (value == dNSEnabled())
+    {
+        return value;
+    }
+
+    auto dns = ConfigIntf::dNSEnabled(value);
+    manager.writeToConfigurationFile();
+    restartSystemdUnit(phosphor::network::networkdService);
+
+    return dns;
+}
+
+}// namespace dhcp
+}// namespace network
+}// namespace phosphor