Backend changes for Populating Nameservers(DNS & Static)

- As per the proposed design :
https://lists.ozlabs.org/pipermail/openbmc/2019-September/018399.html

Depends on :
https://gerrit.openbmc-project.xyz/#/c/openbmc/phosphor-dbus-interfaces/+/26060/

The idea of this commit is to

- Support NameServers(Read Only) property to display current
  Nameservers (both DHCP provided& Static) configured on the
  interface.

- Support StaticNameServers(Writable) property by which user
  can set the Nameservers on an interface.

Tested By:

1.Configure a DNS via DHCP Server & Make sure NameServer property
  populates accordingly.
2.With DNS from DHCP existing, set a name server using PATCH on
  StaticNameServer property & make sure both properties populate
  the data as per the proposal.
3.Make sure /etc/resolv.conf is populated with the right content
  in case of DHCP/Static and DHCP & Static (Co-existing)
4.Make sure network configuration file is updated properly when
  user sets a staic name server.

Signed-off-by: Manojkiran Eda <manojkiran.eda@gmail.com>
Change-Id: If10b9aa683d2b50e51780e91323c6d10a5ec3710
diff --git a/ethernet_interface.hpp b/ethernet_interface.hpp
index 68668d6..4a0f030 100644
--- a/ethernet_interface.hpp
+++ b/ethernet_interface.hpp
@@ -86,6 +86,10 @@
                       bool dhcpEnabled, Manager& parent,
                       bool emitSignal = true);
 
+    /** @brief Function used to load the nameservers.
+     */
+    virtual void loadNameServers();
+
     /** @brief Function to create ipaddress dbus object.
      *  @param[in] addressType - Type of ip address.
      *  @param[in] ipaddress- IP address.
@@ -180,6 +184,12 @@
      */
     ServerList nameservers(ServerList value) override;
 
+    /** @brief sets the Static DNS/nameservers.
+     *  @param[in] value - vector of DNS servers.
+     */
+
+    ServerList staticNameServers(ServerList value) override;
+
     /** @brief create Vlan interface.
      *  @param[in] id- VLAN identifier.
      */
@@ -275,7 +285,8 @@
     /** @brief get the name server details from the network conf
      *
      */
-    ServerList getNameServerFromConf();
+    virtual ServerList getNameServerFromResolvd();
+    ServerList getstaticNameServerFromConf();
 
     /** @brief Persistent sdbusplus DBus bus connection. */
     sdbusplus::bus::bus& bus;