fixing dhcp serialization problem

Change-Id: Ie049f9c1e464ca9a2b651df74f7b979628d0d745
diff --git a/openflow/api/src/main/java/org/onosproject/openflow/controller/DefaultOpenFlowPacketContext.java b/openflow/api/src/main/java/org/onosproject/openflow/controller/DefaultOpenFlowPacketContext.java
index da2bd16..238c400 100644
--- a/openflow/api/src/main/java/org/onosproject/openflow/controller/DefaultOpenFlowPacketContext.java
+++ b/openflow/api/src/main/java/org/onosproject/openflow/controller/DefaultOpenFlowPacketContext.java
@@ -104,7 +104,7 @@
         } catch (BufferUnderflowException | NullPointerException |
                 DeserializationException e) {
             Logger log = LoggerFactory.getLogger(getClass());
-            log.warn("packet deserialization problem");
+            log.warn("packet deserialization problem : {}", e.getMessage());
             return null;
         }
     }
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 a22f4d2..f7a6685 100644
--- a/utils/misc/src/main/java/org/onlab/packet/DHCP.java
+++ b/utils/misc/src/main/java/org/onlab/packet/DHCP.java
@@ -628,6 +628,9 @@
                         }
                     }
                 } else if (code == 255) {
+                    DHCPOption end = new DHCPOption();
+                    end.setCode((byte) 255);
+                    dhcp.options.add(end);
                     // remaining bytes are supposed to be 0, but ignore them just in
                     // case
                     foundEndOptionsMarker = true;
diff --git a/utils/misc/src/main/java/org/onlab/packet/IGMP.java b/utils/misc/src/main/java/org/onlab/packet/IGMP.java
index 9d5535d..e7abbd6 100644
--- a/utils/misc/src/main/java/org/onlab/packet/IGMP.java
+++ b/utils/misc/src/main/java/org/onlab/packet/IGMP.java
@@ -271,7 +271,8 @@
                     break;
 
                 default:
-                    msg = "IGMP message type: " + igmp.igmpType + " is not recodnized";
+                    msg = "IGMP message type: " + igmp.igmpType + " is not recognized";
+                    igmp.unsupportTypeData = bb.array();
                     igmp.log.debug(msg);
                     break;
             }
diff --git a/utils/misc/src/test/java/org/onlab/packet/DhcpTest.java b/utils/misc/src/test/java/org/onlab/packet/DhcpTest.java
index ff48331..aac8141 100644
--- a/utils/misc/src/test/java/org/onlab/packet/DhcpTest.java
+++ b/utils/misc/src/test/java/org/onlab/packet/DhcpTest.java
@@ -130,7 +130,7 @@
 
         assertEquals(serverName, dhcp.serverName);
         assertEquals(bootFileName, dhcp.bootFileName);
-        assertEquals(1, dhcp.options.size());
+        assertEquals(2, dhcp.options.size());
         assertEquals(hostNameOption, dhcp.options.get(0));
     }