Bug 9127: Make IT more robust when receiving packets
[lispflowmapping.git] / mappingservice / lisp-proto / src / main / java / org / opendaylight / lispflowmapping / lisp / serializer / MapRequestSerializer.java
index 40a1cb3d50fa6d040e8b70e16df951af25bcab40..449f9f9a587c68a655a01390fae47752c9aeeea0 100644 (file)
@@ -119,9 +119,13 @@ public final class MapRequestSerializer {
     @SuppressWarnings("checkstyle:IllegalCatch")
     public MapRequest deserialize(ByteBuffer requestBuffer, InetAddress sourceRloc) {
         try {
-            MapRequestBuilder builder = new MapRequestBuilder();
-
             final byte typeAndFlags = requestBuffer.get();
+            final int type = typeAndFlags >> 4;
+            if (MessageType.forValue(type) != MessageType.MapRequest) {
+                throw new LispSerializationException("Expected Map-Request packet (type 1), but was type " + type);
+            }
+
+            MapRequestBuilder builder = new MapRequestBuilder();
             builder.setAuthoritative(ByteUtil.extractBit(typeAndFlags, Flags.AUTHORITATIVE));
             builder.setMapDataPresent(ByteUtil.extractBit(typeAndFlags, Flags.MAP_DATA_PRESENT));
             builder.setProbe(ByteUtil.extractBit(typeAndFlags, Flags.PROBE));