Make some DHCP options and host discovery configurable

- Added broadcast option
- Made host discovery from DHCP configurable
- Some code cleanups

Change-Id: I42191c2fd17ef309c73a5382730d708686b835cd
diff --git a/apps/dhcp/api/src/main/java/org/onosproject/dhcp/DhcpStore.java b/apps/dhcp/api/src/main/java/org/onosproject/dhcp/DhcpStore.java
index c4be7ed..0b95e5a 100644
--- a/apps/dhcp/api/src/main/java/org/onosproject/dhcp/DhcpStore.java
+++ b/apps/dhcp/api/src/main/java/org/onosproject/dhcp/DhcpStore.java
@@ -19,7 +19,6 @@
 import org.onlab.packet.MacAddress;
 import org.onosproject.net.HostId;
 
-import java.util.List;
 import java.util.Map;
 
 
@@ -41,7 +40,7 @@
      *
      * @param hostId Host ID of the client requesting an IP
      * @param requestedIP requested IP address
-     * @return IP address assigned to the Mac ID
+     * @return IP address assigned to the Mac address; null if no available IP
      */
     Ip4Address suggestIP(HostId hostId, Ip4Address requestedIP);
 
@@ -50,14 +49,10 @@
      * Assigns the requested IP to the Mac ID, in response to a DHCP REQUEST message.
      *
      * @param hostId Host Id of the client requesting an IP
-     * @param ipAddr IP Address being requested
-     * @param leaseTime Lease time offered by the server for this mapping
-     * @param rangeNotEnforced true if rangeNotEnforced was set
-     * @param addressList subnetMask, DHCP/Router/DNS IP Addresses if rangeNotEnforced was set
+     * @param ipAssignment ip assignment
      * @return returns true if the assignment was successful, false otherwise
      */
-    boolean assignIP(HostId hostId, Ip4Address ipAddr, int leaseTime, boolean rangeNotEnforced,
-                     List<Ip4Address> addressList);
+    boolean assignIP(HostId hostId, IpAssignment ipAssignment);
 
 
     /**
@@ -92,21 +87,19 @@
     /**
      * Assigns the requested IP to the MAC ID (if available) for an indefinite period of time.
      *
-     * @param macID macID of the client
-     * @param ipAddr IP Address requested for the client
-     * @param rangeNotEnforced true if rangeNotEnforced was set
-     * @param addressList subnetMask, DHCP/Router/DNS IP Addresses rangeNotEnforced was set
+     * @param macAddress mac address of the client
+     * @param ipAssignment ip address and dhcp options requested for the client
      * @return true if the mapping was successfully registered, false otherwise
      */
-    boolean assignStaticIP(MacAddress macID, Ip4Address ipAddr, boolean rangeNotEnforced, List<Ip4Address> addressList);
+    boolean assignStaticIP(MacAddress macAddress, IpAssignment ipAssignment);
 
     /**
      * Removes a static IP mapping associated with the given MAC ID from the DHCP Server.
      *
-     * @param macID macID of the client
+     * @param macAddress mac address of the client
      * @return true if the mapping was successfully registered, false otherwise
      */
-    boolean removeStaticIP(MacAddress macID);
+    boolean removeStaticIP(MacAddress macAddress);
 
     /**
      * Returns the list of all the available IPs with the server.