IGMP Deserialize now properly uses the offset and
length parameters to deserialize the correct area
of data buffer.
Change-Id: I5d8869c25d397d5d07aad014ef00d0decef22d4f
diff --git a/apps/igmp/src/main/java/org/onosproject/igmp/impl/IGMPComponent.java b/apps/igmp/src/main/java/org/onosproject/igmp/impl/IGMPComponent.java
index ae539c6..b782740 100644
--- a/apps/igmp/src/main/java/org/onosproject/igmp/impl/IGMPComponent.java
+++ b/apps/igmp/src/main/java/org/onosproject/igmp/impl/IGMPComponent.java
@@ -111,18 +111,18 @@
"\tingress port: " + context.inPacket().receivedFrom().toString());
if (ip.getProtocol() != IPv4.PROTOCOL_IGMP) {
- log.error("IGMP Picked up a non IGMP packet.");
+ log.debug("IGMP Picked up a non IGMP packet.");
return;
}
IpPrefix mcast = IpPrefix.valueOf("224.0.0.0/4");
if (!mcast.contains(gaddr)) {
- log.error("IGMP Picked up a non multicast packet.");
+ log.debug("IGMP Picked up a non multicast packet.");
return;
}
if (mcast.contains(saddr)) {
- log.error("IGMP Picked up a packet with a multicast source address.");
+ log.debug("IGMP Picked up a packet with a multicast source address.");
return;
}
IpPrefix spfx = IpPrefix.valueOf(saddr, 32);
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 e7abbd6..254f132 100644
--- a/utils/misc/src/main/java/org/onlab/packet/IGMP.java
+++ b/utils/misc/src/main/java/org/onlab/packet/IGMP.java
@@ -231,7 +231,7 @@
IGMP igmp = new IGMP();
- ByteBuffer bb = ByteBuffer.wrap(data);
+ final ByteBuffer bb = ByteBuffer.wrap(data, offset, length);
igmp.igmpType = bb.get();
igmp.resField = bb.get();
igmp.checksum = bb.getShort();