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

Change-Id: I17d72338d4202117d08b3dca9463be35a87a0c1e
diff --git a/utils/misc/src/main/java/org/onlab/packet/IPv4.java b/utils/misc/src/main/java/org/onlab/packet/IPv4.java
index a5c5f4f..9d31fd6 100644
--- a/utils/misc/src/main/java/org/onlab/packet/IPv4.java
+++ b/utils/misc/src/main/java/org/onlab/packet/IPv4.java
@@ -25,10 +25,11 @@
 import java.util.HashMap;
 import java.util.Map;
 
+import static com.google.common.base.MoreObjects.toStringHelper;
 import static org.onlab.packet.PacketUtils.*;
 
 /**
- *
+ * Implements IPv4 packet format.
  */
 public class IPv4 extends BasePacket {
     public static final byte PROTOCOL_ICMP = 0x1;
@@ -730,4 +731,24 @@
             return ipv4;
         };
     }
+
+    @Override
+    public String toString() {
+        return toStringHelper(getClass())
+                .add("version", Byte.toString(version))
+                .add("headerLength", Byte.toString(headerLength))
+                .add("diffServ", Byte.toString(diffServ))
+                .add("totalLength", Short.toString(totalLength))
+                .add("identification", Short.toString(identification))
+                .add("flags", Byte.toString(flags))
+                .add("fragmentOffset", Short.toString(fragmentOffset))
+                .add("ttl", Byte.toString(ttl))
+                .add("protocol", Byte.toString(protocol))
+                .add("checksum", Short.toString(checksum))
+                .add("sourceAddress", Integer.toString(sourceAddress))
+                .add("destinationAddress", Integer.toString(destinationAddress))
+                .add("options", Arrays.toString(options))
+                .add("isTruncated", Boolean.toString(isTruncated))
+                .toString();
+    }
 }