OSPF protocol manual merge from 1.6, due to cherry pick merge conflict

Change-Id: I93653e745468722ce95533537a79e897b4292f5d
diff --git a/protocols/ospf/protocol/src/test/java/org/onosproject/ospf/protocol/ospfpacket/OspfMessageReaderTest.java b/protocols/ospf/protocol/src/test/java/org/onosproject/ospf/protocol/ospfpacket/OspfMessageReaderTest.java
index a2d5ca1..d390af2 100644
--- a/protocols/ospf/protocol/src/test/java/org/onosproject/ospf/protocol/ospfpacket/OspfMessageReaderTest.java
+++ b/protocols/ospf/protocol/src/test/java/org/onosproject/ospf/protocol/ospfpacket/OspfMessageReaderTest.java
@@ -20,6 +20,7 @@
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
+import org.onosproject.ospf.protocol.util.OspfUtil;
 
 import static org.hamcrest.CoreMatchers.is;
 import static org.hamcrest.CoreMatchers.notNullValue;
@@ -31,17 +32,17 @@
 
 public class OspfMessageReaderTest {
 
-    private final byte[] packet1 = {1, 1, 1, 1, 2, 1, 0, 44, -64, -88, -86, 8,
+    private final byte[] packet1 = {2, 1, 0, 44, -64, -88, -86, 8,
             0, 0, 0, 1, 39, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, 0, 0,
             10, 2, 1, 0, 0, 0, 40, -64, -88, -86, 8, 0, 0, 0, 0};
-    private final byte[] packet2 = {1, 1, 1, 1, 2, 2, 0, 52, -64, -88, -86, 8, 0,
+    private final byte[] packet2 = {2, 2, 0, 52, -64, -88, -86, 8, 0,
             0, 0, 1, -96, 82, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, -36, 2, 7, 65, 119,
             -87, 126, 0, 23, 2, 1, 10, 10, 10, 10, 10, 10, 10, 10, -128, 0, 0, 6,
             -69, 26, 0, 36};
-    private final byte[] packet3 = {1, 1, 1, 1, 2, 3, 0, 36, -64, -88, -86, 3, 0,
+    private final byte[] packet3 = {2, 3, 0, 36, -64, -88, -86, 3, 0,
             0, 0, 1, -67, -57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -64, -88,
             -86, 8, -64, -88, -86, 8};
-    private final byte[] packet4 = {1, 1, 1, 1, 2, 4, 1, 36, -64, -88, -86, 3, 0,
+    private final byte[] packet4 = {2, 4, 1, 36, -64, -88, -86, 3, 0,
             0, 0, 1, 54, 107, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0,
             2, 2, 1, -64, -88, -86, 3, -64, -88, -86, 3, -128, 0,
             0, 1, 58, -100, 0, 48, 2, 0, 0, 2, -64, -88, -86,
@@ -62,7 +63,7 @@
             0, 0, 0, 0, 0, 0, 0, 3, 2, 5, -64, -88, -84, 0, -64,
             -88, -86, 2, -128, 0, 0, 1, 51, 65, 0, 36, -1, -1, -1, 0,
             -128, 0, 0, 20, -64, -88, -86, 10, 0, 0, 0, 0};
-    private final byte[] packet5 = {1, 1, 1, 1, 2, 5, 0, 44, -64, -88, -86, 8, 0, 0,
+    private final byte[] packet5 = {2, 5, 0, 44, -64, -88, -86, 8, 0, 0,
             0, 1, -30, -12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 16, 2, 1, -64, -88, -86,
             2, -64, -88, -86, 2, -128, 0, 0, 1, 74, -114, 0, 48};
     private OspfMessageReader ospfMessageReader;
@@ -84,21 +85,39 @@
      */
     @Test
     public void testReadFromBuffer() throws Exception {
-        channelBuffer = ChannelBuffers.copiedBuffer(packet1);
+        channelBuffer = ChannelBuffers.copiedBuffer(framePacket(packet1));
         ospfMessageReader.readFromBuffer(channelBuffer);
 
-        channelBuffer = ChannelBuffers.copiedBuffer(packet2);
+        channelBuffer = ChannelBuffers.copiedBuffer(framePacket(packet2));
         ospfMessageReader.readFromBuffer(channelBuffer);
 
-        channelBuffer = ChannelBuffers.copiedBuffer(packet3);
+        channelBuffer = ChannelBuffers.copiedBuffer(framePacket(packet3));
         ospfMessageReader.readFromBuffer(channelBuffer);
 
-        channelBuffer = ChannelBuffers.copiedBuffer(packet4);
+        channelBuffer = ChannelBuffers.copiedBuffer(framePacket(packet4));
         ospfMessageReader.readFromBuffer(channelBuffer);
 
-        channelBuffer = ChannelBuffers.copiedBuffer(packet5);
+        channelBuffer = ChannelBuffers.copiedBuffer(framePacket(packet5));
         ospfMessageReader.readFromBuffer(channelBuffer);
         assertThat(ospfMessageReader, is(notNullValue()));
+    }
 
+    /**
+     * Frames the packet to min frame length.
+     *
+     * @param ospfPacket OSPF packet
+     * @return OSPF packet as byte array
+     */
+    private byte[] framePacket(byte[] ospfPacket) {
+        //Set the length of the packet
+        //Get the total length of the packet
+        int length = ospfPacket.length;
+        //PDU_LENGTH + 1 byte for interface index
+        if (length < OspfUtil.MINIMUM_FRAME_LEN) {
+            byte[] bytes = new byte[OspfUtil.MINIMUM_FRAME_LEN + 5];
+            System.arraycopy(ospfPacket, 0, bytes, 0, length);
+            return bytes;
+        }
+        return ospfPacket;
     }
 }
\ No newline at end of file