ONOS-2197 Adding DHCP options and message type enum

Change-Id: I2e0d69c2581f2a6841a9c9a98e0947ad97b38d8a
diff --git a/utils/misc/src/main/java/org/onlab/packet/DHCP.java b/utils/misc/src/main/java/org/onlab/packet/DHCP.java
index 40a7745..79a39ef 100644
--- a/utils/misc/src/main/java/org/onlab/packet/DHCP.java
+++ b/utils/misc/src/main/java/org/onlab/packet/DHCP.java
@@ -54,11 +54,12 @@
     public static final byte HWTYPE_ETHERNET = 0x1;
 
     public enum DHCPOptionCode {
-        OptionCode_SubnetMask((byte) 1), OptionCode_RequestedIP((byte) 50), OptionCode_LeaseTime(
-                (byte) 51), OptionCode_MessageType((byte) 53), OptionCode_DHCPServerIp(
-                        (byte) 54), OptionCode_RequestedParameters((byte) 55), OptionCode_RenewalTime(
-                                (byte) 58), OPtionCode_RebindingTime((byte) 59), OptionCode_ClientID(
-                                        (byte) 61), OptionCode_END((byte) 255);
+        OptionCode_SubnetMask((byte) 1), OptionCode_RouterAddress((byte) 3), OptionCode_DomainServer((byte) 6),
+        OptionCode_HostName((byte) 12), OptionCode_DomainName((byte) 15), OptionCode_BroadcastAddress((byte) 28),
+        OptionCode_RequestedIP((byte) 50), OptionCode_LeaseTime((byte) 51), OptionCode_MessageType((byte) 53),
+        OptionCode_DHCPServerIp((byte) 54), OptionCode_RequestedParameters((byte) 55),
+        OptionCode_RenewalTime((byte) 58), OPtionCode_RebindingTime((byte) 59), OptionCode_ClientID((byte) 61),
+        OptionCode_END((byte) 255);
 
         protected byte value;
 
@@ -71,6 +72,22 @@
         }
     }
 
+    public enum DHCPMessageType {
+        MessageType_Discover((byte) 1), MessageType_Offer((byte) 2), MessageType_Request((byte) 3),
+        MessageType_Decline((byte) 4), MessageType_ACK((byte) 5), MessageType_Nak((byte) 6),
+        MessageType_Release((byte) 7), MessageType_Inform((byte) 8);
+
+        protected byte value;
+
+        private DHCPMessageType(final byte value) {
+            this.value = value;
+        }
+
+        public byte getValue() {
+            return this.value;
+        }
+    }
+
     protected byte opCode;
     protected byte hardwareType;
     protected byte hardwareAddressLength;