adding packet types
diff --git a/utils/misc/src/main/java/org/onlab/packet/DHCPPacketType.java b/utils/misc/src/main/java/org/onlab/packet/DHCPPacketType.java
new file mode 100644
index 0000000..a1b5bea
--- /dev/null
+++ b/utils/misc/src/main/java/org/onlab/packet/DHCPPacketType.java
@@ -0,0 +1,130 @@
+/*******************************************************************************
+ * Copyright 2014 Open Networking Laboratory
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ ******************************************************************************/
+/**
+ * Copyright 2011, Big Switch Networks, Inc.
+ * Originally created by David Erickson, Stanford University
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may
+ * not use this file except in compliance with the License. You may obtain
+ * a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations
+ * under the License.
+ **/
+
+package org.onlab.packet;
+
+public enum DHCPPacketType {
+    // From RFC 1533
+    DHCPDISCOVER(1), DHCPOFFER(2), DHCPREQUEST(3), DHCPDECLINE(4), DHCPACK(5), DHCPNAK(
+            6), DHCPRELEASE(7),
+
+    // From RFC2132
+    DHCPINFORM(8),
+
+    // From RFC3203
+    DHCPFORCERENEW(9),
+
+    // From RFC4388
+    DHCPLEASEQUERY(10), DHCPLEASEUNASSIGNED(11), DHCPLEASEUNKNOWN(12), DHCPLEASEACTIVE(
+            13);
+
+    protected int value;
+
+    private DHCPPacketType(final int value) {
+        this.value = value;
+    }
+
+    public int getValue() {
+        return this.value;
+    }
+
+    @Override
+    public String toString() {
+        switch (this.value) {
+        case 1:
+            return "DHCPDISCOVER";
+        case 2:
+            return "DHCPOFFER";
+        case 3:
+            return "DHCPREQUEST";
+        case 4:
+            return "DHCPDECLINE";
+        case 5:
+            return "DHCPACK";
+        case 6:
+            return "DHCPNAK";
+        case 7:
+            return "DHCPRELEASE";
+        case 8:
+            return "DHCPINFORM";
+        case 9:
+            return "DHCPFORCERENEW";
+        case 10:
+            return "DHCPLEASEQUERY";
+        case 11:
+            return "DHCPLEASEUNASSIGNED";
+        case 12:
+            return "DHCPLEASEUNKNOWN";
+        case 13:
+            return "DHCPLEASEACTIVE";
+        default:
+            break;
+        }
+
+        return null;
+    }
+
+    public static DHCPPacketType getType(final int value) {
+        switch (value) {
+        case 1:
+            return DHCPDISCOVER;
+        case 2:
+            return DHCPOFFER;
+        case 3:
+            return DHCPREQUEST;
+        case 4:
+            return DHCPDECLINE;
+        case 5:
+            return DHCPACK;
+        case 6:
+            return DHCPNAK;
+        case 7:
+            return DHCPRELEASE;
+        case 8:
+            return DHCPINFORM;
+        case 9:
+            return DHCPFORCERENEW;
+        case 10:
+            return DHCPLEASEQUERY;
+        case 11:
+            return DHCPLEASEUNASSIGNED;
+        case 12:
+            return DHCPLEASEUNKNOWN;
+        case 13:
+            return DHCPLEASEACTIVE;
+        default:
+            break;
+        }
+
+        return null;
+    }
+}