[ONOS-3222] Implement toString method for each Packet class

Change-Id: I17d72338d4202117d08b3dca9463be35a87a0c1e
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 de5b43f..491185d 100644
--- a/utils/misc/src/main/java/org/onlab/packet/DHCP.java
+++ b/utils/misc/src/main/java/org/onlab/packet/DHCP.java
@@ -21,14 +21,16 @@
 import java.io.UnsupportedEncodingException;
 import java.nio.ByteBuffer;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.List;
 import java.util.ListIterator;
 
 import static com.google.common.base.Preconditions.checkArgument;
 import static org.onlab.packet.PacketUtils.checkInput;
+import static com.google.common.base.MoreObjects.toStringHelper;
 
 /**
- *
+ * Representation of an DHCP Packet.
  */
 public class DHCP extends BasePacket {
     /**
@@ -629,4 +631,25 @@
             return dhcp;
         };
     }
+
+    @Override
+    public String toString() {
+        return toStringHelper(getClass())
+                .add("opCode", Byte.toString(opCode))
+                .add("hardwareType", Byte.toString(hardwareType))
+                .add("hardwareAddressLength", Byte.toString(hardwareAddressLength))
+                .add("hops", Byte.toString(hops))
+                .add("transactionId", Integer.toString(transactionId))
+                .add("seconds", Short.toString(seconds))
+                .add("flags", Short.toString(flags))
+                .add("clientIPAddress", Integer.toString(clientIPAddress))
+                .add("yourIPAddress", Integer.toString(yourIPAddress))
+                .add("serverIPAddress", Integer.toString(serverIPAddress))
+                .add("gatewayIPAddress", Integer.toString(gatewayIPAddress))
+                .add("clientHardwareAddress", Arrays.toString(clientHardwareAddress))
+                .add("serverName", serverName)
+                .add("bootFileName", bootFileName)
+                .toString();
+        // TODO: need to handle options
+    }
 }