PCEP modificaton to support PCEP-LS

Change-Id: Ic829dd17b0398ad76ec412b4e8293de564b5b56b
diff --git a/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/protocol/PcepCloseMsgTest.java b/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/protocol/PcepCloseMsgTest.java
index 33c00dd..e51b0ce 100644
--- a/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/protocol/PcepCloseMsgTest.java
+++ b/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/protocol/PcepCloseMsgTest.java
@@ -18,6 +18,7 @@
 import org.jboss.netty.buffer.ChannelBuffer;
 import org.jboss.netty.buffer.ChannelBuffers;
 import org.junit.Test;
+import org.onosproject.pcepio.exceptions.PcepOutOfBoundMessageException;
 import org.onosproject.pcepio.exceptions.PcepParseException;
 
 import static org.hamcrest.MatcherAssert.assertThat;
@@ -30,7 +31,7 @@
      * Common header, reason to close.
      */
     @Test
-    public void closeMessageTest1() throws PcepParseException {
+    public void closeMessageTest1() throws PcepParseException, PcepOutOfBoundMessageException {
 
         byte[] closeMsg = new byte[] {0x20, 0x07, 0x00, 0x0C, 0x0f, 0x10, 0x00, 0x08, 0x00, 0x00, 0x00, 0x02 };
 
diff --git a/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/protocol/PcepErrorMsgTest.java b/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/protocol/PcepErrorMsgTest.java
index 234cea6..71655b5 100644
--- a/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/protocol/PcepErrorMsgTest.java
+++ b/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/protocol/PcepErrorMsgTest.java
@@ -19,6 +19,7 @@
 import org.jboss.netty.buffer.ChannelBuffer;
 import org.jboss.netty.buffer.ChannelBuffers;
 import org.junit.Test;
+import org.onosproject.pcepio.exceptions.PcepOutOfBoundMessageException;
 import org.onosproject.pcepio.exceptions.PcepParseException;
 
 import static org.hamcrest.MatcherAssert.assertThat;
@@ -33,11 +34,11 @@
     /**
      * This test case checks for
      * PCEP-ERROR Object, OPEN Object (STATEFUL-PCE-CAPABILITY, GMPLS-CAPABILITY-TLV,
-     * PCECC-CAPABILITY-TLV, TED Capability TLV)
+     * PCECC-CAPABILITY-TLV, LS Capability TLV)
      * in PcepErrorMsg message.
      */
     @Test
-    public void errorMessageTest1() throws PcepParseException {
+    public void errorMessageTest1() throws PcepParseException, PcepOutOfBoundMessageException {
 
         byte[] errorMsg = new byte[]{0x20, 0x06, 0x00, 0x34, // common header
                 0x0D, 0x10, 0x00, 0x08, // PCERR Object Header
@@ -46,7 +47,7 @@
                 0x00, 0x10, 0x00, 0x04, // STATEFUL-PCE-CAPABILITY
                 0x00, 0x00, 0x00, 0x05, 0x00, 0x0E, 0x00, 0x04, // GMPLS-CAPABILITY-TLV
                 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, // PCECC-CAPABILITY-TLV
-                0x00, 0x00, 0x00, 0x03, 0x00, (byte) 0x84, 0x00, 0x04, // TED Capability TLV
+                0x00, 0x00, 0x00, 0x03, (byte) 0xFF, (byte) 0x00, 0x00, 0x04, // LS Capability TLV
                 0x00, 0x00, 0x00, 0x00};
 
         ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
@@ -72,11 +73,11 @@
     /**
      * This test case checks for
      * PCEP-ERROR Object, PCEP-ERROR Object, OPEN Object (STATEFUL-PCE-CAPABILITY, GMPLS-CAPABILITY-TLV,
-     * PCECC-CAPABILITY-TLV, TED Capability TLV)
+     * PCECC-CAPABILITY-TLV, LS Capability TLV)
      * in PcepErrorMsg message.
      */
     @Test
-    public void errorMessageTest2() throws PcepParseException {
+    public void errorMessageTest2() throws PcepParseException, PcepOutOfBoundMessageException {
 
         byte[] errorMsg = new byte[]{0x20, 0x06, 0x00, 0x3C, // common header
                 0x0D, 0x10, 0x00, 0x08, // PCERR Object Header
@@ -86,7 +87,7 @@
                 0x00, 0x10, 0x00, 0x04, // STATEFUL-PCE-CAPABILITY
                 0x00, 0x00, 0x00, 0x05, 0x00, 0x0E, 0x00, 0x04, // GMPLS-CAPABILITY-TLV
                 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, // PCECC-CAPABILITY-TLV
-                0x00, 0x00, 0x00, 0x03, 0x00, (byte) 0x84, 0x00, 0x04, // TED Capability TLV
+                0x00, 0x00, 0x00, 0x03, (byte) 0xFF, (byte) 0x00, 0x00, 0x04, // LS Capability TLV
                 0x00, 0x00, 0x00, 0x00};
 
         ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
@@ -115,7 +116,7 @@
      * in PcepErrorMsg message.
      */
     @Test
-    public void errorMessageTest3() throws PcepParseException {
+    public void errorMessageTest3() throws PcepParseException, PcepOutOfBoundMessageException {
 
         byte[] errorMsg = new byte[]{0x20, 0x06, 0x00, 0x34, // common header
                 0x0D, 0x10, 0x00, 0x08, // PCERR Object Header
@@ -152,7 +153,7 @@
      * in PcepErrorMsg message.
      */
     @Test
-    public void errorMessageTest4() throws PcepParseException {
+    public void errorMessageTest4() throws PcepParseException, PcepOutOfBoundMessageException {
 
         byte[] errorMsg = new byte[]{0x20, 0x06, 0x00, 0x2c, // common header
                 0x0D, 0x10, 0x00, 0x08, // PCERR Object Header
@@ -188,7 +189,7 @@
      * in PcepErrorMsg message.
      */
     @Test
-    public void errorMessageTest5() throws PcepParseException {
+    public void errorMessageTest5() throws PcepParseException, PcepOutOfBoundMessageException {
 
         byte[] errorMsg = new byte[]{0x20, 0x06, 0x00, 0x24, // common header
                 0x0D, 0x10, 0x00, 0x08, // PCERR Object Header
@@ -223,7 +224,7 @@
      * in PcepErrorMsg message.
      */
     @Test
-    public void errorMessageTest6() throws PcepParseException {
+    public void errorMessageTest6() throws PcepParseException, PcepOutOfBoundMessageException {
 
         byte[] errorMsg = new byte[]{0x20, 0x06, 0x00, 0x1C, // common header
                 0x0D, 0x10, 0x00, 0x08, // PCERR Object Header
@@ -257,7 +258,7 @@
      * in PcepErrorMsg message.
      */
     @Test
-    public void errorMessageTest7() throws PcepParseException {
+    public void errorMessageTest7() throws PcepParseException, PcepOutOfBoundMessageException {
 
         byte[] errorMsg = new byte[]{0x20, 0x06, 0x00, 0x14, // common header
                 0x0D, 0x10, 0x00, 0x08, // PCERR Object Header
@@ -290,7 +291,7 @@
      * in PcepErrorMsg message.
      */
     @Test
-    public void errorMessageTest8() throws PcepParseException {
+    public void errorMessageTest8() throws PcepParseException, PcepOutOfBoundMessageException {
 
         byte[] errorMsg = new byte[]{0x20, 0x06, 0x00, 0x20, // common header
                 0x0D, 0x10, 0x00, 0x08, // PCERR Object Header
@@ -323,7 +324,7 @@
      * in PcepErrorMsg message.
      */
     @Test
-    public void errorMessageTest9() throws PcepParseException {
+    public void errorMessageTest9() throws PcepParseException, PcepOutOfBoundMessageException {
 
         byte[] errorMsg = new byte[]{0x20, 0x06, 0x00, 0x14, // common header
                 0x0D, 0x10, 0x00, 0x08, // PCEP-ERROR Object Header
@@ -355,7 +356,7 @@
      * in PcepErrorMsg message.
      */
     @Test
-    public void errorMessageTest10() throws PcepParseException {
+    public void errorMessageTest10() throws PcepParseException, PcepOutOfBoundMessageException {
 
         byte[] errorMsg = new byte[]{0x20, 0x06, 0x00, 0x14, // common header
                 0x0D, 0x10, 0x00, 0x08, // PCEP-ERROR Object Header
@@ -383,15 +384,16 @@
 
     /**
      * This test case checks for
-     * TE Object, PCEP-ERROR Object
+     * LS Object, PCEP-ERROR Object
      * in PcepErrorMsg message.
      */
     @Test
-    public void errorMessageTest11() throws PcepParseException {
+    public void errorMessageTest11() throws PcepParseException, PcepOutOfBoundMessageException {
 
-        byte[] errorMsg = new byte[]{0x20, 0x06, 0x00, 0x18, // common header
-                0x65, 0x13, 0x00, 0x0C, // TE Object Header
-                0x01, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x10, // TE-ID
+        byte[] errorMsg = new byte[]{0x20, 0x06, 0x00, 0x1C, // common header
+                (byte) 0xE0, 0x13, 0x00, 0x10, // LS Object Header
+                0x01, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, // LS-ID
+                0x00, 0x00, 0x00, 0x10,
                 0x0D, 0x10, 0x00, 0x08, // PCEP-ERROR Object Header
                 0x00, 0x00, 0x01, 0x01};
 
@@ -420,7 +422,7 @@
      * in PcepErrorMsg message.
      */
     @Test
-    public void errorMessageTest12() throws PcepParseException {
+    public void errorMessageTest12() throws PcepParseException, PcepOutOfBoundMessageException {
 
         //RP Object, PCEP-ERROR Object
         byte[] errorMsg = new byte[]{0x20, 0x06, 0x00, 0x18, // common header
@@ -453,7 +455,7 @@
      * in PcepErrorMsg message.
      */
     @Test
-    public void errorMessageTest13() throws PcepParseException {
+    public void errorMessageTest13() throws PcepParseException, PcepOutOfBoundMessageException {
 
         byte[] errorMsg = new byte[]{0x20, 0x06, 0x00, 0x24, // common header
                 0x02, 0x10, 0x00, 0x0C, // RP Object Header
@@ -482,17 +484,21 @@
 
     /**
      * This test case checks for
-     * TE Object, TE Object, PCEP-ERROR Object
+     * LS Object, LS Object, PCEP-ERROR Object
      * in PcepErrorMsg message.
      */
     @Test
-    public void errorMessageTest14() throws PcepParseException {
+    public void errorMessageTest14() throws PcepParseException, PcepOutOfBoundMessageException {
 
-        byte[] errorMsg = new byte[]{0x20, 0x06, 0x00, 0x24, // common header
-                0x65, 0x10, 0x00, 0x0C, // TE Object Header
-                0x01, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x10, // TE-ID
-                0x65, 0x10, 0x00, 0x0C, // TE Object Header
-                0x01, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x11, // TE-ID
+        byte[] errorMsg = new byte[]{0x20, 0x06, 0x00, 0x2C, // common header
+                (byte) 0xE0, 0x10, 0x00, 0x10, // LS Object Header
+                0x01, 0x00, 0x00, 0x03, // LS-ID
+                0x00, 0x00, 0x00, 0x00,
+                0x00, 0x00, 0x00, 0x10,
+                (byte) 0xE0, 0x10, 0x00, 0x10, // LS Object Header
+                0x01, 0x00, 0x00, 0x03, // LS-ID
+                0x00, 0x00, 0x00, 0x00,
+                0x00, 0x00, 0x00, 0x11,
                 0x0D, 0x10, 0x00, 0x08, // PCEP-ERROR Object Header
                 0x00, 0x00, 0x01, 0x01};
 
@@ -517,16 +523,19 @@
 
     /**
      * This test case checks for
-     * PCEP-ERROR Object, TE Object, PCEP-ERROR Object
+     * PCEP-ERROR Object, LS Object, PCEP-ERROR Object
      * in PcepErrorMsg message.
      */
     @Test
-    public void errorMessageTest15() throws PcepParseException {
+    public void errorMessageTest15() throws PcepParseException, PcepOutOfBoundMessageException {
 
-        byte[] errorMsg = new byte[]{0x20, 0x06, 0x00, 0x20, // common header
+        byte[] errorMsg = new byte[]{0x20, 0x06, 0x00, 0x24, // common header
                 0x0D, 0x10, 0x00, 0x08, // PCERR Object Header
-                0x00, 0x00, 0x01, 0x01, 0x65, 0x10, 0x00, 0x0C, // TE Object Header
-                0x01, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x10, // TE-ID
+                0x00, 0x00, 0x01, 0x01,
+                (byte) 0xE0, 0x10, 0x00, 0x10, // LS Object Header
+                0x01, 0x00, 0x00, 0x03, // LS-ID
+                0x00, 0x00, 0x00, 0x00,
+                0x00, 0x00, 0x00, 0x10,
                 0x0D, 0x10, 0x00, 0x08, // PCEP-ERROR Object Header
                 0x00, 0x00, 0x01, 0x03};
 
@@ -555,7 +564,7 @@
      * in PcepErrorMsg message.
      */
     @Test
-    public void errorMessageTest16() throws PcepParseException {
+    public void errorMessageTest16() throws PcepParseException, PcepOutOfBoundMessageException {
 
         byte[] errorMsg = new byte[]{0x20, 0x06, 0x00, 0x2C, // common header
                 0x0D, 0x10, 0x00, 0x08, // PCEP-ERROR Object Header
@@ -585,18 +594,23 @@
 
     /**
      * This test case checks for
-     * PCEP-ERROR Object, TE Object, TE Object, PCEP-ERROR Object
+     * PCEP-ERROR Object, LS Object, LS Object, PCEP-ERROR Object
      * in PcepErrorMsg message.
      */
     @Test
-    public void errorMessageTest17() throws PcepParseException {
+    public void errorMessageTest17() throws PcepParseException, PcepOutOfBoundMessageException {
 
-        byte[] errorMsg = new byte[]{0x20, 0x06, 0x00, 0x2C, // common header
+        byte[] errorMsg = new byte[]{0x20, 0x06, 0x00, 0x34, // common header
                 0x0D, 0x10, 0x00, 0x08, // PCEP-ERROR Object Header
-                0x00, 0x00, 0x01, 0x01, 0x65, 0x10, 0x00, 0x0C, // TE Object Header
-                0x01, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x10, // TE-ID
-                0x65, 0x10, 0x00, 0x0C, // TE Object Header
-                0x01, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x11, // TE-ID
+                0x00, 0x00, 0x01, 0x01,
+                (byte) 0xE0, 0x10, 0x00, 0x10, // LS Object Header
+                0x01, 0x00, 0x00, 0x03, // LS-ID
+                0x00, 0x00, 0x00, 0x00,
+                0x00, 0x00, 0x00, 0x10,
+                (byte) 0xE0, 0x10, 0x00, 0x10, // LS Object Header
+                0x01, 0x00, 0x00, 0x03, // LS-ID
+                0x00, 0x00, 0x00, 0x00,
+                0x00, 0x00, 0x00, 0x11,
                 0x0D, 0x10, 0x00, 0x08, // PCEP-ERROR Object Header
                 0x00, 0x00, 0x01, 0x03};
 
@@ -625,7 +639,7 @@
      * in PcepErrorMsg message.
      */
     @Test
-    public void errorMessageTest18() throws PcepParseException {
+    public void errorMessageTest18() throws PcepParseException, PcepOutOfBoundMessageException {
 
         byte[] errorMsg = new byte[]{0x20, 0x06, 0x00, 0x3C, // common header
                 0x0D, 0x10, 0x00, 0x08, // PCEP-ERROR Object Header
@@ -657,21 +671,28 @@
 
     /**
      * This test case checks for
-     * PCEP-ERROR Object, PCEP-ERROR Object, TE Object, TE Object, PCEP-ERROR Object, PCEP-ERROR Object
+     * PCEP-ERROR Object, PCEP-ERROR Object, LS Object, LS Object, PCEP-ERROR Object, PCEP-ERROR Object
      * in PcepErrorMsg message.
      */
     @Test
-    public void errorMessageTest19() throws PcepParseException {
+    public void errorMessageTest19() throws PcepParseException, PcepOutOfBoundMessageException {
 
-        byte[] errorMsg = new byte[]{0x20, 0x06, 0x00, 0x3C, // common header
+        byte[] errorMsg = new byte[]{0x20, 0x06, 0x00, 0x44, // common header
                 0x0D, 0x10, 0x00, 0x08, // PCERR Object Header
-                0x00, 0x00, 0x01, 0x01, 0x0D, 0x10, 0x00, 0x08, // PCERR Object Header
-                0x00, 0x00, 0x01, 0x03, 0x65, 0x10, 0x00, 0x0C, // TE Object Header
-                0x01, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x10, // TE-ID
-                0x65, 0x10, 0x00, 0x0C, // TE Object Header
-                0x01, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x11, // TE-ID
+                0x00, 0x00, 0x01, 0x01,
                 0x0D, 0x10, 0x00, 0x08, // PCERR Object Header
-                0x00, 0x00, 0x01, 0x04, 0x0D, 0x10, 0x00, 0x08, // PCERR Object Header
+                0x00, 0x00, 0x01, 0x03,
+                (byte) 0xE0, 0x10, 0x00, 0x10, // LS Object Header
+                0x01, 0x00, 0x00, 0x03, // LS-ID
+                0x00, 0x00, 0x00, 0x00,
+                0x00, 0x00, 0x00, 0x10,
+                (byte) 0xE0, 0x10, 0x00, 0x10, // LS Object Header
+                0x01, 0x00, 0x00, 0x03, // LS-ID
+                0x00, 0x00, 0x00, 0x00,
+                0x00, 0x00, 0x00, 0x11,
+                0x0D, 0x10, 0x00, 0x08, // PCERR Object Header
+                0x00, 0x00, 0x01, 0x04, // PCERR Object Header
+                0x0D, 0x10, 0x00, 0x08,
                 0x00, 0x00, 0x01, 0x06};
 
         ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
@@ -696,20 +717,20 @@
     /**
      * This test case checks for
      * PCEP-ERROR Object, RP Object, RP Object, PCEP-ERROR Object, PCEP-ERROR Object,
-     * TE Object, PCEP-ERROR Object
+     * LS Object, PCEP-ERROR Object
      * in PcepErrorMsg message.
      */
     @Test
-    public void errorMessageTest20() throws PcepParseException {
+    public void errorMessageTest20() throws PcepParseException, PcepOutOfBoundMessageException {
 
-        byte[] errorMsg = new byte[]{0x20, 0x06, 0x00, 0x48, // common header
+        byte[] errorMsg = new byte[]{0x20, 0x06, 0x00, 0x4C, // common header
                 0x0D, 0x10, 0x00, 0x08, // PCEP-ERROR Object Header
                 0x00, 0x00, 0x01, 0x01, 0x02, 0x10, 0x00, 0x0C, // RP Object Header
                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x02, 0x10, 0x00, 0x0C, // RP Object Header
                 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x0D, 0x10, 0x00, 0x08, // PCERR Object Header
                 0x00, 0x00, 0x01, 0x04, 0x0D, 0x10, 0x00, 0x08, // PCERR Object Header
-                0x00, 0x00, 0x01, 0x06, 0x65, 0x10, 0x00, 0x0C, // TE Object Header
-                0x01, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x10, // TE-ID
+                0x00, 0x00, 0x01, 0x06, (byte) 0xE0, 0x10, 0x00, 0x10, // LS Object Header
+                0x01, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, // LS-ID
                 0x0D, 0x10, 0x00, 0x08, // PCERR Object Header
                 0x00, 0x00, 0x01, 0x06};
 
diff --git a/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/protocol/PcepInitiateMsgExtTest.java b/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/protocol/PcepInitiateMsgExtTest.java
index 9341f32..dad53ad 100644
--- a/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/protocol/PcepInitiateMsgExtTest.java
+++ b/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/protocol/PcepInitiateMsgExtTest.java
@@ -18,6 +18,7 @@
 import org.jboss.netty.buffer.ChannelBuffer;
 import org.jboss.netty.buffer.ChannelBuffers;
 import org.junit.Test;
+import org.onosproject.pcepio.exceptions.PcepOutOfBoundMessageException;
 import org.onosproject.pcepio.exceptions.PcepParseException;
 
 import static org.hamcrest.MatcherAssert.assertThat;
@@ -32,11 +33,11 @@
      * END-POINTS, ERO, LSPA, BANDWIDTH, METRIC-LIST objects in PcInitiate message.
      */
     @Test
-    public void initiateMessageTest1() throws PcepParseException {
+    public void initiateMessageTest1() throws PcepParseException, PcepOutOfBoundMessageException {
 
-        /* SRP, LSP (SymbolicPathNameTlv, StatefulIPv4LspIdentidiersTlv, SymbolicPathNameTlv, StatefulLspDbVerTlv,
-         * StatefulLspErrorCodeTlv, StatefulRsvpErrorSpecTlv), END-POINTS, ERO, LSPA, BANDWIDTH, METRIC-LIST.
-         */
+        // SRP, LSP (SymbolicPathNameTlv, StatefulIPv4LspIdentidiersTlv, SymbolicPathNameTlv, StatefulLspDbVerTlv,
+        // StatefulLspErrorCodeTlv, StatefulRsvpErrorSpecTlv), END-POINTS, ERO, LSPA, BANDWIDTH, METRIC-LIST.
+        //
         byte[] initiateCreationMsg = new byte[]{0x20, 0x0C, 0x00, (byte) 0xA4,
                 0x21, 0x10, 0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, //SRP object
                 0x00, 0x11, 0x00, 0x02, 0x54, 0x31, 0x00, 0x00, //SymbolicPathNameTlv
@@ -88,11 +89,11 @@
      * objects in PcInitiate message.
      */
     @Test
-    public void initiateMessageTest2() throws PcepParseException {
+    public void initiateMessageTest2() throws PcepParseException, PcepOutOfBoundMessageException {
 
-        /* SRP, LSP (SymbolicPathNameTlv, StatefulIPv4LspIdentidiersTlv, SymbolicPathNameTlv, StatefulLspDbVerTlv,
-         * StatefulLspErrorCodeTlv, StatefulRsvpErrorSpecTlv), END-POINTS, ERO, LSPA, BANDWIDTH, METRIC OBJECT.
-         */
+        // SRP, LSP (SymbolicPathNameTlv, StatefulIPv4LspIdentidiersTlv, SymbolicPathNameTlv, StatefulLspDbVerTlv,
+        // StatefulLspErrorCodeTlv, StatefulRsvpErrorSpecTlv), END-POINTS, ERO, LSPA, BANDWIDTH, METRIC OBJECT.
+        //
         byte[] initiateCreationMsg = new byte[]{0x20, 0x0C, 0x00, (byte) 0xA8,
                 0x21, 0x10, 0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, //SRP object
                 0x00, 0x11, 0x00, 0x02, 0x54, 0x31, 0x00, 0x00, //SymbolicPathNameTlv
@@ -143,11 +144,11 @@
      * ERO, LSPA, BANDWIDTH objects in PcInitiate message.
      */
     @Test
-    public void initiateMessageTest3() throws PcepParseException {
+    public void initiateMessageTest3() throws PcepParseException, PcepOutOfBoundMessageException {
 
-        /* SRP, LSP (StatefulIPv4LspIdentidiersTlv, SymbolicPathNameTlv, StatefulLspDbVerTlv,
-         * StatefulLspErrorCodeTlv, StatefulRsvpErrorSpecTlv), END-POINTS, ERO, LSPA, BANDWIDTH.
-         */
+        // SRP, LSP (StatefulIPv4LspIdentidiersTlv, SymbolicPathNameTlv, StatefulLspDbVerTlv,
+        // StatefulLspErrorCodeTlv, StatefulRsvpErrorSpecTlv), END-POINTS, ERO, LSPA, BANDWIDTH.
+        //
         byte[] initiateCreationMsg = new byte[]{0x20, 0x0C, 0x00, (byte) 0x8c,
                 0x21, 0x10, 0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, //SRP object
                 0x00, 0x11, 0x00, 0x02, 0x54, 0x31, 0x00, 0x00, //SymbolicPathNameTlv
@@ -197,11 +198,11 @@
      * END-POINTS, ERO, LSPA objects in PcInitiate message.
      */
     @Test
-    public void initiateMessageTest4() throws PcepParseException {
+    public void initiateMessageTest4() throws PcepParseException, PcepOutOfBoundMessageException {
 
-        /* SRP, LSP (SymbolicPathNameTlv, StatefulIPv4LspIdentidiersTlv, SymbolicPathNameTlv, StatefulLspDbVerTlv,
-         * StatefulLspErrorCodeTlv, StatefulRsvpErrorSpecTlv), END-POINTS, ERO, LSPA.
-         */
+        // SRP, LSP (SymbolicPathNameTlv, StatefulIPv4LspIdentidiersTlv, SymbolicPathNameTlv, StatefulLspDbVerTlv,
+        // StatefulLspErrorCodeTlv, StatefulRsvpErrorSpecTlv), END-POINTS, ERO, LSPA.
+        //
         byte[] initiateCreationMsg = new byte[]{0x20, 0x0C, 0x00, (byte) 0x84,
                 0x21, 0x10, 0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, //SRP object
                 0x00, 0x11, 0x00, 0x02, 0x54, 0x31, 0x00, 0x00, //SymbolicPathNameTlv
@@ -250,11 +251,11 @@
      * objects in PcInitiate message.
      */
     @Test
-    public void initiateMessageTest5() throws PcepParseException {
+    public void initiateMessageTest5() throws PcepParseException, PcepOutOfBoundMessageException {
 
-        /* SRP, LSP (SymbolicPathNameTlv, StatefulIPv4LspIdentidiersTlv, SymbolicPathNameTlv, StatefulLspDbVerTlv,
-         * StatefulLspErrorCodeTlv), END-POINTS, ERO, LSPA.
-         */
+        // SRP, LSP (SymbolicPathNameTlv, StatefulIPv4LspIdentidiersTlv, SymbolicPathNameTlv, StatefulLspDbVerTlv,
+        // StatefulLspErrorCodeTlv), END-POINTS, ERO, LSPA.
+        //
         byte[] initiateCreationMsg = new byte[]{0x20, 0x0C, 0x00, (byte) 0x84,
                 0x21, 0x10, 0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, //SRP object
                 0x00, 0x11, 0x00, 0x02, 0x54, 0x31, 0x00, 0x00, //SymbolicPathNameTlv
@@ -301,11 +302,11 @@
      * BANDWIDTH OBJECT objects in PcInitiate message.
      */
     @Test
-    public void initiateMessageTest6() throws PcepParseException {
+    public void initiateMessageTest6() throws PcepParseException, PcepOutOfBoundMessageException {
 
-        /* SRP, LSP (SymbolicPathNameTlv, StatefulIPv4LspIdentidiersTlv, SymbolicPathNameTlv, StatefulLspDbVerTlv,
-         * StatefulLspErrorCodeTlv), END-POINTS, ERO, LSPA, BANDWIDTH OBJECT.
-         */
+        // SRP, LSP (SymbolicPathNameTlv, StatefulIPv4LspIdentidiersTlv, SymbolicPathNameTlv, StatefulLspDbVerTlv,
+        // StatefulLspErrorCodeTlv), END-POINTS, ERO, LSPA, BANDWIDTH OBJECT.
+        //
         byte[] initiateCreationMsg = new byte[]{0x20, 0x0C, 0x00, (byte) 0x8c,
                 0x21, 0x10, 0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, //SRP object
                 0x00, 0x11, 0x00, 0x02, 0x54, 0x31, 0x00, 0x00, //SymbolicPathNameTlv
@@ -353,11 +354,11 @@
      * LSPA, BANDWIDTH, METRIC OBJECT objects in PcInitiate message.
      */
     @Test
-    public void initiateMessageTest7() throws PcepParseException {
+    public void initiateMessageTest7() throws PcepParseException, PcepOutOfBoundMessageException {
 
-        /* SRP, LSP (SymbolicPathNameTlv, StatefulIPv4LspIdentidiersTlv, SymbolicPathNameTlv, StatefulLspDbVerTlv,
-         * StatefulLspErrorCodeTlv), END-POINTS, ERO, LSPA, BANDWIDTH, METRIC OBJECT.
-         */
+        // SRP, LSP (SymbolicPathNameTlv, StatefulIPv4LspIdentidiersTlv, SymbolicPathNameTlv, StatefulLspDbVerTlv,
+        // StatefulLspErrorCodeTlv), END-POINTS, ERO, LSPA, BANDWIDTH, METRIC OBJECT.
+        //
         byte[] initiateCreationMsg = new byte[]{0x20, 0x0C, 0x00, (byte) 0x98,
                 0x21, 0x10, 0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, //SRP object
                 0x00, 0x11, 0x00, 0x02, 0x54, 0x31, 0x00, 0x00, //SymbolicPathNameTlv
@@ -406,11 +407,11 @@
      * objects in PcInitiate message.
      */
     @Test
-    public void initiateMessageTest8() throws PcepParseException {
+    public void initiateMessageTest8() throws PcepParseException, PcepOutOfBoundMessageException {
 
-        /* SRP, LSP (SymbolicPathNameTlv, StatefulIPv4LspIdentidiersTlv, SymbolicPathNameTlv, StatefulLspDbVerTlv),
-         * END-POINTS, ERO, LSPA, BANDWIDTH, METRIC OBJECT.
-         */
+        // SRP, LSP (SymbolicPathNameTlv, StatefulIPv4LspIdentidiersTlv, SymbolicPathNameTlv, StatefulLspDbVerTlv),
+        // END-POINTS, ERO, LSPA, BANDWIDTH, METRIC OBJECT.
+        //
         byte[] initiateCreationMsg = new byte[]{0x20, 0x0C, 0x00, (byte) 0x90,
                 0x21, 0x10, 0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, //SRP object
                 0x00, 0x11, 0x00, 0x02, 0x54, 0x31, 0x00, 0x00, //SymbolicPathNameTlv
@@ -458,11 +459,11 @@
      * objects in PcInitiate message.
      */
     @Test
-    public void initiateMessageTest9() throws PcepParseException {
+    public void initiateMessageTest9() throws PcepParseException, PcepOutOfBoundMessageException {
 
-        /* SRP, LSP (SymbolicPathNameTlv, StatefulIPv4LspIdentidiersTlv, SymbolicPathNameTlv, StatefulLspDbVerTlv),
-         * END-POINTS, ERO, LSPA, BANDWIDTH OBJECT.
-         */
+        // SRP, LSP (SymbolicPathNameTlv, StatefulIPv4LspIdentidiersTlv, SymbolicPathNameTlv, StatefulLspDbVerTlv),
+        // END-POINTS, ERO, LSPA, BANDWIDTH OBJECT.
+        //
         byte[] initiateCreationMsg = new byte[]{0x20, 0x0C, 0x00, (byte) 0x84,
                 0x21, 0x10, 0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, //SRP object
                 0x00, 0x11, 0x00, 0x02, 0x54, 0x31, 0x00, 0x00, //SymbolicPathNameTlv
@@ -508,11 +509,11 @@
      * SymbolicPathNameTlv), END-POINTS, ERO, LSPA OBJECT objects in PcInitiate message.
      */
     @Test
-    public void initiateMessageTest10() throws PcepParseException {
+    public void initiateMessageTest10() throws PcepParseException, PcepOutOfBoundMessageException {
 
-        /* SRP, LSP (SymbolicPathNameTlv, StatefulIPv4LspIdentidiersTlv, SymbolicPathNameTlv),
-         * END-POINTS, ERO, LSPA OBJECT.
-         */
+        // SRP, LSP (SymbolicPathNameTlv, StatefulIPv4LspIdentidiersTlv, SymbolicPathNameTlv),
+        // END-POINTS, ERO, LSPA OBJECT.
+        //
         byte[] initiateCreationMsg = new byte[]{0x20, 0x0C, 0x00, (byte) 0x70,
                 0x21, 0x10, 0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, //SRP object
                 0x00, 0x11, 0x00, 0x02, 0x54, 0x31, 0x00, 0x00, //SymbolicPathNameTlv
@@ -556,11 +557,11 @@
      * objects in PcInitiate message.
      */
     @Test
-    public void initiateMessageTest11() throws PcepParseException {
+    public void initiateMessageTest11() throws PcepParseException, PcepOutOfBoundMessageException {
 
-        /* SRP, LSP (SymbolicPathNameTlv, StatefulIPv4LspIdentidiersTlv, SymbolicPathNameTlv, StatefulLspDbVerTlv),
-         * END-POINTS, ERO, LSPA OBJECT.
-         */
+        // SRP, LSP (SymbolicPathNameTlv, StatefulIPv4LspIdentidiersTlv, SymbolicPathNameTlv, StatefulLspDbVerTlv),
+        // END-POINTS, ERO, LSPA OBJECT.
+        //
         byte[] initiateCreationMsg = new byte[]{0x20, 0x0C, 0x00, (byte) 0x7C,
                 0x21, 0x10, 0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, //SRP object
                 0x00, 0x11, 0x00, 0x02, 0x54, 0x31, 0x00, 0x00, //SymbolicPathNameTlv
@@ -604,11 +605,11 @@
      * objects in PcInitiate message.
      */
     @Test
-    public void initiateMessageTest12() throws PcepParseException {
+    public void initiateMessageTest12() throws PcepParseException, PcepOutOfBoundMessageException {
 
-        /* SRP, LSP (SymbolicPathNameTlv, StatefulIPv4LspIdentidiersTlv, SymbolicPathNameTlv),
-         * END-POINTS, ERO, LSPA, BANDWIDTH OBJECT.
-         */
+        // SRP, LSP (SymbolicPathNameTlv, StatefulIPv4LspIdentidiersTlv, SymbolicPathNameTlv),
+        // END-POINTS, ERO, LSPA, BANDWIDTH OBJECT.
+        //
         byte[] initiateCreationMsg = new byte[]{0x20, 0x0C, 0x00, (byte) 0x78,
                 0x21, 0x10, 0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, //SRP object
                 0x00, 0x11, 0x00, 0x02, 0x54, 0x31, 0x00, 0x00, //SymbolicPathNameTlv
@@ -653,11 +654,11 @@
      * objects in PcInitiate message.
      */
     @Test
-    public void initiateMessageTest13() throws PcepParseException {
+    public void initiateMessageTest13() throws PcepParseException, PcepOutOfBoundMessageException {
 
-        /* SRP, LSP (SymbolicPathNameTlv, StatefulIPv4LspIdentidiersTlv, SymbolicPathNameTlv, StatefulLspDbVerTlv),
-         * END-POINTS, ERO, LSPA, BANDWIDTH , METRIC OBJECT.
-         */
+        // SRP, LSP (SymbolicPathNameTlv, StatefulIPv4LspIdentidiersTlv, SymbolicPathNameTlv, StatefulLspDbVerTlv),
+        // END-POINTS, ERO, LSPA, BANDWIDTH , METRIC OBJECT.
+        //
         byte[] initiateCreationMsg = new byte[]{0x20, 0x0C, 0x00, (byte) 0x84,
                 0x21, 0x10, 0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, //SRP object
                 0x00, 0x11, 0x00, 0x02, 0x54, 0x31, 0x00, 0x00, //SymbolicPathNameTlv
@@ -702,11 +703,11 @@
      * END-POINTS, ERO, LSPA, BANDWIDTH , METRIC OBJECT objects in PcInitiate message.
      */
     @Test
-    public void initiateMessageTest14() throws PcepParseException {
+    public void initiateMessageTest14() throws PcepParseException, PcepOutOfBoundMessageException {
 
-        /* SRP, LSP (SymbolicPathNameTlv, StatefulIPv4LspIdentidiersTlv),
-         * END-POINTS, ERO, LSPA, BANDWIDTH , METRIC OBJECT.
-         */
+        // SRP, LSP (SymbolicPathNameTlv, StatefulIPv4LspIdentidiersTlv),
+        // END-POINTS, ERO, LSPA, BANDWIDTH , METRIC OBJECT.
+        //
         byte[] initiateCreationMsg = new byte[]{0x20, 0x0C, 0x00, (byte) 0x7c,
                 0x21, 0x10, 0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, //SRP object
                 0x00, 0x11, 0x00, 0x02, 0x54, 0x31, 0x00, 0x00, //SymbolicPathNameTlv
@@ -750,11 +751,11 @@
      * END-POINTS, ERO, LSPA, BANDWIDTH OBJECT objects in PcInitiate message.
      */
     @Test
-    public void initiateMessageTest15() throws PcepParseException {
+    public void initiateMessageTest15() throws PcepParseException, PcepOutOfBoundMessageException {
 
-        /* SRP, LSP (SymbolicPathNameTlv, StatefulIPv4LspIdentidiersTlv),
-         * END-POINTS, ERO, LSPA, BANDWIDTH OBJECT.
-         */
+        // SRP, LSP (SymbolicPathNameTlv, StatefulIPv4LspIdentidiersTlv),
+        // END-POINTS, ERO, LSPA, BANDWIDTH OBJECT.
+        //
         byte[] initiateCreationMsg = new byte[]{0x20, 0x0C, 0x00, (byte) 0x70,
                 0x21, 0x10, 0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, //SRP object
                 0x00, 0x11, 0x00, 0x02, 0x54, 0x31, 0x00, 0x00, //SymbolicPathNameTlv
@@ -797,11 +798,11 @@
      * END-POINTS, ERO, LSPA OBJECT objects in PcInitiate message.
      */
     @Test
-    public void initiateMessageTest16() throws PcepParseException {
+    public void initiateMessageTest16() throws PcepParseException, PcepOutOfBoundMessageException {
 
-        /* SRP, LSP (SymbolicPathNameTlv, StatefulIPv4LspIdentidiersTlv),
-         * END-POINTS, ERO, LSPA OBJECT.
-         */
+        // SRP, LSP (SymbolicPathNameTlv, StatefulIPv4LspIdentidiersTlv),
+        // END-POINTS, ERO, LSPA OBJECT.
+        //
         byte[] initiateCreationMsg = new byte[]{0x20, 0x0C, 0x00, (byte) 0x68,
                 0x21, 0x10, 0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, //SRP object
                 0x00, 0x11, 0x00, 0x02, 0x54, 0x31, 0x00, 0x00, //SymbolicPathNameTlv
@@ -843,10 +844,10 @@
      * objects in PcInitiate message.
      */
     @Test
-    public void initiateMessageTest17() throws PcepParseException {
+    public void initiateMessageTest17() throws PcepParseException, PcepOutOfBoundMessageException {
 
-        /* SRP, LSP (StatefulIPv4LspIdentidiersTlv), END-POINTS, ERO, LSPA OBJECT.
-         */
+        // SRP, LSP (StatefulIPv4LspIdentidiersTlv), END-POINTS, ERO, LSPA OBJECT.
+        //
         byte[] initiateCreationMsg = new byte[]{0x20, 0x0C, 0x00, (byte) 0x60,
                 0x21, 0x10, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, //SRP object
                 0x20, 0x10, 0x00, 0x1c, 0x00, 0x00, 0x10, 0x03, //LSP object
@@ -887,10 +888,10 @@
      * BANDWIDTH OBJECT objects in PcInitiate message.
      */
     @Test
-    public void initiateMessageTest18() throws PcepParseException {
+    public void initiateMessageTest18() throws PcepParseException, PcepOutOfBoundMessageException {
 
-        /* SRP, LSP (StatefulIPv4LspIdentidiersTlv), END-POINTS, ERO, LSPA, BANDWIDTH OBJECT.
-         */
+        // SRP, LSP (StatefulIPv4LspIdentidiersTlv), END-POINTS, ERO, LSPA, BANDWIDTH OBJECT.
+        //
         byte[] initiateCreationMsg = new byte[]{0x20, 0x0C, 0x00, (byte) 0x68,
                 0x21, 0x10, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, //SRP object
                 0x20, 0x10, 0x00, 0x1c, 0x00, 0x00, 0x10, 0x03,
@@ -933,10 +934,10 @@
      * BANDWIDTH, METRIC OBJECT objects in PcInitiate message.
      */
     @Test
-    public void initiateMessageTest19() throws PcepParseException {
+    public void initiateMessageTest19() throws PcepParseException, PcepOutOfBoundMessageException {
 
-        /* SRP, LSP (StatefulIPv4LspIdentidiersTlv), END-POINTS, ERO, LSPA, BANDWIDTH, METRIC OBJECT.
-         */
+        // SRP, LSP (StatefulIPv4LspIdentidiersTlv), END-POINTS, ERO, LSPA, BANDWIDTH, METRIC OBJECT.
+        //
         byte[] initiateCreationMsg = new byte[]{0x20, 0x0C, 0x00, (byte) 0x74,
                 0x21, 0x10, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, //SRP object
                 0x20, 0x10, 0x00, 0x1c, 0x00, 0x00, 0x10, 0x03, //LSP object
@@ -979,10 +980,10 @@
      * BANDWIDTH, METRIC OBJECT objects in PcInitiate message.
      */
     @Test
-    public void initiateMessageTest20() throws PcepParseException {
+    public void initiateMessageTest20() throws PcepParseException, PcepOutOfBoundMessageException {
 
-        /* SRP, LSP (StatefulIPv4LspIdentidiersTlv), END-POINTS, ERO, LSPA, BANDWIDTH, METRIC OBJECT.
-         */
+        // SRP, LSP (StatefulIPv4LspIdentidiersTlv), END-POINTS, ERO, LSPA, BANDWIDTH, METRIC OBJECT.
+        //
         byte[] initiateCreationMsg = new byte[]{0x20, 0x0C, 0x00, (byte) 0x64,
                 0x21, 0x10, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, //SRP object
                 0x20, 0x10, 0x00, 0x1c, 0x00, 0x00, 0x10, 0x03, //LSP object
@@ -1024,10 +1025,10 @@
      * BANDWIDTH OBJECT objects in PcInitiate message.
      */
     @Test
-    public void initiateMessageTest21() throws PcepParseException {
+    public void initiateMessageTest21() throws PcepParseException, PcepOutOfBoundMessageException {
 
-        /* SRP, LSP (StatefulIPv4LspIdentidiersTlv), END-POINTS, ERO, LSPA, BANDWIDTH OBJECT.
-         */
+        // SRP, LSP (StatefulIPv4LspIdentidiersTlv), END-POINTS, ERO, LSPA, BANDWIDTH OBJECT.
+        //
         byte[] initiateCreationMsg = new byte[]{0x20, 0x0C, 0x00, (byte) 0x58,
                 0x21, 0x10, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, //SRP object
                 0x20, 0x10, 0x00, 0x1c, 0x00, 0x00, 0x10, 0x03, //LSP object
@@ -1068,10 +1069,10 @@
      * LSPA OBJECT objects in PcInitiate message.
      */
     @Test
-    public void initiateMessageTest22() throws PcepParseException {
+    public void initiateMessageTest22() throws PcepParseException, PcepOutOfBoundMessageException {
 
-        /* SRP, LSP (StatefulIPv4LspIdentidiersTlv), END-POINTS, ERO, LSPA OBJECT.
-         */
+        // SRP, LSP (StatefulIPv4LspIdentidiersTlv), END-POINTS, ERO, LSPA OBJECT.
+        //
         byte[] initiateCreationMsg = new byte[]{0x20, 0x0C, 0x00, (byte) 0x50,
                 0x21, 0x10, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, //SRP object
                 0x20, 0x10, 0x00, 0x1c, 0x00, 0x00, 0x10, 0x03, //LSP object
@@ -1111,10 +1112,10 @@
      * END-POINTS, ERO, LSPA OBJECT objects in PcInitiate message.
      */
     @Test
-    public void initiateMessageTest23() throws PcepParseException {
+    public void initiateMessageTest23() throws PcepParseException, PcepOutOfBoundMessageException {
 
-        /* SRP, LSP (SymbolicPathNameTlv, StatefulIPv4LspIdentidiersTlv), END-POINTS, ERO, LSPA OBJECT.
-         */
+        // SRP, LSP (SymbolicPathNameTlv, StatefulIPv4LspIdentidiersTlv), END-POINTS, ERO, LSPA OBJECT.
+        //
         byte[] initiateCreationMsg = new byte[]{0x20, 0x0C, 0x00, (byte) 0x58,
                 0x21, 0x10, 0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, //SRP object
                 0x00, 0x11, 0x00, 0x02, 0x54, 0x31, 0x00, 0x00, //SymbolicPathNameTlv
@@ -1155,10 +1156,10 @@
      * END-POINTS, ERO, LSPA BANDWIDTH OBJECT objects in PcInitiate message.
      */
     @Test
-    public void initiateMessageTest25() throws PcepParseException {
+    public void initiateMessageTest25() throws PcepParseException, PcepOutOfBoundMessageException {
 
-        /* SRP, LSP (SymbolicPathNameTlv, StatefulIPv4LspIdentidiersTlv), END-POINTS, ERO, LSPA BANDWIDTH OBJECT.
-         */
+        // SRP, LSP (SymbolicPathNameTlv, StatefulIPv4LspIdentidiersTlv), END-POINTS, ERO, LSPA BANDWIDTH OBJECT.
+        //
         byte[] initiateCreationMsg = new byte[]{0x20, 0x0C, 0x00, (byte) 0x60,
                 0x21, 0x10, 0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, //SRP object
                 0x00, 0x11, 0x00, 0x02, 0x54, 0x31, 0x00, 0x00, //SymbolicPathNameTlv
@@ -1200,11 +1201,11 @@
      * ERO, LSPA, BANDWIDTH, METRIC OBJECT objects in PcInitiate message.
      */
     @Test
-    public void initiateMessageTest26() throws PcepParseException {
+    public void initiateMessageTest26() throws PcepParseException, PcepOutOfBoundMessageException {
 
-        /* SRP, LSP (SymbolicPathNameTlv, StatefulIPv4LspIdentidiersTlv), END-POINTS,
-         * ERO, LSPA, BANDWIDTH, METRIC OBJECT.
-         */
+        // SRP, LSP (SymbolicPathNameTlv, StatefulIPv4LspIdentidiersTlv), END-POINTS,
+        // ERO, LSPA, BANDWIDTH, METRIC OBJECT.
+        //
         byte[] initiateCreationMsg = new byte[]{0x20, 0x0C, 0x00, (byte) 0x6C,
                 0x21, 0x10, 0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, //SRP object
                 0x00, 0x11, 0x00, 0x02, 0x54, 0x31, 0x00, 0x00, //SymbolicPathNameTlv
@@ -1247,10 +1248,10 @@
      * BANDWIDTH, METRIC OBJECT objects in PcInitiate message.
      */
     @Test
-    public void initiateMessageTest27() throws PcepParseException {
+    public void initiateMessageTest27() throws PcepParseException, PcepOutOfBoundMessageException {
 
-        /* SRP, LSP (SymbolicPathNameTlv, SymbolicPathNameTlv), END-POINTS, ERO, LSPA, BANDWIDTH, METRIC OBJECT.
-         */
+        // SRP, LSP (SymbolicPathNameTlv, SymbolicPathNameTlv), END-POINTS, ERO, LSPA, BANDWIDTH, METRIC OBJECT.
+        //
         byte[] initiateCreationMsg = new byte[]{0x20, 0x0C, 0x00, (byte) 0x60,
                 0x21, 0x10, 0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, //SRP object
                 0x00, 0x11, 0x00, 0x02, 0x54, 0x31, 0x00, 0x00, //SymbolicPathNameTlv
@@ -1291,10 +1292,10 @@
      * LSPA, BANDWIDTH OBJECT objects in PcInitiate message.
      */
     @Test
-    public void initiateMessageTest28() throws PcepParseException {
+    public void initiateMessageTest28() throws PcepParseException, PcepOutOfBoundMessageException {
 
-        /* SRP, LSP (SymbolicPathNameTlv, SymbolicPathNameTlv), END-POINTS, ERO, LSPA, BANDWIDTH OBJECT.
-         */
+        // SRP, LSP (SymbolicPathNameTlv, SymbolicPathNameTlv), END-POINTS, ERO, LSPA, BANDWIDTH OBJECT.
+        //
         byte[] initiateCreationMsg = new byte[]{0x20, 0x0C, 0x00, (byte) 0x54,
                 0x21, 0x10, 0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, //SRP object
                 0x00, 0x11, 0x00, 0x02, 0x54, 0x31, 0x00, 0x00, //SymbolicPathNameTlv
@@ -1334,10 +1335,10 @@
      * END-POINTS, ERO, LSPA OBJECT objects in PcInitiate message.
      */
     @Test
-    public void initiateMessageTest29() throws PcepParseException {
+    public void initiateMessageTest29() throws PcepParseException, PcepOutOfBoundMessageException {
 
-        /* SRP, LSP (SymbolicPathNameTlv, SymbolicPathNameTlv), END-POINTS, ERO, LSPA OBJECT.
-         */
+        // SRP, LSP (SymbolicPathNameTlv, SymbolicPathNameTlv), END-POINTS, ERO, LSPA OBJECT.
+        //
         byte[] initiateCreationMsg = new byte[]{0x20, 0x0C, 0x00, (byte) 0x4C,
                 0x21, 0x10, 0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, //SRP object
                 0x00, 0x11, 0x00, 0x02, 0x54, 0x31, 0x00, 0x00, //SymbolicPathNameTlv
@@ -1376,10 +1377,10 @@
      * END-POINTS, ERO, LSPA OBJECT objects in PcInitiate message.
      */
     @Test
-    public void initiateMessageTest30() throws PcepParseException {
+    public void initiateMessageTest30() throws PcepParseException, PcepOutOfBoundMessageException {
 
-        /* SRP, LSP (SymbolicPathNameTlv, SymbolicPathNameTlv), END-POINTS, ERO, LSPA OBJECT.
-         */
+        // SRP, LSP (SymbolicPathNameTlv, SymbolicPathNameTlv), END-POINTS, ERO, LSPA OBJECT.
+        //
         byte[] initiateCreationMsg = new byte[]{0x20, 0x0C, 0x00, (byte) 0x5C,
                 0x21, 0x10, 0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, //SRP object
                 0x00, 0x11, 0x00, 0x02, 0x54, 0x31, 0x00, 0x00, //SymbolicPathNameTlv
@@ -1419,10 +1420,10 @@
      * objects in PcInitiate message.
      */
     @Test
-    public void initiateMessageTest31() throws PcepParseException {
+    public void initiateMessageTest31() throws PcepParseException, PcepOutOfBoundMessageException {
 
-        /* SRP, LSP (SymbolicPathNameTlv), END-POINTS, ERO, LSPA OBJECT.
-         */
+        // SRP, LSP (SymbolicPathNameTlv), END-POINTS, ERO, LSPA OBJECT.
+        //
         byte[] initiateCreationMsg = new byte[]{0x20, 0x0C, 0x00, (byte) 0x54,
                 0x21, 0x10, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, //SRP object
                 0x20, 0x10, 0x00, 0x10, 0x00, 0x00, 0x10, 0x03, //LSP object
@@ -1461,11 +1462,11 @@
      * ERO, LSPA, BANDWIDTH, METRIC OBJECT objects in PcInitiate message.
      */
     @Test
-    public void initiateMessageTest32() throws PcepParseException {
+    public void initiateMessageTest32() throws PcepParseException, PcepOutOfBoundMessageException {
 
-        /* SRP, LSP ( StatefulLspDbVerTlv), END-POINTS,
-         * ERO, LSPA, BANDWIDTH, METRIC OBJECT.
-         */
+        // SRP, LSP ( StatefulLspDbVerTlv), END-POINTS,
+        // ERO, LSPA, BANDWIDTH, METRIC OBJECT.
+        //
         byte[] initiateCreationMsg = new byte[]{0x20, 0x0C, 0x00, (byte) 0x64,
                 0x21, 0x10, 0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, //SRP object
                 0x00, 0x11, 0x00, 0x02, 0x54, 0x31, 0x00, 0x00, //SymbolicPathNameTlv
@@ -1507,11 +1508,11 @@
      * ERO, LSPA, BANDWIDTH OBJECT objects in PcInitiate message.
      */
     @Test
-    public void initiateMessageTest33() throws PcepParseException {
+    public void initiateMessageTest33() throws PcepParseException, PcepOutOfBoundMessageException {
 
-        /* SRP, LSP ( StatefulLspDbVerTlv), END-POINTS,
-         * ERO, LSPA, BANDWIDTH OBJECT.
-         */
+        // SRP, LSP ( StatefulLspDbVerTlv), END-POINTS,
+        // ERO, LSPA, BANDWIDTH OBJECT.
+        //
         byte[] initiateCreationMsg = new byte[]{0x20, 0x0C, 0x00, (byte) 0x58,
                 0x21, 0x10, 0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, //SRP object
                 0x00, 0x11, 0x00, 0x02, 0x54, 0x31, 0x00, 0x00, //SymbolicPathNameTlv
@@ -1552,11 +1553,11 @@
      * ERO, LSPA OBJECT objects in PcInitiate message.
      */
     @Test
-    public void initiateMessageTest34() throws PcepParseException {
+    public void initiateMessageTest34() throws PcepParseException, PcepOutOfBoundMessageException {
 
-        /* SRP, LSP ( StatefulLspDbVerTlv), END-POINTS,
-         * ERO, LSPA OBJECT.
-         */
+        // SRP, LSP ( StatefulLspDbVerTlv), END-POINTS,
+        // ERO, LSPA OBJECT.
+        //
         byte[] initiateCreationMsg = new byte[]{0x20, 0x0C, 0x00, (byte) 0x50,
                 0x21, 0x10, 0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, //SRP object
                 0x00, 0x11, 0x00, 0x02, 0x54, 0x31, 0x00, 0x00, //SymbolicPathNameTlv
@@ -1596,11 +1597,11 @@
      * ERO, LSPA OBJECT objects in PcInitiate message.
      */
     @Test
-    public void initiateMessageTest35() throws PcepParseException {
+    public void initiateMessageTest35() throws PcepParseException, PcepOutOfBoundMessageException {
 
-        /* SRP, LSP ( StatefulLspDbVerTlv), END-POINTS,
-         * ERO, LSPA OBJECT.
-         */
+        // SRP, LSP ( StatefulLspDbVerTlv), END-POINTS,
+        // ERO, LSPA OBJECT.
+        //
         byte[] initiateCreationMsg = new byte[]{0x20, 0x0C, 0x00, (byte) 0x60,
                 0x21, 0x10, 0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, //SRP object
                 0x00, 0x11, 0x00, 0x02, 0x54, 0x31, 0x00, 0x00, //SymbolicPathNameTlv
@@ -1641,11 +1642,11 @@
      * ERO, LSPA OBJECT objects in PcInitiate message.
      */
     @Test
-    public void initiateMessageTest36() throws PcepParseException {
+    public void initiateMessageTest36() throws PcepParseException, PcepOutOfBoundMessageException {
 
-        /* SRP, LSP ( StatefulLspDbVerTlv), END-POINTS,
-         * ERO, LSPA OBJECT.
-         */
+        // SRP, LSP ( StatefulLspDbVerTlv), END-POINTS,
+        // ERO, LSPA OBJECT.
+        //
         byte[] initiateCreationMsg = new byte[]{0x20, 0x0C, 0x00, (byte) 0x58,
                 0x21, 0x10, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, //SRP object
                 0x20, 0x10, 0x00, 0x14, 0x00, 0x00, 0x10, 0x03, //LSP object
diff --git a/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/protocol/PcepInitiateMsgTest.java b/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/protocol/PcepInitiateMsgTest.java
index 0f8bb7b..cb5b0dd 100644
--- a/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/protocol/PcepInitiateMsgTest.java
+++ b/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/protocol/PcepInitiateMsgTest.java
@@ -18,6 +18,7 @@
 import org.jboss.netty.buffer.ChannelBuffer;
 import org.jboss.netty.buffer.ChannelBuffers;
 import org.junit.Test;
+import org.onosproject.pcepio.exceptions.PcepOutOfBoundMessageException;
 import org.onosproject.pcepio.exceptions.PcepParseException;
 
 import static org.hamcrest.MatcherAssert.assertThat;
@@ -30,7 +31,7 @@
      * This test case checks for srp, lsp, end-point, ERO objects in PcInitiate message.
      */
     @Test
-    public void initiateMessageTest1() throws PcepParseException {
+    public void initiateMessageTest1() throws PcepParseException, PcepOutOfBoundMessageException {
 
         /* srp, lsp, end-point, ERO.
          */
@@ -75,7 +76,7 @@
      * This test case checks for srp and lsp objects in PcInitiate message.
      */
     @Test
-    public void initiateMessageTest2() throws PcepParseException {
+    public void initiateMessageTest2() throws PcepParseException, PcepOutOfBoundMessageException {
         /* srp, lsp.
          */
         byte[] initiateDeletionMsg = new byte[]{0x20, 0x0C, 0x00, 0x34,
@@ -115,7 +116,7 @@
      * in PcInitiate message.
      */
     @Test
-    public void initiateMessageTest3() throws PcepParseException {
+    public void initiateMessageTest3() throws PcepParseException, PcepOutOfBoundMessageException {
 
         /* SRP, LSP (StatefulIPv4LspIdentidiersTlv, SymbolicPathNameTlv,
          * StatefulLspErrorCodeTlv, StatefulRsvpErrorSpecTlv), END-POINTS, ERO.
@@ -162,7 +163,7 @@
      * StatefulLspErrorCodeTlv), END-POINT, ERO objects in PcInitiate message.
      */
     @Test
-    public void initiateMessageTest4() throws PcepParseException {
+    public void initiateMessageTest4() throws PcepParseException, PcepOutOfBoundMessageException {
 
         /* SRP, LSP (StatefulIPv4LspIdentidiersTlv, SymbolicPathNameTlv,
          * StatefulLspErrorCodeTlv), END-POINT, ERO.
@@ -208,7 +209,7 @@
      * END-POINT, ERO objects in PcInitiate message.
      */
     @Test
-    public void initiateMessageTest5() throws PcepParseException {
+    public void initiateMessageTest5() throws PcepParseException, PcepOutOfBoundMessageException {
 
         /* SRP, LSP (StatefulIPv4LspIdentidiersTlv, SymbolicPathNameTlv),
          * END-POINT, ERO.
@@ -255,7 +256,7 @@
      * END-POINT, ERO objects in PcInitiate message.
      */
     @Test
-    public void initiateMessageTest6() throws PcepParseException {
+    public void initiateMessageTest6() throws PcepParseException, PcepOutOfBoundMessageException {
 
         /* SRP, LSP (SymbolicPathNameTlv, StatefulIPv4LspIdentidiersTlv, SymbolicPathNameTlv),
          * END-POINT, ERO.
@@ -303,7 +304,7 @@
      * END-POINT, ERO objects in PcInitiate message.
      */
     @Test
-    public void initiateMessageTest7() throws PcepParseException {
+    public void initiateMessageTest7() throws PcepParseException, PcepOutOfBoundMessageException {
 
         /* SRP, LSP (SymbolicPathNameTlv, StatefulIPv4LspIdentidiersTlv),
          * END-POINT, ERO.
@@ -350,7 +351,7 @@
      * END-POINT, ERO objects in PcInitiate message.
      */
     @Test
-    public void initiateMessageTest8() throws PcepParseException {
+    public void initiateMessageTest8() throws PcepParseException, PcepOutOfBoundMessageException {
 
         /* SRP, LSP (StatefulIPv4LspIdentidiersTlv),
          * END-POINT, ERO.
@@ -396,7 +397,7 @@
      * END-POINT, ERO objects in PcInitiate message.
      */
     @Test
-    public void initiateMessageTest9() throws PcepParseException {
+    public void initiateMessageTest9() throws PcepParseException, PcepOutOfBoundMessageException {
 
         /* SRP, LSP (StatefulIPv4LspIdentidiersTlv),
          * END-POINT, ERO.
@@ -440,7 +441,7 @@
      * objects in PcInitiate message.
      */
     @Test
-    public void initiateMessageTest10() throws PcepParseException {
+    public void initiateMessageTest10() throws PcepParseException, PcepOutOfBoundMessageException {
 
         /* SRP, LSP (StatefulIPv4LspIdentidiersTlv, StatefulRsvpErrorSpecTlv).
          */
@@ -484,7 +485,7 @@
      * StatefulLspErrorCodeTlv) objects in PcInitiate message.
      */
     @Test
-    public void initiateMessageTest11() throws PcepParseException {
+    public void initiateMessageTest11() throws PcepParseException, PcepOutOfBoundMessageException {
 
         /* SRP, LSP (StatefulIPv4LspIdentidiersTlv, SymbolicPathNameTlv,
            StatefulLspErrorCodeTlv).*/
@@ -528,7 +529,7 @@
      * objects in PcInitiate message.
      */
     @Test
-    public void initiateMessageTest12() throws PcepParseException {
+    public void initiateMessageTest12() throws PcepParseException, PcepOutOfBoundMessageException {
 
         /* SRP, LSP (StatefulIPv4LspIdentidiersTlv, SymbolicPathNameTlv).
          */
@@ -571,7 +572,7 @@
      * objects in PcInitiate message.
      */
     @Test
-    public void initiateMessageTest13() throws PcepParseException {
+    public void initiateMessageTest13() throws PcepParseException, PcepOutOfBoundMessageException {
 
         /* SRP, LSP (SymbolicPathNameTlv, StatefulIPv4LspIdentidiersTlv, SymbolicPathNameTlv).
          */
@@ -613,7 +614,7 @@
      * objects in PcInitiate message.
      */
     @Test
-    public void initiateMessageTest14() throws PcepParseException {
+    public void initiateMessageTest14() throws PcepParseException, PcepOutOfBoundMessageException {
 
         /* SRP, LSP (SymbolicPathNameTlv, StatefulIPv4LspIdentidiersTlv).
          */
@@ -655,7 +656,7 @@
      * objects in PcInitiate message.
      */
     @Test
-    public void initiateMessageTest15() throws PcepParseException {
+    public void initiateMessageTest15() throws PcepParseException, PcepOutOfBoundMessageException {
 
         /* SRP, LSP (StatefulIPv4LspIdentidiersTlv).
          */
@@ -696,7 +697,7 @@
      * objects in PcInitiate message.
      */
     @Test
-    public void initiateMessageTest16() throws PcepParseException {
+    public void initiateMessageTest16() throws PcepParseException, PcepOutOfBoundMessageException {
 
         //srp,lsp (StatefulIPv4LspIdentidiersTlv),end-point,ero,lspa
         byte[] initiateCreationMsg = new byte[]{0x20, 0x0C, 0x00, (byte) 0x50,
@@ -740,7 +741,7 @@
      * objects in PcInitiate message.
      */
     @Test
-    public void initiateMessageTest17() throws PcepParseException {
+    public void initiateMessageTest17() throws PcepParseException, PcepOutOfBoundMessageException {
 
         //srp,lsp (StatefulIPv4LspIdentidiersTlv),end-point,ero,lspa,bandwidth
         byte[] initiateCreationMsg = new byte[]{0x20, 0x0C, 0x00, (byte) 0x58,
@@ -784,7 +785,7 @@
      * objects in PcInitiate message.
      */
     @Test
-    public void initiateMessageTest18() throws PcepParseException {
+    public void initiateMessageTest18() throws PcepParseException, PcepOutOfBoundMessageException {
         //srp,lsp (StatefulIPv4LspIdentidiersTlv),end-point,ero,lspa,bandwidth,metric-list
         byte[] initiateCreationMsg = new byte[]{0x20, 0x0C, 0x00, (byte) 0x64,
                 0x21, 0x10, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, //SRP object
@@ -829,7 +830,7 @@
      * objects in PcInitiate message.
      */
     @Test
-    public void initiateMessageTest19() throws PcepParseException {
+    public void initiateMessageTest19() throws PcepParseException, PcepOutOfBoundMessageException {
         //srp,lsp(all tlvs),end-point,ero,lspa,bandwidth,metric-list
         byte[] initiateCreationMsg = new byte[]{0x20, 0x0C, 0x00, (byte) 0x74,
                 0x21, 0x10, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, //SRP object
@@ -876,7 +877,7 @@
      * lsp(SymbolicPathNameTlv, StatefulIPv4LspIdentidiersTlv) objects in PcInitiate message.
      */
     @Test
-    public void initiateMessageTest20() throws PcepParseException {
+    public void initiateMessageTest20() throws PcepParseException, PcepOutOfBoundMessageException {
         /* srp,lsp (SymbolicPathNameTlv, StatefulIPv4LspIdentidiersTlv, srp,
          *  lsp(SymbolicPathNameTlv, StatefulIPv4LspIdentidiersTlv).
          */
@@ -924,7 +925,7 @@
      * objects in PcInitiate message.
      */
     @Test
-    public void initiateMessageTest21() throws PcepParseException {
+    public void initiateMessageTest21() throws PcepParseException, PcepOutOfBoundMessageException {
         /*srp,lsp(StatefulIPv4LspIdentidiersTlv),end-point,ero,
          * srp,lsp(StatefulIPv4LspIdentidiersTlv),end-point,ero
          */
@@ -978,7 +979,7 @@
      * objects in PcInitiate message.
      */
     @Test
-    public void initiateMessageTest22() throws PcepParseException {
+    public void initiateMessageTest22() throws PcepParseException, PcepOutOfBoundMessageException {
         /*srp,lsp(StatefulIPv4LspIdentidiersTlv),end-point,ero,
          * srp,lsp(StatefulIPv4LspIdentidiersTlv),end-point,ero,lspa
          */
@@ -1033,7 +1034,7 @@
      * objects in PcInitiate message.
      */
     @Test
-    public void initiateMessageTest23() throws PcepParseException {
+    public void initiateMessageTest23() throws PcepParseException, PcepOutOfBoundMessageException {
         /*srp,lsp(StatefulIPv4LspIdentidiersTlv),end-point,ero,
          * srp,lsp(StatefulIPv4LspIdentidiersTlv),end-point,ero,lspa,bandwidth
          */
@@ -1090,7 +1091,7 @@
      * objects in PcInitiate message.
      */
     @Test
-    public void initiateMessageTest24() throws PcepParseException {
+    public void initiateMessageTest24() throws PcepParseException, PcepOutOfBoundMessageException {
         /*srp,lsp(StatefulIPv4LspIdentidiersTlv),end-point,ero,
          * srp,lsp(StatefulIPv4LspIdentidiersTlv),end-point,ero,lspa,bandwidth*/
         byte[] initiateCreationMsg = new byte[]{0x20, 0x0C, 0x00, (byte) 0xBC,
@@ -1148,7 +1149,7 @@
      * objects in PcInitiate message.
      */
     @Test
-    public void initiateMessageTest25() throws PcepParseException {
+    public void initiateMessageTest25() throws PcepParseException, PcepOutOfBoundMessageException {
 
         /*srp,lsp(StatefulIPv4LspIdentidiersTlv),end-point,ero,bandwidth,
          * srp,lsp(StatefulIPv4LspIdentidiersTlv),
@@ -1209,7 +1210,7 @@
      * objects in PcInitiate message.
      */
     @Test
-    public void initiateMessageTest26() throws PcepParseException {
+    public void initiateMessageTest26() throws PcepParseException, PcepOutOfBoundMessageException {
 
         /*srp,lsp(StatefulIPv4LspIdentidiersTlv),end-point,ero,bandwidth,metric-list,
          * srp,lsp(StatefulIPv4LspIdentidiersTlv),
@@ -1271,7 +1272,7 @@
      * objects in PcInitiate message.
      */
     @Test
-    public void initiateMessageTest27() throws PcepParseException {
+    public void initiateMessageTest27() throws PcepParseException, PcepOutOfBoundMessageException {
 
         /*srp,lsp(StatefulIPv4LspIdentidiersTlv),end-point,ero,lspa,bandwidth,metric-list,
          * srp,lsp(StatefulIPv4LspIdentidiersTlv),
diff --git a/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/protocol/PcepKeepaliveMsgTest.java b/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/protocol/PcepKeepaliveMsgTest.java
index 56cf06b..0131860 100644
--- a/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/protocol/PcepKeepaliveMsgTest.java
+++ b/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/protocol/PcepKeepaliveMsgTest.java
@@ -19,6 +19,7 @@
 import org.jboss.netty.buffer.ChannelBuffers;
 import org.junit.Assert;
 import org.junit.Test;
+import org.onosproject.pcepio.exceptions.PcepOutOfBoundMessageException;
 import org.onosproject.pcepio.exceptions.PcepParseException;
 
 import static org.hamcrest.MatcherAssert.assertThat;
@@ -31,7 +32,7 @@
      * Common header for keep alive message.
      */
     @Test
-    public void keepaliveMessageTest1() throws PcepParseException {
+    public void keepaliveMessageTest1() throws PcepParseException, PcepOutOfBoundMessageException {
 
         byte[] keepaliveMsg = new byte[] {0x20, 0x02, 0x00, 0x04 };
 
diff --git a/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/protocol/PcepLSReportMsgTest.java b/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/protocol/PcepLSReportMsgTest.java
new file mode 100644
index 0000000..ea1009d
--- /dev/null
+++ b/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/protocol/PcepLSReportMsgTest.java
@@ -0,0 +1,1585 @@
+/*
+ * Copyright 2014-2015 Open Networking Laboratory
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.onosproject.pcepio.protocol;
+
+import org.jboss.netty.buffer.ChannelBuffer;
+import org.jboss.netty.buffer.ChannelBuffers;
+import org.junit.Test;
+import org.onosproject.pcepio.exceptions.PcepOutOfBoundMessageException;
+import org.onosproject.pcepio.exceptions.PcepParseException;
+
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.hamcrest.Matchers.instanceOf;
+import static org.hamcrest.core.Is.is;
+
+public class PcepLSReportMsgTest {
+
+    /**
+     * This test case checks for
+     * LS Object (Routing Universe TLV, Local Node Descriptors TLV(AutonomousSystemSubTlv)).
+     * in PcLSRpt message.
+     */
+    @Test
+    public void lsReportMessageTest1() throws PcepParseException, PcepOutOfBoundMessageException {
+
+        byte[] lsReportMsg = new byte[]{0x20, (byte) 0xE0, 0x00, 0x2C, // common header
+                (byte) 0xE0, 0x10, 0x00, 0x28, // LS Object Header
+                0x01, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, // LS-ID
+                (byte) 0xFF, 0x01, 0x00, 0x08, // Routing Universe TLV
+                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
+                (byte) 0xFF, 0x02, 0x00, 0x08, // Local Node Descriptors TLV
+                0x00, 0x01, 0x00, 0x04, //AutonomousSystem Tlv
+                0x00, 0x00, 0x00, 0x11};
+
+        ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
+        buffer.writeBytes(lsReportMsg);
+
+        PcepMessageReader<PcepMessage> reader = PcepFactories.getGenericReader();
+        PcepMessage message = null;
+
+        message = reader.readFrom(buffer);
+
+        byte[] testReportMsg = {0};
+
+        assertThat(message, instanceOf(PcepLSReportMsg.class));
+        ChannelBuffer buf = ChannelBuffers.dynamicBuffer();
+        message.writeTo(buf);
+
+        int readLen = buf.writerIndex();
+        testReportMsg = new byte[readLen];
+        buf.readBytes(testReportMsg, 0, readLen);
+
+        assertThat(testReportMsg, is(lsReportMsg));
+    }
+
+    /**
+     * This test case checks for
+     * LS Object (Routing Universe TLV, Local Node Descriptors TLV(AutonomousSystemSubTlv)) with different LS-ID.
+     * in PcLSRpt message.
+     */
+    @Test
+    public void lsReportMessageTest2() throws PcepParseException, PcepOutOfBoundMessageException {
+
+        byte[] lsReportMsg = new byte[]{0x20, (byte) 0xE0, 0x00, 0x2C, // common header
+                (byte) 0xE0, 0x10, 0x00, 0x28, // LS Object Header
+                0x01, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, // LS-ID
+                (byte) 0xFF, 0x01, 0x00, 0x08, // Routing Universe TLV
+                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
+                (byte) 0xFF, 0x02, 0x00, 0x08, // Local Node Descriptors TLV
+                0x00, 0x01, 0x00, 0x04, //AutonomousSystemSubTlv
+                0x00, 0x00, 0x00, 0x11};
+
+        ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
+        buffer.writeBytes(lsReportMsg);
+
+        PcepMessageReader<PcepMessage> reader = PcepFactories.getGenericReader();
+        PcepMessage message = null;
+
+        message = reader.readFrom(buffer);
+
+        byte[] testReportMsg = {0};
+        assertThat(message, instanceOf(PcepLSReportMsg.class));
+        ChannelBuffer buf = ChannelBuffers.dynamicBuffer();
+        message.writeTo(buf);
+
+        int readLen = buf.writerIndex();
+        testReportMsg = new byte[readLen];
+        buf.readBytes(testReportMsg, 0, readLen);
+
+        assertThat(testReportMsg, is(lsReportMsg));
+    }
+
+    /**
+     * This test case checks for  LS Object (Routing Universe TLV)
+     * in PcLSRpt message.
+     */
+    @Test
+    public void lsReportMessageTest3() throws PcepParseException, PcepOutOfBoundMessageException {
+
+        byte[] lsReportMsg = new byte[]{0x20, (byte) 0xE0, 0x00, 0x20, // common header
+                (byte) 0xE0, 0x10, 0x00, 0x1C, // LS Object Header
+                0x01, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, // LS-ID
+                (byte) 0xFF, 0x01, 0x00, 0x08, // Routing Universe TLV
+                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01};
+
+        ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
+        buffer.writeBytes(lsReportMsg);
+
+        PcepMessageReader<PcepMessage> reader = PcepFactories.getGenericReader();
+        PcepMessage message = null;
+
+        message = reader.readFrom(buffer);
+
+        byte[] testReportMsg = {0};
+        assertThat(message, instanceOf(PcepLSReportMsg.class));
+        ChannelBuffer buf = ChannelBuffers.dynamicBuffer();
+        message.writeTo(buf);
+
+        int readLen = buf.writerIndex();
+        testReportMsg = new byte[readLen];
+        buf.readBytes(testReportMsg, 0, readLen);
+
+        assertThat(testReportMsg, is(lsReportMsg));
+    }
+
+    /**
+     * This test case checks for
+     * LS Object (Routing Universe TLV,Local Node Descriptors TLV(AutonomousSystemSubTlv, BGPLSidentifierSubTlv.
+     * OSPFareaIDsubTlv, IgpRouterIdSubTlv)).
+     * in PcLSRpt message.
+     */
+    @Test
+    public void lsReportMessageTest4() throws PcepParseException, PcepOutOfBoundMessageException {
+
+        byte[] lsReportMsg = new byte[]{0x20, (byte) 0xE0, 0x00, 0x48, // common header
+                (byte) 0xE0, 0x10, 0x00, 0x44, // LS Object Header
+                0x01, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, // LS-ID
+                (byte) 0xFF, 0x01, 0x00, 0x08, // Routing Universe TLV
+                0x00, 0x00, 0x00, 0x00,
+                0x00, 0x00, 0x00, 0x01,
+                (byte) 0xFF, 0x02, 0x00, 0x24, // Local Node Descriptors TLV
+                0x00, 0x01, 0x00, 0x04, //AutonomousSystemSubTlv
+                0x00, 0x00, 0x00, 0x11,
+                0x00, 0x02, 0x00, 0x04, //BGPLSidentifierSubTlv
+                0x00, 0x00, 0x00, 0x11,
+                0x00, 0x03, 0x00, 0x04, //OspfAreaIdSubTlv
+                0x00, 0x00, 0x00, 0x11,
+                0x00, 0x04, 0x00, 0x08, //IgpRouterIdSubTlv
+                0x00, 0x00, 0x00, 0x11,
+                0x00, 0x00, 0x00, 0x11};
+
+        ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
+        buffer.writeBytes(lsReportMsg);
+
+        PcepMessageReader<PcepMessage> reader = PcepFactories.getGenericReader();
+        PcepMessage message = null;
+
+        message = reader.readFrom(buffer);
+
+        byte[] testReportMsg = {0};
+        assertThat(message, instanceOf(PcepLSReportMsg.class));
+        ChannelBuffer buf = ChannelBuffers.dynamicBuffer();
+        message.writeTo(buf);
+
+        int readLen = buf.writerIndex();
+        testReportMsg = new byte[readLen];
+        buf.readBytes(testReportMsg, 0, readLen);
+
+        assertThat(testReportMsg, is(lsReportMsg));
+    }
+
+    /**
+     * This test case checks for
+     * LS Object (Routing Universe TLV,Local Node Descriptors TLV(BGPLSidentifierSubTlv
+     * OSPFareaIDsubTlv, IgpRouterIdSubTlv))
+     * in PcLSRpt message.
+     */
+    @Test
+    public void lsReportMessageTest5() throws PcepParseException, PcepOutOfBoundMessageException {
+
+        byte[] lsReportMsg = new byte[]{0x20, (byte) 0xE0, 0x00, 0x40, // common header
+                (byte) 0xE0, 0x10, 0x00, 0x3C, // LS Object Header
+                0x01, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, // LS-ID
+                (byte) 0xFF, 0x01, 0x00, 0x08, // Routing Universe TLV
+                0x00, 0x00, 0x00, 0x00,
+                0x00, 0x00, 0x00, 0x01,
+                (byte) 0xFF, 0x02, 0x00, 0x1C, // Local Node Descriptors TLV
+                0x00, 0x02, 0x00, 0x04, //BGPLSidentifierSubTlv
+                0x00, 0x00, 0x00, 0x11,
+                0x00, 0x03, 0x00, 0x04, //OSPFareaIDsubTlv
+                0x00, 0x00, 0x00, 0x11,
+                0x00, 0x04, 0x00, 0x08, //IgpRouterIdSubTlv
+                0x00, 0x00, 0x00, 0x11,
+                0x00, 0x00, 0x00, 0x11};
+
+        ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
+        buffer.writeBytes(lsReportMsg);
+
+        PcepMessageReader<PcepMessage> reader = PcepFactories.getGenericReader();
+        PcepMessage message = null;
+
+        message = reader.readFrom(buffer);
+
+        byte[] testReportMsg = {0};
+        assertThat(message, instanceOf(PcepLSReportMsg.class));
+        ChannelBuffer buf = ChannelBuffers.dynamicBuffer();
+        message.writeTo(buf);
+
+        int readLen = buf.writerIndex();
+        testReportMsg = new byte[readLen];
+        buf.readBytes(testReportMsg, 0, readLen);
+
+        assertThat(testReportMsg, is(lsReportMsg));
+    }
+
+    /**
+     * This test case checks for LS Object (Routing Universe TLV,Local Node Descriptors TLV(OSPFareaIDsubTlv,
+     * IgpRouterIdSubTlv))
+     * in PcLSRpt message.
+     */
+    @Test
+    public void lsReportMessageTest6() throws PcepParseException, PcepOutOfBoundMessageException {
+
+        byte[] lsReportMsg = new byte[]{0x20, (byte) 0xE0, 0x00, 0x38, // common header
+                (byte) 0xE0, 0x10, 0x00, 0x34, // LS Object Header
+                0x01, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, // LS-ID
+                (byte) 0xFF, 0x01, 0x00, 0x08, // Routing Universe TLV
+                0x00, 0x00, 0x00, 0x00,
+                0x00, 0x00, 0x00, 0x01,
+                (byte) 0xFF, 0x02, 0x00, 0x14, // Local Node Descriptors TLV
+                0x00, 0x03, 0x00, 0x04, //OSPFareaIDsubTlv
+                0x00, 0x00, 0x00, 0x11,
+                0x00, 0x04, 0x00, 0x08, //IgpRouterIdSubTlv
+                0x00, 0x00, 0x00, 0x11,
+                0x00, 0x00, 0x00, 0x11};
+
+        ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
+        buffer.writeBytes(lsReportMsg);
+
+        PcepMessageReader<PcepMessage> reader = PcepFactories.getGenericReader();
+        PcepMessage message = null;
+
+        message = reader.readFrom(buffer);
+
+        byte[] testReportMsg = {0};
+        assertThat(message, instanceOf(PcepLSReportMsg.class));
+        ChannelBuffer buf = ChannelBuffers.dynamicBuffer();
+        message.writeTo(buf);
+
+        int readLen = buf.writerIndex();
+        testReportMsg = new byte[readLen];
+        buf.readBytes(testReportMsg, 0, readLen);
+
+        assertThat(testReportMsg, is(lsReportMsg));
+    }
+
+    /**
+     * This test case checks for LS Object (Routing Universe TLV,Local Node Descriptors TLV(IgpRouterIdSubTlv)).
+     * in PcLSRpt message.
+     */
+    @Test
+    public void lsReportMessageTest7() throws PcepParseException, PcepOutOfBoundMessageException {
+
+        byte[] lsReportMsg = new byte[]{0x20, (byte) 0xE0, 0x00, 0x30, // common header
+                (byte) 0xE0, 0x10, 0x00, 0x2C, // LS Object Header
+                0x01, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, // LS-ID
+                (byte) 0xFF, 0x01, 0x00, 0x08, // Routing Universe TLV
+                0x00, 0x00, 0x00, 0x00,
+                0x00, 0x00, 0x00, 0x01,
+                (byte) 0xFF, 0x02, 0x00, 0x0C, // Local Node Descriptors TLV
+                0x00, 0x04, 0x00, 0x08, //IgpRouterIdSubTlv
+                0x00, 0x00, 0x00, 0x11,
+                0x00, 0x00, 0x00, 0x11};
+
+        ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
+        buffer.writeBytes(lsReportMsg);
+
+        PcepMessageReader<PcepMessage> reader = PcepFactories.getGenericReader();
+        PcepMessage message = null;
+
+        message = reader.readFrom(buffer);
+
+        byte[] testReportMsg = {0};
+        assertThat(message, instanceOf(PcepLSReportMsg.class));
+        ChannelBuffer buf = ChannelBuffers.dynamicBuffer();
+        message.writeTo(buf);
+
+        int readLen = buf.writerIndex();
+        testReportMsg = new byte[readLen];
+        buf.readBytes(testReportMsg, 0, readLen);
+
+        assertThat(testReportMsg, is(lsReportMsg));
+    }
+
+    /**
+     * This test case checks for LS Object (Routing Universe TLV,Local Node Descriptors TLV)
+     * in PcLSRpt message.
+     */
+    @Test
+    public void lsReportMessageTest8() throws PcepParseException, PcepOutOfBoundMessageException {
+
+        byte[] lsReportMsg = new byte[]{0x20, (byte) 0xE0, 0x00, 0x24, // common header
+                (byte) 0xE0, 0x10, 0x00, 0x20, // LS Object Header
+                0x01, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, // LS-ID
+                (byte) 0xFF, 0x01, 0x00, 0x08, // Routing Universe TLV
+                0x00, 0x00, 0x00, 0x00,
+                0x00, 0x00, 0x00, 0x01,
+                (byte) 0xFF, 0x02, 0x00, 0x00 // Local Node Descriptors TLV
+        };
+
+        ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
+        buffer.writeBytes(lsReportMsg);
+
+        PcepMessageReader<PcepMessage> reader = PcepFactories.getGenericReader();
+        PcepMessage message = null;
+
+        message = reader.readFrom(buffer);
+
+        byte[] testReportMsg = {0};
+        assertThat(message, instanceOf(PcepLSReportMsg.class));
+        ChannelBuffer buf = ChannelBuffers.dynamicBuffer();
+        message.writeTo(buf);
+
+        int readLen = buf.writerIndex();
+        testReportMsg = new byte[readLen];
+        buf.readBytes(testReportMsg, 0, readLen);
+
+        assertThat(testReportMsg, is(lsReportMsg));
+    }
+
+    /**
+     * This test case checks for
+     * LS Object (Routing Universe TLV,Local Node Descriptors TLV(AutonomousSystemSubTlv, BGPLSidentifierSubTlv.
+     * OSPFareaIDsubTlv, IgpRouterIdSubTlv), RemoteNodeDescriptorsTLV(AutonomousSystemSubTlv, BGPLSidentifierSubTlv.
+     * OSPFareaIDsubTlv, IgpRouterIdSubTlv)).
+     * in PcLSRpt message.
+     */
+    @Test
+    public void lsReportMessageTest9() throws PcepParseException, PcepOutOfBoundMessageException {
+
+        byte[] lsReportMsg = new byte[]{0x20, (byte) 0xE0, 0x00, 0x70, // common header
+                (byte) 0xE0, 0x10, 0x00, 0x6C, // LS Object Header
+                0x01, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, // LS-ID
+                (byte) 0xFF, 0x01, 0x00, 0x08, // Routing Universe TLV
+                0x00, 0x00, 0x00, 0x00,
+                0x00, 0x00, 0x00, 0x01,
+                (byte) 0xFF, 0x02, 0x00, 0x24, // Local Node Descriptors TLV
+                0x00, 0x01, 0x00, 0x04, //AutonomousSystemSubTlv
+                0x00, 0x00, 0x00, 0x11,
+                0x00, 0x02, 0x00, 0x04, //BGPLSidentifierSubTlv
+                0x00, 0x00, 0x00, 0x11,
+                0x00, 0x03, 0x00, 0x04, //OSPFareaIDsubTlv
+                0x00, 0x00, 0x00, 0x11,
+                0x00, 0x04, 0x00, 0x08, //IgpRouterIdSubTlv
+                0x00, 0x00, 0x00, 0x11,
+                0x00, 0x00, 0x00, 0x11,
+                (byte) 0xFF, 0x03, 0x00, 0x24, //RemoteNodeDescriptorsTLV
+                0x00, 0x01, 0x00, 0x04, //AutonomousSystemSubTlv
+                0x00, 0x00, 0x00, 0x11,
+                0x00, 0x02, 0x00, 0x04, //BGPLSidentifierSubTlv
+                0x00, 0x00, 0x00, 0x11,
+                0x00, 0x03, 0x00, 0x04, //OSPFareaIDsubTlv
+                0x00, 0x00, 0x00, 0x11,
+                0x00, 0x04, 0x00, 0x08, //IgpRouterIdSubTlv
+                0x00, 0x00, 0x00, 0x11,
+                0x00, 0x00, 0x00, 0x11
+        };
+
+        ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
+        buffer.writeBytes(lsReportMsg);
+
+        PcepMessageReader<PcepMessage> reader = PcepFactories.getGenericReader();
+        PcepMessage message = null;
+
+        message = reader.readFrom(buffer);
+
+        byte[] testReportMsg = {0};
+        assertThat(message, instanceOf(PcepLSReportMsg.class));
+        ChannelBuffer buf = ChannelBuffers.dynamicBuffer();
+        message.writeTo(buf);
+
+        int readLen = buf.writerIndex();
+        testReportMsg = new byte[readLen];
+        buf.readBytes(testReportMsg, 0, readLen);
+
+        assertThat(testReportMsg, is(lsReportMsg));
+    }
+
+    /**
+     * This test case checks for
+     * LS Object (Routing Universe TLV,Local Node Descriptors TLV(AutonomousSystemSubTlv, BGPLSidentifierSubTlv
+     * OSPFareaIDsubTlv, IgpRouterIdSubTlv), RemoteNodeDescriptorsTLV(BGPLSidentifierSubTlv
+     * OSPFareaIDsubTlv, IgpRouterIdSubTlv))
+     * in PcLSRpt message.
+     */
+    @Test
+    public void lsReportMessageTest10() throws PcepParseException, PcepOutOfBoundMessageException {
+
+        byte[] lsReportMsg = new byte[]{0x20, (byte) 0xE0, 0x00, 0x68, // common header
+                (byte) 0xE0, 0x10, 0x00, 0x64, // LS Object Header
+                0x01, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, // LS-ID
+                (byte) 0xFF, 0x01, 0x00, 0x08, // Routing Universe TLV
+                0x00, 0x00, 0x00, 0x00,
+                0x00, 0x00, 0x00, 0x01,
+                (byte) 0xFF, 0x02, 0x00, 0x24, // Local Node Descriptors TLV
+                0x00, 0x01, 0x00, 0x04, //AutonomousSystemSubTlv
+                0x00, 0x00, 0x00, 0x11,
+                0x00, 0x02, 0x00, 0x04, //BGPLSidentifierSubTlv
+                0x00, 0x00, 0x00, 0x11,
+                0x00, 0x03, 0x00, 0x04, //OSPFareaIDsubTlv
+                0x00, 0x00, 0x00, 0x11,
+                0x00, 0x04, 0x00, 0x08, //IgpRouterIdSubTlv
+                0x00, 0x00, 0x00, 0x11,
+                0x00, 0x00, 0x00, 0x11,
+                (byte) 0xFF, 0x03, 0x00, 0x1C, //RemoteNodeDescriptorsTLV
+                0x00, 0x02, 0x00, 0x04, //BGPLSidentifierSubTlv
+                0x00, 0x00, 0x00, 0x11,
+                0x00, 0x03, 0x00, 0x04, //OSPFareaIDsubTlv
+                0x00, 0x00, 0x00, 0x11,
+                0x00, 0x04, 0x00, 0x08, //IgpRouterIdSubTlv
+                0x00, 0x00, 0x00, 0x11,
+                0x00, 0x00, 0x00, 0x11
+        };
+
+        ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
+        buffer.writeBytes(lsReportMsg);
+
+        PcepMessageReader<PcepMessage> reader = PcepFactories.getGenericReader();
+        PcepMessage message = null;
+
+        message = reader.readFrom(buffer);
+
+        byte[] testReportMsg = {0};
+        assertThat(message, instanceOf(PcepLSReportMsg.class));
+        ChannelBuffer buf = ChannelBuffers.dynamicBuffer();
+        message.writeTo(buf);
+
+        int readLen = buf.writerIndex();
+        testReportMsg = new byte[readLen];
+        buf.readBytes(testReportMsg, 0, readLen);
+
+        assertThat(testReportMsg, is(lsReportMsg));
+    }
+
+    /**
+     * This test case checks for
+     * LS Object (Routing Universe TLV,Local Node Descriptors TLV(AutonomousSystemSubTlv, BGPLSidentifierSubTlv
+     * OSPFareaIDsubTlv, IgpRouterIdSubTlv), RemoteNodeDescriptorsTLV(OSPFareaIDsubTlv, IgpRouterIdSubTlv))
+     * in PcLSRpt message.
+     */
+    @Test
+    public void lsReportMessageTest11() throws PcepParseException, PcepOutOfBoundMessageException {
+
+        byte[] lsReportMsg = new byte[]{0x20, (byte) 0xE0, 0x00, 0x60, // common header
+                (byte) 0xE0, 0x10, 0x00, 0x5C, // LS Object Header
+                0x01, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, // LS-ID
+                (byte) 0xFF, 0x01, 0x00, 0x08, // Routing Universe TLV
+                0x00, 0x00, 0x00, 0x00,
+                0x00, 0x00, 0x00, 0x01,
+                (byte) 0xFF, 0x02, 0x00, 0x24, // Local Node Descriptors TLV
+                0x00, 0x01, 0x00, 0x04, //AutonomousSystemSubTlv
+                0x00, 0x00, 0x00, 0x11,
+                0x00, 0x02, 0x00, 0x04, //BGPLSidentifierSubTlv
+                0x00, 0x00, 0x00, 0x11,
+                0x00, 0x03, 0x00, 0x04, //OSPFareaIDsubTlv
+                0x00, 0x00, 0x00, 0x11,
+                0x00, 0x04, 0x00, 0x08, //IgpRouterIdSubTlv
+                0x00, 0x00, 0x00, 0x11,
+                0x00, 0x00, 0x00, 0x11,
+                (byte) 0xFF, 0x03, 0x00, 0x14, //RemoteNodeDescriptorsTLV
+                0x00, 0x03, 0x00, 0x04, //OSPFareaIDsubTlv
+                0x00, 0x00, 0x00, 0x11,
+                0x00, 0x04, 0x00, 0x08, //IgpRouterIdSubTlv
+                0x00, 0x00, 0x00, 0x11,
+                0x00, 0x00, 0x00, 0x11
+        };
+
+        ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
+        buffer.writeBytes(lsReportMsg);
+
+        PcepMessageReader<PcepMessage> reader = PcepFactories.getGenericReader();
+        PcepMessage message = null;
+
+        message = reader.readFrom(buffer);
+
+        byte[] testReportMsg = {0};
+        assertThat(message, instanceOf(PcepLSReportMsg.class));
+        ChannelBuffer buf = ChannelBuffers.dynamicBuffer();
+        message.writeTo(buf);
+
+        int readLen = buf.writerIndex();
+        testReportMsg = new byte[readLen];
+        buf.readBytes(testReportMsg, 0, readLen);
+
+        assertThat(testReportMsg, is(lsReportMsg));
+    }
+
+    /**
+     * This test case checks for
+     * LS Object (Routing Universe TLV,Local Node Descriptors TLV(AutonomousSystemSubTlv, BGPLSidentifierSubTlv
+     * OSPFareaIDsubTlv, IgpRouterIdSubTlv), RemoteNodeDescriptorsTLV(IgpRouterIdSubTlv))
+     * in PcLSRpt message.
+     */
+    @Test
+    public void lsReportMessageTest12() throws PcepParseException, PcepOutOfBoundMessageException {
+
+        byte[] lsReportMsg = new byte[]{0x20, (byte) 0xE0, 0x00, 0x58, // common header
+                (byte) 0xE0, 0x10, 0x00, 0x54, // LS Object Header
+                0x01, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, // LS-ID
+                (byte) 0xFF, 0x01, 0x00, 0x08, // Routing Universe TLV
+                0x00, 0x00, 0x00, 0x00,
+                0x00, 0x00, 0x00, 0x01,
+                (byte) 0xFF, 0x02, 0x00, 0x24, // Local Node Descriptors TLV
+                0x00, 0x01, 0x00, 0x04, //AutonomousSystemSubTlv
+                0x00, 0x00, 0x00, 0x11,
+                0x00, 0x02, 0x00, 0x04, //BGPLSidentifierSubTlv
+                0x00, 0x00, 0x00, 0x11,
+                0x00, 0x03, 0x00, 0x04, //OSPFareaIDsubTlv
+                0x00, 0x00, 0x00, 0x11,
+                0x00, 0x04, 0x00, 0x08, //IgpRouterIdSubTlv
+                0x00, 0x00, 0x00, 0x11,
+                0x00, 0x00, 0x00, 0x11,
+                (byte) 0xFF, 0x03, 0x00, 0x0c, //RemoteNodeDescriptorsTLV
+                0x00, 0x04, 0x00, 0x08, //IgpRouterIdSubTlv
+                0x00, 0x00, 0x00, 0x11,
+                0x00, 0x00, 0x00, 0x11
+        };
+
+        ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
+        buffer.writeBytes(lsReportMsg);
+
+        PcepMessageReader<PcepMessage> reader = PcepFactories.getGenericReader();
+        PcepMessage message = null;
+
+        message = reader.readFrom(buffer);
+
+        byte[] testReportMsg = {0};
+        assertThat(message, instanceOf(PcepLSReportMsg.class));
+        ChannelBuffer buf = ChannelBuffers.dynamicBuffer();
+        message.writeTo(buf);
+
+        int readLen = buf.writerIndex();
+        testReportMsg = new byte[readLen];
+        buf.readBytes(testReportMsg, 0, readLen);
+
+        assertThat(testReportMsg, is(lsReportMsg));
+    }
+
+    /**
+     * This test case checks for
+     * LS Object (Routing Universe TLV,Local Node Descriptors TLV(AutonomousSystemSubTlv, BGPLSidentifierSubTlv
+     * OSPFareaIDsubTlv, IgpRouterIdSubTlv), RemoteNodeDescriptorsTLV)
+     * in PcLSRpt message.
+     */
+    @Test
+    public void lsReportMessageTest13() throws PcepParseException, PcepOutOfBoundMessageException {
+
+        byte[] lsReportMsg = new byte[]{0x20, (byte) 0xE0, 0x00, 0x4C, // common header
+                (byte) 0xE0, 0x10, 0x00, 0x48, // LS Object Header
+                0x01, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, // LS-ID
+                (byte) 0xFF, 0x01, 0x00, 0x08, // Routing Universe TLV
+                0x00, 0x00, 0x00, 0x00,
+                0x00, 0x00, 0x00, 0x01,
+                (byte) 0xFF, 0x02, 0x00, 0x24, // Local Node Descriptors TLV
+                0x00, 0x01, 0x00, 0x04, //AutonomousSystemSubTlv
+                0x00, 0x00, 0x00, 0x11,
+                0x00, 0x02, 0x00, 0x04, //BGPLSidentifierSubTlv
+                0x00, 0x00, 0x00, 0x11,
+                0x00, 0x03, 0x00, 0x04, //OSPFareaIDsubTlv
+                0x00, 0x00, 0x00, 0x11,
+                0x00, 0x04, 0x00, 0x08, //IgpRouterIdSubTlv
+                0x00, 0x00, 0x00, 0x11,
+                0x00, 0x00, 0x00, 0x11,
+                (byte) 0xFF, 0x03, 0x00, 0x00 //RemoteNodeDescriptorsTLV
+        };
+
+        ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
+        buffer.writeBytes(lsReportMsg);
+
+        PcepMessageReader<PcepMessage> reader = PcepFactories.getGenericReader();
+        PcepMessage message = null;
+
+        message = reader.readFrom(buffer);
+
+        byte[] testReportMsg = {0};
+        assertThat(message, instanceOf(PcepLSReportMsg.class));
+        ChannelBuffer buf = ChannelBuffers.dynamicBuffer();
+        message.writeTo(buf);
+
+        int readLen = buf.writerIndex();
+        testReportMsg = new byte[readLen];
+        buf.readBytes(testReportMsg, 0, readLen);
+
+        assertThat(testReportMsg, is(lsReportMsg));
+    }
+
+    /**
+     * This test case checks for
+     * LS Object (Routing Universe TLV,Local Node Descriptors TLV(AutonomousSystemSubTlv, BGPLSidentifierSubTlv
+     * OSPFareaIDsubTlv, IgpRouterIdSubTlv), RemoteNodeDescriptorsTLV(AutonomousSystemSubTlv, BGPLSidentifierSubTlv
+     * OSPFareaIDsubTlv, IgpRouterIdSubTlv), LinkDescriptorsTLV(LinkLocalRemoteIdentifiersSubTlv
+     * IPv4InterfaceAddressSubTlv, IPv4NeighborAddressSubTlv))
+     * in PcLSRpt message.
+     */
+    @Test
+    public void lsReportMessageTest14() throws PcepParseException, PcepOutOfBoundMessageException {
+
+        byte[] lsReportMsg = new byte[]{0x20, (byte) 0xE0, 0x00, (byte) 0x90, // common header
+                (byte) 0xE0, 0x10, 0x00, (byte) 0x8C, // LS Object Header
+                0x01, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, // LS-ID
+                (byte) 0xFF, 0x01, 0x00, 0x08, // Routing Universe TLV
+                0x00, 0x00, 0x00, 0x00,
+                0x00, 0x00, 0x00, 0x01,
+                (byte) 0xFF, 0x02, 0x00, 0x24, // Local Node Descriptors TLV
+                0x00, 0x01, 0x00, 0x04, //AutonomousSystemSubTlv
+                0x00, 0x00, 0x00, 0x11,
+                0x00, 0x02, 0x00, 0x04, //BGPLSidentifierSubTlv
+                0x00, 0x00, 0x00, 0x11,
+                0x00, 0x03, 0x00, 0x04, //OSPFareaIDsubTlv
+                0x00, 0x00, 0x00, 0x11,
+                0x00, 0x04, 0x00, 0x08, //IgpRouterIdSubTlv
+                0x00, 0x00, 0x00, 0x11,
+                0x00, 0x00, 0x00, 0x11,
+                (byte) 0xFF, 0x03, 0x00, 0x24, //RemoteNodeDescriptorsTLV
+                0x00, 0x01, 0x00, 0x04, //AutonomousSystemSubTlv
+                0x00, 0x00, 0x00, 0x11,
+                0x00, 0x02, 0x00, 0x04, //BGPLSidentifierSubTlv
+                0x00, 0x00, 0x00, 0x11,
+                0x00, 0x03, 0x00, 0x04, //OSPFareaIDsubTlv
+                0x00, 0x00, 0x00, 0x11,
+                0x00, 0x04, 0x00, 0x08, //IgpRouterIdSubTlv
+                0x00, 0x00, 0x00, 0x11,
+                0x00, 0x00, 0x00, 0x11,
+                (byte) 0xFF, 0x04, 0x00, 0x1C, //LinkDescriptorsTLV
+                0x00, 0x06, 0x00, 0x08, //LinkLocalRemoteIdentifiersSubTlv
+                0x01, 0x11, 0x00, 0x09,
+                0x01, 0x21, 0x00, 0x09,
+                0x00, 0x07, 0x00, 0x04, //IPv4InterfaceAddressSubTlv
+                0x01, 0x01, 0x01, 0x01,
+                0x00, 0x08, 0x00, 0x04, //IPv4NeighborAddressSubTlv
+                0x01, 0x011, 0x01, 0x10
+        };
+
+        ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
+        buffer.writeBytes(lsReportMsg);
+
+        PcepMessageReader<PcepMessage> reader = PcepFactories.getGenericReader();
+        PcepMessage message = null;
+
+        message = reader.readFrom(buffer);
+
+        byte[] testReportMsg = {0};
+        assertThat(message, instanceOf(PcepLSReportMsg.class));
+        ChannelBuffer buf = ChannelBuffers.dynamicBuffer();
+        message.writeTo(buf);
+
+        int readLen = buf.writerIndex();
+        testReportMsg = new byte[readLen];
+        buf.readBytes(testReportMsg, 0, readLen);
+
+        assertThat(testReportMsg, is(lsReportMsg));
+    }
+
+    /**
+     * This test case checks for
+     * LS Object (Routing Universe TLV,Local Node Descriptors TLV(AutonomousSystemSubTlv, BGPLSidentifierSubTlv
+     * OSPFareaIDsubTlv, IgpRouterIdSubTlv), RemoteNodeDescriptorsTLV(AutonomousSystemSubTlv, BGPLSidentifierSubTlv
+     * OSPFareaIDsubTlv, IgpRouterIdSubTlv), LinkDescriptorsTLV(
+     * IPv4InterfaceAddressSubTlv, IPv4NeighborAddressSubTlv))
+     * in PcLSRpt message.
+     */
+    @Test
+    public void lsReportMessageTest15() throws PcepParseException, PcepOutOfBoundMessageException {
+
+        byte[] lsReportMsg = new byte[]{0x20, (byte) 0xE0, 0x00, (byte) 0x84, // common header
+                (byte) 0xE0, 0x10, 0x00, (byte) 0x80, // LS Object Header
+                0x01, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, // LS-ID
+                (byte) 0xFF, 0x01, 0x00, 0x08, // Routing Universe TLV
+                0x00, 0x00, 0x00, 0x00,
+                0x00, 0x00, 0x00, 0x01,
+                (byte) 0xFF, 0x02, 0x00, 0x24, // Local Node Descriptors TLV
+                0x00, 0x01, 0x00, 0x04, //AutonomousSystemSubTlv
+                0x00, 0x00, 0x00, 0x11,
+                0x00, 0x02, 0x00, 0x04, //BGPLSidentifierSubTlv
+                0x00, 0x00, 0x00, 0x11,
+                0x00, 0x03, 0x00, 0x04, //OSPFareaIDsubTlv
+                0x00, 0x00, 0x00, 0x11,
+                0x00, 0x04, 0x00, 0x08, //IgpRouterIdSubTlv
+                0x00, 0x00, 0x00, 0x11,
+                0x00, 0x00, 0x00, 0x11,
+                (byte) 0xFF, 0x03, 0x00, 0x24, //RemoteNodeDescriptorsTLV
+                0x00, 0x01, 0x00, 0x04, //AutonomousSystemSubTlv
+                0x00, 0x00, 0x00, 0x11,
+                0x00, 0x02, 0x00, 0x04, //BGPLSidentifierSubTlv
+                0x00, 0x00, 0x00, 0x11,
+                0x00, 0x03, 0x00, 0x04, //OSPFareaIDsubTlv
+                0x00, 0x00, 0x00, 0x11,
+                0x00, 0x04, 0x00, 0x08, //IgpRouterIdSubTlv
+                0x00, 0x00, 0x00, 0x11,
+                0x00, 0x00, 0x00, 0x11,
+                (byte) 0xFF, 0x04, 0x00, 0x10, //LinkDescriptorsTLV
+                0x00, 0x07, 0x00, 0x04, //IPv4InterfaceAddressSubTlv
+                0x01, 0x01, 0x01, 0x01,
+                0x00, 0x08, 0x00, 0x04, //IPv4NeighborAddressSubTlv
+                0x01, 0x011, 0x01, 0x10
+        };
+
+        ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
+        buffer.writeBytes(lsReportMsg);
+
+        PcepMessageReader<PcepMessage> reader = PcepFactories.getGenericReader();
+        PcepMessage message = null;
+
+        message = reader.readFrom(buffer);
+
+        byte[] testReportMsg = {0};
+        assertThat(message, instanceOf(PcepLSReportMsg.class));
+        ChannelBuffer buf = ChannelBuffers.dynamicBuffer();
+        message.writeTo(buf);
+
+        int readLen = buf.writerIndex();
+        testReportMsg = new byte[readLen];
+        buf.readBytes(testReportMsg, 0, readLen);
+
+        assertThat(testReportMsg, is(lsReportMsg));
+    }
+
+    /**
+     * This test case checks for
+     * LS Object (Routing Universe TLV,Local Node Descriptors TLV(AutonomousSystemSubTlv, BGPLSidentifierSubTlv
+     * OSPFareaIDsubTlv, IgpRouterIdSubTlv), RemoteNodeDescriptorsTLV(AutonomousSystemSubTlv, BGPLSidentifierSubTlv
+     * OSPFareaIDsubTlv, IgpRouterIdSubTlv), LinkDescriptorsTLV(IPv4NeighborAddressSubTlv))
+     * in PcLSRpt message.
+     */
+    @Test
+    public void lsReportMessageTest16() throws PcepParseException, PcepOutOfBoundMessageException {
+
+        byte[] lsReportMsg = new byte[]{0x20, (byte) 0xE0, 0x00, (byte) 0x7C, // common header
+                (byte) 0xE0, 0x10, 0x00, (byte) 0x78, // LS Object Header
+                0x01, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, // LS-ID
+                (byte) 0xFF, 0x01, 0x00, 0x08, // Routing Universe TLV
+                0x00, 0x00, 0x00, 0x00,
+                0x00, 0x00, 0x00, 0x01,
+                (byte) 0xFF, 0x02, 0x00, 0x24, // Local Node Descriptors TLV
+                0x00, 0x01, 0x00, 0x04, //AutonomousSystemSubTlv
+                0x00, 0x00, 0x00, 0x11,
+                0x00, 0x02, 0x00, 0x04, //BGPLSidentifierSubTlv
+                0x00, 0x00, 0x00, 0x11,
+                0x00, 0x03, 0x00, 0x04, //OSPFareaIDsubTlv
+                0x00, 0x00, 0x00, 0x11,
+                0x00, 0x04, 0x00, 0x08, //IgpRouterIdSubTlv
+                0x00, 0x00, 0x00, 0x11,
+                0x00, 0x00, 0x00, 0x11,
+                (byte) 0xFF, 0x03, 0x00, 0x24, //RemoteNodeDescriptorsTLV
+                0x00, 0x01, 0x00, 0x04, //AutonomousSystemSubTlv
+                0x00, 0x00, 0x00, 0x11,
+                0x00, 0x02, 0x00, 0x04, //BGPLSidentifierSubTlv
+                0x00, 0x00, 0x00, 0x11,
+                0x00, 0x03, 0x00, 0x04, //OSPFareaIDsubTlv
+                0x00, 0x00, 0x00, 0x11,
+                0x00, 0x04, 0x00, 0x08, //IgpRouterIdSubTlv
+                0x00, 0x00, 0x00, 0x11,
+                0x00, 0x00, 0x00, 0x11,
+                (byte) 0xFF, 0x04, 0x00, 0x08, //LinkDescriptorsTLV
+                0x00, 0x08, 0x00, 0x04, //IPv4NeighborAddressSubTlv
+                0x01, 0x011, 0x01, 0x10
+        };
+
+        ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
+        buffer.writeBytes(lsReportMsg);
+
+        PcepMessageReader<PcepMessage> reader = PcepFactories.getGenericReader();
+        PcepMessage message = null;
+
+        message = reader.readFrom(buffer);
+
+        byte[] testReportMsg = {0};
+        assertThat(message, instanceOf(PcepLSReportMsg.class));
+        ChannelBuffer buf = ChannelBuffers.dynamicBuffer();
+        message.writeTo(buf);
+
+        int readLen = buf.writerIndex();
+        testReportMsg = new byte[readLen];
+        buf.readBytes(testReportMsg, 0, readLen);
+
+        assertThat(testReportMsg, is(lsReportMsg));
+    }
+
+    /**
+     * This test case checks for
+     * LS Object (Routing Universe TLV,Local Node Descriptors TLV(AutonomousSystemSubTlv, BGPLSidentifierSubTlv
+     * OSPFareaIDsubTlv, IgpRouterIdSubTlv), RemoteNodeDescriptorsTLV(AutonomousSystemSubTlv, BGPLSidentifierSubTlv
+     * OSPFareaIDsubTlv, IgpRouterIdSubTlv), LinkDescriptorsTLV)
+     * in PcLSRpt message.
+     */
+    @Test
+    public void lsReportMessageTest17() throws PcepParseException, PcepOutOfBoundMessageException {
+
+        byte[] lsReportMsg = new byte[]{0x20, (byte) 0xE0, 0x00, (byte) 0x74, // common header
+                (byte) 0xE0, 0x10, 0x00, (byte) 0x70, // LS Object Header
+                0x01, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, // LS-ID
+                (byte) 0xFF, 0x01, 0x00, 0x08, // Routing Universe TLV
+                0x00, 0x00, 0x00, 0x00,
+                0x00, 0x00, 0x00, 0x01,
+                (byte) 0xFF, 0x02, 0x00, 0x24, // Local Node Descriptors TLV
+                0x00, 0x01, 0x00, 0x04, //AutonomousSystemSubTlv
+                0x00, 0x00, 0x00, 0x11,
+                0x00, 0x02, 0x00, 0x04, //BGPLSidentifierSubTlv
+                0x00, 0x00, 0x00, 0x11,
+                0x00, 0x03, 0x00, 0x04, //OSPFareaIDsubTlv
+                0x00, 0x00, 0x00, 0x11,
+                0x00, 0x04, 0x00, 0x08, //IgpRouterIdSubTlv
+                0x00, 0x00, 0x00, 0x11,
+                0x00, 0x00, 0x00, 0x11,
+                (byte) 0xFF, 0x03, 0x00, 0x24, //RemoteNodeDescriptorsTLV
+                0x00, 0x01, 0x00, 0x04, //AutonomousSystemSubTlv
+                0x00, 0x00, 0x00, 0x11,
+                0x00, 0x02, 0x00, 0x04, //BGPLSidentifierSubTlv
+                0x00, 0x00, 0x00, 0x11,
+                0x00, 0x03, 0x00, 0x04, //OSPFareaIDsubTlv
+                0x00, 0x00, 0x00, 0x11,
+                0x00, 0x04, 0x00, 0x08, //IgpRouterIdSubTlv
+                0x00, 0x00, 0x00, 0x11,
+                0x00, 0x00, 0x00, 0x11,
+                (byte) 0xFF, 0x04, 0x00, 0x00, //LinkDescriptorsTLV
+        };
+
+        ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
+        buffer.writeBytes(lsReportMsg);
+
+        PcepMessageReader<PcepMessage> reader = PcepFactories.getGenericReader();
+        PcepMessage message = null;
+
+        message = reader.readFrom(buffer);
+
+        byte[] testReportMsg = {0};
+        assertThat(message, instanceOf(PcepLSReportMsg.class));
+        ChannelBuffer buf = ChannelBuffers.dynamicBuffer();
+        message.writeTo(buf);
+
+        int readLen = buf.writerIndex();
+        testReportMsg = new byte[readLen];
+        buf.readBytes(testReportMsg, 0, readLen);
+
+        assertThat(testReportMsg, is(lsReportMsg));
+    }
+
+    /**
+     * This test case checks for
+     * LS Object (Routing Universe TLV,Local Node Descriptors TLV(AutonomousSystemSubTlv, BGPLSidentifierSubTlv
+     * OSPFareaIDsubTlv, IgpRouterIdSubTlv), RemoteNodeDescriptorsTLV(AutonomousSystemSubTlv, BGPLSidentifierSubTlv
+     * OSPFareaIDsubTlv, IgpRouterIdSubTlv), LinkDescriptorsTLV(LinkLocalRemoteIdentifiersSubTlv
+     * IPv4InterfaceAddressSubTlv, IPv4NeighborAddressSubTlv))
+     * in PcLSRpt message.
+     */
+    @Test
+    public void lsReportMessageTest18() throws PcepParseException, PcepOutOfBoundMessageException {
+
+        byte[] lsReportMsg = new byte[]{0x20, (byte) 0xE0, 0x00, (byte) 0xC4, // common header
+                (byte) 0xE0, 0x10, 0x00, (byte) 0xC0, // LS Object Header
+                0x01, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, // LS-ID
+                (byte) 0xFF, 0x01, 0x00, 0x08, // Routing Universe TLV
+                0x00, 0x00, 0x00, 0x00,
+                0x00, 0x00, 0x00, 0x01,
+                (byte) 0xFF, 0x02, 0x00, 0x24, // Local Node Descriptors TLV
+                0x00, 0x01, 0x00, 0x04, //AutonomousSystemSubTlv
+                0x00, 0x00, 0x00, 0x11,
+                0x00, 0x02, 0x00, 0x04, //BGPLSidentifierSubTlv
+                0x00, 0x00, 0x00, 0x11,
+                0x00, 0x03, 0x00, 0x04, //OSPFareaIDsubTlv
+                0x00, 0x00, 0x00, 0x11,
+                0x00, 0x04, 0x00, 0x08, //IgpRouterIdSubTlv
+                0x00, 0x00, 0x00, 0x11,
+                0x00, 0x00, 0x00, 0x11,
+                (byte) 0xFF, 0x03, 0x00, 0x24, //RemoteNodeDescriptorsTLV
+                0x00, 0x01, 0x00, 0x04, //AutonomousSystemSubTlv
+                0x00, 0x00, 0x00, 0x11,
+                0x00, 0x02, 0x00, 0x04, //BGPLSidentifierSubTlv
+                0x00, 0x00, 0x00, 0x11,
+                0x00, 0x03, 0x00, 0x04, //OSPFareaIDsubTlv
+                0x00, 0x00, 0x00, 0x11,
+                0x00, 0x04, 0x00, 0x08, //IgpRouterIdSubTlv
+                0x00, 0x00, 0x00, 0x11,
+                0x00, 0x00, 0x00, 0x11,
+                (byte) 0xFF, 0x04, 0x00, 0x1C, //LinkDescriptorsTLV
+                0x00, 0x06, 0x00, 0x08, //LinkLocalRemoteIdentifiersSubTlv
+                0x01, 0x11, 0x00, 0x09,
+                0x01, 0x21, 0x00, 0x09,
+                0x00, 0x07, 0x00, 0x04, //IPv4InterfaceAddressSubTlv
+                0x01, 0x01, 0x01, 0x01,
+                0x00, 0x08, 0x00, 0x04, //IPv4NeighborAddressSubTlv
+                0x01, 0x011, 0x01, 0x10,
+                (byte) 0xFF, 0x05, 0x00, 0x30, //NodeAttributesTlv
+                0x00, 0x0D, 0x00, 0x01, //NodeFlagBitsSubTlv
+                (byte) 0x90, 0x00, 0x00, 0x00,
+                0x00, 0x0E, 0x00, 0x04, //OpaqueNodePropertiesSubTlv
+                0x01, 0x011, 0x01, 0x10,
+                0x00, 0x0F, 0x00, 0x08, //NodeNameSubTlv
+                0x08, 0x00, 0x01, 0x09,
+                0x08, 0x00, 0x01, 0x09,
+                0x00, 0x10, 0x00, 0x08, //ISISAreaIdentifierSubTlv
+                0x20, 0x01, 0x22, 0x01,
+                0x20, 0x01, 0x22, 0x01,
+                0x00, 0x11, 0x00, 0x04, //IPv4RouterIdOfLocalNodeSubTlv
+                0x00, 0x01, 0x01, 0x02
+        };
+
+        ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
+        buffer.writeBytes(lsReportMsg);
+
+        PcepMessageReader<PcepMessage> reader = PcepFactories.getGenericReader();
+        PcepMessage message = null;
+
+        message = reader.readFrom(buffer);
+
+        byte[] testReportMsg = {0};
+        assertThat(message, instanceOf(PcepLSReportMsg.class));
+        ChannelBuffer buf = ChannelBuffers.dynamicBuffer();
+        message.writeTo(buf);
+
+        int readLen = buf.writerIndex();
+        testReportMsg = new byte[readLen];
+        buf.readBytes(testReportMsg, 0, readLen);
+
+        assertThat(testReportMsg, is(lsReportMsg));
+    }
+
+    /**
+     * This test case checks for
+     * LS Object (Routing Universe TLV,Local Node Descriptors TLV(AutonomousSystemSubTlv, BGPLSidentifierSubTlv
+     * OSPFareaIDsubTlv, IgpRouterIdSubTlv), RemoteNodeDescriptorsTLV(AutonomousSystemSubTlv, BGPLSidentifierSubTlv
+     * OSPFareaIDsubTlv, IgpRouterIdSubTlv), LinkDescriptorsTLV(LinkLocalRemoteIdentifiersSubTlv
+     * IPv4InterfaceAddressSubTlv, IPv4NeighborAddressSubTlv), NodeAttributesTlv(NodeFlagBitsSubTlv
+     * OpaqueNodePropertiesSubTlv, NodeNameSubTlv, ISISAreaIdentifierSubTlv, IPv4RouterIdOfLocalNodeSubTlv))
+     * in PcLSRpt message.
+     */
+    @Test
+    public void lsReportMessageTest19() throws PcepParseException, PcepOutOfBoundMessageException {
+
+        byte[] lsReportMsg = new byte[]{0x20, (byte) 0xE0, 0x00, (byte) 0xC4, // common header
+                (byte) 0xE0, 0x10, 0x00, (byte) 0xC0, // LS Object Header
+                0x01, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, // LS-ID
+                (byte) 0xFF, 0x01, 0x00, 0x08, // Routing Universe TLV
+                0x00, 0x00, 0x00, 0x00,
+                0x00, 0x00, 0x00, 0x01,
+                (byte) 0xFF, 0x02, 0x00, 0x24, // Local Node Descriptors TLV
+                0x00, 0x01, 0x00, 0x04, //AutonomousSystemSubTlv
+                0x00, 0x00, 0x00, 0x11,
+                0x00, 0x02, 0x00, 0x04, //BGPLSidentifierSubTlv
+                0x00, 0x00, 0x00, 0x11,
+                0x00, 0x03, 0x00, 0x04, //OSPFareaIDsubTlv
+                0x00, 0x00, 0x00, 0x11,
+                0x00, 0x04, 0x00, 0x08, //IgpRouterIdSubTlv
+                0x00, 0x00, 0x00, 0x11,
+                0x00, 0x00, 0x00, 0x11,
+                (byte) 0xFF, 0x03, 0x00, 0x24, //RemoteNodeDescriptorsTLV
+                0x00, 0x01, 0x00, 0x04, //AutonomousSystemSubTlv
+                0x00, 0x00, 0x00, 0x11,
+                0x00, 0x02, 0x00, 0x04, //BGPLSidentifierSubTlv
+                0x00, 0x00, 0x00, 0x11,
+                0x00, 0x03, 0x00, 0x04, //OSPFareaIDsubTlv
+                0x00, 0x00, 0x00, 0x11,
+                0x00, 0x04, 0x00, 0x08, //IgpRouterIdSubTlv
+                0x00, 0x00, 0x00, 0x11,
+                0x00, 0x00, 0x00, 0x11,
+                (byte) 0xFF, 0x04, 0x00, 0x1C, //LinkDescriptorsTLV
+                0x00, 0x06, 0x00, 0x08, //LinkLocalRemoteIdentifiersSubTlv
+                0x01, 0x11, 0x00, 0x09,
+                0x01, 0x21, 0x00, 0x09,
+                0x00, 0x07, 0x00, 0x04, //IPv4InterfaceAddressSubTlv
+                0x01, 0x01, 0x01, 0x01,
+                0x00, 0x08, 0x00, 0x04, //IPv4NeighborAddressSubTlv
+                0x01, 0x011, 0x01, 0x10,
+                (byte) 0xFF, 0x05, 0x00, 0x30, //NodeAttributesTlv
+                0x00, 0x0D, 0x00, 0x01, //NodeFlagBitsSubTlv
+                (byte) 0x90, 0x00, 0x00, 0x00,
+                0x00, 0x0E, 0x00, 0x04, //OpaqueNodePropertiesSubTlv
+                0x01, 0x011, 0x01, 0x10,
+                0x00, 0x0F, 0x00, 0x08, //NodeNameSubTlv
+                0x08, 0x00, 0x01, 0x09,
+                0x08, 0x00, 0x01, 0x09,
+                0x00, 0x10, 0x00, 0x08, //ISISAreaIdentifierSubTlv
+                0x20, 0x01, 0x22, 0x01,
+                0x20, 0x01, 0x22, 0x01,
+                0x00, 0x11, 0x00, 0x04, //IPv4RouterIdOfLocalNodeSubTlv
+                0x00, 0x01, 0x01, 0x02
+        };
+
+        ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
+        buffer.writeBytes(lsReportMsg);
+
+        PcepMessageReader<PcepMessage> reader = PcepFactories.getGenericReader();
+        PcepMessage message = null;
+
+        message = reader.readFrom(buffer);
+
+        byte[] testReportMsg = {0};
+        assertThat(message, instanceOf(PcepLSReportMsg.class));
+        ChannelBuffer buf = ChannelBuffers.dynamicBuffer();
+        message.writeTo(buf);
+
+        int readLen = buf.writerIndex();
+        testReportMsg = new byte[readLen];
+        buf.readBytes(testReportMsg, 0, readLen);
+
+        assertThat(testReportMsg, is(lsReportMsg));
+    }
+
+    /**
+     * This test case checks for
+     * LS Object (Routing Universe TLV,Local Node Descriptors TLV(AutonomousSystemSubTlv, BGPLSidentifierSubTlv
+     * OSPFareaIDsubTlv, IgpRouterIdSubTlv), RemoteNodeDescriptorsTLV(AutonomousSystemSubTlv, BGPLSidentifierSubTlv
+     * OSPFareaIDsubTlv, IgpRouterIdSubTlv), LinkDescriptorsTLV(LinkLocalRemoteIdentifiersSubTlv
+     * IPv4InterfaceAddressSubTlv, IPv4NeighborAddressSubTlv), NodeAttributesTlv(OpaqueNodePropertiesSubTlv
+     * NodeNameSubTlv, ISISAreaIdentifierSubTlv, IPv4RouterIdOfLocalNodeSubTlv))
+     * in PcLSRpt message.
+     */
+    @Test
+    public void lsReportMessageTest20() throws PcepParseException, PcepOutOfBoundMessageException {
+
+        byte[] lsReportMsg = new byte[]{0x20, (byte) 0xE0, 0x00, (byte) 0xBC, // common header
+                (byte) 0xE0, 0x10, 0x00, (byte) 0xB8, // LS Object Header
+                0x01, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, // LS-ID
+                (byte) 0xFF, 0x01, 0x00, 0x08, // Routing Universe TLV
+                0x00, 0x00, 0x00, 0x00,
+                0x00, 0x00, 0x00, 0x01,
+                (byte) 0xFF, 0x02, 0x00, 0x24, // Local Node Descriptors TLV
+                0x00, 0x01, 0x00, 0x04, //AutonomousSystemSubTlv
+                0x00, 0x00, 0x00, 0x11,
+                0x00, 0x02, 0x00, 0x04, //BGPLSidentifierSubTlv
+                0x00, 0x00, 0x00, 0x11,
+                0x00, 0x03, 0x00, 0x04, //OSPFareaIDsubTlv
+                0x00, 0x00, 0x00, 0x11,
+                0x00, 0x04, 0x00, 0x08, //IgpRouterIdSubTlv
+                0x00, 0x00, 0x00, 0x11,
+                0x00, 0x00, 0x00, 0x11,
+                (byte) 0xFF, 0x03, 0x00, 0x24, //RemoteNodeDescriptorsTLV
+                0x00, 0x01, 0x00, 0x04, //AutonomousSystemSubTlv
+                0x00, 0x00, 0x00, 0x11,
+                0x00, 0x02, 0x00, 0x04, //BGPLSidentifierSubTlv
+                0x00, 0x00, 0x00, 0x11,
+                0x00, 0x03, 0x00, 0x04, //OSPFareaIDsubTlv
+                0x00, 0x00, 0x00, 0x11,
+                0x00, 0x04, 0x00, 0x08, //IgpRouterIdSubTlv
+                0x00, 0x00, 0x00, 0x11,
+                0x00, 0x00, 0x00, 0x11,
+                (byte) 0xFF, 0x04, 0x00, 0x1C, //LinkDescriptorsTLV
+                0x00, 0x06, 0x00, 0x08, //LinkLocalRemoteIdentifiersSubTlv
+                0x01, 0x11, 0x00, 0x09,
+                0x01, 0x21, 0x00, 0x09,
+                0x00, 0x07, 0x00, 0x04, //IPv4InterfaceAddressSubTlv
+                0x01, 0x01, 0x01, 0x01,
+                0x00, 0x08, 0x00, 0x04, //IPv4NeighborAddressSubTlv
+                0x01, 0x011, 0x01, 0x10,
+                (byte) 0xFF, 0x05, 0x00, 0x28, //NodeAttributesTlv
+                0x00, 0x0E, 0x00, 0x04, //OpaqueNodePropertiesSubTlv
+                0x01, 0x011, 0x01, 0x10,
+                0x00, 0x0F, 0x00, 0x08, //NodeNameSubTlv
+                0x08, 0x00, 0x01, 0x09,
+                0x08, 0x00, 0x01, 0x09,
+                0x00, 0x10, 0x00, 0x08, //ISISAreaIdentifierSubTlv
+                0x20, 0x01, 0x22, 0x01,
+                0x20, 0x01, 0x22, 0x01,
+                0x00, 0x11, 0x00, 0x04, //IPv4RouterIdOfLocalNodeSubTlv
+                0x00, 0x01, 0x01, 0x02
+        };
+
+        ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
+        buffer.writeBytes(lsReportMsg);
+
+        PcepMessageReader<PcepMessage> reader = PcepFactories.getGenericReader();
+        PcepMessage message = null;
+
+        message = reader.readFrom(buffer);
+
+        byte[] testReportMsg = {0};
+        assertThat(message, instanceOf(PcepLSReportMsg.class));
+        ChannelBuffer buf = ChannelBuffers.dynamicBuffer();
+        message.writeTo(buf);
+
+        int readLen = buf.writerIndex();
+        testReportMsg = new byte[readLen];
+        buf.readBytes(testReportMsg, 0, readLen);
+
+        assertThat(testReportMsg, is(lsReportMsg));
+    }
+
+    /**
+     * This test case checks for
+     * LS Object (Routing Universe TLV,Local Node Descriptors TLV(AutonomousSystemSubTlv, BGPLSidentifierSubTlv
+     * OSPFareaIDsubTlv, IgpRouterIdSubTlv), RemoteNodeDescriptorsTLV(AutonomousSystemSubTlv, BGPLSidentifierSubTlv
+     * OSPFareaIDsubTlv, IgpRouterIdSubTlv), LinkDescriptorsTLV(LinkLocalRemoteIdentifiersSubTlv.
+     * IPv4InterfaceAddressSubTlv, IPv4NeighborAddressSubTlv), NodeAttributesTlv(OpaqueNodePropertiesSubTlv
+     * ISISAreaIdentifierSubTlv, IPv4RouterIdOfLocalNodeSubTlv))
+     * in PcLSRpt message.
+     */
+    @Test
+    public void lsReportMessageTest21() throws PcepParseException, PcepOutOfBoundMessageException {
+
+        byte[] lsReportMsg = new byte[]{0x20, (byte) 0xE0, 0x00, (byte) 0xB0, // common header
+                (byte) 0xE0, 0x10, 0x00, (byte) 0xAC, // LS Object Header
+                0x01, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, // LS-ID
+                (byte) 0xFF, 0x01, 0x00, 0x08, // Routing Universe TLV
+                0x00, 0x00, 0x00, 0x00,
+                0x00, 0x00, 0x00, 0x01,
+                (byte) 0xFF, 0x02, 0x00, 0x24, // Local Node Descriptors TLV
+                0x00, 0x01, 0x00, 0x04, //AutonomousSystemSubTlv
+                0x00, 0x00, 0x00, 0x11,
+                0x00, 0x02, 0x00, 0x04, //BGPLSidentifierSubTlv
+                0x00, 0x00, 0x00, 0x11,
+                0x00, 0x03, 0x00, 0x04, //OSPFareaIDsubTlv
+                0x00, 0x00, 0x00, 0x11,
+                0x00, 0x04, 0x00, 0x08, //IgpRouterIdSubTlv
+                0x00, 0x00, 0x00, 0x11,
+                0x00, 0x00, 0x00, 0x11,
+                (byte) 0xFF, 0x03, 0x00, 0x24, //RemoteNodeDescriptorsTLV
+                0x00, 0x01, 0x00, 0x04, //AutonomousSystemSubTlv
+                0x00, 0x00, 0x00, 0x11,
+                0x00, 0x02, 0x00, 0x04, //BGPLSidentifierSubTlv
+                0x00, 0x00, 0x00, 0x11,
+                0x00, 0x03, 0x00, 0x04, //OSPFareaIDsubTlv
+                0x00, 0x00, 0x00, 0x11,
+                0x00, 0x04, 0x00, 0x08, //IgpRouterIdSubTlv
+                0x00, 0x00, 0x00, 0x11,
+                0x00, 0x00, 0x00, 0x11,
+                (byte) 0xFF, 0x04, 0x00, 0x1C, //LinkDescriptorsTLV
+                0x00, 0x06, 0x00, 0x08, //LinkLocalRemoteIdentifiersSubTlv
+                0x01, 0x11, 0x00, 0x09,
+                0x01, 0x21, 0x00, 0x09,
+                0x00, 0x07, 0x00, 0x04, //IPv4InterfaceAddressSubTlv
+                0x01, 0x01, 0x01, 0x01,
+                0x00, 0x08, 0x00, 0x04, //IPv4NeighborAddressSubTlv
+                0x01, 0x011, 0x01, 0x10,
+                (byte) 0xFF, 0x05, 0x00, 0x1C, //NodeAttributesTlv
+                0x00, 0x0E, 0x00, 0x04, //OpaqueNodePropertiesSubTlv
+                0x01, 0x011, 0x01, 0x10,
+                0x00, 0x10, 0x00, 0x08, //ISISAreaIdentifierSubTlv
+                0x20, 0x01, 0x22, 0x01,
+                0x20, 0x01, 0x22, 0x01,
+                0x00, 0x11, 0x00, 0x04, //IPv4RouterIdOfLocalNodeSubTlv
+                0x00, 0x01, 0x01, 0x02
+        };
+
+        ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
+        buffer.writeBytes(lsReportMsg);
+
+        PcepMessageReader<PcepMessage> reader = PcepFactories.getGenericReader();
+        PcepMessage message = null;
+
+        message = reader.readFrom(buffer);
+
+        byte[] testReportMsg = {0};
+        assertThat(message, instanceOf(PcepLSReportMsg.class));
+        ChannelBuffer buf = ChannelBuffers.dynamicBuffer();
+        message.writeTo(buf);
+
+        int readLen = buf.writerIndex();
+        testReportMsg = new byte[readLen];
+        buf.readBytes(testReportMsg, 0, readLen);
+
+        assertThat(testReportMsg, is(lsReportMsg));
+    }
+
+    /**
+     * This test case checks for
+     * LS Object (Routing Universe TLV,Local Node Descriptors TLV(AutonomousSystemSubTlv, BGPLSidentifierSubTlv,
+     * OSPFareaIDsubTlv, IgpRouterIdSubTlv), RemoteNodeDescriptorsTLV(AutonomousSystemSubTlv, BGPLSidentifierSubTlv,
+     * OSPFareaIDsubTlv, IgpRouterIdSubTlv), LinkDescriptorsTLV(LinkLocalRemoteIdentifiersSubTlv,
+     * IPv4InterfaceAddressSubTlv, IPv4NeighborAddressSubTlv), NodeAttributesTlv(NodeFlagBitsSubTlv,
+     * OpaqueNodePropertiesSubTlv, NodeNameSubTlv, ISISAreaIdentifierSubTlv, IPv4RouterIdOfLocalNodeSubTlv),
+     * LinkAttributesTlv(IPv4RouterIdOfRemoteNodeSubTlv, IPv6LSRouterIdofRemoteNodeTlv, AdministrativeGroupSubTlv,
+     * TEDefaultMetricSubTlv, MaximumLinkBandwidthSubTlv, MaximumReservableLinkBandwidthSubTlv,
+     * UnreservedBandwidthSubTlv, LinkProtectionTypeSubTlv, MPLSProtocolMaskSubTlv, IgpMetricSubTlv,
+     * SharedRiskLinkGroupSubTlv, OpaqueLinkAttributeSubTlv, LinkNameAttributeSubTlv)).
+     * in PcLSRpt message.
+     */
+    @Test
+    public void lsReportMessageTest22() throws PcepParseException, PcepOutOfBoundMessageException {
+
+        byte[] lsReportMsg = new byte[]{0x20, (byte) 0xE0, 0x01, 0x18, // common header
+                (byte) 0xE0, 0x10, 0x01, 0x14, // LS Object Header
+                0x01, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, // LS-ID
+                (byte) 0xFF, 0x01, 0x00, 0x08, // Routing Universe TLV
+                0x00, 0x00, 0x00, 0x00,
+                0x00, 0x00, 0x00, 0x01,
+                (byte) 0xFF, 0x02, 0x00, 0x24, // Local Node Descriptors TLV
+                0x00, 0x01, 0x00, 0x04, //AutonomousSystemSubTlv
+                0x00, 0x00, 0x00, 0x11,
+                0x00, 0x02, 0x00, 0x04, //BGPLSidentifierSubTlv
+                0x00, 0x00, 0x00, 0x11,
+                0x00, 0x03, 0x00, 0x04, //OSPFareaIDsubTlv
+                0x00, 0x00, 0x00, 0x11,
+                0x00, 0x04, 0x00, 0x08, //IgpRouterIdSubTlv
+                0x00, 0x00, 0x00, 0x11,
+                0x00, 0x00, 0x00, 0x11,
+                (byte) 0xFF, 0x03, 0x00, 0x24, //RemoteNodeDescriptorsTLV
+                0x00, 0x01, 0x00, 0x04, //AutonomousSystemSubTlv
+                0x00, 0x00, 0x00, 0x11,
+                0x00, 0x02, 0x00, 0x04, //BGPLSidentifierSubTlv
+                0x00, 0x00, 0x00, 0x11,
+                0x00, 0x03, 0x00, 0x04, //OSPFareaIDsubTlv
+                0x00, 0x00, 0x00, 0x11,
+                0x00, 0x04, 0x00, 0x08, //IgpRouterIdSubTlv
+                0x00, 0x00, 0x00, 0x11,
+                0x00, 0x00, 0x00, 0x11,
+                (byte) 0xFF, 0x04, 0x00, 0x1C, //LinkDescriptorsTLV
+                0x00, 0x06, 0x00, 0x08, //LinkLocalRemoteIdentifiersSubTlv
+                0x01, 0x11, 0x00, 0x09,
+                0x01, 0x21, 0x00, 0x09,
+                0x00, 0x07, 0x00, 0x04, //IPv4InterfaceAddressSubTlv
+                0x01, 0x01, 0x01, 0x01,
+                0x00, 0x08, 0x00, 0x04, //IPv4NeighborAddressSubTlv
+                0x01, 0x011, 0x01, 0x10,
+                (byte) 0xFF, 0x05, 0x00, 0x1C, //NodeAttributesTlv
+                0x00, 0x0E, 0x00, 0x04, //OpaqueNodePropertiesSubTlv
+                0x01, 0x011, 0x01, 0x10,
+                0x00, 0x10, 0x00, 0x08, //ISISAreaIdentifierSubTlv
+                0x20, 0x01, 0x22, 0x01,
+                0x20, 0x01, 0x22, 0x01,
+                0x00, 0x11, 0x00, 0x04, //IPv4RouterIdOfLocalNodeSubTlv
+                0x00, 0x01, 0x01, 0x02,
+                (byte) 0xFF, 0x06, 0x00, 0x64, //LinkAttributesTlv
+                0x00, 0x13, 0x00, 0x04, //IPv4RouterIdOfRemoteNodeSubTlv
+                0x00, 0x07, 0x08, 0x00,
+                0x00, 0x16, 0x00, 0x04, //AdministrativeGroupSubTlv
+                0x00, 0x09, 0x08, 0x00,
+                0x00, 0x17, 0x00, 0x04, //MaximumLinkBandwidthSubTlv
+                0x00, 0x09, 0x00, 0x00,
+                0x00, 0x18, 0x00, 0x04, //MaximumReservableLinkBandwidthSubTlv
+                0x00, 0x10, 0x00, 0x00,
+                0x00, 0x19, 0x00, 0x04, //UnreservedBandwidthSubTlv
+                0x00, 0x00, (byte) 0x90, 0x00,
+                0x00, 0x1A, 0x00, 0x04, //TEDefaultMetricSubTlv
+                0x00, (byte) 0x99, 0x09, 0x00,
+                0x00, 0x1B, 0x00, 0x02, //LinkProtectionTypeSubTlv
+                0x09, 0x00, 0x00, 0x00,
+                0x00, 0x1C, 0x00, 0x01, //MPLSProtocolMaskSubTlv
+                (byte) 0x80, 0x00, 0x00, 0x00,
+                0x00, 0x1D, 0x00, 0x04, //IgpMetricSubTlv
+                0x09, (byte) 0x89, 0x07, 0x00,
+                0x00, 0x1E, 0x00, 0x04, //SharedRiskLinkGroupSubTlv
+                0x04, 0x47, 0x00, 0x03,
+                0x00, 0x1F, 0x00, 0x08, //OpaqueLinkAttributeSubTlv
+                0x04, 0x49, 0x00, 0x04,
+                0x04, 0x47, 0x00, 0x03,
+                0x00, 0x20, 0x00, 0x04, //LinkNameAttributeSubTlv
+                0x04, 0x47, 0x00, 0x03
+        };
+
+        ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
+        buffer.writeBytes(lsReportMsg);
+
+        PcepMessageReader<PcepMessage> reader = PcepFactories.getGenericReader();
+        PcepMessage message = null;
+
+        message = reader.readFrom(buffer);
+
+        byte[] testReportMsg = {0};
+        assertThat(message, instanceOf(PcepLSReportMsg.class));
+        ChannelBuffer buf = ChannelBuffers.dynamicBuffer();
+        message.writeTo(buf);
+
+        int readLen = buf.writerIndex();
+        testReportMsg = new byte[readLen];
+        buf.readBytes(testReportMsg, 0, readLen);
+
+        assertThat(testReportMsg, is(lsReportMsg));
+    }
+
+    /**
+     * This test case checks for
+     * LS Object (Routing Universe TLV,Local Node Descriptors TLV(AutonomousSystemSubTlv, BGPLSidentifierSubTlv,
+     * OSPFareaIDsubTlv, IgpRouterIdSubTlv), RemoteNodeDescriptorsTLV(AutonomousSystemSubTlv, BGPLSidentifierSubTlv,
+     * OSPFareaIDsubTlv, IgpRouterIdSubTlv), LinkDescriptorsTLV(LinkLocalRemoteIdentifiersSubTlv,
+     * IPv4InterfaceAddressSubTlv, IPv4NeighborAddressSubTlv), NodeAttributesTlv(NodeFlagBitsSubTlv,
+     * OpaqueNodePropertiesSubTlv, NodeNameSubTlv, ISISAreaIdentifierSubTlv, IPv4RouterIdOfLocalNodeSubTlv),
+     * LinkAttributesTlv(IPv4RouterIdOfRemoteNodeSubTlv, IPv6LSRouterIdofRemoteNodeTlv, AdministrativeGroupSubTlv,
+     * MaximumLinkBandwidthSubTlv, MaximumReservableLinkBandwidthSubTlv, UnreservedBandwidthSubTlv,
+     * TEDefaultMetricSubTlv, LinkProtectionTypeSubTlv, MPLSProtocolMaskSubTlv, IgpMetricSubTlv,
+     * SharedRiskLinkGroupSubTlv, OpaqueLinkAttributeSubTlv))
+     * in PcLSRpt message.
+     */
+    @Test
+    public void lsReportMessageTest23() throws PcepParseException, PcepOutOfBoundMessageException {
+
+        byte[] lsReportMsg = new byte[]{0x20, (byte) 0xE0, 0x01, 0x10, // common header
+                (byte) 0xE0, 0x10, 0x01, 0x0C, // LS Object Header
+                0x01, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, // LS-ID
+                (byte) 0xFF, 0x01, 0x00, 0x08, // Routing Universe TLV
+                0x00, 0x00, 0x00, 0x00,
+                0x00, 0x00, 0x00, 0x01,
+                (byte) 0xFF, 0x02, 0x00, 0x24, // Local Node Descriptors TLV
+                0x00, 0x01, 0x00, 0x04, //AutonomousSystemSubTlv
+                0x00, 0x00, 0x00, 0x11,
+                0x00, 0x02, 0x00, 0x04, //BGPLSidentifierSubTlv
+                0x00, 0x00, 0x00, 0x11,
+                0x00, 0x03, 0x00, 0x04, //OSPFareaIDsubTlv
+                0x00, 0x00, 0x00, 0x11,
+                0x00, 0x04, 0x00, 0x08, //IgpRouterIdSubTlv
+                0x00, 0x00, 0x00, 0x11,
+                0x00, 0x00, 0x00, 0x11,
+                (byte) 0xFF, 0x03, 0x00, 0x24, //RemoteNodeDescriptorsTLV
+                0x00, 0x01, 0x00, 0x04, //AutonomousSystemSubTlv
+                0x00, 0x00, 0x00, 0x11,
+                0x00, 0x02, 0x00, 0x04, //BGPLSidentifierSubTlv
+                0x00, 0x00, 0x00, 0x11,
+                0x00, 0x03, 0x00, 0x04, //OSPFareaIDsubTlv
+                0x00, 0x00, 0x00, 0x11,
+                0x00, 0x04, 0x00, 0x08, //IgpRouterIdSubTlv
+                0x00, 0x00, 0x00, 0x11,
+                0x00, 0x00, 0x00, 0x11,
+                (byte) 0xFF, 0x04, 0x00, 0x1C, //LinkDescriptorsTLV
+                0x00, 0x06, 0x00, 0x08, //LinkLocalRemoteIdentifiersSubTlv
+                0x01, 0x11, 0x00, 0x09,
+                0x01, 0x21, 0x00, 0x09,
+                0x00, 0x07, 0x00, 0x04, //IPv4InterfaceAddressSubTlv
+                0x01, 0x01, 0x01, 0x01,
+                0x00, 0x08, 0x00, 0x04, //IPv4NeighborAddressSubTlv
+                0x01, 0x011, 0x01, 0x10,
+                (byte) 0xFF, 0x05, 0x00, 0x1C, //NodeAttributesTlv
+                0x00, 0x0E, 0x00, 0x04, //OpaqueNodePropertiesSubTlv
+                0x01, 0x011, 0x01, 0x10,
+                0x00, 0x10, 0x00, 0x08, //ISISAreaIdentifierSubTlv
+                0x20, 0x01, 0x22, 0x01,
+                0x20, 0x01, 0x22, 0x01,
+                0x00, 0x11, 0x00, 0x04, //IPv4RouterIdOfLocalNodeSubTlv
+                0x00, 0x01, 0x01, 0x02,
+                (byte) 0xFF, 0x06, 0x00, 0x5C, //LinkAttributesTlv
+                0x00, 0x13, 0x00, 0x04, //IPv4RouterIdOfRemoteNodeSubTlv
+                0x00, 0x07, 0x08, 0x00,
+                0x00, 0x16, 0x00, 0x04, //AdministrativeGroupSubTlv
+                0x00, 0x09, 0x08, 0x00,
+                0x00, 0x17, 0x00, 0x04, //MaximumLinkBandwidthSubTlv
+                0x00, 0x09, 0x00, 0x00,
+                0x00, 0x18, 0x00, 0x04, //MaximumReservableLinkBandwidthSubTlv
+                0x00, 0x10, 0x00, 0x00,
+                0x00, 0x19, 0x00, 0x04, //UnreservedBandwidthSubTlv
+                0x00, 0x00, (byte) 0x90, 0x00,
+                0x00, 0x1A, 0x00, 0x04, //TEDefaultMetricSubTlv
+                0x00, (byte) 0x99, 0x09, 0x00,
+                0x00, 0x1B, 0x00, 0x02, //LinkProtectionTypeSubTlv
+                0x09, 0x00, 0x00, 0x00,
+                0x00, 0x1C, 0x00, 0x01, //MPLSProtocolMaskSubTlv
+                (byte) 0x80, 0x00, 0x00, 0x00,
+                0x00, 0x1D, 0x00, 0x04, //IgpMetricSubTlv
+                0x09, (byte) 0x89, 0x07, 0x00,
+                0x00, 0x1E, 0x00, 0x04, //SharedRiskLinkGroupSubTlv
+                0x04, 0x47, 0x00, 0x03,
+                0x00, 0x1F, 0x00, 0x08, //OpaqueLinkAttributeSubTlv
+                0x04, 0x49, 0x00, 0x04,
+                0x04, 0x47, 0x00, 0x03
+        };
+
+        ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
+        buffer.writeBytes(lsReportMsg);
+
+        PcepMessageReader<PcepMessage> reader = PcepFactories.getGenericReader();
+        PcepMessage message = null;
+
+        message = reader.readFrom(buffer);
+
+        byte[] testReportMsg = {0};
+        assertThat(message, instanceOf(PcepLSReportMsg.class));
+        ChannelBuffer buf = ChannelBuffers.dynamicBuffer();
+        message.writeTo(buf);
+
+        int readLen = buf.writerIndex();
+        testReportMsg = new byte[readLen];
+        buf.readBytes(testReportMsg, 0, readLen);
+
+        assertThat(testReportMsg, is(lsReportMsg));
+    }
+
+    /**
+     * This test case checks for
+     * LS Object (Routing Universe TLV,Local Node Descriptors TLV(AutonomousSystemSubTlv, BGPLSidentifierSubTlv,
+     * OSPFareaIDsubTlv, IgpRouterIdSubTlv), RemoteNodeDescriptorsTLV(AutonomousSystemSubTlv, BGPLSidentifierSubTlv,
+     * OSPFareaIDsubTlv, IgpRouterIdSubTlv), LinkDescriptorsTLV(LinkLocalRemoteIdentifiersSubTlv,
+     * IPv4InterfaceAddressSubTlv, IPv4NeighborAddressSubTlv), NodeAttributesTlv(NodeFlagBitsSubTlv,
+     * OpaqueNodePropertiesSubTlv, NodeNameSubTlv, ISISAreaIdentifierSubTlv, IPv4RouterIdOfLocalNodeSubTlv),
+     * LinkAttributesTlv(IPv4RouterIdOfRemoteNodeSubTlv, IPv6LSRouterIdofRemoteNodeTlv, AdministrativeGroupSubTlv,
+     * MaximumLinkBandwidthSubTlv, MaximumReservableLinkBandwidthSubTlv, UnreservedBandwidthSubTlv,
+     * TEDefaultMetricSubTlv, LinkProtectionTypeSubTlv, MPLSProtocolMaskSubTlv, IgpMetricSubTlv,
+     * SharedRiskLinkGroupSubTlv)) in PcLSRpt message.
+     */
+    @Test
+    public void lsReportMessageTest24() throws PcepParseException, PcepOutOfBoundMessageException {
+
+        byte[] lsReportMsg = new byte[]{0x20, (byte) 0xE0, 0x01, 0x08, // common header
+                (byte) 0xE0, 0x10, 0x01, 0x04, // LS Object Header
+                0x01, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, // LS-ID
+                (byte) 0xFF, 0x01, 0x00, 0x08, // Routing Universe TLV
+                0x00, 0x00, 0x00, 0x00,
+                0x00, 0x00, 0x00, 0x01,
+                (byte) 0xFF, 0x02, 0x00, 0x24, // Local Node Descriptors TLV
+                0x00, 0x01, 0x00, 0x04, //AutonomousSystemSubTlv
+                0x00, 0x00, 0x00, 0x11,
+                0x00, 0x02, 0x00, 0x04, //BGPLSidentifierSubTlv
+                0x00, 0x00, 0x00, 0x11,
+                0x00, 0x03, 0x00, 0x04, //OSPFareaIDsubTlv
+                0x00, 0x00, 0x00, 0x11,
+                0x00, 0x04, 0x00, 0x08, //IgpRouterIdSubTlv
+                0x00, 0x00, 0x00, 0x11,
+                0x00, 0x00, 0x00, 0x11,
+                (byte) 0xFF, 0x03, 0x00, 0x24, //RemoteNodeDescriptorsTLV
+                0x00, 0x01, 0x00, 0x04, //AutonomousSystemSubTlv
+                0x00, 0x00, 0x00, 0x11,
+                0x00, 0x02, 0x00, 0x04, //BGPLSidentifierSubTlv
+                0x00, 0x00, 0x00, 0x11,
+                0x00, 0x03, 0x00, 0x04, //OSPFareaIDsubTlv
+                0x00, 0x00, 0x00, 0x11,
+                0x00, 0x04, 0x00, 0x08, //IgpRouterIdSubTlv
+                0x00, 0x00, 0x00, 0x11,
+                0x00, 0x00, 0x00, 0x11,
+                (byte) 0xFF, 0x04, 0x00, 0x1C, //LinkDescriptorsTLV
+                0x00, 0x06, 0x00, 0x08, //LinkLocalRemoteIdentifiersSubTlv
+                0x01, 0x11, 0x00, 0x09,
+                0x01, 0x21, 0x00, 0x09,
+                0x00, 0x07, 0x00, 0x04, //IPv4InterfaceAddressSubTlv
+                0x01, 0x01, 0x01, 0x01,
+                0x00, 0x08, 0x00, 0x04, //IPv4NeighborAddressSubTlv
+                0x01, 0x011, 0x01, 0x10,
+                (byte) 0xFF, 0x05, 0x00, 0x1C, //NodeAttributesTlv
+                0x00, 0x0E, 0x00, 0x04, //OpaqueNodePropertiesSubTlv
+                0x01, 0x011, 0x01, 0x10,
+                0x00, 0x10, 0x00, 0x08, //ISISAreaIdentifierSubTlv
+                0x20, 0x01, 0x22, 0x01,
+                0x20, 0x01, 0x22, 0x01,
+                0x00, 0x11, 0x00, 0x04, //IPv4RouterIdOfLocalNodeSubTlv
+                0x00, 0x01, 0x01, 0x02,
+                (byte) 0xFF, 0x06, 0x00, 0x54, //LinkAttributesTlv
+                0x00, 0x13, 0x00, 0x04, //IPv4RouterIdOfRemoteNodeSubTlv
+                0x00, 0x07, 0x08, 0x00,
+                0x00, 0x16, 0x00, 0x04, //AdministrativeGroupSubTlv
+                0x00, 0x09, 0x08, 0x00,
+                0x00, 0x17, 0x00, 0x04, //MaximumLinkBandwidthSubTlv
+                0x00, 0x09, 0x00, 0x00,
+                0x00, 0x18, 0x00, 0x04, //MaximumReservableLinkBandwidthSubTlv
+                0x00, 0x10, 0x00, 0x00,
+                0x00, 0x19, 0x00, 0x04, //UnreservedBandwidthSubTlv
+                0x00, 0x00, (byte) 0x90, 0x00,
+                0x00, 0x1A, 0x00, 0x04, //TEDefaultMetricSubTlv
+                0x00, (byte) 0x99, 0x09, 0x00,
+                0x00, 0x1B, 0x00, 0x02, //LinkProtectionTypeSubTlv
+                0x09, 0x00, 0x00, 0x00,
+                0x00, 0x1C, 0x00, 0x01, //MPLSProtocolMaskSubTlv
+                (byte) 0x80, 0x00, 0x00, 0x00,
+                0x00, 0x1D, 0x00, 0x04, //IgpMetricSubTlv
+                0x09, (byte) 0x89, 0x07, 0x00,
+                0x00, 0x1E, 0x00, 0x08, //SharedRiskLinkGroupSubTlv
+                0x04, 0x47, 0x00, 0x03,
+                0x04, 0x47, 0x00, 0x03
+        };
+
+        ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
+        buffer.writeBytes(lsReportMsg);
+
+        PcepMessageReader<PcepMessage> reader = PcepFactories.getGenericReader();
+        PcepMessage message = null;
+
+        message = reader.readFrom(buffer);
+
+        byte[] testReportMsg = {0};
+        assertThat(message, instanceOf(PcepLSReportMsg.class));
+        ChannelBuffer buf = ChannelBuffers.dynamicBuffer();
+        message.writeTo(buf);
+
+        int readLen = buf.writerIndex();
+        testReportMsg = new byte[readLen];
+        buf.readBytes(testReportMsg, 0, readLen);
+
+        assertThat(testReportMsg, is(lsReportMsg));
+    }
+
+    /**
+     * This test case checks for
+     * LS Object (Routing Universe TLV,Local Node Descriptors TLV(AutonomousSystemSubTlv, BGPLSidentifierSubTlv,
+     * OSPFareaIDsubTlv, IgpRouterIdSubTlv), RemoteNodeDescriptorsTLV(AutonomousSystemSubTlv, BGPLSidentifierSubTlv,
+     * OSPFareaIDsubTlv, IgpRouterIdSubTlv), LinkDescriptorsTLV(LinkLocalRemoteIdentifiersSubTlv,
+     * IPv4InterfaceAddressSubTlv, IPv4NeighborAddressSubTlv), NodeAttributesTlv(NodeFlagBitsSubTlv,
+     * OpaqueNodePropertiesSubTlv, NodeNameSubTlv, ISISAreaIdentifierSubTlv, IPv4RouterIdOfLocalNodeSubTlv),
+     * LinkAttributesTlv(IPv4RouterIdOfRemoteNodeSubTlv, IPv6LSRouterIdofRemoteNodeTlv, AdministrativeGroupSubTlv,
+     * MaximumLinkBandwidthSubTlv, MaximumReservableLinkBandwidthSubTlv, UnreservedBandwidthSubTlv,
+     * TEDefaultMetricSubTlv, LinkProtectionTypeSubTlv, MPLSProtocolMaskSubTlv, IgpMetricSubTlv))
+     * in PcLSRpt message.
+     */
+    @Test
+    public void lsReportMessageTest25() throws PcepParseException, PcepOutOfBoundMessageException {
+
+        byte[] lsReportMsg = new byte[]{0x20, (byte) 0xE0, 0x00, (byte) 0xFC, // common header
+                (byte) 0xE0, 0x10, 0x00, (byte) 0xF8, // LS Object Header
+                0x01, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, // LS-ID
+                (byte) 0xFF, 0x01, 0x00, 0x08, // Routing Universe TLV
+                0x00, 0x00, 0x00, 0x00,
+                0x00, 0x00, 0x00, 0x01,
+                (byte) 0xFF, 0x02, 0x00, 0x24, // Local Node Descriptors TLV
+                0x00, 0x01, 0x00, 0x04, //AutonomousSystemSubTlv
+                0x00, 0x00, 0x00, 0x11,
+                0x00, 0x02, 0x00, 0x04, //BGPLSidentifierSubTlv
+                0x00, 0x00, 0x00, 0x11,
+                0x00, 0x03, 0x00, 0x04, //OSPFareaIDsubTlv
+                0x00, 0x00, 0x00, 0x11,
+                0x00, 0x04, 0x00, 0x08, //IgpRouterIdSubTlv
+                0x00, 0x00, 0x00, 0x11,
+                0x00, 0x00, 0x00, 0x11,
+                (byte) 0xFF, 0x03, 0x00, 0x24, //RemoteNodeDescriptorsTLV
+                0x00, 0x01, 0x00, 0x04, //AutonomousSystemSubTlv
+                0x00, 0x00, 0x00, 0x11,
+                0x00, 0x02, 0x00, 0x04, //BGPLSidentifierSubTlv
+                0x00, 0x00, 0x00, 0x11,
+                0x00, 0x03, 0x00, 0x04, //OSPFareaIDsubTlv
+                0x00, 0x00, 0x00, 0x11,
+                0x00, 0x04, 0x00, 0x08, //IgpRouterIdSubTlv
+                0x00, 0x00, 0x00, 0x11,
+                0x00, 0x00, 0x00, 0x11,
+                (byte) 0xFF, 0x04, 0x00, 0x1C, //LinkDescriptorsTLV
+                0x00, 0x06, 0x00, 0x08, //LinkLocalRemoteIdentifiersSubTlv
+                0x01, 0x11, 0x00, 0x09,
+                0x01, 0x21, 0x00, 0x09,
+                0x00, 0x07, 0x00, 0x04, //IPv4InterfaceAddressSubTlv
+                0x01, 0x01, 0x01, 0x01,
+                0x00, 0x08, 0x00, 0x04, //IPv4NeighborAddressSubTlv
+                0x01, 0x011, 0x01, 0x10,
+                (byte) 0xFF, 0x05, 0x00, 0x1C, //NodeAttributesTlv
+                0x00, 0x0E, 0x00, 0x04, //OpaqueNodePropertiesSubTlv
+                0x01, 0x011, 0x01, 0x10,
+                0x00, 0x10, 0x00, 0x08, //ISISAreaIdentifierSubTlv
+                0x20, 0x01, 0x22, 0x01,
+                0x20, 0x01, 0x22, 0x01,
+                0x00, 0x11, 0x00, 0x04, //IPv4RouterIdOfLocalNodeSubTlv
+                0x00, 0x01, 0x01, 0x02,
+                (byte) 0xFF, 0x06, 0x00, 0x48, //LinkAttributesTlv
+                0x00, 0x13, 0x00, 0x04, //IPv4RouterIdOfRemoteNodeSubTlv
+                0x00, 0x07, 0x08, 0x00,
+                0x00, 0x16, 0x00, 0x04, //AdministrativeGroupSubTlv
+                0x00, 0x09, 0x08, 0x00,
+                0x00, 0x17, 0x00, 0x04, //MaximumLinkBandwidthSubTlv
+                0x00, 0x09, 0x00, 0x00,
+                0x00, 0x18, 0x00, 0x04, //MaximumReservableLinkBandwidthSubTlv
+                0x00, 0x10, 0x00, 0x00,
+                0x00, 0x19, 0x00, 0x04, //UnreservedBandwidthSubTlv
+                0x00, 0x00, (byte) 0x90, 0x00,
+                0x00, 0x1A, 0x00, 0x04, //TEDefaultMetricSubTlv
+                0x00, (byte) 0x99, 0x09, 0x00,
+                0x00, 0x1B, 0x00, 0x02, //LinkProtectionTypeSubTlv
+                0x09, 0x00, 0x00, 0x00,
+                0x00, 0x1C, 0x00, 0x01, //MPLSProtocolMaskSubTlv
+                (byte) 0x80, 0x00, 0x00, 0x00,
+                0x00, 0x1D, 0x00, 0x04, //IgpMetricSubTlv
+                0x09, (byte) 0x89, 0x07, 0x00
+        };
+
+        ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
+        buffer.writeBytes(lsReportMsg);
+
+        PcepMessageReader<PcepMessage> reader = PcepFactories.getGenericReader();
+        PcepMessage message = null;
+
+        message = reader.readFrom(buffer);
+
+        byte[] testReportMsg = {0};
+
+        assertThat(message, instanceOf(PcepLSReportMsg.class));
+        ChannelBuffer buf = ChannelBuffers.dynamicBuffer();
+        message.writeTo(buf);
+
+        int readLen = buf.writerIndex();
+        testReportMsg = new byte[readLen];
+        buf.readBytes(testReportMsg, 0, readLen);
+
+        assertThat(testReportMsg, is(lsReportMsg));
+    }
+}
diff --git a/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/protocol/PcepLabelUpdateMsgTest.java b/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/protocol/PcepLabelUpdateMsgTest.java
index e1947bd..2256496 100644
--- a/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/protocol/PcepLabelUpdateMsgTest.java
+++ b/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/protocol/PcepLabelUpdateMsgTest.java
@@ -18,6 +18,7 @@
 import org.jboss.netty.buffer.ChannelBuffer;
 import org.jboss.netty.buffer.ChannelBuffers;
 import org.junit.Test;
+import org.onosproject.pcepio.exceptions.PcepOutOfBoundMessageException;
 import org.onosproject.pcepio.exceptions.PcepParseException;
 
 import static org.hamcrest.MatcherAssert.assertThat;
@@ -32,15 +33,15 @@
      * in PcepLabelUpdate message.
      */
     @Test
-    public void labelUpdateMessageTest1() throws PcepParseException {
+    public void labelUpdateMessageTest1() throws PcepParseException, PcepOutOfBoundMessageException {
 
-        byte[] labelUpdate = new byte[]{0x20, 0x0D, 0x00, 0x24, // common header
+        byte[] labelUpdate = new byte[]{0x20, (byte) 0xE2, 0x00, 0x24, // common header
                 0x21, 0x10, 0x00, 0x0C, // SRP Object Header
                 0x00, 0x00, 0x00, 0x00,
                 0x00, 0x00, 0x00, 0x10,
                 0x20, 0x10, 0x00, 0x08, // LSP Object Header
                 0x00, 0x01, 0x00, 0x00,
-                0x23, 0x10, 0x00, 0x0C, // LABEL Object Header
+                (byte) 0xE1, 0x10, 0x00, 0x0C, // LABEL Object Header
                 0x00, 0x00, 0x00, 0x00,
                 0x00, 0x00, 0x00, 0x66};
 
@@ -72,18 +73,18 @@
      * in PcepLabelUpdate message.
      */
     @Test
-    public void labelUpdateMessageTest2() throws PcepParseException {
+    public void labelUpdateMessageTest2() throws PcepParseException, PcepOutOfBoundMessageException {
 
-        byte[] labelUpdate = new byte[]{0x20, 0x0D, 0x00, 0x30, // common header
+        byte[] labelUpdate = new byte[]{0x20, (byte) 0xE2, 0x00, 0x30, // common header
                 0x21, 0x10, 0x00, 0x0C, // SRP Object Header
                 0x00, 0x00, 0x00, 0x00,
                 0x00, 0x00, 0x00, 0x10,
                 0x20, 0x10, 0x00, 0x08, // LSP Object Header
                 0x00, 0x01, 0x00, 0x00,
-                0x23, 0x10, 0x00, 0x0C, // LABEL Object Header
+                (byte) 0xE1, 0x10, 0x00, 0x0C, // LABEL Object Header
                 0x00, 0x00, 0x00, 0x00,
                 0x00, 0x00, 0x00, 0x66,
-                0x23, 0x10, 0x00, 0x0C, // LABEL Object Header
+                (byte) 0xE1, 0x10, 0x00, 0x0C, // LABEL Object Header
                 0x00, 0x00, 0x00, 0x00,
                 0x00, 0x00, 0x00, 0x77};
 
@@ -113,16 +114,16 @@
      * in PcepLabelUpdate message.
      */
     @Test
-    public void labelUpdateMessageTest3() throws PcepParseException {
+    public void labelUpdateMessageTest3() throws PcepParseException, PcepOutOfBoundMessageException {
 
-        byte[] labelUpdate = new byte[]{0x20, 0x0D, 0x00, 0x24, // common header
+        byte[] labelUpdate = new byte[]{0x20, (byte) 0xE2, 0x00, 0x24, // common header
                 0x21, 0x10, 0x00, 0x0C, // SRP Object Header
                 0x00, 0x00, 0x00, 0x00,
                 0x00, 0x00, 0x00, 0x10,
-                0x23, 0x10, 0x00, 0x0C, // LABEL Object Header
+                (byte) 0xE1, 0x10, 0x00, 0x0C, // LABEL Object Header
                 0x00, 0x00, 0x00, 0x00,
                 0x00, 0x00, 0x00, 0x66,
-                0x24, 0x10, 0x00, 0x08, // FEC Object Header
+                (byte) 0xE2, 0x10, 0x00, 0x08, // FEC Object Header
                 0x0A, 0x0A, 0x0B, 0x0B};
 
         ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
@@ -151,18 +152,18 @@
      * in PcepLabelUpdate message.
      */
     @Test
-    public void labelUpdateMessageTest4() throws PcepParseException {
+    public void labelUpdateMessageTest4() throws PcepParseException, PcepOutOfBoundMessageException {
 
-        byte[] labelUpdate = new byte[]{0x20, 0x0D, 0x00, 0x50, // common header
+        byte[] labelUpdate = new byte[]{0x20, (byte) 0xE2, 0x00, 0x50, // common header
                 0x21, 0x10, 0x00, 0x0C, // SRP Object Header
                 0x00, 0x00, 0x00, 0x00,
                 0x00, 0x00, 0x00, 0x10,
                 0x20, 0x10, 0x00, 0x08, // LSP Object Header
                 0x00, 0x01, 0x00, 0x00,
-                0x23, 0x10, 0x00, 0x0C, // LABEL Object Header
+                (byte) 0xE1, 0x10, 0x00, 0x0C, // LABEL Object Header
                 0x00, 0x00, 0x00, 0x00,
                 0x00, 0x00, 0x00, 0x66,
-                0x23, 0x10, 0x00, 0x0C, // LABEL Object Header
+                (byte) 0xE1, 0x10, 0x00, 0x0C, // LABEL Object Header
                 0x00, 0x00, 0x00, 0x00,
                 0x00, 0x00, 0x00, 0x77,
                 0x21, 0x10, 0x00, 0x0C, // SRP Object Header
@@ -170,7 +171,7 @@
                 0x00, 0x00, 0x00, 0x11,
                 0x20, 0x10, 0x00, 0x08, // LSP Object Header
                 0x00, 0x02, 0x00, 0x00,
-                0x23, 0x10, 0x00, 0x0C, // LABEL Object Header
+                (byte) 0xE1, 0x10, 0x00, 0x0C, // LABEL Object Header
                 0x00, 0x00, 0x00, 0x00,
                 0x00, 0x00, 0x00, 0x44};
 
@@ -200,24 +201,24 @@
      * in PcepLabelUpdate message.
      */
     @Test
-    public void labelUpdateMessageTest5() throws PcepParseException {
+    public void labelUpdateMessageTest5() throws PcepParseException, PcepOutOfBoundMessageException {
 
-        byte[] labelUpdate = new byte[]{0x20, 0x0D, 0x00, 0x44, // common header
+        byte[] labelUpdate = new byte[]{0x20, (byte) 0xE2, 0x00, 0x44, // common header
                 0x21, 0x10, 0x00, 0x0C, // SRP Object Header
                 0x00, 0x00, 0x00, 0x00,
                 0x00, 0x00, 0x00, 0x10,
-                0x23, 0x10, 0x00, 0x0C, // LABEL Object Header
+                (byte) 0xE1, 0x10, 0x00, 0x0C, // LABEL Object Header
                 0x00, 0x00, 0x00, 0x01,
                 0x00, 0x00, 0x00, 0x66,
-                0x24, 0x10, 0x00, 0x08, // FEC Object Header
+                (byte) 0xE2, 0x10, 0x00, 0x08, // FEC Object Header
                 0x0A, 0x0A, 0x0B, 0x0B,
                 0x21, 0x10, 0x00, 0x0C, // SRP Object Header
                 0x00, 0x00, 0x00, 0x00,
                 0x00, 0x00, 0x00, 0x11,
-                0x23, 0x10, 0x00, 0x0C, // LABEL Object Header
+                (byte) 0xE1, 0x10, 0x00, 0x0C, // LABEL Object Header
                 0x00, 0x00, 0x00, 0x00,
                 0x00, 0x00, 0x00, 0x66,
-                0x24, 0x10, 0x00, 0x08, // FEC Object Header
+                (byte) 0xE2, 0x10, 0x00, 0x08, // FEC Object Header
                 0x0A, 0x0A, 0x0C, 0x0C};
 
         ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
@@ -246,27 +247,27 @@
      * in PcepLabelUpdate message.
      */
     @Test
-    public void labelUpdateMessageTest6() throws PcepParseException {
+    public void labelUpdateMessageTest6() throws PcepParseException, PcepOutOfBoundMessageException {
 
-        byte[] labelUpdate = new byte[]{0x20, 0x0D, 0x00, 0x50, // common header
+        byte[] labelUpdate = new byte[]{0x20, (byte) 0xE2, 0x00, 0x50, // common header
                 0x21, 0x10, 0x00, 0x0C, // SRP Object Header
                 0x00, 0x00, 0x00, 0x00,
                 0x00, 0x00, 0x00, 0x10,
                 0x20, 0x10, 0x00, 0x08, // LSP Object Header
                 0x00, 0x01, 0x00, 0x00,
-                0x23, 0x10, 0x00, 0x0C, // LABEL Object Header
+                (byte) 0xE1, 0x10, 0x00, 0x0C, // LABEL Object Header
                 0x00, 0x00, 0x00, 0x00,
                 0x00, 0x00, 0x00, 0x66,
-                0x23, 0x10, 0x00, 0x0C, // LABEL Object Header
+                (byte) 0xE1, 0x10, 0x00, 0x0C, // LABEL Object Header
                 0x00, 0x00, 0x00, 0x00,
                 0x00, 0x00, 0x00, 0x77,
                 0x21, 0x10, 0x00, 0x0C, // SRP Object Header
                 0x00, 0x00, 0x00, 0x00,
                 0x00, 0x00, 0x00, 0x12,
-                0x23, 0x10, 0x00, 0x0C, // LABEL Object Header
+                (byte) 0xE1, 0x10, 0x00, 0x0C, // LABEL Object Header
                 0x00, 0x00, 0x00, 0x00,
                 0x00, 0x00, 0x00, 0x66,
-                0x24, 0x10, 0x00, 0x08, // FEC Object Header
+                (byte) 0xE2, 0x10, 0x00, 0x08, // FEC Object Header
                 0x0A, 0x0A, 0x0D, 0x0D};
 
         ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
@@ -295,26 +296,26 @@
      * in PcepLabelUpdate message.
      */
     @Test
-    public void labelUpdateMessageTest7() throws PcepParseException {
+    public void labelUpdateMessageTest7() throws PcepParseException, PcepOutOfBoundMessageException {
 
-        byte[] labelUpdate = new byte[]{0x20, 0x0D, 0x00, 0x50, // common header
+        byte[] labelUpdate = new byte[]{0x20, (byte) 0xE2, 0x00, 0x50, // common header
                 0x21, 0x10, 0x00, 0x0C, // SRP Object Header
                 0x00, 0x00, 0x00, 0x00,
                 0x00, 0x00, 0x00, 0x12,
-                0x23, 0x10, 0x00, 0x0C, // LABEL Object Header
+                (byte) 0xE1, 0x10, 0x00, 0x0C, // LABEL Object Header
                 0x00, 0x00, 0x00, 0x00,
                 0x00, 0x00, 0x00, 0x66,
-                0x24, 0x10, 0x00, 0x08, // FEC Object Header
+                (byte) 0xE2, 0x10, 0x00, 0x08, // FEC Object Header
                 0x0A, 0x0A, 0x0D, 0x0D,
                 0x21, 0x10, 0x00, 0x0C, // SRP Object Header
                 0x00, 0x00, 0x00, 0x00,
                 0x00, 0x00, 0x00, 0x10,
                 0x20, 0x10, 0x00, 0x08, // LSP Object Header
                 0x00, 0x01, 0x00, 0x00,
-                0x23, 0x10, 0x00, 0x0C, // LABEL Object Header
+                (byte) 0xE1, 0x10, 0x00, 0x0C, // LABEL Object Header
                 0x00, 0x00, 0x00, 0x00,
                 0x00, 0x00, 0x00, 0x66,
-                0x23, 0x10, 0x00, 0x0C, // LABEL Object Header
+                (byte) 0xE1, 0x10, 0x00, 0x0C, // LABEL Object Header
                 0x00, 0x00, 0x00, 0x00,
                 0x00, 0x00, 0x00, 0x77};
 
@@ -345,26 +346,26 @@
      * in PcepLabelUpdate message.
      */
     @Test
-    public void labelUpdateMessageTest8() throws PcepParseException {
+    public void labelUpdateMessageTest8() throws PcepParseException, PcepOutOfBoundMessageException {
 
-        byte[] labelUpdate = new byte[]{0x20, 0x0D, 0x00, 0x7C, // common header
+        byte[] labelUpdate = new byte[]{0x20, (byte) 0xE2, 0x00, 0x7C, // common header
                 0x21, 0x10, 0x00, 0x0C, // SRP Object Header
                 0x00, 0x00, 0x00, 0x00,
                 0x00, 0x00, 0x00, 0x12,
-                0x23, 0x10, 0x00, 0x0C, // LABEL Object Header
+                (byte) 0xE1, 0x10, 0x00, 0x0C, // LABEL Object Header
                 0x00, 0x00, 0x00, 0x00,
                 0x00, 0x00, 0x00, 0x66,
-                0x24, 0x10, 0x00, 0x08, // FEC Object Header
+                (byte) 0xE2, 0x10, 0x00, 0x08, // FEC Object Header
                 0x0A, 0x0A, 0x0D, 0x0D,
                 0x21, 0x10, 0x00, 0x0C, // SRP Object Header
                 0x00, 0x00, 0x00, 0x00,
                 0x00, 0x00, 0x00, 0x10,
                 0x20, 0x10, 0x00, 0x08, // LSP Object Header
                 0x00, 0x01, 0x00, 0x00,
-                0x23, 0x10, 0x00, 0x0C, // LABEL Object Header
+                (byte) 0xE1, 0x10, 0x00, 0x0C, // LABEL Object Header
                 0x00, 0x00, 0x00, 0x00,
                 0x00, 0x00, 0x00, 0x66,
-                0x23, 0x10, 0x00, 0x0C, // LABEL Object Header
+                (byte) 0xE1, 0x10, 0x00, 0x0C, // LABEL Object Header
                 0x00, 0x00, 0x00, 0x00,
                 0x00, 0x00, 0x00, 0x77,
                 0x21, 0x10, 0x00, 0x0C, // SRP Object Header
@@ -372,10 +373,10 @@
                 0x00, 0x00, 0x00, 0x10,
                 0x20, 0x10, 0x00, 0x08, // LSP Object Header
                 0x00, 0x01, 0x00, 0x00,
-                0x23, 0x10, 0x00, 0x0C, // LABEL Object Header
+                (byte) 0xE1, 0x10, 0x00, 0x0C, // LABEL Object Header
                 0x00, 0x00, 0x00, 0x00,
                 0x00, 0x00, 0x00, 0x66,
-                0x23, 0x10, 0x00, 0x0C, // LABEL Object Header
+                (byte) 0xE1, 0x10, 0x00, 0x0C, // LABEL Object Header
                 0x00, 0x00, 0x00, 0x00,
                 0x00, 0x00, 0x00, 0x77};
 
diff --git a/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/protocol/PcepOpenMsgTest.java b/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/protocol/PcepOpenMsgTest.java
index 6e0a059..eea8a26 100644
--- a/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/protocol/PcepOpenMsgTest.java
+++ b/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/protocol/PcepOpenMsgTest.java
@@ -18,6 +18,7 @@
 import org.jboss.netty.buffer.ChannelBuffer;
 import org.jboss.netty.buffer.ChannelBuffers;
 import org.junit.Test;
+import org.onosproject.pcepio.exceptions.PcepOutOfBoundMessageException;
 import org.onosproject.pcepio.exceptions.PcepParseException;
 
 import static org.hamcrest.MatcherAssert.assertThat;
@@ -33,7 +34,7 @@
      * PCECC-CAPABILITY-TLV in Pcep Open message.
      */
     @Test
-    public void openMessageTest1() throws PcepParseException {
+    public void openMessageTest1() throws PcepParseException, PcepOutOfBoundMessageException {
 
         byte[] openMsg = new byte[] {0x20, 0x01, 0x00, 0x24, 0x01, 0x10, 0x00, 0x20, 0x20, 0x1e, 0x78, (byte) 0xbd,
                 0x00, 0x10, 0x00, 0x04, 0x00, 0x00, 0x00, 0x0f, //STATEFUL-PCE-CAPABILITY
@@ -67,7 +68,7 @@
      * This test case checks open object with STATEFUL-PCE-CAPABILITY-TLV in Pcep Open message.
      */
     @Test
-    public void openMessageTest2() throws PcepParseException {
+    public void openMessageTest2() throws PcepParseException, PcepOutOfBoundMessageException {
 
         byte[] openMsg = new byte[] {0x20, 0x01, 0x00, 0x14, // common header
                 0x01, 0x10, 0x00, 0x10, // common object header
@@ -99,7 +100,7 @@
      * This test case checks open object with GmplsCapability tlv in Pcep Open message.
      */
     @Test
-    public void openMessageTest3() throws PcepParseException {
+    public void openMessageTest3() throws PcepParseException, PcepOutOfBoundMessageException {
 
         byte[] openMsg = new byte[] {0x20, 0x01, 0x00, 0x14, // common header
                 0x01, 0x10, 0x00, 0x10, // common object header
@@ -133,7 +134,7 @@
      * This test case checks open object with StatefulLspDbVer Tlv in Pcep Open message.
      */
     @Test
-    public void openMessageTest4() throws PcepParseException {
+    public void openMessageTest4() throws PcepParseException, PcepOutOfBoundMessageException {
 
         byte[] openMsg = new byte[] {0x20, 0x01, 0x00, 0x18,
                 0x01, 0x10, 0x00, 0x14, 0x20, 0x1e, 0x78, 0x20,
@@ -165,7 +166,7 @@
      * This test case checks open object with no tlv's in Pcep Open message.
      */
     @Test
-    public void openMessageTest5() throws PcepParseException {
+    public void openMessageTest5() throws PcepParseException, PcepOutOfBoundMessageException {
 
         byte[] openMsg = new byte[] {0x20, 0x01, 0x00, 0x0C,
                 0x01, 0x10, 0x00, 0x08, 0x20, 0x1e, 0x78, (byte) 0xbd }; // no Tlvs in open messsage
@@ -197,7 +198,7 @@
      * with I bit set in Pcep Open message.
      */
     @Test
-    public void openMessageTest6() throws PcepParseException {
+    public void openMessageTest6() throws PcepParseException, PcepOutOfBoundMessageException {
 
         byte[] openMsg = new byte[] {0x20, 0x01, 0x00, 0x24, 0x01, 0x11, 0x00, 0x20, //p bit not set & i bit set
                 0x20, 0x1e, 0x78, (byte) 0xbd,
@@ -233,7 +234,7 @@
      * with P bit set in Pcep Open message.
      */
     @Test
-    public void openMessageTest7() throws PcepParseException {
+    public void openMessageTest7() throws PcepParseException, PcepOutOfBoundMessageException {
 
         byte[] openMsg = new byte[] {0x20, 0x01, 0x00, 0x24, 0x01, 0x12, 0x00, 0x20, //p bit set & i bit not set
                 0x20, 0x1e, 0x78, (byte) 0xbd,
@@ -269,7 +270,7 @@
      * with P & I bits set in Pcep Open message.
      */
     @Test
-    public void openMessageTest8() throws PcepParseException {
+    public void openMessageTest8() throws PcepParseException, PcepOutOfBoundMessageException {
 
         /* OPEN OBJECT (STATEFUL-PCE-CAPABILITY, GMPLS-CAPABILITY-TLV, PCECC-CAPABILITY-TLV)
         with p bit set & i bit set.
@@ -308,7 +309,7 @@
      * with P & I bits set and invalid session id in Pcep Open message.
      */
     @Test
-    public void openMessageTest9() throws PcepParseException {
+    public void openMessageTest9() throws PcepParseException, PcepOutOfBoundMessageException {
 
         byte[] openMsg = new byte[] {0x20, 0x01, 0x00, 0x24, 0x01, 0x13, 0x00, 0x20, //p bit set & i bit set
                 0x20, 0x1e, 0x78, 0x00, //invalid sessionID
@@ -345,7 +346,7 @@
      * in Pcep Open message.
      */
     @Test
-    public void openMessageTest10() throws PcepParseException {
+    public void openMessageTest10() throws PcepParseException, PcepOutOfBoundMessageException {
 
         byte[] openMsg = new byte[] {0x20, 0x01, 0x00, 0x1C, // common header
                 0x01, 0x10, 0x00, 0x18, // common object header
@@ -382,7 +383,7 @@
      * PCECC-CAPABILITY-TLV, TED Capability TLV in Pcep Open message.
      */
     @Test
-    public void openMessageTest11() throws PcepParseException {
+    public void openMessageTest11() throws PcepParseException, PcepOutOfBoundMessageException {
 
         byte[] openMsg = new byte[] {0x20, 0x01, 0x00, 0x2C, // common header
                 0x01, 0x10, 0x00, 0x28, // common object header
@@ -390,7 +391,7 @@
                 0x00, 0x10, 0x00, 0x04, // STATEFUL-PCE-CAPABILITY
                 0x00, 0x00, 0x00, 0x05, 0x00, 0x0E, 0x00, 0x04, // GMPLS-CAPABILITY-TLV
                 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, // PCECC-CAPABILITY-TLV
-                0x00, 0x00, 0x00, 0x03, 0x00, (byte) 0x84, 0x00, 0x04, // TED Capability TLV
+                0x00, 0x00, 0x00, 0x03, (byte) 0xFF, (byte) 0x00, 0x00, 0x04, // LS Capability TLV
                 0x00, 0x00, 0x00, 0x00 };
 
         byte[] testOpenMsg = {0};
@@ -412,7 +413,6 @@
         buf.readBytes(testOpenMsg, 0, readLen);
 
         assertThat(testOpenMsg, is(openMsg));
-
     }
 
     /**
@@ -420,7 +420,7 @@
      * PCECC-CAPABILITY-TLV in Pcep Open message.
      */
     @Test
-    public void openMessageTest12() throws PcepParseException {
+    public void openMessageTest12() throws PcepParseException, PcepOutOfBoundMessageException {
 
         byte[] openMsg = new byte[] {0x20, 0x01, 0x00, 0x24, // common header
                 0x01, 0x10, 0x00, 0x20, // common object header
@@ -457,7 +457,7 @@
      * in Pcep Open message.
      */
     @Test
-    public void openMessageTest13() throws PcepParseException {
+    public void openMessageTest13() throws PcepParseException, PcepOutOfBoundMessageException {
 
         byte[] openMsg = new byte[] {0x20, 0x01, 0x00, 0x1c, // common header
                 0x01, 0x10, 0x00, 0x18, // common object header
@@ -493,7 +493,7 @@
      * This test case checks open object with STATEFUL-PCE-CAPABILITY in Pcep Open message.
      */
     @Test
-    public void openMessageTest14() throws PcepParseException {
+    public void openMessageTest14() throws PcepParseException, PcepOutOfBoundMessageException {
 
         byte[] openMsg = new byte[] {0x20, 0x01, 0x00, 0x14, // common header
                 0x01, 0x10, 0x00, 0x10, // common object header
@@ -527,7 +527,7 @@
      * This test case checks open object with no tlv Pcep Open message.
      */
     @Test
-    public void openMessageTest15() throws PcepParseException {
+    public void openMessageTest15() throws PcepParseException, PcepOutOfBoundMessageException {
 
         byte[] openMsg = new byte[] {0x20, 0x01, 0x00, 0x0c, // common header
                 0x01, 0x10, 0x00, 0x08, // common object header
diff --git a/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/protocol/PcepReportMsgExtTest.java b/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/protocol/PcepReportMsgExtTest.java
index f9921ef..8a78e04 100644
--- a/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/protocol/PcepReportMsgExtTest.java
+++ b/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/protocol/PcepReportMsgExtTest.java
@@ -18,6 +18,7 @@
 import org.jboss.netty.buffer.ChannelBuffer;
 import org.jboss.netty.buffer.ChannelBuffers;
 import org.junit.Test;
+import org.onosproject.pcepio.exceptions.PcepOutOfBoundMessageException;
 import org.onosproject.pcepio.exceptions.PcepParseException;
 
 import static org.hamcrest.MatcherAssert.assertThat;
@@ -32,7 +33,7 @@
      * in PcRpt message.
      */
     @Test
-    public void reportMessageTest39() throws PcepParseException {
+    public void reportMessageTest39() throws PcepParseException, PcepOutOfBoundMessageException {
 
         byte[] reportMsg = new byte[] {0x20, 0x0a, 0x00, (byte) 0x98,
                 0x21, 0x10, 0x00, 0x0C,  0x00, 0x00, 0x00, 0x00,  0x00, 0x00, 0x00, 0x01, //SRP object
@@ -79,7 +80,7 @@
      * in PcRpt message.
      */
     @Test
-    public void reportMessageTest40() throws PcepParseException {
+    public void reportMessageTest40() throws PcepParseException, PcepOutOfBoundMessageException {
 
         byte[] reportMsg = new byte[] {0x20, 0x0a, 0x00, (byte) 0x64,
                 0x21, 0x10, 0x00, 0x0C,  0x00, 0x00, 0x00, 0x00,  0x00, 0x00, 0x00, 0x01, //SRP object
@@ -120,7 +121,7 @@
      * in PcRpt message.
      */
     @Test
-    public void reportMessageTest41() throws PcepParseException {
+    public void reportMessageTest41() throws PcepParseException, PcepOutOfBoundMessageException {
 
         byte[] reportMsg = new byte[] {0x20, 0x0a, 0x00, (byte) 0x8c,
                 0x21, 0x10, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, //SRP object
@@ -166,7 +167,7 @@
      * in PcRpt message.
      */
     @Test
-    public void reportMessageTest42() throws PcepParseException {
+    public void reportMessageTest42() throws PcepParseException, PcepOutOfBoundMessageException {
 
         byte[] reportMsg = new byte[] {0x20, 0x0a, 0x00, (byte) 0xE8,
                 0x21, 0x10, 0x00, 0x0C,  0x00, 0x00, 0x00, 0x00,  0x00, 0x00, 0x00, 0x01, //SRP object
diff --git a/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/protocol/PcepReportMsgTest.java b/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/protocol/PcepReportMsgTest.java
index c9e2bc8..ff10078 100644
--- a/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/protocol/PcepReportMsgTest.java
+++ b/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/protocol/PcepReportMsgTest.java
@@ -18,6 +18,7 @@
 import org.jboss.netty.buffer.ChannelBuffer;
 import org.jboss.netty.buffer.ChannelBuffers;
 import org.junit.Test;
+import org.onosproject.pcepio.exceptions.PcepOutOfBoundMessageException;
 import org.onosproject.pcepio.exceptions.PcepParseException;
 
 import static org.hamcrest.MatcherAssert.assertThat;
@@ -31,7 +32,7 @@
      * in PcRpt message.
      */
     @Test
-    public void reportMessageTest1() throws PcepParseException {
+    public void reportMessageTest1() throws PcepParseException, PcepOutOfBoundMessageException {
 
         byte[] reportMsg = new byte[]{0x20, 0x0a, 0x00, 0x24,
                 0x21, 0x10, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, //SRP Object
@@ -66,7 +67,7 @@
      * in PcRpt message.
      */
     @Test
-    public void reportMessageTest2() throws PcepParseException {
+    public void reportMessageTest2() throws PcepParseException, PcepOutOfBoundMessageException {
 
         byte[] reportMsg = new byte[]{0x20, 0x0a, 0x00, (byte) 0x7c,
                 0x21, 0x10, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, //SRP Object
@@ -111,7 +112,7 @@
      * in PcRpt message.
      */
     @Test
-    public void reportMessageTest3() throws PcepParseException {
+    public void reportMessageTest3() throws PcepParseException, PcepOutOfBoundMessageException {
 
         byte[] reportMsg = new byte[]{0x20, 0x0a, 0x00, (byte) 0x70,
                 0x20, 0x10, 0x00, 0x2c, 0x00, 0x00, 0x10, 0x03, //LSP Object //LSP Object
@@ -155,7 +156,7 @@
      * in PcRpt message.
      */
     @Test
-    public void reportMessageTest4() throws PcepParseException {
+    public void reportMessageTest4() throws PcepParseException, PcepOutOfBoundMessageException {
 
         byte[] reportMsg = new byte[]{0x20, 0x0a, 0x00, (byte) 0x64,
                 0x21, 0x10, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, //SRP Object
@@ -197,7 +198,7 @@
      * in PcRpt message.
      */
     @Test
-    public void reportMessageTest5() throws PcepParseException {
+    public void reportMessageTest5() throws PcepParseException, PcepOutOfBoundMessageException {
 
         byte[] reportMsg = new byte[]{0x20, 0x0a, 0x00, (byte) 0x50,
                 0x21, 0x10, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, //SRP Object
@@ -237,7 +238,7 @@
      * in PcRpt message.
      */
     @Test
-    public void reportMessageTest6() throws PcepParseException {
+    public void reportMessageTest6() throws PcepParseException, PcepOutOfBoundMessageException {
 
         byte[] reportMsg = new byte[]{0x20, 0x0a, 0x00, (byte) 0x6c,
                 0x21, 0x10, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, //SRP Object
@@ -279,7 +280,7 @@
      * in PcRpt message.
      */
     @Test
-    public void reportMessageTest7() throws PcepParseException {
+    public void reportMessageTest7() throws PcepParseException, PcepOutOfBoundMessageException {
 
         byte[] reportMsg = new byte[]{0x20, 0x0a, 0x00, (byte) 0x58,
                 0x21, 0x10, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, //SRP Object
@@ -318,7 +319,7 @@
      * in PcRpt message.
      */
     @Test
-    public void reportMessageTest8() throws PcepParseException {
+    public void reportMessageTest8() throws PcepParseException, PcepOutOfBoundMessageException {
 
         byte[] reportMsg = new byte[]{0x20, 0x0a, 0x00, (byte) 0x70,
                 0x21, 0x10, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, //SRP Object
@@ -361,7 +362,7 @@
      * in PcRpt message.
      */
     @Test
-    public void reportMessageTest9() throws PcepParseException {
+    public void reportMessageTest9() throws PcepParseException, PcepOutOfBoundMessageException {
 
         byte[] reportMsg = new byte[]{0x20, 0x0a, 0x00, (byte) 0x44,
                 0x20, 0x10, 0x00, 0x2c, 0x00, 0x00, 0x10, 0x03, //LSP Object //LSP Object
@@ -399,7 +400,7 @@
      * in PcRpt message.
      */
     @Test
-    public void reportMessageTest10() throws PcepParseException {
+    public void reportMessageTest10() throws PcepParseException, PcepOutOfBoundMessageException {
 
         byte[] reportMsg = new byte[]{0x20, 0x0a, 0x00, (byte) 0x74,
                 0x21, 0x10, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, //SRP Object
@@ -442,7 +443,7 @@
      * in PcRpt message.
      */
     @Test
-    public void reportMessageTest11() throws PcepParseException {
+    public void reportMessageTest11() throws PcepParseException, PcepOutOfBoundMessageException {
 
         byte[] reportMsg = new byte[]{0x20, 0x0a, 0x00, (byte) 0x68,
                 0x21, 0x10, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, //SRP Object
@@ -483,7 +484,7 @@
      * in PcRpt message.
      */
     @Test
-    public void reportMessageTest12() throws PcepParseException {
+    public void reportMessageTest12() throws PcepParseException, PcepOutOfBoundMessageException {
 
         byte[] reportMsg = new byte[]{0x20, 0x0a, 0x00, (byte) 0x60,
                 0x21, 0x10, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, //SRP Object
@@ -523,7 +524,7 @@
      * in PcRpt message.
      */
     @Test
-    public void reportMessageTest13() throws PcepParseException {
+    public void reportMessageTest13() throws PcepParseException, PcepOutOfBoundMessageException {
 
         byte[] reportMsg = new byte[]{0x20, 0x0a, 0x00, (byte) 0x68,
                 0x21, 0x10, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, //SRP Object
@@ -564,7 +565,7 @@
      * in PcRpt message.
      */
     @Test
-    public void reportMessageTest14() throws PcepParseException {
+    public void reportMessageTest14() throws PcepParseException, PcepOutOfBoundMessageException {
 
         byte[] reportMsg = new byte[]{0x20, 0x0a, 0x00, (byte) 0x60,
                 0x21, 0x10, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, //SRP Object
@@ -604,7 +605,7 @@
      * in PcRpt message.
      */
     @Test
-    public void reportMessageTest15() throws PcepParseException {
+    public void reportMessageTest15() throws PcepParseException, PcepOutOfBoundMessageException {
 
         byte[] reportMsg = new byte[]{0x20, 0x0a, 0x00, (byte) 0x7C,
                 0x21, 0x10, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, //SRP Object
@@ -647,7 +648,7 @@
      * in PcRpt message.
      */
     @Test
-    public void reportMessageTest16() throws PcepParseException {
+    public void reportMessageTest16() throws PcepParseException, PcepOutOfBoundMessageException {
 
         byte[] reportMsg = new byte[]{0x20, 0x0a, 0x00, (byte) 0x70,
                 0x21, 0x10, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, //SRP Object
@@ -689,7 +690,7 @@
      * in PcRpt message.
      */
     @Test
-    public void reportMessageTest17() throws PcepParseException {
+    public void reportMessageTest17() throws PcepParseException, PcepOutOfBoundMessageException {
 
         byte[] reportMsg = new byte[]{0x20, 0x0a, 0x00, (byte) 0x74,
                 0x21, 0x10, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, //SRP Object
@@ -731,7 +732,7 @@
      * in PcRpt message.
      */
     @Test
-    public void reportMessageTest18() throws PcepParseException {
+    public void reportMessageTest18() throws PcepParseException, PcepOutOfBoundMessageException {
 
         byte[] reportMsg = new byte[]{0x20, 0x0a, 0x00, (byte) 0x68,
                 0x21, 0x10, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, //SRP Object
@@ -772,7 +773,7 @@
      * in PcRpt message.
      */
     @Test
-    public void reportMessageTest19() throws PcepParseException {
+    public void reportMessageTest19() throws PcepParseException, PcepOutOfBoundMessageException {
 
         byte[] reportMsg = new byte[]{0x20, 0x0a, 0x00, (byte) 0x6C,
                 0x21, 0x10, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, //SRP Object
@@ -813,7 +814,7 @@
      * in PcRpt message.
      */
     @Test
-    public void reportMessageTest20() throws PcepParseException {
+    public void reportMessageTest20() throws PcepParseException, PcepOutOfBoundMessageException {
 
         byte[] reportMsg = new byte[]{0x20, 0x0a, 0x00, (byte) 0x88,
                 0x21, 0x10, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, //SRP Object
@@ -858,7 +859,7 @@
      * in PcRpt message.
      */
     @Test
-    public void reportMessageTest21() throws PcepParseException {
+    public void reportMessageTest21() throws PcepParseException, PcepOutOfBoundMessageException {
 
         byte[] reportMsg = new byte[]{0x20, 0x0a, 0x00, (byte) 0xac,
                 0x21, 0x10, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, //SRP Object
@@ -908,7 +909,7 @@
      * in PcRpt message.
      */
     @Test
-    public void reportMessageTest22() throws PcepParseException {
+    public void reportMessageTest22() throws PcepParseException, PcepOutOfBoundMessageException {
 
         byte[] reportMsg = new byte[]{0x20, 0x0a, 0x00, (byte) 0xA0,
                 0x20, 0x10, 0x00, 0x2c, 0x00, 0x00, 0x10, 0x03, //LSP Object
@@ -957,7 +958,7 @@
      * in PcRpt message.
      */
     @Test
-    public void reportMessageTest23() throws PcepParseException {
+    public void reportMessageTest23() throws PcepParseException, PcepOutOfBoundMessageException {
 
         byte[] reportMsg = new byte[]{0x20, 0x0a, 0x00, (byte) 0x8c,
                 0x20, 0x10, 0x00, 0x2c, 0x00, 0x00, 0x10, 0x03, //LSP Object
@@ -1004,7 +1005,7 @@
      * in PcRpt message.
      */
     @Test
-    public void reportMessageTest24() throws PcepParseException {
+    public void reportMessageTest24() throws PcepParseException, PcepOutOfBoundMessageException {
 
         byte[] reportMsg = new byte[]{0x20, 0x0a, 0x00, (byte) 0x84,
                 0x20, 0x10, 0x00, 0x2c, 0x00, 0x00, 0x10, 0x03, //LSP Object
@@ -1050,7 +1051,7 @@
      * in PcRpt message.
      */
     @Test
-    public void reportMessageTest25() throws PcepParseException {
+    public void reportMessageTest25() throws PcepParseException, PcepOutOfBoundMessageException {
 
         byte[] reportMsg = new byte[]{0x20, 0x0a, 0x00, (byte) 0x8c,
                 0x20, 0x10, 0x00, 0x2c, 0x00, 0x00, 0x10, 0x03, //LSP Object
@@ -1097,7 +1098,7 @@
      * in PcRpt message.
      */
     @Test
-    public void reportMessageTest26() throws PcepParseException {
+    public void reportMessageTest26() throws PcepParseException, PcepOutOfBoundMessageException {
 
         byte[] reportMsg = new byte[]{0x20, 0x0a, 0x00, (byte) 0x58,
                 0x20, 0x10, 0x00, 0x2c, 0x00, 0x00, 0x10, 0x03, //LSP Object
@@ -1138,7 +1139,7 @@
      * in PcRpt message.
      */
     @Test
-    public void reportMessageTest27() throws PcepParseException {
+    public void reportMessageTest27() throws PcepParseException, PcepOutOfBoundMessageException {
 
         byte[] reportMsg = new byte[]{0x20, 0x0a, 0x00, (byte) 0x44,
                 0x20, 0x10, 0x00, 0x2c, 0x00, 0x00, 0x10, 0x03, //LSP Object
@@ -1177,7 +1178,7 @@
      * in PcRpt message.
      */
     @Test
-    public void reportMessageTest28() throws PcepParseException {
+    public void reportMessageTest28() throws PcepParseException, PcepOutOfBoundMessageException {
 
         byte[] reportMsg = new byte[]{0x20, 0x0a, 0x00, (byte) 0x6c,
                 0x20, 0x10, 0x00, 0x2c, 0x00, 0x00, 0x10, 0x03, //LSP Object
@@ -1219,7 +1220,7 @@
      * in PcRpt message.
      */
     @Test
-    public void reportMessageTest29() throws PcepParseException {
+    public void reportMessageTest29() throws PcepParseException, PcepOutOfBoundMessageException {
 
         byte[] reportMsg = new byte[]{0x20, 0x0a, 0x00, (byte) 0x74,
                 0x21, 0x10, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, //SRP Object
@@ -1262,7 +1263,7 @@
      * in PcRpt message.
      */
     @Test
-    public void reportMessageTest30() throws PcepParseException {
+    public void reportMessageTest30() throws PcepParseException, PcepOutOfBoundMessageException {
 
         byte[] reportMsg = new byte[]{0x20, 0x0a, 0x00, (byte) 0xE4,
                 0x21, 0x10, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, //SRP Object
@@ -1319,7 +1320,7 @@
      * in PcRpt message.
      */
     @Test
-    public void reportMessageTest31() throws PcepParseException {
+    public void reportMessageTest31() throws PcepParseException, PcepOutOfBoundMessageException {
 
         byte[] reportMsg = new byte[]{0x20, 0x0a, 0x01, 0x00,
                 0x21, 0x10, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, //SRP Object
@@ -1379,7 +1380,7 @@
      * in PcRpt message.
      */
     @Test
-    public void reportMessageTest32() throws PcepParseException {
+    public void reportMessageTest32() throws PcepParseException, PcepOutOfBoundMessageException {
 
         byte[] reportMsg = new byte[]{0x20, 0x0a, 0x01, (byte) 0x14,
                 0x21, 0x10, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, //SRP Object
@@ -1441,7 +1442,7 @@
      * in PcRpt message.
      */
     @Test
-    public void reportMessageTest33() throws PcepParseException {
+    public void reportMessageTest33() throws PcepParseException, PcepOutOfBoundMessageException {
 
         byte[] reportMsg = new byte[]{0x20, 0x0a, 0x01, (byte) 0x1c,
                 0x21, 0x10, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, //SRP Object
@@ -1504,7 +1505,7 @@
      * in PcRpt message.
      */
     @Test
-    public void reportMessageTest34() throws PcepParseException {
+    public void reportMessageTest34() throws PcepParseException, PcepOutOfBoundMessageException {
 
         byte[] reportMsg = new byte[]{0x20, 0x0a, 0x00, (byte) 0xB4,
                 0x21, 0x10, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, //SRP Object
@@ -1554,7 +1555,7 @@
      * in PcRpt message.
      */
     @Test
-    public void reportMessageTest35() throws PcepParseException {
+    public void reportMessageTest35() throws PcepParseException, PcepOutOfBoundMessageException {
 
         byte[] reportMsg = new byte[]{0x20, 0x0a, 0x00, (byte) 0x8C,
                 0x21, 0x10, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, //SRP Object
diff --git a/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/protocol/PcepTEReportMsgTest.java b/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/protocol/PcepTEReportMsgTest.java
deleted file mode 100644
index e401c15..0000000
--- a/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/protocol/PcepTEReportMsgTest.java
+++ /dev/null
@@ -1,1596 +0,0 @@
-/*
- * Copyright 2014-2015 Open Networking Laboratory
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.onosproject.pcepio.protocol;
-
-import org.jboss.netty.buffer.ChannelBuffer;
-import org.jboss.netty.buffer.ChannelBuffers;
-import org.junit.Test;
-import org.onosproject.pcepio.exceptions.PcepParseException;
-
-import static org.hamcrest.MatcherAssert.assertThat;
-import static org.hamcrest.Matchers.instanceOf;
-import static org.hamcrest.core.Is.is;
-
-public class PcepTEReportMsgTest {
-
-    /**
-     * This test case checks for
-     * TE Object (Routing Universe TLV, Local TE Node Descriptors TLV(AutonomousSystemTlv)).
-     * in PcTERpt message.
-     */
-    @Test
-    public void teReportMessageTest1() throws PcepParseException {
-
-        byte[] teReportMsg = new byte[]{0x20, 0x0E, 0x00, 0x28, // common header
-                0x0E, 0x10, 0x00, 0x24, // TE Object Header
-                0x01, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x10, // TE-ID
-                0x00, 0x0E, 0x00, 0x08, // Routing Universe TLV
-                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
-                0x06, 0x65, 0x00, 0x08, // Local TE Node Descriptors TLV
-                0x00, 0x64, 0x00, 0x04, //AutonomousSystem Tlv
-                0x00, 0x00, 0x00, 0x11};
-
-        ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
-        buffer.writeBytes(teReportMsg);
-
-        PcepMessageReader<PcepMessage> reader = PcepFactories.getGenericReader();
-        PcepMessage message = null;
-
-        message = reader.readFrom(buffer);
-
-        byte[] testReportMsg = {0};
-
-        assertThat(message, instanceOf(PcepTEReportMsg.class));
-        ChannelBuffer buf = ChannelBuffers.dynamicBuffer();
-        message.writeTo(buf);
-
-        int readLen = buf.writerIndex();
-        testReportMsg = new byte[readLen];
-        buf.readBytes(testReportMsg, 0, readLen);
-
-        assertThat(testReportMsg, is(teReportMsg));
-    }
-
-    /**
-     * This test case checks for
-     * T E Object (Routing Universe TLV, Local TE Node Descriptors TLV(AutonomousSystemTlv)) with different TE-ID.
-     * in PcTERpt message.
-     */
-    @Test
-    public void teReportMessageTest2() throws PcepParseException {
-
-        byte[] teReportMsg = new byte[]{0x20, 0x0E, 0x00, 0x28, // common header
-                0x0E, 0x10, 0x00, 0x24, // TE Object Header
-                0x01, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x10, // TE-ID
-                0x00, 0x0E, 0x00, 0x08, // Routing Universe TLV
-                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
-                0x06, 0x65, 0x00, 0x08, // Local TE Node Descriptors TLV
-                0x00, 0x64, 0x00, 0x04, //AutonomousSystemTlv
-                0x00, 0x00, 0x00, 0x11};
-
-        ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
-        buffer.writeBytes(teReportMsg);
-
-        PcepMessageReader<PcepMessage> reader = PcepFactories.getGenericReader();
-        PcepMessage message = null;
-
-        message = reader.readFrom(buffer);
-
-        byte[] testReportMsg = {0};
-        assertThat(message, instanceOf(PcepTEReportMsg.class));
-        ChannelBuffer buf = ChannelBuffers.dynamicBuffer();
-        message.writeTo(buf);
-
-        int readLen = buf.writerIndex();
-        testReportMsg = new byte[readLen];
-        buf.readBytes(testReportMsg, 0, readLen);
-
-        assertThat(testReportMsg, is(teReportMsg));
-    }
-
-    /**
-     * This test case checks for  TE Object (Routing Universe TLV)
-     * in PcTERpt message.
-     */
-    @Test
-    public void teReportMessageTest3() throws PcepParseException {
-
-        byte[] teReportMsg = new byte[]{0x20, 0x0E, 0x00, 0x1c, // common header
-                0x0E, 0x10, 0x00, 0x18, // TE Object Header
-                0x01, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x10, // TE-ID
-                0x00, 0x0E, 0x00, 0x08, // Routing Universe TLV
-                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01};
-
-        ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
-        buffer.writeBytes(teReportMsg);
-
-        PcepMessageReader<PcepMessage> reader = PcepFactories.getGenericReader();
-        PcepMessage message = null;
-
-        message = reader.readFrom(buffer);
-
-        byte[] testReportMsg = {0};
-        assertThat(message, instanceOf(PcepTEReportMsg.class));
-        ChannelBuffer buf = ChannelBuffers.dynamicBuffer();
-        message.writeTo(buf);
-
-        int readLen = buf.writerIndex();
-        testReportMsg = new byte[readLen];
-        buf.readBytes(testReportMsg, 0, readLen);
-
-        assertThat(testReportMsg, is(teReportMsg));
-    }
-
-    /**
-     * This test case checks for
-     * TE Object (Routing Universe TLV,Local TE Node Descriptors TLV(AutonomousSystemTlv, BGPLSidentifierTlv.
-     * OSPFareaIDsubTlv, RouterIDSubTlv)).
-     * in PcTERpt message.
-     */
-    @Test
-    public void teReportMessageTest4() throws PcepParseException {
-
-        byte[] teReportMsg = new byte[]{0x20, 0x0E, 0x00, 0x44, // common header
-                0x0E, 0x10, 0x00, 0x40, // TE Object Header
-                0x01, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x10, // TE-ID
-                0x00, 0x0E, 0x00, 0x08, // Routing Universe TLV
-                0x00, 0x00, 0x00, 0x00,
-                0x00, 0x00, 0x00, 0x01,
-                0x06, 0x65, 0x00, 0x24, // Local TE Node Descriptors TLV
-                0x00, 0x64, 0x00, 0x04, //AutonomousSystemTlv
-                0x00, 0x00, 0x00, 0x11,
-                0x00, 0x11, 0x00, 0x04, //BGPLSidentifierTlv
-                0x00, 0x00, 0x00, 0x11,
-                0x02, 0x58, 0x00, 0x04, //OSPFareaIDsubTlv
-                0x00, 0x00, 0x00, 0x11,
-                0x03, (byte) 0xE8, 0x00, 0x08, //RouterIDSubTlv
-                0x00, 0x00, 0x00, 0x11,
-                0x00, 0x00, 0x00, 0x11};
-
-        ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
-        buffer.writeBytes(teReportMsg);
-
-        PcepMessageReader<PcepMessage> reader = PcepFactories.getGenericReader();
-        PcepMessage message = null;
-
-        message = reader.readFrom(buffer);
-
-        byte[] testReportMsg = {0};
-        assertThat(message, instanceOf(PcepTEReportMsg.class));
-        ChannelBuffer buf = ChannelBuffers.dynamicBuffer();
-        message.writeTo(buf);
-
-        int readLen = buf.writerIndex();
-        testReportMsg = new byte[readLen];
-        buf.readBytes(testReportMsg, 0, readLen);
-
-        assertThat(testReportMsg, is(teReportMsg));
-    }
-
-    /**
-     * This test case checks for
-     * TE Object (Routing Universe TLV,Local TE Node Descriptors TLV(BGPLSidentifierTlv
-     * OSPFareaIDsubTlv, RouterIDSubTlv))
-     * in PcTERpt message.
-     */
-    @Test
-    public void teReportMessageTest5() throws PcepParseException {
-
-        byte[] teReportMsg = new byte[]{0x20, 0x0E, 0x00, 0x3C, // common header
-                0x0E, 0x10, 0x00, 0x38, // TE Object Header
-                0x01, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x10, // TE-ID
-                0x00, 0x0E, 0x00, 0x08, // Routing Universe TLV
-                0x00, 0x00, 0x00, 0x00,
-                0x00, 0x00, 0x00, 0x01,
-                0x06, 0x65, 0x00, 0x1C, // Local TE Node Descriptors TLV
-                0x00, 0x11, 0x00, 0x04, //BGPLSidentifierTlv
-                0x00, 0x00, 0x00, 0x11,
-                0x02, 0x58, 0x00, 0x04, //OSPFareaIDsubTlv
-                0x00, 0x00, 0x00, 0x11,
-                0x03, (byte) 0xE8, 0x00, 0x08, //RouterIDSubTlv
-                0x00, 0x00, 0x00, 0x11,
-                0x00, 0x00, 0x00, 0x11};
-
-        ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
-        buffer.writeBytes(teReportMsg);
-
-        PcepMessageReader<PcepMessage> reader = PcepFactories.getGenericReader();
-        PcepMessage message = null;
-
-        message = reader.readFrom(buffer);
-
-        byte[] testReportMsg = {0};
-        assertThat(message, instanceOf(PcepTEReportMsg.class));
-        ChannelBuffer buf = ChannelBuffers.dynamicBuffer();
-        message.writeTo(buf);
-
-        int readLen = buf.writerIndex();
-        testReportMsg = new byte[readLen];
-        buf.readBytes(testReportMsg, 0, readLen);
-
-        assertThat(testReportMsg, is(teReportMsg));
-    }
-
-    /**
-     * This test case checks for TE Object (Routing Universe TLV,Local TE Node Descriptors TLV(OSPFareaIDsubTlv,
-     * RouterIDSubTlv))
-     * in PcTERpt message.
-     */
-    @Test
-    public void teReportMessageTest6() throws PcepParseException {
-
-        byte[] teReportMsg = new byte[]{0x20, 0x0E, 0x00, 0x34, // common header
-                0x0E, 0x10, 0x00, 0x30, // TE Object Header
-                0x01, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x10, // TE-ID
-                0x00, 0x0E, 0x00, 0x08, // Routing Universe TLV
-                0x00, 0x00, 0x00, 0x00,
-                0x00, 0x00, 0x00, 0x01,
-                0x06, 0x65, 0x00, 0x14, // Local TE Node Descriptors TLV
-                0x02, 0x58, 0x00, 0x04, //OSPFareaIDsubTlv
-                0x00, 0x00, 0x00, 0x11,
-                0x03, (byte) 0xE8, 0x00, 0x08, //RouterIDSubTlv
-                0x00, 0x00, 0x00, 0x11,
-                0x00, 0x00, 0x00, 0x11};
-
-        ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
-        buffer.writeBytes(teReportMsg);
-
-        PcepMessageReader<PcepMessage> reader = PcepFactories.getGenericReader();
-        PcepMessage message = null;
-
-        message = reader.readFrom(buffer);
-
-        byte[] testReportMsg = {0};
-        assertThat(message, instanceOf(PcepTEReportMsg.class));
-        ChannelBuffer buf = ChannelBuffers.dynamicBuffer();
-        message.writeTo(buf);
-
-        int readLen = buf.writerIndex();
-        testReportMsg = new byte[readLen];
-        buf.readBytes(testReportMsg, 0, readLen);
-
-        assertThat(testReportMsg, is(teReportMsg));
-    }
-
-    /**
-     * This test case checks for TE Object (Routing Universe TLV,Local TE Node Descriptors TLV(RouterIDSubTlv)).
-     * in PcTERpt message.
-     */
-    @Test
-    public void teReportMessageTest7() throws PcepParseException {
-
-        byte[] teReportMsg = new byte[]{0x20, 0x0E, 0x00, 0x2C, // common header
-                0x0E, 0x10, 0x00, 0x28, // TE Object Header
-                0x01, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x10, // TE-ID
-                0x00, 0x0E, 0x00, 0x08, // Routing Universe TLV
-                0x00, 0x00, 0x00, 0x00,
-                0x00, 0x00, 0x00, 0x01,
-                0x06, 0x65, 0x00, 0x0C, // Local TE Node Descriptors TLV
-                0x03, (byte) 0xE8, 0x00, 0x08, //RouterIDSubTlv
-                0x00, 0x00, 0x00, 0x11,
-                0x00, 0x00, 0x00, 0x11};
-
-        ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
-        buffer.writeBytes(teReportMsg);
-
-        PcepMessageReader<PcepMessage> reader = PcepFactories.getGenericReader();
-        PcepMessage message = null;
-
-        message = reader.readFrom(buffer);
-
-        byte[] testReportMsg = {0};
-        assertThat(message, instanceOf(PcepTEReportMsg.class));
-        ChannelBuffer buf = ChannelBuffers.dynamicBuffer();
-        message.writeTo(buf);
-
-        int readLen = buf.writerIndex();
-        testReportMsg = new byte[readLen];
-        buf.readBytes(testReportMsg, 0, readLen);
-
-        assertThat(testReportMsg, is(teReportMsg));
-    }
-
-    /**
-     * This test case checks for TE Object (Routing Universe TLV,Local TE Node Descriptors TLV)
-     * in PcTERpt message.
-     */
-    @Test
-    public void teReportMessageTest8() throws PcepParseException {
-
-        byte[] teReportMsg = new byte[]{0x20, 0x0E, 0x00, 0x20, // common header
-                0x0E, 0x10, 0x00, 0x1C, // TE Object Header
-                0x01, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x10, // TE-ID
-                0x00, 0x0E, 0x00, 0x08, // Routing Universe TLV
-                0x00, 0x00, 0x00, 0x00,
-                0x00, 0x00, 0x00, 0x01,
-                0x06, 0x65, 0x00, 0x00 // Local TE Node Descriptors TLV
-        };
-
-        ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
-        buffer.writeBytes(teReportMsg);
-
-        PcepMessageReader<PcepMessage> reader = PcepFactories.getGenericReader();
-        PcepMessage message = null;
-
-        message = reader.readFrom(buffer);
-
-        byte[] testReportMsg = {0};
-        assertThat(message, instanceOf(PcepTEReportMsg.class));
-        ChannelBuffer buf = ChannelBuffers.dynamicBuffer();
-        message.writeTo(buf);
-
-        int readLen = buf.writerIndex();
-        testReportMsg = new byte[readLen];
-        buf.readBytes(testReportMsg, 0, readLen);
-
-        assertThat(testReportMsg, is(teReportMsg));
-    }
-
-    /**
-     * This test case checks for
-     * TE Object (Routing Universe TLV,Local TE Node Descriptors TLV(AutonomousSystemTlv, BGPLSidentifierTlv.
-     * OSPFareaIDsubTlv, RouterIDSubTlv), RemoteTENodeDescriptorsTLV(AutonomousSystemTlv, BGPLSidentifierTlv.
-     * OSPFareaIDsubTlv, RouterIDSubTlv)).
-     * in PcTERpt message.
-     */
-    @Test
-    public void teReportMessageTest9() throws PcepParseException {
-
-        byte[] teReportMsg = new byte[]{0x20, 0x0E, 0x00, 0x6C, // common header
-                0x0E, 0x10, 0x00, 0x68, // TE Object Header
-                0x01, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x10, // TE-ID
-                0x00, 0x0E, 0x00, 0x08, // Routing Universe TLV
-                0x00, 0x00, 0x00, 0x00,
-                0x00, 0x00, 0x00, 0x01,
-                0x06, 0x65, 0x00, 0x24, // Local TE Node Descriptors TLV
-                0x00, 0x64, 0x00, 0x04, //AutonomousSystemTlv
-                0x00, 0x00, 0x00, 0x11,
-                0x00, 0x11, 0x00, 0x04, //BGPLSidentifierTlv
-                0x00, 0x00, 0x00, 0x11,
-                0x02, 0x58, 0x00, 0x04, //OSPFareaIDsubTlv
-                0x00, 0x00, 0x00, 0x11,
-                0x03, (byte) 0xE8, 0x00, 0x08, //RouterIDSubTlv
-                0x00, 0x00, 0x00, 0x11,
-                0x00, 0x00, 0x00, 0x11,
-                0x03, (byte) 0xEB, 0x00, 0x24, //RemoteTENodeDescriptorsTLV
-                0x00, 0x64, 0x00, 0x04, //AutonomousSystemTlv
-                0x00, 0x00, 0x00, 0x11,
-                0x00, 0x11, 0x00, 0x04, //BGPLSidentifierTlv
-                0x00, 0x00, 0x00, 0x11,
-                0x02, 0x58, 0x00, 0x04, //OSPFareaIDsubTlv
-                0x00, 0x00, 0x00, 0x11,
-                0x03, (byte) 0xE8, 0x00, 0x08, //RouterIDSubTlv
-                0x00, 0x00, 0x00, 0x11,
-                0x00, 0x00, 0x00, 0x11
-        };
-
-        ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
-        buffer.writeBytes(teReportMsg);
-
-        PcepMessageReader<PcepMessage> reader = PcepFactories.getGenericReader();
-        PcepMessage message = null;
-
-        message = reader.readFrom(buffer);
-
-        byte[] testReportMsg = {0};
-        assertThat(message, instanceOf(PcepTEReportMsg.class));
-        ChannelBuffer buf = ChannelBuffers.dynamicBuffer();
-        message.writeTo(buf);
-
-        int readLen = buf.writerIndex();
-        testReportMsg = new byte[readLen];
-        buf.readBytes(testReportMsg, 0, readLen);
-
-        assertThat(testReportMsg, is(teReportMsg));
-    }
-
-    /**
-     * This test case checks for
-     * TE Object (Routing Universe TLV,Local TE Node Descriptors TLV(AutonomousSystemTlv, BGPLSidentifierTlv
-     * OSPFareaIDsubTlv, RouterIDSubTlv), RemoteTENodeDescriptorsTLV(BGPLSidentifierTlv
-     * OSPFareaIDsubTlv, RouterIDSubTlv))
-     * in PcTERpt message.
-     */
-    @Test
-    public void teReportMessageTest10() throws PcepParseException {
-
-        byte[] teReportMsg = new byte[]{0x20, 0x0E, 0x00, 0x64, // common header
-                0x0E, 0x10, 0x00, 0x60, // TE Object Header
-                0x01, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x10, // TE-ID
-                0x00, 0x0E, 0x00, 0x08, // Routing Universe TLV
-                0x00, 0x00, 0x00, 0x00,
-                0x00, 0x00, 0x00, 0x01,
-                0x06, 0x65, 0x00, 0x24, // Local TE Node Descriptors TLV
-                0x00, 0x64, 0x00, 0x04, //AutonomousSystemTlv
-                0x00, 0x00, 0x00, 0x11,
-                0x00, 0x11, 0x00, 0x04, //BGPLSidentifierTlv
-                0x00, 0x00, 0x00, 0x11,
-                0x02, 0x58, 0x00, 0x04, //OSPFareaIDsubTlv
-                0x00, 0x00, 0x00, 0x11,
-                0x03, (byte) 0xE8, 0x00, 0x08, //RouterIDSubTlv
-                0x00, 0x00, 0x00, 0x11,
-                0x00, 0x00, 0x00, 0x11,
-                0x03, (byte) 0xEB, 0x00, 0x1C, //RemoteTENodeDescriptorsTLV
-                0x00, 0x11, 0x00, 0x04, //BGPLSidentifierTlv
-                0x00, 0x00, 0x00, 0x11,
-                0x02, 0x58, 0x00, 0x04, //OSPFareaIDsubTlv
-                0x00, 0x00, 0x00, 0x11,
-                0x03, (byte) 0xE8, 0x00, 0x08, //RouterIDSubTlv
-                0x00, 0x00, 0x00, 0x11,
-                0x00, 0x00, 0x00, 0x11
-        };
-
-        ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
-        buffer.writeBytes(teReportMsg);
-
-        PcepMessageReader<PcepMessage> reader = PcepFactories.getGenericReader();
-        PcepMessage message = null;
-
-        message = reader.readFrom(buffer);
-
-        byte[] testReportMsg = {0};
-        assertThat(message, instanceOf(PcepTEReportMsg.class));
-        ChannelBuffer buf = ChannelBuffers.dynamicBuffer();
-        message.writeTo(buf);
-
-        int readLen = buf.writerIndex();
-        testReportMsg = new byte[readLen];
-        buf.readBytes(testReportMsg, 0, readLen);
-
-        assertThat(testReportMsg, is(teReportMsg));
-    }
-
-    /**
-     * This test case checks for
-     * TE Object (Routing Universe TLV,Local TE Node Descriptors TLV(AutonomousSystemTlv, BGPLSidentifierTlv
-     * OSPFareaIDsubTlv, RouterIDSubTlv), RemoteTENodeDescriptorsTLV(OSPFareaIDsubTlv, RouterIDSubTlv))
-     * in PcTERpt message.
-     */
-    @Test
-    public void teReportMessageTest11() throws PcepParseException {
-
-        byte[] teReportMsg = new byte[]{0x20, 0x0E, 0x00, 0x5C, // common header
-                0x0E, 0x10, 0x00, 0x58, // TE Object Header
-                0x01, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x10, // TE-ID
-                0x00, 0x0E, 0x00, 0x08, // Routing Universe TLV
-                0x00, 0x00, 0x00, 0x00,
-                0x00, 0x00, 0x00, 0x01,
-                0x06, 0x65, 0x00, 0x24, // Local TE Node Descriptors TLV
-                0x00, 0x64, 0x00, 0x04, //AutonomousSystemTlv
-                0x00, 0x00, 0x00, 0x11,
-                0x00, 0x11, 0x00, 0x04, //BGPLSidentifierTlv
-                0x00, 0x00, 0x00, 0x11,
-                0x02, 0x58, 0x00, 0x04, //OSPFareaIDsubTlv
-                0x00, 0x00, 0x00, 0x11,
-                0x03, (byte) 0xE8, 0x00, 0x08, //RouterIDSubTlv
-                0x00, 0x00, 0x00, 0x11,
-                0x00, 0x00, 0x00, 0x11,
-                0x03, (byte) 0xEB, 0x00, 0x14, //RemoteTENodeDescriptorsTLV
-                0x02, 0x58, 0x00, 0x04, //OSPFareaIDsubTlv
-                0x00, 0x00, 0x00, 0x11,
-                0x03, (byte) 0xE8, 0x00, 0x08, //RouterIDSubTlv
-                0x00, 0x00, 0x00, 0x11,
-                0x00, 0x00, 0x00, 0x11
-        };
-
-        ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
-        buffer.writeBytes(teReportMsg);
-
-        PcepMessageReader<PcepMessage> reader = PcepFactories.getGenericReader();
-        PcepMessage message = null;
-
-        message = reader.readFrom(buffer);
-
-        byte[] testReportMsg = {0};
-        assertThat(message, instanceOf(PcepTEReportMsg.class));
-        ChannelBuffer buf = ChannelBuffers.dynamicBuffer();
-        message.writeTo(buf);
-
-        int readLen = buf.writerIndex();
-        testReportMsg = new byte[readLen];
-        buf.readBytes(testReportMsg, 0, readLen);
-
-        assertThat(testReportMsg, is(teReportMsg));
-    }
-
-    /**
-     * This test case checks for
-     * TE Object (Routing Universe TLV,Local TE Node Descriptors TLV(AutonomousSystemTlv, BGPLSidentifierTlv
-     * OSPFareaIDsubTlv, RouterIDSubTlv), RemoteTENodeDescriptorsTLV(RouterIDSubTlv))
-     * in PcTERpt message.
-     */
-    @Test
-    public void teReportMessageTest12() throws PcepParseException {
-
-        byte[] teReportMsg = new byte[]{0x20, 0x0E, 0x00, 0x54, // common header
-                0x0E, 0x10, 0x00, 0x50, // TE Object Header
-                0x01, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x10, // TE-ID
-                0x00, 0x0E, 0x00, 0x08, // Routing Universe TLV
-                0x00, 0x00, 0x00, 0x00,
-                0x00, 0x00, 0x00, 0x01,
-                0x06, 0x65, 0x00, 0x24, // Local TE Node Descriptors TLV
-                0x00, 0x64, 0x00, 0x04, //AutonomousSystemTlv
-                0x00, 0x00, 0x00, 0x11,
-                0x00, 0x11, 0x00, 0x04, //BGPLSidentifierTlv
-                0x00, 0x00, 0x00, 0x11,
-                0x02, 0x58, 0x00, 0x04, //OSPFareaIDsubTlv
-                0x00, 0x00, 0x00, 0x11,
-                0x03, (byte) 0xE8, 0x00, 0x08, //RouterIDSubTlv
-                0x00, 0x00, 0x00, 0x11,
-                0x00, 0x00, 0x00, 0x11,
-                0x03, (byte) 0xEB, 0x00, 0x0c, //RemoteTENodeDescriptorsTLV
-                0x03, (byte) 0xE8, 0x00, 0x08, //RouterIDSubTlv
-                0x00, 0x00, 0x00, 0x11,
-                0x00, 0x00, 0x00, 0x11
-        };
-
-        ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
-        buffer.writeBytes(teReportMsg);
-
-        PcepMessageReader<PcepMessage> reader = PcepFactories.getGenericReader();
-        PcepMessage message = null;
-
-        message = reader.readFrom(buffer);
-
-        byte[] testReportMsg = {0};
-        assertThat(message, instanceOf(PcepTEReportMsg.class));
-        ChannelBuffer buf = ChannelBuffers.dynamicBuffer();
-        message.writeTo(buf);
-
-        int readLen = buf.writerIndex();
-        testReportMsg = new byte[readLen];
-        buf.readBytes(testReportMsg, 0, readLen);
-
-        assertThat(testReportMsg, is(teReportMsg));
-    }
-
-    /**
-     * This test case checks for
-     * TE Object (Routing Universe TLV,Local TE Node Descriptors TLV(AutonomousSystemTlv, BGPLSidentifierTlv
-     * OSPFareaIDsubTlv, RouterIDSubTlv), RemoteTENodeDescriptorsTLV)
-     * in PcTERpt message.
-     */
-    @Test
-    public void teReportMessageTest13() throws PcepParseException {
-
-        byte[] teReportMsg = new byte[]{0x20, 0x0E, 0x00, 0x48, // common header
-                0x0E, 0x10, 0x00, 0x44, // TE Object Header
-                0x01, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x10, // TE-ID
-                0x00, 0x0E, 0x00, 0x08, // Routing Universe TLV
-                0x00, 0x00, 0x00, 0x00,
-                0x00, 0x00, 0x00, 0x01,
-                0x06, 0x65, 0x00, 0x24, // Local TE Node Descriptors TLV
-                0x00, 0x64, 0x00, 0x04, //AutonomousSystemTlv
-                0x00, 0x00, 0x00, 0x11,
-                0x00, 0x11, 0x00, 0x04, //BGPLSidentifierTlv
-                0x00, 0x00, 0x00, 0x11,
-                0x02, 0x58, 0x00, 0x04, //OSPFareaIDsubTlv
-                0x00, 0x00, 0x00, 0x11,
-                0x03, (byte) 0xE8, 0x00, 0x08, //RouterIDSubTlv
-                0x00, 0x00, 0x00, 0x11,
-                0x00, 0x00, 0x00, 0x11,
-                0x03, (byte) 0xEB, 0x00, 0x00, //RemoteTENodeDescriptorsTLV
-        };
-
-        ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
-        buffer.writeBytes(teReportMsg);
-
-        PcepMessageReader<PcepMessage> reader = PcepFactories.getGenericReader();
-        PcepMessage message = null;
-
-        message = reader.readFrom(buffer);
-
-        byte[] testReportMsg = {0};
-        assertThat(message, instanceOf(PcepTEReportMsg.class));
-        ChannelBuffer buf = ChannelBuffers.dynamicBuffer();
-        message.writeTo(buf);
-
-        int readLen = buf.writerIndex();
-        testReportMsg = new byte[readLen];
-        buf.readBytes(testReportMsg, 0, readLen);
-
-        assertThat(testReportMsg, is(teReportMsg));
-    }
-
-    /**
-     * This test case checks for
-     * TE Object (Routing Universe TLV,Local TE Node Descriptors TLV(AutonomousSystemTlv, BGPLSidentifierTlv
-     * OSPFareaIDsubTlv, RouterIDSubTlv), RemoteTENodeDescriptorsTLV(AutonomousSystemTlv, BGPLSidentifierTlv
-     * OSPFareaIDsubTlv, RouterIDSubTlv), TELinkDescriptorsTLV(LinkLocalRemoteIdentifiersTlv
-     * IPv4InterfaceAddressTlv, IPv4NeighborAddressTlv))
-     * in PcTERpt message.
-     */
-    @Test
-    public void teReportMessageTest14() throws PcepParseException {
-
-        byte[] teReportMsg = new byte[]{0x20, 0x0E, 0x00, (byte) 0x8C, // common header
-                0x0E, 0x10, 0x00, (byte) 0x88, // TE Object Header
-                0x01, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x10, // TE-ID
-                0x00, 0x0E, 0x00, 0x08, // Routing Universe TLV
-                0x00, 0x00, 0x00, 0x00,
-                0x00, 0x00, 0x00, 0x01,
-                0x06, 0x65, 0x00, 0x24, // Local TE Node Descriptors TLV
-                0x00, 0x64, 0x00, 0x04, //AutonomousSystemTlv
-                0x00, 0x00, 0x00, 0x11,
-                0x00, 0x11, 0x00, 0x04, //BGPLSidentifierTlv
-                0x00, 0x00, 0x00, 0x11,
-                0x02, 0x58, 0x00, 0x04, //OSPFareaIDsubTlv
-                0x00, 0x00, 0x00, 0x11,
-                0x03, (byte) 0xE8, 0x00, 0x08, //RouterIDSubTlv
-                0x00, 0x00, 0x00, 0x11,
-                0x00, 0x00, 0x00, 0x11,
-                0x03, (byte) 0xEB, 0x00, 0x24, //RemoteTENodeDescriptorsTLV
-                0x00, 0x64, 0x00, 0x04, //AutonomousSystemTlv
-                0x00, 0x00, 0x00, 0x11,
-                0x00, 0x11, 0x00, 0x04, //BGPLSidentifierTlv
-                0x00, 0x00, 0x00, 0x11,
-                0x02, 0x58, 0x00, 0x04, //OSPFareaIDsubTlv
-                0x00, 0x00, 0x00, 0x11,
-                0x03, (byte) 0xE8, 0x00, 0x08, //RouterIDSubTlv
-                0x00, 0x00, 0x00, 0x11,
-                0x00, 0x00, 0x00, 0x11,
-                0x04, 0x2E, 0x00, 0x1C, //TELinkDescriptorsTLV
-                0x00, 0x04, 0x00, 0x08, //LinkLocalRemoteIdentifiersTlv
-                0x01, 0x11, 0x00, 0x09,
-                0x01, 0x21, 0x00, 0x09,
-                0x00, 0x06, 0x00, 0x04, //IPv4InterfaceAddressTlv
-                0x01, 0x01, 0x01, 0x01,
-                0x00, 0x08, 0x00, 0x04, //IPv4NeighborAddressTlv
-                0x01, 0x011, 0x01, 0x10
-        };
-
-        ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
-        buffer.writeBytes(teReportMsg);
-
-        PcepMessageReader<PcepMessage> reader = PcepFactories.getGenericReader();
-        PcepMessage message = null;
-
-        message = reader.readFrom(buffer);
-
-        byte[] testReportMsg = {0};
-        assertThat(message, instanceOf(PcepTEReportMsg.class));
-        ChannelBuffer buf = ChannelBuffers.dynamicBuffer();
-        message.writeTo(buf);
-
-        int readLen = buf.writerIndex();
-        testReportMsg = new byte[readLen];
-        buf.readBytes(testReportMsg, 0, readLen);
-
-        assertThat(testReportMsg, is(teReportMsg));
-    }
-
-    /**
-     * This test case checks for
-     * TE Object (Routing Universe TLV,Local TE Node Descriptors TLV(AutonomousSystemTlv, BGPLSidentifierTlv
-     * OSPFareaIDsubTlv, RouterIDSubTlv), RemoteTENodeDescriptorsTLV(AutonomousSystemTlv, BGPLSidentifierTlv
-     * OSPFareaIDsubTlv, RouterIDSubTlv), TELinkDescriptorsTLV(
-     * IPv4InterfaceAddressTlv, IPv4NeighborAddressTlv))
-     * in PcTERpt message.
-     */
-    @Test
-    public void teReportMessageTest15() throws PcepParseException {
-
-        byte[] teReportMsg = new byte[]{0x20, 0x0E, 0x00, (byte) 0x80, // common header
-                0x0E, 0x10, 0x00, (byte) 0x7C, // TE Object Header
-                0x01, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x10, // TE-ID
-                0x00, 0x0E, 0x00, 0x08, // Routing Universe TLV
-                0x00, 0x00, 0x00, 0x00,
-                0x00, 0x00, 0x00, 0x01,
-                0x06, 0x65, 0x00, 0x24, // Local TE Node Descriptors TLV
-                0x00, 0x64, 0x00, 0x04, //AutonomousSystemTlv
-                0x00, 0x00, 0x00, 0x11,
-                0x00, 0x11, 0x00, 0x04, //BGPLSidentifierTlv
-                0x00, 0x00, 0x00, 0x11,
-                0x02, 0x58, 0x00, 0x04, //OSPFareaIDsubTlv
-                0x00, 0x00, 0x00, 0x11,
-                0x03, (byte) 0xE8, 0x00, 0x08, //RouterIDSubTlv
-                0x00, 0x00, 0x00, 0x11,
-                0x00, 0x00, 0x00, 0x11,
-                0x03, (byte) 0xEB, 0x00, 0x24, //RemoteTENodeDescriptorsTLV
-                0x00, 0x64, 0x00, 0x04, //AutonomousSystemTlv
-                0x00, 0x00, 0x00, 0x11,
-                0x00, 0x11, 0x00, 0x04, //BGPLSidentifierTlv
-                0x00, 0x00, 0x00, 0x11,
-                0x02, 0x58, 0x00, 0x04, //OSPFareaIDsubTlv
-                0x00, 0x00, 0x00, 0x11,
-                0x03, (byte) 0xE8, 0x00, 0x08, //RouterIDSubTlv
-                0x00, 0x00, 0x00, 0x11,
-                0x00, 0x00, 0x00, 0x11,
-                0x04, 0x2E, 0x00, 0x10, //TELinkDescriptorsTLV
-                0x00, 0x06, 0x00, 0x04, //IPv4InterfaceAddressTlv
-                0x01, 0x01, 0x01, 0x01,
-                0x00, 0x08, 0x00, 0x04, //IPv4NeighborAddressTlv
-                0x01, 0x011, 0x01, 0x10
-        };
-
-        ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
-        buffer.writeBytes(teReportMsg);
-
-        PcepMessageReader<PcepMessage> reader = PcepFactories.getGenericReader();
-        PcepMessage message = null;
-
-        message = reader.readFrom(buffer);
-
-        byte[] testReportMsg = {0};
-        assertThat(message, instanceOf(PcepTEReportMsg.class));
-        ChannelBuffer buf = ChannelBuffers.dynamicBuffer();
-        message.writeTo(buf);
-
-        int readLen = buf.writerIndex();
-        testReportMsg = new byte[readLen];
-        buf.readBytes(testReportMsg, 0, readLen);
-
-        assertThat(testReportMsg, is(teReportMsg));
-    }
-
-    /**
-     * This test case checks for
-     * TE Object (Routing Universe TLV,Local TE Node Descriptors TLV(AutonomousSystemTlv, BGPLSidentifierTlv
-     * OSPFareaIDsubTlv, RouterIDSubTlv), RemoteTENodeDescriptorsTLV(AutonomousSystemTlv, BGPLSidentifierTlv
-     * OSPFareaIDsubTlv, RouterIDSubTlv), TELinkDescriptorsTLV(IPv4NeighborAddressTlv))
-     * in PcTERpt message.
-     */
-    @Test
-    public void teReportMessageTest16() throws PcepParseException {
-
-        byte[] teReportMsg = new byte[]{0x20, 0x0E, 0x00, (byte) 0x78, // common header
-                0x0E, 0x10, 0x00, (byte) 0x74, // TE Object Header
-                0x01, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x10, // TE-ID
-                0x00, 0x0E, 0x00, 0x08, // Routing Universe TLV
-                0x00, 0x00, 0x00, 0x00,
-                0x00, 0x00, 0x00, 0x01,
-                0x06, 0x65, 0x00, 0x24, // Local TE Node Descriptors TLV
-                0x00, 0x64, 0x00, 0x04, //AutonomousSystemTlv
-                0x00, 0x00, 0x00, 0x11,
-                0x00, 0x11, 0x00, 0x04, //BGPLSidentifierTlv
-                0x00, 0x00, 0x00, 0x11,
-                0x02, 0x58, 0x00, 0x04, //OSPFareaIDsubTlv
-                0x00, 0x00, 0x00, 0x11,
-                0x03, (byte) 0xE8, 0x00, 0x08, //RouterIDSubTlv
-                0x00, 0x00, 0x00, 0x11,
-                0x00, 0x00, 0x00, 0x11,
-                0x03, (byte) 0xEB, 0x00, 0x24, //RemoteTENodeDescriptorsTLV
-                0x00, 0x64, 0x00, 0x04, //AutonomousSystemTlv
-                0x00, 0x00, 0x00, 0x11,
-                0x00, 0x11, 0x00, 0x04, //BGPLSidentifierTlv
-                0x00, 0x00, 0x00, 0x11,
-                0x02, 0x58, 0x00, 0x04, //OSPFareaIDsubTlv
-                0x00, 0x00, 0x00, 0x11,
-                0x03, (byte) 0xE8, 0x00, 0x08, //RouterIDSubTlv
-                0x00, 0x00, 0x00, 0x11,
-                0x00, 0x00, 0x00, 0x11,
-                0x04, 0x2E, 0x00, 0x08, //TELinkDescriptorsTLV
-                0x00, 0x08, 0x00, 0x04, //IPv4NeighborAddressTlv
-                0x01, 0x011, 0x01, 0x10
-        };
-
-        ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
-        buffer.writeBytes(teReportMsg);
-
-        PcepMessageReader<PcepMessage> reader = PcepFactories.getGenericReader();
-        PcepMessage message = null;
-
-        message = reader.readFrom(buffer);
-
-        byte[] testReportMsg = {0};
-        assertThat(message, instanceOf(PcepTEReportMsg.class));
-        ChannelBuffer buf = ChannelBuffers.dynamicBuffer();
-        message.writeTo(buf);
-
-        int readLen = buf.writerIndex();
-        testReportMsg = new byte[readLen];
-        buf.readBytes(testReportMsg, 0, readLen);
-
-        assertThat(testReportMsg, is(teReportMsg));
-    }
-
-    /**
-     * This test case checks for
-     * TE Object (Routing Universe TLV,Local TE Node Descriptors TLV(AutonomousSystemTlv, BGPLSidentifierTlv
-     * OSPFareaIDsubTlv, RouterIDSubTlv), RemoteTENodeDescriptorsTLV(AutonomousSystemTlv, BGPLSidentifierTlv
-     * OSPFareaIDsubTlv, RouterIDSubTlv), TELinkDescriptorsTLV)
-     * in PcTERpt message.
-     */
-    @Test
-    public void teReportMessageTest17() throws PcepParseException {
-
-        byte[] teReportMsg = new byte[]{0x20, 0x0E, 0x00, (byte) 0x70, // common header
-                0x0E, 0x10, 0x00, (byte) 0x6C, // TE Object Header
-                0x01, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x10, // TE-ID
-                0x00, 0x0E, 0x00, 0x08, // Routing Universe TLV
-                0x00, 0x00, 0x00, 0x00,
-                0x00, 0x00, 0x00, 0x01,
-                0x06, 0x65, 0x00, 0x24, // Local TE Node Descriptors TLV
-                0x00, 0x64, 0x00, 0x04, //AutonomousSystemTlv
-                0x00, 0x00, 0x00, 0x11,
-                0x00, 0x11, 0x00, 0x04, //BGPLSidentifierTlv
-                0x00, 0x00, 0x00, 0x11,
-                0x02, 0x58, 0x00, 0x04, //OSPFareaIDsubTlv
-                0x00, 0x00, 0x00, 0x11,
-                0x03, (byte) 0xE8, 0x00, 0x08, //RouterIDSubTlv
-                0x00, 0x00, 0x00, 0x11,
-                0x00, 0x00, 0x00, 0x11,
-                0x03, (byte) 0xEB, 0x00, 0x24, //RemoteTENodeDescriptorsTLV
-                0x00, 0x64, 0x00, 0x04, //AutonomousSystemTlv
-                0x00, 0x00, 0x00, 0x11,
-                0x00, 0x11, 0x00, 0x04, //BGPLSidentifierTlv
-                0x00, 0x00, 0x00, 0x11,
-                0x02, 0x58, 0x00, 0x04, //OSPFareaIDsubTlv
-                0x00, 0x00, 0x00, 0x11,
-                0x03, (byte) 0xE8, 0x00, 0x08, //RouterIDSubTlv
-                0x00, 0x00, 0x00, 0x11,
-                0x00, 0x00, 0x00, 0x11,
-                0x04, 0x2E, 0x00, 0x00, //TELinkDescriptorsTLV
-        };
-
-        ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
-        buffer.writeBytes(teReportMsg);
-
-        PcepMessageReader<PcepMessage> reader = PcepFactories.getGenericReader();
-        PcepMessage message = null;
-
-        message = reader.readFrom(buffer);
-
-        byte[] testReportMsg = {0};
-        assertThat(message, instanceOf(PcepTEReportMsg.class));
-        ChannelBuffer buf = ChannelBuffers.dynamicBuffer();
-        message.writeTo(buf);
-
-        int readLen = buf.writerIndex();
-        testReportMsg = new byte[readLen];
-        buf.readBytes(testReportMsg, 0, readLen);
-
-        assertThat(testReportMsg, is(teReportMsg));
-    }
-
-    /**
-     * This test case checks for
-     * TE Object (Routing Universe TLV,Local TE Node Descriptors TLV(AutonomousSystemTlv, BGPLSidentifierTlv
-     * OSPFareaIDsubTlv, RouterIDSubTlv), RemoteTENodeDescriptorsTLV(AutonomousSystemTlv, BGPLSidentifierTlv
-     * OSPFareaIDsubTlv, RouterIDSubTlv), TELinkDescriptorsTLV(LinkLocalRemoteIdentifiersTlv
-     * IPv4InterfaceAddressTlv, IPv4NeighborAddressTlv))
-     * in PcTERpt message.
-     */
-    @Test
-    public void teReportMessageTest18() throws PcepParseException {
-
-        byte[] teReportMsg = new byte[]{0x20, 0x0E, 0x00, (byte) 0xC0, // common header
-                0x0E, 0x10, 0x00, (byte) 0xbC, // TE Object Header
-                0x01, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x10, // TE-ID
-                0x00, 0x0E, 0x00, 0x08, // Routing Universe TLV
-                0x00, 0x00, 0x00, 0x00,
-                0x00, 0x00, 0x00, 0x01,
-                0x06, 0x65, 0x00, 0x24, // Local TE Node Descriptors TLV
-                0x00, 0x64, 0x00, 0x04, //AutonomousSystemTlv
-                0x00, 0x00, 0x00, 0x11,
-                0x00, 0x11, 0x00, 0x04, //BGPLSidentifierTlv
-                0x00, 0x00, 0x00, 0x11,
-                0x02, 0x58, 0x00, 0x04, //OSPFareaIDsubTlv
-                0x00, 0x00, 0x00, 0x11,
-                0x03, (byte) 0xE8, 0x00, 0x08, //RouterIDSubTlv
-                0x00, 0x00, 0x00, 0x11,
-                0x00, 0x00, 0x00, 0x11,
-                0x03, (byte) 0xEB, 0x00, 0x24, //RemoteTENodeDescriptorsTLV
-                0x00, 0x64, 0x00, 0x04, //AutonomousSystemTlv
-                0x00, 0x00, 0x00, 0x11,
-                0x00, 0x11, 0x00, 0x04, //BGPLSidentifierTlv
-                0x00, 0x00, 0x00, 0x11,
-                0x02, 0x58, 0x00, 0x04, //OSPFareaIDsubTlv
-                0x00, 0x00, 0x00, 0x11,
-                0x03, (byte) 0xE8, 0x00, 0x08, //RouterIDSubTlv
-                0x00, 0x00, 0x00, 0x11,
-                0x00, 0x00, 0x00, 0x11,
-                0x04, 0x2E, 0x00, 0x1C, //TELinkDescriptorsTLV
-                0x00, 0x04, 0x00, 0x08, //LinkLocalRemoteIdentifiersTlv
-                0x01, 0x11, 0x00, 0x09,
-                0x01, 0x21, 0x00, 0x09,
-                0x00, 0x06, 0x00, 0x04, //IPv4InterfaceAddressTlv
-                0x01, 0x01, 0x01, 0x01,
-                0x00, 0x08, 0x00, 0x04, //IPv4NeighborAddressTlv
-                0x01, 0x011, 0x01, 0x10,
-                0x04, (byte) 0xF3, 0x00, 0x30, //TENodeAttributesTlv
-                0x00, 0x0E, 0x00, 0x01, //NodeFlagBitsTlv
-                (byte) 0x90, 0x00, 0x00, 0x00,
-                0x03, (byte) 0xE9, 0x00, 0x04, //OpaqueNodeAttributeTlv
-                0x01, 0x011, 0x01, 0x10,
-                0x03, (byte) 0xEF, 0x00, 0x08, //NodeNameTlv
-                0x08, 0x00, 0x01, 0x09,
-                0x08, 0x00, 0x01, 0x09,
-                0x00, 0x6B, 0x00, 0x08, //ISISAreaIdentifierTlv
-                0x20, 0x01, 0x22, 0x01,
-                0x20, 0x01, 0x22, 0x01,
-                0x00, (byte) 0x86, 0x00, 0x04, //IPv4TERouterIdOfLocalNodeTlv
-                0x00, 0x01, 0x01, 0x02
-        };
-
-        ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
-        buffer.writeBytes(teReportMsg);
-
-        PcepMessageReader<PcepMessage> reader = PcepFactories.getGenericReader();
-        PcepMessage message = null;
-
-        message = reader.readFrom(buffer);
-
-        byte[] testReportMsg = {0};
-        assertThat(message, instanceOf(PcepTEReportMsg.class));
-        ChannelBuffer buf = ChannelBuffers.dynamicBuffer();
-        message.writeTo(buf);
-
-        int readLen = buf.writerIndex();
-        testReportMsg = new byte[readLen];
-        buf.readBytes(testReportMsg, 0, readLen);
-
-        assertThat(testReportMsg, is(teReportMsg));
-    }
-
-    /**
-     * This test case checks for
-     * TE Object (Routing Universe TLV,Local TE Node Descriptors TLV(AutonomousSystemTlv, BGPLSidentifierTlv
-     * OSPFareaIDsubTlv, RouterIDSubTlv), RemoteTENodeDescriptorsTLV(AutonomousSystemTlv, BGPLSidentifierTlv
-     * OSPFareaIDsubTlv, RouterIDSubTlv), TELinkDescriptorsTLV(LinkLocalRemoteIdentifiersTlv
-     * IPv4InterfaceAddressTlv, IPv4NeighborAddressTlv), TENodeAttributesTlv(NodeFlagBitsTlv
-     * OpaqueNodeAttributeTlv, NodeNameTlv, ISISAreaIdentifierTlv, IPv4TERouterIdOfLocalNodeTlv))
-     * in PcTERpt message.
-     */
-    @Test
-    public void teReportMessageTest19() throws PcepParseException {
-
-        byte[] teReportMsg = new byte[]{0x20, 0x0E, 0x00, (byte) 0xC0, // common header
-                0x0E, 0x10, 0x00, (byte) 0xBC, // TE Object Header
-                0x01, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x10, // TE-ID
-                0x00, 0x0E, 0x00, 0x08, // Routing Universe TLV
-                0x00, 0x00, 0x00, 0x00,
-                0x00, 0x00, 0x00, 0x01,
-                0x06, 0x65, 0x00, 0x24, // Local TE Node Descriptors TLV
-                0x00, 0x64, 0x00, 0x04, //AutonomousSystemTlv
-                0x00, 0x00, 0x00, 0x11,
-                0x00, 0x11, 0x00, 0x04, //BGPLSidentifierTlv
-                0x00, 0x00, 0x00, 0x11,
-                0x02, 0x58, 0x00, 0x04, //OSPFareaIDsubTlv
-                0x00, 0x00, 0x00, 0x11,
-                0x03, (byte) 0xE8, 0x00, 0x08, //RouterIDSubTlv
-                0x00, 0x00, 0x00, 0x11,
-                0x00, 0x00, 0x00, 0x11,
-                0x03, (byte) 0xEB, 0x00, 0x24, //RemoteTENodeDescriptorsTLV
-                0x00, 0x64, 0x00, 0x04, //AutonomousSystemTlv
-                0x00, 0x00, 0x00, 0x11,
-                0x00, 0x11, 0x00, 0x04, //BGPLSidentifierTlv
-                0x00, 0x00, 0x00, 0x11,
-                0x02, 0x58, 0x00, 0x04, //OSPFareaIDsubTlv
-                0x00, 0x00, 0x00, 0x11,
-                0x03, (byte) 0xE8, 0x00, 0x08, //RouterIDSubTlv
-                0x00, 0x00, 0x00, 0x11,
-                0x00, 0x00, 0x00, 0x11,
-                0x04, 0x2E, 0x00, 0x1C, //TELinkDescriptorsTLV
-                0x00, 0x04, 0x00, 0x08, //LinkLocalRemoteIdentifiersTlv
-                0x01, 0x11, 0x00, 0x09,
-                0x01, 0x21, 0x00, 0x09,
-                0x00, 0x06, 0x00, 0x04, //IPv4InterfaceAddressTlv
-                0x01, 0x01, 0x01, 0x01,
-                0x00, 0x08, 0x00, 0x04, //IPv4NeighborAddressTlv
-                0x01, 0x011, 0x01, 0x10,
-                0x04, (byte) 0xF3, 0x00, 0x30, //TENodeAttributesTlv
-                0x00, 0x0E, 0x00, 0x01, //NodeFlagBitsTlv
-                (byte) 0x90, 0x00, 0x00, 0x00,
-                0x03, (byte) 0xE9, 0x00, 0x04, //OpaqueNodeAttributeTlv
-                0x01, 0x011, 0x01, 0x10,
-                0x03, (byte) 0xEF, 0x00, 0x08, //NodeNameTlv
-                0x08, 0x00, 0x01, 0x09,
-                0x08, 0x00, 0x01, 0x09,
-                0x00, 0x6B, 0x00, 0x08, //ISISAreaIdentifierTlv
-                0x20, 0x01, 0x22, 0x01,
-                0x20, 0x01, 0x22, 0x01,
-                0x00, (byte) 0x86, 0x00, 0x04, //IPv4TERouterIdOfLocalNodeTlv
-                0x00, 0x01, 0x01, 0x02
-        };
-
-        ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
-        buffer.writeBytes(teReportMsg);
-
-        PcepMessageReader<PcepMessage> reader = PcepFactories.getGenericReader();
-        PcepMessage message = null;
-
-        message = reader.readFrom(buffer);
-
-        byte[] testReportMsg = {0};
-        assertThat(message, instanceOf(PcepTEReportMsg.class));
-        ChannelBuffer buf = ChannelBuffers.dynamicBuffer();
-        message.writeTo(buf);
-
-        int readLen = buf.writerIndex();
-        testReportMsg = new byte[readLen];
-        buf.readBytes(testReportMsg, 0, readLen);
-
-        assertThat(testReportMsg, is(teReportMsg));
-    }
-
-    /**
-     * This test case checks for
-     * TE Object (Routing Universe TLV,Local TE Node Descriptors TLV(AutonomousSystemTlv, BGPLSidentifierTlv
-     * OSPFareaIDsubTlv, RouterIDSubTlv), RemoteTENodeDescriptorsTLV(AutonomousSystemTlv, BGPLSidentifierTlv
-     * OSPFareaIDsubTlv, RouterIDSubTlv), TELinkDescriptorsTLV(LinkLocalRemoteIdentifiersTlv
-     * IPv4InterfaceAddressTlv, IPv4NeighborAddressTlv), TENodeAttributesTlv(OpaqueNodeAttributeTlv
-     * NodeNameTlv, ISISAreaIdentifierTlv, IPv4TERouterIdOfLocalNodeTlv))
-     * in PcTERpt message.
-     */
-    @Test
-    public void teReportMessageTest20() throws PcepParseException {
-
-        byte[] teReportMsg = new byte[]{0x20, 0x0E, 0x00, (byte) 0xB8, // common header
-                0x0E, 0x10, 0x00, (byte) 0xB4, // TE Object Header
-                0x01, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x10, // TE-ID
-                0x00, 0x0E, 0x00, 0x08, // Routing Universe TLV
-                0x00, 0x00, 0x00, 0x00,
-                0x00, 0x00, 0x00, 0x01,
-                0x06, 0x65, 0x00, 0x24, // Local TE Node Descriptors TLV
-                0x00, 0x64, 0x00, 0x04, //AutonomousSystemTlv
-                0x00, 0x00, 0x00, 0x11,
-                0x00, 0x11, 0x00, 0x04, //BGPLSidentifierTlv
-                0x00, 0x00, 0x00, 0x11,
-                0x02, 0x58, 0x00, 0x04, //OSPFareaIDsubTlv
-                0x00, 0x00, 0x00, 0x11,
-                0x03, (byte) 0xE8, 0x00, 0x08, //RouterIDSubTlv
-                0x00, 0x00, 0x00, 0x11,
-                0x00, 0x00, 0x00, 0x11,
-                0x03, (byte) 0xEB, 0x00, 0x24, //RemoteTENodeDescriptorsTLV
-                0x00, 0x64, 0x00, 0x04, //AutonomousSystemTlv
-                0x00, 0x00, 0x00, 0x11,
-                0x00, 0x11, 0x00, 0x04, //BGPLSidentifierTlv
-                0x00, 0x00, 0x00, 0x11,
-                0x02, 0x58, 0x00, 0x04, //OSPFareaIDsubTlv
-                0x00, 0x00, 0x00, 0x11,
-                0x03, (byte) 0xE8, 0x00, 0x08, //RouterIDSubTlv
-                0x00, 0x00, 0x00, 0x11,
-                0x00, 0x00, 0x00, 0x11,
-                0x04, 0x2E, 0x00, 0x1C, //TELinkDescriptorsTLV
-                0x00, 0x04, 0x00, 0x08, //LinkLocalRemoteIdentifiersTlv
-                0x01, 0x11, 0x00, 0x09,
-                0x01, 0x21, 0x00, 0x09,
-                0x00, 0x06, 0x00, 0x04, //IPv4InterfaceAddressTlv
-                0x01, 0x01, 0x01, 0x01,
-                0x00, 0x08, 0x00, 0x04, //IPv4NeighborAddressTlv
-                0x01, 0x011, 0x01, 0x10,
-                0x04, (byte) 0xF3, 0x00, 0x28, //TENodeAttributesTlv
-                0x03, (byte) 0xE9, 0x00, 0x04, //OpaqueNodeAttributeTlv
-                0x01, 0x011, 0x01, 0x10,
-                0x03, (byte) 0xEF, 0x00, 0x08, //NodeNameTlv
-                0x08, 0x00, 0x01, 0x09,
-                0x08, 0x00, 0x01, 0x09,
-                0x00, 0x6B, 0x00, 0x08, //ISISAreaIdentifierTlv
-                0x20, 0x01, 0x22, 0x01,
-                0x20, 0x01, 0x22, 0x01,
-                0x00, (byte) 0x86, 0x00, 0x04, //IPv4TERouterIdOfLocalNodeTlv
-                0x00, 0x01, 0x01, 0x02
-        };
-
-        ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
-        buffer.writeBytes(teReportMsg);
-
-        PcepMessageReader<PcepMessage> reader = PcepFactories.getGenericReader();
-        PcepMessage message = null;
-
-        message = reader.readFrom(buffer);
-
-        byte[] testReportMsg = {0};
-        assertThat(message, instanceOf(PcepTEReportMsg.class));
-        ChannelBuffer buf = ChannelBuffers.dynamicBuffer();
-        message.writeTo(buf);
-
-        int readLen = buf.writerIndex();
-        testReportMsg = new byte[readLen];
-        buf.readBytes(testReportMsg, 0, readLen);
-
-        assertThat(testReportMsg, is(teReportMsg));
-    }
-
-    /**
-     * This test case checks for
-     * TE Object (Routing Universe TLV,Local TE Node Descriptors TLV(AutonomousSystemTlv, BGPLSidentifierTlv
-     * OSPFareaIDsubTlv, RouterIDSubTlv), RemoteTENodeDescriptorsTLV(AutonomousSystemTlv, BGPLSidentifierTlv
-     * OSPFareaIDsubTlv, RouterIDSubTlv), TELinkDescriptorsTLV(LinkLocalRemoteIdentifiersTlv.
-     * IPv4InterfaceAddressTlv, IPv4NeighborAddressTlv), TENodeAttributesTlv(OpaqueNodeAttributeTlv
-     * ISISAreaIdentifierTlv, IPv4TERouterIdOfLocalNodeTlv))
-     * in PcTERpt message.
-     */
-    @Test
-    public void teReportMessageTest21() throws PcepParseException {
-
-        byte[] teReportMsg = new byte[]{0x20, 0x0E, 0x00, (byte) 0xAC, // common header
-                0x0E, 0x10, 0x00, (byte) 0xA8, // TE Object Header
-                0x01, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x10, // TE-ID
-                0x00, 0x0E, 0x00, 0x08, // Routing Universe TLV
-                0x00, 0x00, 0x00, 0x00,
-                0x00, 0x00, 0x00, 0x01,
-                0x06, 0x65, 0x00, 0x24, // Local TE Node Descriptors TLV
-                0x00, 0x64, 0x00, 0x04, //AutonomousSystemTlv
-                0x00, 0x00, 0x00, 0x11,
-                0x00, 0x11, 0x00, 0x04, //BGPLSidentifierTlv
-                0x00, 0x00, 0x00, 0x11,
-                0x02, 0x58, 0x00, 0x04, //OSPFareaIDsubTlv
-                0x00, 0x00, 0x00, 0x11,
-                0x03, (byte) 0xE8, 0x00, 0x08, //RouterIDSubTlv
-                0x00, 0x00, 0x00, 0x11,
-                0x00, 0x00, 0x00, 0x11,
-                0x03, (byte) 0xEB, 0x00, 0x24, //RemoteTENodeDescriptorsTLV
-                0x00, 0x64, 0x00, 0x04, //AutonomousSystemTlv
-                0x00, 0x00, 0x00, 0x11,
-                0x00, 0x11, 0x00, 0x04, //BGPLSidentifierTlv
-                0x00, 0x00, 0x00, 0x11,
-                0x02, 0x58, 0x00, 0x04, //OSPFareaIDsubTlv
-                0x00, 0x00, 0x00, 0x11,
-                0x03, (byte) 0xE8, 0x00, 0x08, //RouterIDSubTlv
-                0x00, 0x00, 0x00, 0x11,
-                0x00, 0x00, 0x00, 0x11,
-                0x04, 0x2E, 0x00, 0x1C, //TELinkDescriptorsTLV
-                0x00, 0x04, 0x00, 0x08, //LinkLocalRemoteIdentifiersTlv
-                0x01, 0x11, 0x00, 0x09,
-                0x01, 0x21, 0x00, 0x09,
-                0x00, 0x06, 0x00, 0x04, //IPv4InterfaceAddressTlv
-                0x01, 0x01, 0x01, 0x01,
-                0x00, 0x08, 0x00, 0x04, //IPv4NeighborAddressTlv
-                0x01, 0x011, 0x01, 0x10,
-                0x04, (byte) 0xF3, 0x00, 0x1C, //TENodeAttributesTlv
-                0x03, (byte) 0xE9, 0x00, 0x04, //OpaqueNodeAttributeTlv
-                0x01, 0x011, 0x01, 0x10,
-                0x00, 0x6B, 0x00, 0x08, //ISISAreaIdentifierTlv
-                0x20, 0x01, 0x22, 0x01,
-                0x20, 0x01, 0x22, 0x01,
-                0x00, (byte) 0x86, 0x00, 0x04, //IPv4TERouterIdOfLocalNodeTlv
-                0x00, 0x01, 0x01, 0x02
-        };
-
-        ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
-        buffer.writeBytes(teReportMsg);
-
-        PcepMessageReader<PcepMessage> reader = PcepFactories.getGenericReader();
-        PcepMessage message = null;
-
-        message = reader.readFrom(buffer);
-
-        byte[] testReportMsg = {0};
-        assertThat(message, instanceOf(PcepTEReportMsg.class));
-        ChannelBuffer buf = ChannelBuffers.dynamicBuffer();
-        message.writeTo(buf);
-
-        int readLen = buf.writerIndex();
-        testReportMsg = new byte[readLen];
-        buf.readBytes(testReportMsg, 0, readLen);
-
-        assertThat(testReportMsg, is(teReportMsg));
-    }
-
-    /**
-     * This test case checks for
-     * TE Object (Routing Universe TLV,Local TE Node Descriptors TLV(AutonomousSystemTlv, BGPLSidentifierTlv.
-     * OSPFareaIDsubTlv, RouterIDSubTlv), RemoteTENodeDescriptorsTLV(AutonomousSystemTlv, BGPLSidentifierTlv.
-     * OSPFareaIDsubTlv, RouterIDSubTlv), TELinkDescriptorsTLV(LinkLocalRemoteIdentifiersTlv.
-     * IPv4InterfaceAddressTlv, IPv4NeighborAddressTlv), TENodeAttributesTlv(NodeFlagBitsTlv.
-     * OpaqueNodeAttributeTlv, NodeNameTlv, ISISAreaIdentifierTlv, IPv4TERouterIdOfLocalNodeTlv).
-     * TELinkAttributesTlv(IPv4TERouterIdOfRemoteNodeTlv, IPv6TERouterIdofRemoteNodeTlv, AdministrativeGroupTlv.
-     * MaximumLinkBandwidthTlv, MaximumReservableLinkBandwidthTlv, UnreservedBandwidthTlv, TEDefaultMetricTlv.
-     * LinkProtectionTypeTlv, MPLSProtocolMaskTlv, IGPMetricTlv:, SharedRiskLinkGroupTlv.
-     * OpaqueLinkAttributeTlv, LinkNameTlv)).
-     * in PcTERpt message.
-     */
-    @Test
-    public void teReportMessageTest22() throws PcepParseException {
-
-        byte[] teReportMsg = new byte[]{0x20, 0x0E, 0x01, (byte) 0x120, // common header
-                0x0E, 0x10, 0x01, (byte) 0x1C, // TE Object Header
-                0x01, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x10, // TE-ID
-                0x00, 0x0E, 0x00, 0x08, // Routing Universe TLV
-                0x00, 0x00, 0x00, 0x00,
-                0x00, 0x00, 0x00, 0x01,
-                0x06, 0x65, 0x00, 0x24, // Local TE Node Descriptors TLV
-                0x00, 0x64, 0x00, 0x04, //AutonomousSystemTlv
-                0x00, 0x00, 0x00, 0x11,
-                0x00, 0x11, 0x00, 0x04, //BGPLSidentifierTlv
-                0x00, 0x00, 0x00, 0x11,
-                0x02, 0x58, 0x00, 0x04, //OSPFareaIDsubTlv
-                0x00, 0x00, 0x00, 0x11,
-                0x03, (byte) 0xE8, 0x00, 0x08, //RouterIDSubTlv
-                0x00, 0x00, 0x00, 0x11,
-                0x00, 0x00, 0x00, 0x11,
-                0x03, (byte) 0xEB, 0x00, 0x24, //RemoteTENodeDescriptorsTLV
-                0x00, 0x64, 0x00, 0x04, //AutonomousSystemTlv
-                0x00, 0x00, 0x00, 0x11,
-                0x00, 0x11, 0x00, 0x04, //BGPLSidentifierTlv
-                0x00, 0x00, 0x00, 0x11,
-                0x02, 0x58, 0x00, 0x04, //OSPFareaIDsubTlv
-                0x00, 0x00, 0x00, 0x11,
-                0x03, (byte) 0xE8, 0x00, 0x08, //RouterIDSubTlv
-                0x00, 0x00, 0x00, 0x11,
-                0x00, 0x00, 0x00, 0x11,
-                0x04, 0x2E, 0x00, 0x1C, //TELinkDescriptorsTLV
-                0x00, 0x04, 0x00, 0x08, //LinkLocalRemoteIdentifiersTlv
-                0x01, 0x11, 0x00, 0x09,
-                0x01, 0x21, 0x00, 0x09,
-                0x00, 0x06, 0x00, 0x04, //IPv4InterfaceAddressTlv
-                0x01, 0x01, 0x01, 0x01,
-                0x00, 0x08, 0x00, 0x04, //IPv4NeighborAddressTlv
-                0x01, 0x011, 0x01, 0x10,
-                0x04, (byte) 0xF3, 0x00, 0x28, //TENodeAttributesTlv
-                0x03, (byte) 0xE9, 0x00, 0x04, //OpaqueNodeAttributeTlv
-                0x01, 0x011, 0x01, 0x10,
-                0x03, (byte) 0xEF, 0x00, 0x08, //NodeNameTlv
-                0x08, 0x00, 0x01, 0x09,
-                0x08, 0x00, 0x01, 0x09,
-                0x00, 0x6B, 0x00, 0x08, //ISISAreaIdentifierTlv
-                0x20, 0x01, 0x22, 0x01,
-                0x20, 0x01, 0x22, 0x01,
-                0x00, (byte) 0x86, 0x00, 0x04, //IPv4TERouterIdOfLocalNodeTlv
-                0x00, 0x01, 0x01, 0x02,
-                0x07, 0x69, 0x00, 0x64, //TELinkAttributesTlv
-                0x05, 0x3C, 0x00, 0x04, //IPv4TERouterIdOfRemoteNodeTlv
-                0x00, 0x07, 0x08, 0x00,
-                0x00, 0x03, 0x00, 0x04, //AdministrativeGroupTlv
-                0x00, 0x09, 0x08, 0x00,
-                0x00, 0x09, 0x00, 0x04, //MaximumLinkBandwidthTlv
-                0x00, 0x09, 0x00, 0x00,
-                0x00, 0x0a, 0x00, 0x04, //MaximumReservableLinkBandwidthTlv
-                0x00, 0x10, 0x00, 0x00,
-                0x00, 0x0b, 0x00, 0x04, //UnreservedBandwidthTlv
-                0x00, 0x00, (byte) 0x90, 0x00,
-                0x34, 0x58, 0x00, 0x04, //TEDefaultMetricTlv
-                0x00, (byte) 0x99, 0x09, 0x00,
-                0x00, 0x14, 0x00, 0x02, //LinkProtectionTypeTlv
-                0x09, 0x00, 0x00, 0x00,
-                0x04, 0x46, 0x00, 0x01, //MPLSProtocolMaskTlv
-                (byte) 0x80, 0x00, 0x00, 0x00,
-                0x04, 0x47, 0x00, 0x03, //IGPMetricTlv
-                0x09, (byte) 0x89, 0x07, 0x00,
-                0x04, 0x48, 0x00, 0x08, //SharedRiskLinkGroupTlv
-                0x04, 0x47, 0x00, 0x03,
-                0x04, 0x47, 0x00, 0x03, //OpaqueLinkAttributeTlv
-                0x04, 0x49, 0x00, 0x04,
-                0x04, 0x47, 0x00, 0x03,
-                0x04, 0x4A, 0x00, 0x04, //LinkNameTlv
-                0x04, 0x47, 0x00, 0x03
-        };
-
-        ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
-        buffer.writeBytes(teReportMsg);
-
-        PcepMessageReader<PcepMessage> reader = PcepFactories.getGenericReader();
-        PcepMessage message = null;
-
-        message = reader.readFrom(buffer);
-
-        byte[] testReportMsg = {0};
-        assertThat(message, instanceOf(PcepTEReportMsg.class));
-        ChannelBuffer buf = ChannelBuffers.dynamicBuffer();
-        message.writeTo(buf);
-
-        int readLen = buf.writerIndex();
-        testReportMsg = new byte[readLen];
-        buf.readBytes(testReportMsg, 0, readLen);
-
-        assertThat(testReportMsg, is(teReportMsg));
-    }
-
-    /**
-     * This test case checks for
-     * TE Object (Routing Universe TLV,Local TE Node Descriptors TLV(AutonomousSystemTlv, BGPLSidentifierTlv
-     * OSPFareaIDsubTlv, RouterIDSubTlv), RemoteTENodeDescriptorsTLV(AutonomousSystemTlv, BGPLSidentifierTlv
-     * OSPFareaIDsubTlv, RouterIDSubTlv), TELinkDescriptorsTLV(LinkLocalRemoteIdentifiersTlv
-     * IPv4InterfaceAddressTlv, IPv4NeighborAddressTlv), TENodeAttributesTlv(NodeFlagBitsTlv
-     * OpaqueNodeAttributeTlv, NodeNameTlv, ISISAreaIdentifierTlv, IPv4TERouterIdOfLocalNodeTlv)
-     * TELinkAttributesTlv(IPv4TERouterIdOfRemoteNodeTlv, IPv6TERouterIdofRemoteNodeTlv, AdministrativeGroupTlv
-     * MaximumLinkBandwidthTlv, MaximumReservableLinkBandwidthTlv, UnreservedBandwidthTlv, TEDefaultMetricTlv
-     * LinkProtectionTypeTlv, MPLSProtocolMaskTlv, IGPMetricTlv:, SharedRiskLinkGroupTlv
-     * OpaqueLinkAttributeTlv))
-     * in PcTERpt message.
-     */
-    @Test
-    public void teReportMessageTest23() throws PcepParseException {
-
-        byte[] teReportMsg = new byte[]{0x20, 0x0E, 0x01, (byte) 0x118, // common header
-                0x0E, 0x10, 0x01, (byte) 0x14, // TE Object Header
-                0x01, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x10, // TE-ID
-                0x00, 0x0E, 0x00, 0x08, // Routing Universe TLV
-                0x00, 0x00, 0x00, 0x00,
-                0x00, 0x00, 0x00, 0x01,
-                0x06, 0x65, 0x00, 0x24, // Local TE Node Descriptors TLV
-                0x00, 0x64, 0x00, 0x04, //AutonomousSystemTlv
-                0x00, 0x00, 0x00, 0x11,
-                0x00, 0x11, 0x00, 0x04, //BGPLSidentifierTlv
-                0x00, 0x00, 0x00, 0x11,
-                0x02, 0x58, 0x00, 0x04, //OSPFareaIDsubTlv
-                0x00, 0x00, 0x00, 0x11,
-                0x03, (byte) 0xE8, 0x00, 0x08, //RouterIDSubTlv
-                0x00, 0x00, 0x00, 0x11,
-                0x00, 0x00, 0x00, 0x11,
-                0x03, (byte) 0xEB, 0x00, 0x24, //RemoteTENodeDescriptorsTLV
-                0x00, 0x64, 0x00, 0x04, //AutonomousSystemTlv
-                0x00, 0x00, 0x00, 0x11,
-                0x00, 0x11, 0x00, 0x04, //BGPLSidentifierTlv
-                0x00, 0x00, 0x00, 0x11,
-                0x02, 0x58, 0x00, 0x04, //OSPFareaIDsubTlv
-                0x00, 0x00, 0x00, 0x11,
-                0x03, (byte) 0xE8, 0x00, 0x08, //RouterIDSubTlv
-                0x00, 0x00, 0x00, 0x11,
-                0x00, 0x00, 0x00, 0x11,
-                0x04, 0x2E, 0x00, 0x1C, //TELinkDescriptorsTLV
-                0x00, 0x04, 0x00, 0x08, //LinkLocalRemoteIdentifiersTlv
-                0x01, 0x11, 0x00, 0x09,
-                0x01, 0x21, 0x00, 0x09,
-                0x00, 0x06, 0x00, 0x04, //IPv4InterfaceAddressTlv
-                0x01, 0x01, 0x01, 0x01,
-                0x00, 0x08, 0x00, 0x04, //IPv4NeighborAddressTlv
-                0x01, 0x011, 0x01, 0x10,
-                0x04, (byte) 0xF3, 0x00, 0x28, //TENodeAttributesTlv
-                0x03, (byte) 0xE9, 0x00, 0x04, //OpaqueNodeAttributeTlv
-                0x01, 0x011, 0x01, 0x10,
-                0x03, (byte) 0xEF, 0x00, 0x08, //NodeNameTlv
-                0x08, 0x00, 0x01, 0x09,
-                0x08, 0x00, 0x01, 0x09,
-                0x00, 0x6B, 0x00, 0x08, //ISISAreaIdentifierTlv
-                0x20, 0x01, 0x22, 0x01,
-                0x20, 0x01, 0x22, 0x01,
-                0x00, (byte) 0x86, 0x00, 0x04, //IPv4TERouterIdOfLocalNodeTlv
-                0x00, 0x01, 0x01, 0x02,
-                0x07, 0x69, 0x00, 0x5C, //TELinkAttributesTlv
-                0x05, 0x3C, 0x00, 0x04, //IPv4TERouterIdOfRemoteNodeTlv
-                0x00, 0x07, 0x08, 0x00,
-                0x00, 0x03, 0x00, 0x04, //AdministrativeGroupTlv
-                0x00, 0x09, 0x08, 0x00,
-                0x00, 0x09, 0x00, 0x04, //MaximumLinkBandwidthTlv
-                0x00, 0x09, 0x00, 0x00,
-                0x00, 0x0a, 0x00, 0x04, //MaximumReservableLinkBandwidthTlv
-                0x00, 0x10, 0x00, 0x00,
-                0x00, 0x0b, 0x00, 0x04, //UnreservedBandwidthTlv
-                0x00, 0x00, (byte) 0x90, 0x00,
-                0x34, 0x58, 0x00, 0x04, //TEDefaultMetricTlv
-                0x00, (byte) 0x99, 0x09, 0x00,
-                0x00, 0x14, 0x00, 0x02, //LinkProtectionTypeTlv
-                0x09, 0x00, 0x00, 0x00,
-                0x04, 0x46, 0x00, 0x01, //MPLSProtocolMaskTlv
-                (byte) 0x80, 0x00, 0x00, 0x00,
-                0x04, 0x47, 0x00, 0x03, //IGPMetricTlv
-                0x09, (byte) 0x89, 0x07, 0x00,
-                0x04, 0x48, 0x00, 0x08, //SharedRiskLinkGroupTlv
-                0x04, 0x47, 0x00, 0x03,
-                0x04, 0x47, 0x00, 0x03, //OpaqueLinkAttributeTlv
-                0x04, 0x49, 0x00, 0x04,
-                0x04, 0x47, 0x00, 0x03
-        };
-
-        ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
-        buffer.writeBytes(teReportMsg);
-
-        PcepMessageReader<PcepMessage> reader = PcepFactories.getGenericReader();
-        PcepMessage message = null;
-
-        message = reader.readFrom(buffer);
-
-        byte[] testReportMsg = {0};
-        assertThat(message, instanceOf(PcepTEReportMsg.class));
-        ChannelBuffer buf = ChannelBuffers.dynamicBuffer();
-        message.writeTo(buf);
-
-        int readLen = buf.writerIndex();
-        testReportMsg = new byte[readLen];
-        buf.readBytes(testReportMsg, 0, readLen);
-
-        assertThat(testReportMsg, is(teReportMsg));
-    }
-
-    /**
-     * This test case checks for
-     * TE Object (Routing Universe TLV,Local TE Node Descriptors TLV(AutonomousSystemTlv, BGPLSidentifierTlv
-     * OSPFareaIDsubTlv, RouterIDSubTlv), RemoteTENodeDescriptorsTLV(AutonomousSystemTlv, BGPLSidentifierTlv
-     * OSPFareaIDsubTlv, RouterIDSubTlv), TELinkDescriptorsTLV(LinkLocalRemoteIdentifiersTlv
-     * IPv4InterfaceAddressTlv, IPv4NeighborAddressTlv), TENodeAttributesTlv(NodeFlagBitsTlv
-     * OpaqueNodeAttributeTlv, NodeNameTlv, ISISAreaIdentifierTlv, IPv4TERouterIdOfLocalNodeTlv)
-     * TELinkAttributesTlv(IPv4TERouterIdOfRemoteNodeTlv, IPv6TERouterIdofRemoteNodeTlv, AdministrativeGroupTlv
-     * MaximumLinkBandwidthTlv, MaximumReservableLinkBandwidthTlv, UnreservedBandwidthTlv, TEDefaultMetricTlv
-     * LinkProtectionTypeTlv, MPLSProtocolMaskTlv, IGPMetricTlv:, SharedRiskLinkGroupTlv))
-     * in PcTERpt message.
-     */
-    @Test
-    public void teReportMessageTest24() throws PcepParseException {
-
-        byte[] teReportMsg = new byte[]{0x20, 0x0E, 0x01, (byte) 0x110, // common header
-                0x0E, 0x10, 0x01, (byte) 0x0C, // TE Object Header
-                0x01, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x10, // TE-ID
-                0x00, 0x0E, 0x00, 0x08, // Routing Universe TLV
-                0x00, 0x00, 0x00, 0x00,
-                0x00, 0x00, 0x00, 0x01,
-                0x06, 0x65, 0x00, 0x24, // Local TE Node Descriptors TLV
-                0x00, 0x64, 0x00, 0x04, //AutonomousSystemTlv
-                0x00, 0x00, 0x00, 0x11,
-                0x00, 0x11, 0x00, 0x04, //BGPLSidentifierTlv
-                0x00, 0x00, 0x00, 0x11,
-                0x02, 0x58, 0x00, 0x04, //OSPFareaIDsubTlv
-                0x00, 0x00, 0x00, 0x11,
-                0x03, (byte) 0xE8, 0x00, 0x08, //RouterIDSubTlv
-                0x00, 0x00, 0x00, 0x11,
-                0x00, 0x00, 0x00, 0x11,
-                0x03, (byte) 0xEB, 0x00, 0x24, //RemoteTENodeDescriptorsTLV
-                0x00, 0x64, 0x00, 0x04, //AutonomousSystemTlv
-                0x00, 0x00, 0x00, 0x11,
-                0x00, 0x11, 0x00, 0x04, //BGPLSidentifierTlv
-                0x00, 0x00, 0x00, 0x11,
-                0x02, 0x58, 0x00, 0x04, //OSPFareaIDsubTlv
-                0x00, 0x00, 0x00, 0x11,
-                0x03, (byte) 0xE8, 0x00, 0x08, //RouterIDSubTlv
-                0x00, 0x00, 0x00, 0x11,
-                0x00, 0x00, 0x00, 0x11,
-                0x04, 0x2E, 0x00, 0x1C, //TELinkDescriptorsTLV
-                0x00, 0x04, 0x00, 0x08, //LinkLocalRemoteIdentifiersTlv
-                0x01, 0x11, 0x00, 0x09,
-                0x01, 0x21, 0x00, 0x09,
-                0x00, 0x06, 0x00, 0x04, //IPv4InterfaceAddressTlv
-                0x01, 0x01, 0x01, 0x01,
-                0x00, 0x08, 0x00, 0x04, //IPv4NeighborAddressTlv
-                0x01, 0x011, 0x01, 0x10,
-                0x04, (byte) 0xF3, 0x00, 0x28, //TENodeAttributesTlv
-                0x03, (byte) 0xE9, 0x00, 0x04, //OpaqueNodeAttributeTlv
-                0x01, 0x011, 0x01, 0x10,
-                0x03, (byte) 0xEF, 0x00, 0x08, //NodeNameTlv
-                0x08, 0x00, 0x01, 0x09,
-                0x08, 0x00, 0x01, 0x09,
-                0x00, 0x6B, 0x00, 0x08, //ISISAreaIdentifierTlv
-                0x20, 0x01, 0x22, 0x01,
-                0x20, 0x01, 0x22, 0x01,
-                0x00, (byte) 0x86, 0x00, 0x04, //IPv4TERouterIdOfLocalNodeTlv
-                0x00, 0x01, 0x01, 0x02,
-                0x07, 0x69, 0x00, 0x54, //TELinkAttributesTlv
-                0x05, 0x3C, 0x00, 0x04, //IPv4TERouterIdOfRemoteNodeTlv
-                0x00, 0x07, 0x08, 0x00,
-                0x00, 0x03, 0x00, 0x04, //AdministrativeGroupTlv
-                0x00, 0x09, 0x08, 0x00,
-                0x00, 0x09, 0x00, 0x04, //MaximumLinkBandwidthTlv
-                0x00, 0x09, 0x00, 0x00,
-                0x00, 0x0a, 0x00, 0x04, //MaximumReservableLinkBandwidthTlv
-                0x00, 0x10, 0x00, 0x00,
-                0x00, 0x0b, 0x00, 0x04, //UnreservedBandwidthTlv
-                0x00, 0x00, (byte) 0x90, 0x00,
-                0x34, 0x58, 0x00, 0x04, //TEDefaultMetricTlv
-                0x00, (byte) 0x99, 0x09, 0x00,
-                0x00, 0x14, 0x00, 0x02, //LinkProtectionTypeTlv
-                0x09, 0x00, 0x00, 0x00,
-                0x04, 0x46, 0x00, 0x01, //MPLSProtocolMaskTlv
-                (byte) 0x80, 0x00, 0x00, 0x00,
-                0x04, 0x47, 0x00, 0x03, //IGPMetricTlv
-                0x09, (byte) 0x89, 0x07, 0x00,
-                0x04, 0x48, 0x00, 0x08, //SharedRiskLinkGroupTlv
-                0x04, 0x47, 0x00, 0x03,
-                0x04, 0x47, 0x00, 0x03
-        };
-
-        ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
-        buffer.writeBytes(teReportMsg);
-
-        PcepMessageReader<PcepMessage> reader = PcepFactories.getGenericReader();
-        PcepMessage message = null;
-
-        message = reader.readFrom(buffer);
-
-        byte[] testReportMsg = {0};
-        assertThat(message, instanceOf(PcepTEReportMsg.class));
-        ChannelBuffer buf = ChannelBuffers.dynamicBuffer();
-        message.writeTo(buf);
-
-        int readLen = buf.writerIndex();
-        testReportMsg = new byte[readLen];
-        buf.readBytes(testReportMsg, 0, readLen);
-
-        assertThat(testReportMsg, is(teReportMsg));
-    }
-
-    /**
-     * This test case checks for
-     * TE Object (Routing Universe TLV,Local TE Node Descriptors TLV(AutonomousSystemTlv, BGPLSidentifierTlv
-     * OSPFareaIDsubTlv, RouterIDSubTlv), RemoteTENodeDescriptorsTLV(AutonomousSystemTlv, BGPLSidentifierTlv
-     * OSPFareaIDsubTlv, RouterIDSubTlv), TELinkDescriptorsTLV(LinkLocalRemoteIdentifiersTlv
-     * IPv4InterfaceAddressTlv, IPv4NeighborAddressTlv), TENodeAttributesTlv(NodeFlagBitsTlv
-     * OpaqueNodeAttributeTlv, NodeNameTlv, ISISAreaIdentifierTlv, IPv4TERouterIdOfLocalNodeTlv)
-     * TELinkAttributesTlv(IPv4TERouterIdOfRemoteNodeTlv, IPv6TERouterIdofRemoteNodeTlv, AdministrativeGroupTlv
-     * MaximumLinkBandwidthTlv, MaximumReservableLinkBandwidthTlv, UnreservedBandwidthTlv, TEDefaultMetricTlv
-     * LinkProtectionTypeTlv, MPLSProtocolMaskTlv, IGPMetricTlv))
-     * in PcTERpt message.
-     */
-    @Test
-    public void teReportMessageTest25() throws PcepParseException {
-
-        byte[] teReportMsg = new byte[]{0x20, 0x0E, 0x01, (byte) 0x104, // common header
-                0x0E, 0x10, 0x01, 0x00, // TE Object Header
-                0x01, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x10, // TE-ID
-                0x00, 0x0E, 0x00, 0x08, // Routing Universe TLV
-                0x00, 0x00, 0x00, 0x00,
-                0x00, 0x00, 0x00, 0x01,
-                0x06, 0x65, 0x00, 0x24, // Local TE Node Descriptors TLV
-                0x00, 0x64, 0x00, 0x04, //AutonomousSystemTlv
-                0x00, 0x00, 0x00, 0x11,
-                0x00, 0x11, 0x00, 0x04, //BGPLSidentifierTlv
-                0x00, 0x00, 0x00, 0x11,
-                0x02, 0x58, 0x00, 0x04, //OSPFareaIDsubTlv
-                0x00, 0x00, 0x00, 0x11,
-                0x03, (byte) 0xE8, 0x00, 0x08, //RouterIDSubTlv
-                0x00, 0x00, 0x00, 0x11,
-                0x00, 0x00, 0x00, 0x11,
-                0x03, (byte) 0xEB, 0x00, 0x24, //RemoteTENodeDescriptorsTLV
-                0x00, 0x64, 0x00, 0x04, //AutonomousSystemTlv
-                0x00, 0x00, 0x00, 0x11,
-                0x00, 0x11, 0x00, 0x04, //BGPLSidentifierTlv
-                0x00, 0x00, 0x00, 0x11,
-                0x02, 0x58, 0x00, 0x04, //OSPFareaIDsubTlv
-                0x00, 0x00, 0x00, 0x11,
-                0x03, (byte) 0xE8, 0x00, 0x08, //RouterIDSubTlv
-                0x00, 0x00, 0x00, 0x11,
-                0x00, 0x00, 0x00, 0x11,
-                0x04, 0x2E, 0x00, 0x1C, //TELinkDescriptorsTLV
-                0x00, 0x04, 0x00, 0x08, //LinkLocalRemoteIdentifiersTlv
-                0x01, 0x11, 0x00, 0x09,
-                0x01, 0x21, 0x00, 0x09,
-                0x00, 0x06, 0x00, 0x04, //IPv4InterfaceAddressTlv
-                0x01, 0x01, 0x01, 0x01,
-                0x00, 0x08, 0x00, 0x04, //IPv4NeighborAddressTlv
-                0x01, 0x011, 0x01, 0x10,
-                0x04, (byte) 0xF3, 0x00, 0x28, //TENodeAttributesTlv
-                0x03, (byte) 0xE9, 0x00, 0x04, //OpaqueNodeAttributeTlv
-                0x01, 0x011, 0x01, 0x10,
-                0x03, (byte) 0xEF, 0x00, 0x08, //NodeNameTlv
-                0x08, 0x00, 0x01, 0x09,
-                0x08, 0x00, 0x01, 0x09,
-                0x00, 0x6B, 0x00, 0x08, //ISISAreaIdentifierTlv
-                0x20, 0x01, 0x22, 0x01,
-                0x20, 0x01, 0x22, 0x01,
-                0x00, (byte) 0x86, 0x00, 0x04, //IPv4TERouterIdOfLocalNodeTlv
-                0x00, 0x01, 0x01, 0x02,
-                0x07, 0x69, 0x00, 0x48, //TELinkAttributesTlv
-                0x05, 0x3C, 0x00, 0x04, //IPv4TERouterIdOfRemoteNodeTlv
-                0x00, 0x07, 0x08, 0x00,
-                0x00, 0x03, 0x00, 0x04, //AdministrativeGroupTlv
-                0x00, 0x09, 0x08, 0x00,
-                0x00, 0x09, 0x00, 0x04, //MaximumLinkBandwidthTlv
-                0x00, 0x09, 0x00, 0x00,
-                0x00, 0x0a, 0x00, 0x04, //MaximumReservableLinkBandwidthTlv
-                0x00, 0x10, 0x00, 0x00,
-                0x00, 0x0b, 0x00, 0x04, //UnreservedBandwidthTlv
-                0x00, 0x00, (byte) 0x90, 0x00,
-                0x34, 0x58, 0x00, 0x04, //TEDefaultMetricTlv
-                0x00, (byte) 0x99, 0x09, 0x00,
-                0x00, 0x14, 0x00, 0x02, //LinkProtectionTypeTlv
-                0x09, 0x00, 0x00, 0x00,
-                0x04, 0x46, 0x00, 0x01, //MPLSProtocolMaskTlv
-                (byte) 0x80, 0x00, 0x00, 0x00,
-                0x04, 0x47, 0x00, 0x03, //IGPMetricTlv
-                0x09, (byte) 0x89, 0x07, 0x00
-        };
-
-        ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
-        buffer.writeBytes(teReportMsg);
-
-        PcepMessageReader<PcepMessage> reader = PcepFactories.getGenericReader();
-        PcepMessage message = null;
-
-        message = reader.readFrom(buffer);
-
-        byte[] testReportMsg = {0};
-
-        assertThat(message, instanceOf(PcepTEReportMsg.class));
-        ChannelBuffer buf = ChannelBuffers.dynamicBuffer();
-        message.writeTo(buf);
-
-        int readLen = buf.writerIndex();
-        testReportMsg = new byte[readLen];
-        buf.readBytes(testReportMsg, 0, readLen);
-
-        assertThat(testReportMsg, is(teReportMsg));
-    }
-}
diff --git a/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/protocol/PcepUpdateMsgExtTest.java b/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/protocol/PcepUpdateMsgExtTest.java
index 40234a6..fd21ba2 100644
--- a/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/protocol/PcepUpdateMsgExtTest.java
+++ b/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/protocol/PcepUpdateMsgExtTest.java
@@ -18,6 +18,7 @@
 import org.jboss.netty.buffer.ChannelBuffer;
 import org.jboss.netty.buffer.ChannelBuffers;
 import org.junit.Test;
+import org.onosproject.pcepio.exceptions.PcepOutOfBoundMessageException;
 import org.onosproject.pcepio.exceptions.PcepParseException;
 
 import static org.hamcrest.MatcherAssert.assertThat;
@@ -34,7 +35,7 @@
      * Metric object in PcepUpdate message.
      */
     @Test
-    public void pcepUpdateMsgTest1() throws PcepParseException {
+    public void pcepUpdateMsgTest1() throws PcepParseException, PcepOutOfBoundMessageException {
         byte[] updateMsg = new byte[] {0x20, 0x0b, 0x00, (byte) 0x8c,
                 0x21, 0x10, 0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, //SRP object
                 0x00, 0x11, 0x00, 0x02,  0x54, 0x31, 0x00, 0x00, //SymbolicPathNameTlv
@@ -80,7 +81,7 @@
      * LSPA, Bandwidth object in PcepUpdate message.
      */
     @Test
-    public void pcepUpdateMsgTest2() throws PcepParseException {
+    public void pcepUpdateMsgTest2() throws PcepParseException, PcepOutOfBoundMessageException {
         byte[] updateMsg = new byte[] {0x20, 0x0b, 0x00, (byte) 0x68,
                 0x21, 0x10, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, //SRP object
                 0x20, 0x10, 0x00, 0x1C, 0x00, 0x00, 0x10, 0x03, //LSP object
@@ -121,7 +122,7 @@
      * Metric object in PcepUpdate message.
      */
     @Test
-    public void pcepUpdateMsgTest3() throws PcepParseException {
+    public void pcepUpdateMsgTest3() throws PcepParseException, PcepOutOfBoundMessageException {
         byte[] updateMsg = new byte[] {0x20, 0x0b, 0x00, (byte) 0x54,
                 0x21, 0x10, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, //SRP object
                 0x20, 0x10, 0x00, 0x08, 0x00, 0x00, 0x10, 0x03, //LSP object
@@ -159,7 +160,7 @@
      * Metric object in PcepUpdate message.
      */
     @Test
-    public void pcepUpdateMsgTest4() throws PcepParseException {
+    public void pcepUpdateMsgTest4() throws PcepParseException, PcepOutOfBoundMessageException {
         byte[] updateMsg = new byte[] {0x20, 0x0b, 0x00, (byte) 0x5c,
                 0x21, 0x10, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, //SRP object
                 0x20, 0x10, 0x00, 0x10, 0x00, 0x00, 0x10, 0x03, //LSP object
@@ -198,7 +199,7 @@
      * Metric object in PcepUpdate message.
      */
     @Test
-    public void pcepUpdateMsgTest5() throws PcepParseException {
+    public void pcepUpdateMsgTest5() throws PcepParseException, PcepOutOfBoundMessageException {
         byte[] updateMsg = new byte[] {0x20, 0x0b, 0x00, (byte) 0x60,
                 0x21, 0x10, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, //SRP object
                 0x20, 0x10, 0x00, 0x14, 0x00, 0x00, 0x10, 0x03, //LSP object
@@ -238,7 +239,7 @@
      * Metric object in PcepUpdate message.
      */
     @Test
-    public void pcepUpdateMsgTest6() throws PcepParseException {
+    public void pcepUpdateMsgTest6() throws PcepParseException, PcepOutOfBoundMessageException {
         byte[] updateMsg = new byte[] {0x20, 0x0b, 0x00, (byte) 0x5c,
                 0x21, 0x10, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, //SRP object
                 0x20, 0x10, 0x00, 0x10, 0x00, 0x00, 0x10, 0x03, //LSP object
@@ -277,7 +278,7 @@
      * bandwidth object Metric object in PcepUpdate message.
      */
     @Test
-    public void pcepUpdateMsgTest7() throws PcepParseException {
+    public void pcepUpdateMsgTest7() throws PcepParseException, PcepOutOfBoundMessageException {
         byte[] updateMsg = new byte[] {0x20, 0x0b, 0x00, (byte) 0x64,
                 0x21, 0x10, 0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, //SRP object
                 0x00, 0x11, 0x00, 0x02,  0x54, 0x31, 0x00, 0x00, //SymbolicPathNameTlv
@@ -317,7 +318,7 @@
      * bandwidth object in PcepUpdate message.
      */
     @Test
-    public void pcepUpdateMsgTest8() throws PcepParseException {
+    public void pcepUpdateMsgTest8() throws PcepParseException, PcepOutOfBoundMessageException {
         byte[] updateMsg = new byte[] {0x20, 0x0b, 0x00, (byte) 0x5c,
                 0x21, 0x10, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, //SRP object
                 0x20, 0x10, 0x00, 0x1C, 0x00, 0x00, 0x10, 0x03, //LSP object
@@ -357,7 +358,7 @@
      * bandwidth object in PcepUpdate message.
      */
     @Test
-    public void pcepUpdateMsgTest9() throws PcepParseException {
+    public void pcepUpdateMsgTest9() throws PcepParseException, PcepOutOfBoundMessageException {
         byte[] updateMsg = new byte[] {0x20, 0x0b, 0x00, (byte) 0x58,
                 0x21, 0x10, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, //SRP object
                 0x20, 0x10, 0x00, 0x18, 0x00, 0x00, 0x10, 0x03,
@@ -396,7 +397,7 @@
      * bandwidth object in PcepUpdate message.
      */
     @Test
-    public void pcepUpdateMsgTest10() throws PcepParseException {
+    public void pcepUpdateMsgTest10() throws PcepParseException, PcepOutOfBoundMessageException {
         byte[] updateMsg = new byte[] {0x20, 0x0b, 0x00, (byte) 0x50,
                 0x21, 0x10, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, //SRP object
                 0x20, 0x10, 0x00, 0x10, 0x00, 0x00, 0x10, 0x03, //LSP object
@@ -434,7 +435,7 @@
      * bandwidth object in PcepUpdate message.
      */
     @Test
-    public void pcepUpdateMsgTest11() throws PcepParseException {
+    public void pcepUpdateMsgTest11() throws PcepParseException, PcepOutOfBoundMessageException {
         byte[] updateMsg = new byte[] {0x20, 0x0b, 0x00, (byte) 0x54,
                 0x21, 0x10, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, //SRP object
                 0x20, 0x10, 0x00, 0x14, 0x00, 0x00, 0x10, 0x03, //LSP object
@@ -473,7 +474,7 @@
      * bandwidth object in PcepUpdate message.
      */
     @Test
-    public void pcepUpdateMsgTest12() throws PcepParseException {
+    public void pcepUpdateMsgTest12() throws PcepParseException, PcepOutOfBoundMessageException {
         byte[] updateMsg = new byte[] {0x20, 0x0b, 0x00, (byte) 0x50,
                 0x21, 0x10, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, //SRP object
                 0x20, 0x10, 0x00, 0x10, 0x00, 0x00, 0x10, 0x03, //LSP object
@@ -511,7 +512,7 @@
      * bandwidth object in PcepUpdate message.
      */
     @Test
-    public void pcepUpdateMsgTest13() throws PcepParseException {
+    public void pcepUpdateMsgTest13() throws PcepParseException, PcepOutOfBoundMessageException {
         byte[] updateMsg = new byte[] {0x20, 0x0b, 0x00, (byte) 0x58,
                 0x21, 0x10, 0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, //SRP object
                 0x00, 0x11, 0x00, 0x02,  0x54, 0x31, 0x00, 0x00, //SymbolicPathNameTlv
@@ -550,7 +551,7 @@
      * metric object in PcepUpdate message.
      */
     @Test
-    public void pcepUpdateMsgTest14() throws PcepParseException {
+    public void pcepUpdateMsgTest14() throws PcepParseException, PcepOutOfBoundMessageException {
         byte[] updateMsg = new byte[] {0x20, 0x0b, 0x00, (byte) 0x60,
                 0x21, 0x10, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, //SRP object
                 0x20, 0x10, 0x00, 0x1C, 0x00, 0x00, 0x10, 0x03, //LSP object
@@ -590,7 +591,7 @@
      * metric object in PcepUpdate message.
      */
     @Test
-    public void pcepUpdateMsgTest15() throws PcepParseException {
+    public void pcepUpdateMsgTest15() throws PcepParseException, PcepOutOfBoundMessageException {
         byte[] updateMsg = new byte[] {0x20, 0x0b, 0x00, (byte) 0x4c,
                 0x21, 0x10, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, //SRP object
                 0x20, 0x10, 0x00, 0x08, 0x00, 0x00, 0x10, 0x03, //LSP object
@@ -627,7 +628,7 @@
      * metric object in PcepUpdate message.
      */
     @Test
-    public void pcepUpdateMsgTest16() throws PcepParseException {
+    public void pcepUpdateMsgTest16() throws PcepParseException, PcepOutOfBoundMessageException {
         byte[] updateMsg = new byte[] {0x20, 0x0b, 0x00, (byte) 0x54,
                 0x21, 0x10, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, //SRP object
                 0x20, 0x10, 0x00, 0x10, 0x00, 0x00, 0x10, 0x03, //LSP object
@@ -665,7 +666,7 @@
      * metric object in PcepUpdate message.
      */
     @Test
-    public void pcepUpdateMsgTest17() throws PcepParseException {
+    public void pcepUpdateMsgTest17() throws PcepParseException, PcepOutOfBoundMessageException {
         byte[] updateMsg = new byte[] {0x20, 0x0b, 0x00, (byte) 0x58,
                 0x21, 0x10, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, //SRP object
                 0x20, 0x10, 0x00, 0x14, 0x00, 0x00, 0x10, 0x03, //LSP object
@@ -704,7 +705,7 @@
      * metric object in PcepUpdate message.
      */
     @Test
-    public void pcepUpdateMsgTest18() throws PcepParseException {
+    public void pcepUpdateMsgTest18() throws PcepParseException, PcepOutOfBoundMessageException {
         byte[] updateMsg = new byte[] {0x20, 0x0b, 0x00, (byte) 0x54,
                 0x21, 0x10, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, //SRP object
                 0x20, 0x10, 0x00, 0x10, 0x00, 0x00, 0x10, 0x03, //LSP object
@@ -742,7 +743,7 @@
      * metric object in PcepUpdate message.
      */
     @Test
-    public void pcepUpdateMsgTest19() throws PcepParseException {
+    public void pcepUpdateMsgTest19() throws PcepParseException, PcepOutOfBoundMessageException {
         byte[] updateMsg = new byte[] {0x20, 0x0b, 0x00, (byte) 0x5c,
                 0x21, 0x10, 0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, //SRP object
                 0x00, 0x11, 0x00, 0x02,  0x54, 0x31, 0x00, 0x00, //SymbolicPathNameTlv
@@ -781,7 +782,7 @@
      * Bandwidth , metric object in PcepUpdate message.
      */
     @Test
-    public void pcepUpdateMsgTest20() throws PcepParseException {
+    public void pcepUpdateMsgTest20() throws PcepParseException, PcepOutOfBoundMessageException {
         byte[] updateMsg = new byte[] {0x20, 0x0b, 0x00, (byte) 0x54,
                 0x21, 0x10, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, //SRP object
                 0x20, 0x10, 0x00, 0x1C, 0x00, 0x00, 0x10, 0x03, //LSP object
@@ -820,7 +821,7 @@
      * Bandwidth , metric object in PcepUpdate message.
      */
     @Test
-    public void pcepUpdateMsgTest21() throws PcepParseException {
+    public void pcepUpdateMsgTest21() throws PcepParseException, PcepOutOfBoundMessageException {
         byte[] updateMsg = new byte[] {0x20, 0x0b, 0x00, (byte) 0x40,
                 0x21, 0x10, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, //SRP object
                 0x20, 0x10, 0x00, 0x08, 0x00, 0x00, 0x10, 0x03, //LSP object
@@ -856,7 +857,7 @@
      * Bandwidth , metric object in PcepUpdate message.
      */
     @Test
-    public void pcepUpdateMsgTest22() throws PcepParseException {
+    public void pcepUpdateMsgTest22() throws PcepParseException, PcepOutOfBoundMessageException {
         byte[] updateMsg = new byte[] {0x20, 0x0b, 0x00, (byte) 0x48,
                 0x21, 0x10, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, //SRP object
                 0x20, 0x10, 0x00, 0x10, 0x00, 0x00, 0x10, 0x03, //LSP object
@@ -893,7 +894,7 @@
      * Bandwidth , metric object in PcepUpdate message.
      */
     @Test
-    public void pcepUpdateMsgTest23() throws PcepParseException {
+    public void pcepUpdateMsgTest23() throws PcepParseException, PcepOutOfBoundMessageException {
         byte[] updateMsg = new byte[] {0x20, 0x0b, 0x00, (byte) 0x4c,
                 0x21, 0x10, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, //SRP object
                 0x20, 0x10, 0x00, 0x14, 0x00, 0x00, 0x10, 0x03, //LSP object
@@ -931,7 +932,7 @@
      * Bandwidth , metric object in PcepUpdate message.
      */
     @Test
-    public void pcepUpdateMsgTest24() throws PcepParseException {
+    public void pcepUpdateMsgTest24() throws PcepParseException, PcepOutOfBoundMessageException {
         byte[] updateMsg = new byte[] {0x20, 0x0b, 0x00, (byte) 0x48,
                 0x21, 0x10, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, //SRP object
                 0x20, 0x10, 0x00, 0x10, 0x00, 0x00, 0x10, 0x03, //LSP object
@@ -968,7 +969,7 @@
      * Bandwidth , metric object in PcepUpdate message.
      */
     @Test
-    public void pcepUpdateMsgTest25() throws PcepParseException {
+    public void pcepUpdateMsgTest25() throws PcepParseException, PcepOutOfBoundMessageException {
         byte[] updateMsg = new byte[] {0x20, 0x0b, 0x00, (byte) 0x50,
                 0x21, 0x10, 0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, //SRP object
                 0x00, 0x11, 0x00, 0x02,  0x54, 0x31, 0x00, 0x00, //SymbolicPathNameTlv
@@ -1006,7 +1007,7 @@
      * LSPA object in PcepUpdate message.
      */
     @Test
-    public void pcepUpdateMsgTest26() throws PcepParseException {
+    public void pcepUpdateMsgTest26() throws PcepParseException, PcepOutOfBoundMessageException {
         byte[] updateMsg = new byte[] {0x20, 0x0b, 0x00, (byte) 0x54,
                 0x21, 0x10, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, //SRP object
                 0x20, 0x10, 0x00, 0x1C, 0x00, 0x00, 0x10, 0x03, //LSP object
@@ -1045,7 +1046,7 @@
      * bandwidth object in PcepUpdate message.
      */
     @Test
-    public void pcepUpdateMsgTest27() throws PcepParseException {
+    public void pcepUpdateMsgTest27() throws PcepParseException, PcepOutOfBoundMessageException {
         byte[] updateMsg = new byte[] {0x20, 0x0b, 0x00, (byte) 0x34,
                 0x21, 0x10, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, //SRP object
                 0x20, 0x10, 0x00, 0x08, 0x00, 0x00, 0x10, 0x03, //LSP object
@@ -1080,7 +1081,7 @@
      * metric object in PcepUpdate message.
      */
     @Test
-    public void pcepUpdateMsgTest28() throws PcepParseException {
+    public void pcepUpdateMsgTest28() throws PcepParseException, PcepOutOfBoundMessageException {
         byte[] updateMsg = new byte[] {0x20, 0x0b, 0x00, (byte) 0x40,
                 0x21, 0x10, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, //SRP object
                 0x20, 0x10, 0x00, 0x10, 0x00, 0x00, 0x10, 0x03, //LSP object
@@ -1116,7 +1117,7 @@
      * lspa object in PcepUpdate message.
      */
     @Test
-    public void pcepUpdateMsgTest29() throws PcepParseException {
+    public void pcepUpdateMsgTest29() throws PcepParseException, PcepOutOfBoundMessageException {
         byte[] updateMsg = new byte[] {0x20, 0x0b, 0x00, (byte) 0x54,
                 0x21, 0x10, 0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, //SRP object
                 0x00, 0x11, 0x00, 0x02,  0x54, 0x31, 0x00, 0x00, //SymbolicPathNameTlv
@@ -1155,7 +1156,7 @@
      * bandwidth object in PcepUpdate message.
      */
     @Test
-    public void pcepUpdateMsgTest30() throws PcepParseException {
+    public void pcepUpdateMsgTest30() throws PcepParseException, PcepOutOfBoundMessageException {
         byte[] updateMsg = new byte[] {0x20, 0x0b, 0x00, (byte) 0x48,
                 0x21, 0x10, 0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, //SRP object
                 0x00, 0x11, 0x00, 0x02,  0x54, 0x31, 0x00, 0x00, //SymbolicPathNameTlv
@@ -1193,7 +1194,7 @@
      * metric object in PcepUpdate message.
      */
     @Test
-    public void pcepUpdateMsgTest31() throws PcepParseException {
+    public void pcepUpdateMsgTest31() throws PcepParseException, PcepOutOfBoundMessageException {
         byte[] updateMsg = new byte[] {0x20, 0x0b, 0x00, (byte) 0x4c,
                 0x21, 0x10, 0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, //SRP object
                 0x00, 0x11, 0x00, 0x02,  0x54, 0x31, 0x00, 0x00, //SymbolicPathNameTlv
@@ -1231,7 +1232,7 @@
      * Metric object in PcepUpdate message.
      */
     @Test
-    public void pcepUpdateMsgTest32() throws PcepParseException {
+    public void pcepUpdateMsgTest32() throws PcepParseException, PcepOutOfBoundMessageException {
         byte[] updateMsg = new byte[] {0x20, 0x0b, 0x00, (byte) 0x64,
                 0x21, 0x10, 0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, //SRP object
                 0x00, 0x11, 0x00, 0x02,  0x54, 0x31, 0x00, 0x00, //SymbolicPathNameTlv
diff --git a/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/protocol/PcepUpdateMsgTest.java b/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/protocol/PcepUpdateMsgTest.java
index 1db3064..3d0ba27 100644
--- a/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/protocol/PcepUpdateMsgTest.java
+++ b/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/protocol/PcepUpdateMsgTest.java
@@ -18,6 +18,7 @@
 import org.jboss.netty.buffer.ChannelBuffer;
 import org.jboss.netty.buffer.ChannelBuffers;
 import org.junit.Test;
+import org.onosproject.pcepio.exceptions.PcepOutOfBoundMessageException;
 import org.onosproject.pcepio.exceptions.PcepParseException;
 
 import static org.hamcrest.MatcherAssert.assertThat;
@@ -29,7 +30,7 @@
      * This test case checks for SRP, LSP (StatefulIPv4LspIdentidiersTlv), ERO in PcUpd message.
      */
     @Test
-    public void pcepUpdateMsgTest1() throws PcepParseException {
+    public void pcepUpdateMsgTest1() throws PcepParseException, PcepOutOfBoundMessageException {
 
         byte[] updateMsg = new byte[] {0x20, 0x0b, 0x00, (byte) 0x30,
                 0x21, 0x10, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, //SRP object
@@ -64,7 +65,7 @@
      * SymbolicPathNameTlv, StatefulLspErrorCodeTlv), ERO, LSPA, Metric-list in PcUpd message.
      */
     @Test
-    public void pcepUpdateMsgTest2() throws PcepParseException {
+    public void pcepUpdateMsgTest2() throws PcepParseException, PcepOutOfBoundMessageException {
 
         byte[] updateMsg = new byte[] {0x20, 0x0b, 0x00, (byte) 0x94,
                 0x21, 0x10, 0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, //SRP object
@@ -108,7 +109,7 @@
      * ERO objects in PcUpd message.
      */
     @Test
-    public void pcepUpdateMsgTest3() throws PcepParseException {
+    public void pcepUpdateMsgTest3() throws PcepParseException, PcepOutOfBoundMessageException {
 
         byte[] updateMsg = new byte[] {0x20, 0x0b, 0x00, (byte) 0x38,
                 0x21, 0x10, 0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, //SRP object
@@ -145,7 +146,7 @@
      * SymbolicPathNameTlv), ERO objects in PcUpd message.
      */
     @Test
-    public void pcepUpdateMsgTest4() throws PcepParseException {
+    public void pcepUpdateMsgTest4() throws PcepParseException, PcepOutOfBoundMessageException {
 
         byte[] updateMsg = new byte[] {0x20, 0x0b, 0x00, (byte) 0x40,
                 0x21, 0x10, 0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, //SRP object
@@ -183,7 +184,7 @@
      * SymbolicPathNameTlv), ERO objects in PcUpd message.
      */
     @Test
-    public void pcepUpdateMsgTest5() throws PcepParseException {
+    public void pcepUpdateMsgTest5() throws PcepParseException, PcepOutOfBoundMessageException {
 
         byte[] updateMsg = new byte[] {0x20, 0x0b, 0x00, (byte) 0x40,
                 0x21, 0x10, 0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, //SRP object
@@ -221,7 +222,7 @@
      * StatefulLspErrorCodeTlv), ERO objects in PcUpd message.
      */
     @Test
-    public void pcepUpdateMsgTest6() throws PcepParseException {
+    public void pcepUpdateMsgTest6() throws PcepParseException, PcepOutOfBoundMessageException {
 
         byte[] updateMsg = new byte[] {0x20, 0x0b, 0x00, (byte) 0x48,
                 0x21, 0x10, 0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, //SRP object
@@ -261,7 +262,7 @@
      * StatefulLspErrorCodeTlv), ERO objects in PcUpd message.
      */
     @Test
-    public void pcepUpdateMsgTest7() throws PcepParseException {
+    public void pcepUpdateMsgTest7() throws PcepParseException, PcepOutOfBoundMessageException {
 
         byte[] updateMsg = new byte[] {0x20, 0x0b, 0x00, (byte) 0x48,
                 0x21, 0x10, 0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, //SRP object
@@ -299,7 +300,7 @@
      * StatefulLspErrorCodeTlv), ERO (IPv4SubObject) objects in PcUpd message.
      */
     @Test
-    public void pcepUpdateMsgTest8() throws PcepParseException {
+    public void pcepUpdateMsgTest8() throws PcepParseException, PcepOutOfBoundMessageException {
 
         byte[] updateMsg = new byte[] {0x20, 0x0b, 0x00, (byte) 0x50,
                 0x21, 0x10, 0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, //SRP object
@@ -339,7 +340,7 @@
      * StatefulLspErrorCodeTlv), ERO (IPv4SubObject, IPv4SubObject) objects in PcUpd message.
      */
     @Test
-    public void pcepUpdateMsgTest9() throws PcepParseException {
+    public void pcepUpdateMsgTest9() throws PcepParseException, PcepOutOfBoundMessageException {
 
         byte[] updateMsg = new byte[] {0x20, 0x0b, 0x00, (byte) 0x58,
                 0x21, 0x10, 0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, //SRP object
@@ -380,7 +381,7 @@
      * StatefulLspErrorCodeTlv), ERO (IPv4SubObject, IPv4SubObject), LSPA objects in PcUpd message.
      */
     @Test
-    public void pcepUpdateMsgTest10() throws PcepParseException {
+    public void pcepUpdateMsgTest10() throws PcepParseException, PcepOutOfBoundMessageException {
 
         byte[] updateMsg = new byte[] {0x20, 0x0b, 0x00, (byte) 0x6c,
                 0x21, 0x10, 0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, //SRP object
@@ -423,7 +424,7 @@
      * StatefulLspErrorCodeTlv), ERO (IPv4SubObject, IPv4SubObject),LSPA, Metric objects in PcUpd message.
      */
     @Test
-    public void pcepUpdateMsgTest11() throws PcepParseException {
+    public void pcepUpdateMsgTest11() throws PcepParseException, PcepOutOfBoundMessageException {
 
         byte[] updateMsg = new byte[] {0x20, 0x0b, 0x00, (byte) 0x78,
                 0x21, 0x10, 0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, //SRP object
@@ -467,7 +468,7 @@
      * StatefulLspErrorCodeTlv), ERO (IPv4SubObject, IPv4SubObject),LSPA, metric objects in PcUpd message.
      */
     @Test
-    public void pcepUpdateMsgTest12() throws PcepParseException {
+    public void pcepUpdateMsgTest12() throws PcepParseException, PcepOutOfBoundMessageException {
 
         byte[] updateMsg = new byte[] {0x20, 0x0b, 0x00, (byte) 0x70,
                 0x21, 0x10, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, //SRP object
@@ -510,7 +511,7 @@
      * StatefulLspErrorCodeTlv), ERO (IPv4SubObject, IPv4SubObject),LSPA, metric objects in PcUpd message.
      */
     @Test
-    public void pcepUpdateMsgTest13() throws PcepParseException {
+    public void pcepUpdateMsgTest13() throws PcepParseException, PcepOutOfBoundMessageException {
 
         byte[] updateMsg = new byte[] {0x20, 0x0b, 0x00, (byte) 0x70,
                 0x21, 0x10, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, //SRP object
@@ -553,7 +554,7 @@
      * ERO (IPv4SubObject, IPv4SubObject),LSPA, metric Object objects in PcUpd message.
      */
     @Test
-    public void pcepUpdateMsgTest14() throws PcepParseException {
+    public void pcepUpdateMsgTest14() throws PcepParseException, PcepOutOfBoundMessageException {
 
         byte[] updateMsg = new byte[] {0x20, 0x0b, 0x00, (byte) 0x68,
                 0x21, 0x10, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, //SRP object
@@ -595,7 +596,7 @@
      * ERO (IPv4SubObject, IPv4SubObject),LSPA, metric objects in PcUpd message.
      */
     @Test
-    public void pcepUpdateMsgTest15() throws PcepParseException {
+    public void pcepUpdateMsgTest15() throws PcepParseException, PcepOutOfBoundMessageException {
 
         byte[] updateMsg = new byte[] {0x20, 0x0b, 0x00, (byte) 0x68,
                 0x21, 0x10, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, //SRP object
@@ -637,7 +638,7 @@
      * ERO (IPv4SubObject, IPv4SubObject),LSPA, metric objects in PcUpd message.
      */
     @Test
-    public void pcepUpdateMsgTest16() throws PcepParseException {
+    public void pcepUpdateMsgTest16() throws PcepParseException, PcepOutOfBoundMessageException {
 
         byte[] updateMsg = new byte[] {0x20, 0x0b, 0x00, (byte) 0x60,
                 0x21, 0x10, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, //SRP object
@@ -678,7 +679,7 @@
      * ERO (IPv4SubObject, IPv4SubObject),LSPA objects in PcUpd message.
      */
     @Test
-    public void pcepUpdateMsgTest17() throws PcepParseException {
+    public void pcepUpdateMsgTest17() throws PcepParseException, PcepOutOfBoundMessageException {
 
         byte[] updateMsg = new byte[] {0x20, 0x0b, 0x00, (byte) 0x54,
                 0x21, 0x10, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, //SRP object
@@ -718,7 +719,7 @@
      * ERO (IPv4SubObject, IPv4SubObject),Metric objects in PcUpd message.
      */
     @Test
-    public void pcepUpdateMsgTest18() throws PcepParseException {
+    public void pcepUpdateMsgTest18() throws PcepParseException, PcepOutOfBoundMessageException {
 
         byte[] updateMsg = new byte[] {0x20, 0x0b, 0x00, (byte) 0x4c,
                 0x21, 0x10, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, //SRP object
@@ -757,7 +758,7 @@
      * ERO (IPv4SubObject, IPv4SubObject),Metric-list objects in PcUpd message.
      */
     @Test
-    public void pcepUpdateMsgTest19() throws PcepParseException {
+    public void pcepUpdateMsgTest19() throws PcepParseException, PcepOutOfBoundMessageException {
 
         byte[] updateMsg = new byte[] {0x20, 0x0b, 0x00, (byte) 0x58,
                 0x21, 0x10, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, //SRP object
@@ -797,7 +798,7 @@
      * StatefulLspErrorCodeTlv),ERO (IPv4SubObject, IPv4SubObject),LSPA, Bandwidth, Metric objects in PcUpd message.
      */
     @Test
-    public void pcepUpdateMsgTest20() throws PcepParseException {
+    public void pcepUpdateMsgTest20() throws PcepParseException, PcepOutOfBoundMessageException {
 
         byte[] updateMsg = new byte[] {0x20, 0x0b, 0x00, (byte) 0x80,
                 0x21, 0x10, 0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, //SRP object
@@ -842,7 +843,7 @@
      * ERO (IPv4SubObject, IPv4SubObject), Bandwidth objects in PcUpd message.
      */
     @Test
-    public void pcepUpdateMsgTest21() throws PcepParseException {
+    public void pcepUpdateMsgTest21() throws PcepParseException, PcepOutOfBoundMessageException {
 
         byte[] updateMsg = new byte[] {0x20, 0x0b, 0x00, (byte) 0x48,
                 0x21, 0x10, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, //SRP object
@@ -881,7 +882,7 @@
      * ERO (IPv4SubObject, IPv4SubObject), LSPA, Bandwidth objects in PcUpd message.
      */
     @Test
-    public void pcepUpdateMsgTest22() throws PcepParseException {
+    public void pcepUpdateMsgTest22() throws PcepParseException, PcepOutOfBoundMessageException {
 
         byte[] updateMsg = new byte[] {0x20, 0x0b, 0x00, (byte) 0x5C,
                 0x21, 0x10, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, //SRP object
@@ -922,7 +923,7 @@
      * ERO (IPv4SubObject, IPv4SubObject), LSPA, Bandwidth, Metric objects in PcUpd message.
      */
     @Test
-    public void pcepUpdateMsgTest23() throws PcepParseException {
+    public void pcepUpdateMsgTest23() throws PcepParseException, PcepOutOfBoundMessageException {
 
         byte[] updateMsg = new byte[] {0x20, 0x0b, 0x00, (byte) 0x68,
                 0x21, 0x10, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, //SRP object
@@ -964,7 +965,7 @@
      * ERO (IPv4SubObject, IPv4SubObject), LSPA, Bandwidth, Metric objects in PcUpd message.
      */
     @Test
-    public void pcepUpdateMsgTest24() throws PcepParseException {
+    public void pcepUpdateMsgTest24() throws PcepParseException, PcepOutOfBoundMessageException {
 
         byte[] updateMsg = new byte[] {0x20, 0x0b, 0x00, (byte) 0x70,
                 0x21, 0x10, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, //SRP object
@@ -1007,7 +1008,7 @@
      * ERO (IPv4SubObject, IPv4SubObject), LSPA, Bandwidth, Metric objects in PcUpd message.
      */
     @Test
-    public void pcepUpdateMsgTest25() throws PcepParseException {
+    public void pcepUpdateMsgTest25() throws PcepParseException, PcepOutOfBoundMessageException {
 
         byte[] updateMsg = new byte[] {0x20, 0x0b, 0x00, (byte) 0x70,
                 0x21, 0x10, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, //SRP object
@@ -1051,7 +1052,7 @@
      * Metric objects in PcUpd message.
      */
     @Test
-    public void pcepUpdateMsgTest26() throws PcepParseException {
+    public void pcepUpdateMsgTest26() throws PcepParseException, PcepOutOfBoundMessageException {
 
         byte[] updateMsg = new byte[] {0x20, 0x0b, 0x00, (byte) 0x78,
                 0x21, 0x10, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, //SRP object
@@ -1095,7 +1096,7 @@
      * Metric objects in PcUpd message.
      */
     @Test
-    public void pcepUpdateMsgTest27() throws PcepParseException {
+    public void pcepUpdateMsgTest27() throws PcepParseException, PcepOutOfBoundMessageException {
 
         byte[] updateMsg = new byte[] {0x20, 0x0b, 0x00, (byte) 0x78,
                 0x21, 0x10, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, //SRP object
@@ -1140,7 +1141,7 @@
      * LSPA, Bandwidth, Metric objects in PcUpd message.
      */
     @Test
-    public void pcepUpdateMsgTest28() throws PcepParseException {
+    public void pcepUpdateMsgTest28() throws PcepParseException, PcepOutOfBoundMessageException {
 
         byte[] updateMsg = new byte[] {0x20, 0x0b, 0x00, (byte) 0x80,
                 0x21, 0x10, 0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, //SRP object
@@ -1185,7 +1186,7 @@
      * ERO (IPv4SubObject, IPv4SubObject), LSPA, Bandwidth, Metric objects in PcUpd message.
      */
     @Test
-    public void pcepUpdateMsgTest29() throws PcepParseException {
+    public void pcepUpdateMsgTest29() throws PcepParseException, PcepOutOfBoundMessageException {
 
         byte[] updateMsg = new byte[] {0x20, 0x0b, 0x00, (byte) 0x68,
                 0x21, 0x10, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, //SRP object
@@ -1227,7 +1228,7 @@
      * ERO (IPv4SubObject, IPv4SubObject), LSPA, Bandwidth, Metric objects in PcUpd message.
      */
     @Test
-    public void pcepUpdateMsgTest30() throws PcepParseException {
+    public void pcepUpdateMsgTest30() throws PcepParseException, PcepOutOfBoundMessageException {
 
         byte[] updateMsg = new byte[] {0x20, 0x0b, 0x00, (byte) 0x54,
                 0x21, 0x10, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, //SRP object
@@ -1266,7 +1267,7 @@
      * ERO (IPv4SubObject, IPv4SubObject), LSPA, Bandwidth, Metric objects in PcUpd message.
      */
     @Test
-    public void pcepUpdateMsgTest31() throws PcepParseException {
+    public void pcepUpdateMsgTest31() throws PcepParseException, PcepOutOfBoundMessageException {
 
         byte[] updateMsg = new byte[] {0x20, 0x0b, 0x00, (byte) 0x5c,
                 0x21, 0x10, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, //SRP object
@@ -1306,7 +1307,7 @@
      * ERO (IPv4SubObject, IPv4SubObject), LSPA, Bandwidth, Metric objects in PcUpd message.
      */
     @Test
-    public void pcepUpdateMsgTest32() throws PcepParseException {
+    public void pcepUpdateMsgTest32() throws PcepParseException, PcepOutOfBoundMessageException {
 
         byte[] updateMsg = new byte[] {0x20, 0x0b, 0x00, (byte) 0x54,
                 0x21, 0x10, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, //SRP object
@@ -1345,7 +1346,7 @@
      * ERO (IPv4SubObject, IPv4SubObject), LSPA, Bandwidth, Metric objects in PcUpd message.
      */
     @Test
-    public void pcepUpdateMsgTest33() throws PcepParseException {
+    public void pcepUpdateMsgTest33() throws PcepParseException, PcepOutOfBoundMessageException {
 
         byte[] updateMsg = new byte[] {0x20, 0x0b, 0x00, (byte) 0x5c,
                 0x21, 0x10, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, //SRP object
@@ -1385,7 +1386,7 @@
      * ERO (IPv4SubObject, IPv4SubObject), LSPA, Bandwidth, Metric objects in PcUpd message.
      */
     @Test
-    public void pcepUpdateMsgTest34() throws PcepParseException {
+    public void pcepUpdateMsgTest34() throws PcepParseException, PcepOutOfBoundMessageException {
 
         byte[] updateMsg = new byte[] {0x20, 0x0b, 0x00, (byte) 0x64,
                 0x21, 0x10, 0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, //SRP object
diff --git a/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/IPv4NeighborAddressTlvTest.java b/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/AdministrativeGroupSubTlvTest.java
similarity index 72%
copy from protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/IPv4NeighborAddressTlvTest.java
copy to protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/AdministrativeGroupSubTlvTest.java
index 5f10b4c..2ec8b4a 100644
--- a/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/IPv4NeighborAddressTlvTest.java
+++ b/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/AdministrativeGroupSubTlvTest.java
@@ -19,13 +19,12 @@
 import org.junit.Test;
 
 /**
- * Test of the IPv4NeighborAddressTlv.
+ * Test of the AdministrativeGroupSubTlv.
  */
-public class IPv4NeighborAddressTlvTest {
-
-    private final IPv4NeighborAddressTlv tlv1 = IPv4NeighborAddressTlv.of(2);
-    private final IPv4NeighborAddressTlv sameAsTlv1 = IPv4NeighborAddressTlv.of(2);
-    private final IPv4NeighborAddressTlv tlv2 = IPv4NeighborAddressTlv.of(3);
+public class AdministrativeGroupSubTlvTest {
+    private final AdministrativeGroupSubTlv tlv1 = AdministrativeGroupSubTlv.of(1);
+    private final AdministrativeGroupSubTlv sameAsTlv1 = AdministrativeGroupSubTlv.of(1);
+    private final AdministrativeGroupSubTlv tlv2 = AdministrativeGroupSubTlv.of(2);
 
     @Test
     public void basics() {
diff --git a/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/AdministrativeGroupTlvTest.java b/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/AdministrativeGroupTlvTest.java
deleted file mode 100644
index 41e8844..0000000
--- a/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/AdministrativeGroupTlvTest.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Copyright 2015 Open Networking Laboratory
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.onosproject.pcepio.types;
-
-import com.google.common.testing.EqualsTester;
-import org.junit.Test;
-
-/**
- * Test of the AdministrativeGroupTlv.
- */
-public class AdministrativeGroupTlvTest {
-    private final AdministrativeGroupTlv tlv1 = AdministrativeGroupTlv.of(1);
-    private final AdministrativeGroupTlv sameAsTlv1 = AdministrativeGroupTlv.of(1);
-    private final AdministrativeGroupTlv tlv2 = AdministrativeGroupTlv.of(2);
-
-    @Test
-    public void basics() {
-        new EqualsTester()
-        .addEqualityGroup(tlv1, sameAsTlv1)
-        .addEqualityGroup(tlv2)
-        .testEquals();
-    }
-}
diff --git a/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/MaximumLinkBandwidthTlvTest.java b/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/AutonomousSystemNumberSubObjectTest.java
similarity index 61%
copy from protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/MaximumLinkBandwidthTlvTest.java
copy to protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/AutonomousSystemNumberSubObjectTest.java
index 4e022b8..83bb86f 100644
--- a/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/MaximumLinkBandwidthTlvTest.java
+++ b/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/AutonomousSystemNumberSubObjectTest.java
@@ -19,21 +19,19 @@
 import org.junit.Test;
 
 /**
- * Test of the MaximumLinkBandwidthTlv.
+ * Test of the AutonomousSystemNumberSubObject.
  */
-public class MaximumLinkBandwidthTlvTest {
-    private final int rawValue1 = 0x0A;
-    private final int rawValue2 = 0x0B;
+public class AutonomousSystemNumberSubObjectTest {
 
-    private final MaximumLinkBandwidthTlv tlv1 = new MaximumLinkBandwidthTlv(rawValue1);
-    private final MaximumLinkBandwidthTlv sameAsTlv1 = new MaximumLinkBandwidthTlv(rawValue1);
-    private final MaximumLinkBandwidthTlv tlv2 = MaximumLinkBandwidthTlv.of(rawValue2);
+    private final AutonomousSystemNumberSubObject subObj1 = AutonomousSystemNumberSubObject.of((short) 2);
+    private final AutonomousSystemNumberSubObject sameAsSubObj1 = AutonomousSystemNumberSubObject.of((short) 2);
+    private final AutonomousSystemNumberSubObject subObj2 = AutonomousSystemNumberSubObject.of((short) 3);
 
     @Test
     public void basics() {
         new EqualsTester()
-        .addEqualityGroup(tlv1, sameAsTlv1)
-        .addEqualityGroup(tlv2)
+        .addEqualityGroup(subObj1, sameAsSubObj1)
+        .addEqualityGroup(subObj2)
         .testEquals();
     }
 }
diff --git a/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/IPv4NeighborAddressTlvTest.java b/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/AutonomousSystemSubTlvTest.java
similarity index 73%
rename from protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/IPv4NeighborAddressTlvTest.java
rename to protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/AutonomousSystemSubTlvTest.java
index 5f10b4c..a959af7 100644
--- a/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/IPv4NeighborAddressTlvTest.java
+++ b/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/AutonomousSystemSubTlvTest.java
@@ -19,13 +19,12 @@
 import org.junit.Test;
 
 /**
- * Test of the IPv4NeighborAddressTlv.
+ * Test of the AutonomousSystemSubTlv.
  */
-public class IPv4NeighborAddressTlvTest {
-
-    private final IPv4NeighborAddressTlv tlv1 = IPv4NeighborAddressTlv.of(2);
-    private final IPv4NeighborAddressTlv sameAsTlv1 = IPv4NeighborAddressTlv.of(2);
-    private final IPv4NeighborAddressTlv tlv2 = IPv4NeighborAddressTlv.of(3);
+public class AutonomousSystemSubTlvTest {
+    private final AutonomousSystemSubTlv tlv1 = AutonomousSystemSubTlv.of(1);
+    private final AutonomousSystemSubTlv sameAsTlv1 = AutonomousSystemSubTlv.of(1);
+    private final AutonomousSystemSubTlv tlv2 = AutonomousSystemSubTlv.of(2);
 
     @Test
     public void basics() {
diff --git a/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/AutonomousSystemTlvTest.java b/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/BgpLsIdentifierSubTlvTest.java
similarity index 74%
rename from protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/AutonomousSystemTlvTest.java
rename to protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/BgpLsIdentifierSubTlvTest.java
index 904a71e..222c468 100644
--- a/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/AutonomousSystemTlvTest.java
+++ b/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/BgpLsIdentifierSubTlvTest.java
@@ -19,12 +19,12 @@
 import org.junit.Test;
 
 /**
- * Test of the AutonomousSystemTlv.
+ * Test of the BgpLsIdentifierSubTlv.
  */
-public class AutonomousSystemTlvTest {
-    private final AutonomousSystemTlv tlv1 = AutonomousSystemTlv.of(1);
-    private final AutonomousSystemTlv sameAsTlv1 = AutonomousSystemTlv.of(1);
-    private final AutonomousSystemTlv tlv2 = AutonomousSystemTlv.of(2);
+public class BgpLsIdentifierSubTlvTest {
+    private final BgpLsIdentifierSubTlv tlv1 = BgpLsIdentifierSubTlv.of(1);
+    private final BgpLsIdentifierSubTlv sameAsTlv1 = BgpLsIdentifierSubTlv.of(1);
+    private final BgpLsIdentifierSubTlv tlv2 = BgpLsIdentifierSubTlv.of(2);
 
     @Test
     public void basics() {
diff --git a/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/BgpLsIdentifierTlvTest.java b/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/BgpLsIdentifierTlvTest.java
deleted file mode 100644
index 78137a7..0000000
--- a/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/BgpLsIdentifierTlvTest.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Copyright 2015 Open Networking Laboratory
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.onosproject.pcepio.types;
-
-import com.google.common.testing.EqualsTester;
-import org.junit.Test;
-
-/**
- * Test of the BGPLSidentifierTlv.
- */
-public class BgpLsIdentifierTlvTest {
-    private final BgpLsIdentifierTlv tlv1 = BgpLsIdentifierTlv.of(1);
-    private final BgpLsIdentifierTlv sameAsTlv1 = BgpLsIdentifierTlv.of(1);
-    private final BgpLsIdentifierTlv tlv2 = BgpLsIdentifierTlv.of(2);
-
-    @Test
-    public void basics() {
-        new EqualsTester()
-        .addEqualityGroup(tlv1, sameAsTlv1)
-        .addEqualityGroup(tlv2)
-        .testEquals();
-    }
-}
diff --git a/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/IPv4NeighborAddressTlvTest.java b/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/IPv4InterfaceAddressSubTlvTest.java
similarity index 71%
copy from protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/IPv4NeighborAddressTlvTest.java
copy to protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/IPv4InterfaceAddressSubTlvTest.java
index 5f10b4c..40574a9 100644
--- a/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/IPv4NeighborAddressTlvTest.java
+++ b/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/IPv4InterfaceAddressSubTlvTest.java
@@ -19,13 +19,13 @@
 import org.junit.Test;
 
 /**
- * Test of the IPv4NeighborAddressTlv.
+ * Test of the IPv4InterfaceAddressSubTlv.
  */
-public class IPv4NeighborAddressTlvTest {
+public class IPv4InterfaceAddressSubTlvTest {
 
-    private final IPv4NeighborAddressTlv tlv1 = IPv4NeighborAddressTlv.of(2);
-    private final IPv4NeighborAddressTlv sameAsTlv1 = IPv4NeighborAddressTlv.of(2);
-    private final IPv4NeighborAddressTlv tlv2 = IPv4NeighborAddressTlv.of(3);
+    private final IPv4InterfaceAddressSubTlv tlv1 = IPv4InterfaceAddressSubTlv.of(2);
+    private final IPv4InterfaceAddressSubTlv sameAsTlv1 = IPv4InterfaceAddressSubTlv.of(2);
+    private final IPv4InterfaceAddressSubTlv tlv2 = IPv4InterfaceAddressSubTlv.of(3);
 
     @Test
     public void basics() {
diff --git a/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/IPv4InterfaceAddressTlvTest.java b/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/IPv4InterfaceAddressTlvTest.java
deleted file mode 100644
index eb3a16a..0000000
--- a/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/IPv4InterfaceAddressTlvTest.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Copyright 2015 Open Networking Laboratory
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.onosproject.pcepio.types;
-
-import com.google.common.testing.EqualsTester;
-import org.junit.Test;
-
-/**
- * Test of the IPv4InterfaceAddressTlv.
- */
-public class IPv4InterfaceAddressTlvTest {
-
-    private final IPv4InterfaceAddressTlv tlv1 = IPv4InterfaceAddressTlv.of(2);
-    private final IPv4InterfaceAddressTlv sameAsTlv1 = IPv4InterfaceAddressTlv.of(2);
-    private final IPv4InterfaceAddressTlv tlv2 = IPv4InterfaceAddressTlv.of(3);
-
-    @Test
-    public void basics() {
-        new EqualsTester()
-        .addEqualityGroup(tlv1, sameAsTlv1)
-        .addEqualityGroup(tlv2)
-        .testEquals();
-    }
-}
diff --git a/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/IPv4NeighborAddressTlvTest.java b/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/IPv4NeighborAddressSubTlvTest.java
similarity index 72%
copy from protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/IPv4NeighborAddressTlvTest.java
copy to protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/IPv4NeighborAddressSubTlvTest.java
index 5f10b4c..b0d8e2a 100644
--- a/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/IPv4NeighborAddressTlvTest.java
+++ b/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/IPv4NeighborAddressSubTlvTest.java
@@ -19,13 +19,13 @@
 import org.junit.Test;
 
 /**
- * Test of the IPv4NeighborAddressTlv.
+ * Test of the IPv4NeighborAddressSubTlv.
  */
-public class IPv4NeighborAddressTlvTest {
+public class IPv4NeighborAddressSubTlvTest {
 
-    private final IPv4NeighborAddressTlv tlv1 = IPv4NeighborAddressTlv.of(2);
-    private final IPv4NeighborAddressTlv sameAsTlv1 = IPv4NeighborAddressTlv.of(2);
-    private final IPv4NeighborAddressTlv tlv2 = IPv4NeighborAddressTlv.of(3);
+    private final IPv4NeighborAddressSubTlv tlv1 = IPv4NeighborAddressSubTlv.of(2);
+    private final IPv4NeighborAddressSubTlv sameAsTlv1 = IPv4NeighborAddressSubTlv.of(2);
+    private final IPv4NeighborAddressSubTlv tlv2 = IPv4NeighborAddressSubTlv.of(3);
 
     @Test
     public void basics() {
diff --git a/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/IPv4TERouterIdOfRemoteNodeTlvTest.java b/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/IPv4RouterIdOfLocalNodeSubTlvTest.java
similarity index 70%
rename from protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/IPv4TERouterIdOfRemoteNodeTlvTest.java
rename to protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/IPv4RouterIdOfLocalNodeSubTlvTest.java
index f40ede0..89e1878 100644
--- a/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/IPv4TERouterIdOfRemoteNodeTlvTest.java
+++ b/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/IPv4RouterIdOfLocalNodeSubTlvTest.java
@@ -19,13 +19,13 @@
 import org.junit.Test;
 
 /**
- * Test of the IPv4TERouterIdOfRemoteNodeTlv.
+ * Test of the IPv4RouterIdOfLocalNodeSubTlv.
  */
-public class IPv4TERouterIdOfRemoteNodeTlvTest {
+public class IPv4RouterIdOfLocalNodeSubTlvTest {
 
-    private final IPv4TERouterIdOfRemoteNodeTlv tlv1 = IPv4TERouterIdOfRemoteNodeTlv.of(2);
-    private final IPv4TERouterIdOfRemoteNodeTlv sameAsTlv1 = IPv4TERouterIdOfRemoteNodeTlv.of(2);
-    private final IPv4TERouterIdOfRemoteNodeTlv tlv2 = IPv4TERouterIdOfRemoteNodeTlv.of(3);
+    private final IPv4RouterIdOfLocalNodeSubTlv tlv1 = IPv4RouterIdOfLocalNodeSubTlv.of(2);
+    private final IPv4RouterIdOfLocalNodeSubTlv sameAsTlv1 = IPv4RouterIdOfLocalNodeSubTlv.of(2);
+    private final IPv4RouterIdOfLocalNodeSubTlv tlv2 = IPv4RouterIdOfLocalNodeSubTlv.of(3);
 
     @Test
     public void basics() {
diff --git a/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/IPv4TERouterIdOfRemoteNodeTlvTest.java b/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/IPv4RouterIdOfRemoteNodeSubTlvTest.java
similarity index 70%
copy from protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/IPv4TERouterIdOfRemoteNodeTlvTest.java
copy to protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/IPv4RouterIdOfRemoteNodeSubTlvTest.java
index f40ede0..778d227 100644
--- a/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/IPv4TERouterIdOfRemoteNodeTlvTest.java
+++ b/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/IPv4RouterIdOfRemoteNodeSubTlvTest.java
@@ -19,13 +19,13 @@
 import org.junit.Test;
 
 /**
- * Test of the IPv4TERouterIdOfRemoteNodeTlv.
+ * Test of the IPv4RouterIdOfRemoteNodeSubTlv.
  */
-public class IPv4TERouterIdOfRemoteNodeTlvTest {
+public class IPv4RouterIdOfRemoteNodeSubTlvTest {
 
-    private final IPv4TERouterIdOfRemoteNodeTlv tlv1 = IPv4TERouterIdOfRemoteNodeTlv.of(2);
-    private final IPv4TERouterIdOfRemoteNodeTlv sameAsTlv1 = IPv4TERouterIdOfRemoteNodeTlv.of(2);
-    private final IPv4TERouterIdOfRemoteNodeTlv tlv2 = IPv4TERouterIdOfRemoteNodeTlv.of(3);
+    private final IPv4RouterIdOfRemoteNodeSubTlv tlv1 = IPv4RouterIdOfRemoteNodeSubTlv.of(2);
+    private final IPv4RouterIdOfRemoteNodeSubTlv sameAsTlv1 = IPv4RouterIdOfRemoteNodeSubTlv.of(2);
+    private final IPv4RouterIdOfRemoteNodeSubTlv tlv2 = IPv4RouterIdOfRemoteNodeSubTlv.of(3);
 
     @Test
     public void basics() {
diff --git a/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/IPv4TERouterIdOfLocalNodeTlvTest.java b/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/IPv4TERouterIdOfLocalNodeTlvTest.java
deleted file mode 100644
index 3880ca7..0000000
--- a/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/IPv4TERouterIdOfLocalNodeTlvTest.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Copyright 2015 Open Networking Laboratory
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.onosproject.pcepio.types;
-
-import com.google.common.testing.EqualsTester;
-import org.junit.Test;
-
-/**
- * Test of the IPv4TERouterIdOfLocalNodeTlv.
- */
-public class IPv4TERouterIdOfLocalNodeTlvTest {
-
-    private final IPv4TERouterIdOfLocalNodeTlv tlv1 = IPv4TERouterIdOfLocalNodeTlv.of(2);
-    private final IPv4TERouterIdOfLocalNodeTlv sameAsTlv1 = IPv4TERouterIdOfLocalNodeTlv.of(2);
-    private final IPv4TERouterIdOfLocalNodeTlv tlv2 = IPv4TERouterIdOfLocalNodeTlv.of(3);
-
-    @Test
-    public void basics() {
-        new EqualsTester()
-        .addEqualityGroup(tlv1, sameAsTlv1)
-        .addEqualityGroup(tlv2)
-        .testEquals();
-    }
-}
diff --git a/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/IPv6InterfaceAddressTlvTest.java b/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/IPv6InterfaceAddressSubTlvTest.java
similarity index 78%
rename from protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/IPv6InterfaceAddressTlvTest.java
rename to protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/IPv6InterfaceAddressSubTlvTest.java
index 0f8e37c..79a3260 100644
--- a/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/IPv6InterfaceAddressTlvTest.java
+++ b/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/IPv6InterfaceAddressSubTlvTest.java
@@ -19,18 +19,18 @@
 import org.junit.Test;
 
 /**
- * Test of the IPv6InterfaceAddressTlv.
+ * Test of the IPv6InterfaceAddressSubTlv.
  */
-public class IPv6InterfaceAddressTlvTest {
+public class IPv6InterfaceAddressSubTlvTest {
 
     private final byte[] b1 = new byte[] {(byte) 0xFE, (byte) 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02,
             (byte) 0xB3, (byte) 0xFF, (byte) 0xFE, 0x1E, (byte) 0x83, 0x29, 0x00, 0x02, 0x00, 0x00};
     private final byte[] b2 = new byte[] {(byte) 0xFE, (byte) 0x80, 0x0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02,
             (byte) 0xB3, (byte) 0xFF, (byte) 0xFE, 0x1E, (byte) 0x83, 0x30, 0x00, 0x02, 0x00, 0x01};
 
-    private final IPv6InterfaceAddressTlv tlv1 = IPv6InterfaceAddressTlv.of(b1);
-    private final IPv6InterfaceAddressTlv sameAsTlv1 = IPv6InterfaceAddressTlv.of(b1);
-    private final IPv6InterfaceAddressTlv tlv2 = IPv6InterfaceAddressTlv.of(b2);
+    private final IPv6InterfaceAddressSubTlv tlv1 = IPv6InterfaceAddressSubTlv.of(b1);
+    private final IPv6InterfaceAddressSubTlv sameAsTlv1 = IPv6InterfaceAddressSubTlv.of(b1);
+    private final IPv6InterfaceAddressSubTlv tlv2 = IPv6InterfaceAddressSubTlv.of(b2);
 
     @Test
     public void basics() {
diff --git a/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/IPv6NeighborAddressTlvTest.java b/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/IPv6NeighborAddressSubTlvTest.java
similarity index 79%
rename from protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/IPv6NeighborAddressTlvTest.java
rename to protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/IPv6NeighborAddressSubTlvTest.java
index 57ad769..375ce49 100644
--- a/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/IPv6NeighborAddressTlvTest.java
+++ b/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/IPv6NeighborAddressSubTlvTest.java
@@ -19,18 +19,18 @@
 import org.junit.Test;
 
 /**
- * Test of the IPv6NeighborAddressTlv.
+ * Test of the IPv6NeighborAddressSubTlv.
  */
-public class IPv6NeighborAddressTlvTest {
+public class IPv6NeighborAddressSubTlvTest {
 
     private final byte[] b1 = new byte[] {(byte) 0xFE, (byte) 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02,
             (byte) 0xB3, (byte) 0xFF, (byte) 0xFE, 0x1E, (byte) 0x83, 0x29, 0x00, 0x02, 0x00, 0x00};
     private final byte[] b2 = new byte[] {(byte) 0xFE, (byte) 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02,
             (byte) 0xB3, (byte) 0xFF, (byte) 0xFE, 0x1E, (byte) 0x83, 0x30, 0x00, 0x02, 0x00, 0x01};
 
-    private final IPv6NeighborAddressTlv tlv1 = IPv6NeighborAddressTlv.of(b1);
-    private final IPv6NeighborAddressTlv sameAsTlv1 = IPv6NeighborAddressTlv.of(b1);
-    private final IPv6NeighborAddressTlv tlv2 = IPv6NeighborAddressTlv.of(b2);
+    private final IPv6NeighborAddressSubTlv tlv1 = IPv6NeighborAddressSubTlv.of(b1);
+    private final IPv6NeighborAddressSubTlv sameAsTlv1 = IPv6NeighborAddressSubTlv.of(b1);
+    private final IPv6NeighborAddressSubTlv tlv2 = IPv6NeighborAddressSubTlv.of(b2);
 
     @Test
     public void basics() {
diff --git a/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/IPv6TERouterIdofRemoteNodeTlvTest.java b/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/IPv6RouterIdofLocalNodeSubTlvTest.java
similarity index 77%
copy from protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/IPv6TERouterIdofRemoteNodeTlvTest.java
copy to protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/IPv6RouterIdofLocalNodeSubTlvTest.java
index f382860..6bd63a6 100644
--- a/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/IPv6TERouterIdofRemoteNodeTlvTest.java
+++ b/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/IPv6RouterIdofLocalNodeSubTlvTest.java
@@ -19,18 +19,18 @@
 import org.junit.Test;
 
 /**
- * Test of the IPv6TERouterIdofRemoteNodeTlv.
+ * Test of the IPv6RouterIdofLocalNodeSubTlv.
  */
-public class IPv6TERouterIdofRemoteNodeTlvTest {
+public class IPv6RouterIdofLocalNodeSubTlvTest {
 
     private final byte[] b1 = new byte[] {(byte) 0xFE, (byte) 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02,
             (byte) 0xB3, (byte) 0xFF, (byte) 0xFE, 0x1E, (byte) 0x83, 0x29, 0x00, 0x02, 0x00, 0x00};
     private final byte[] b2 = new byte[] {(byte) 0xFE, (byte) 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02,
             (byte) 0xB3, (byte) 0xFF, (byte) 0xFE, 0x1E, (byte) 0x83, 0x30, 0x00, 0x02, 0x00, 0x00 };
 
-    private final IPv6TERouterIdofRemoteNodeTlv tlv1 = IPv6TERouterIdofRemoteNodeTlv.of(b1);
-    private final IPv6TERouterIdofRemoteNodeTlv sameAsTlv1 = IPv6TERouterIdofRemoteNodeTlv.of(b1);
-    private final IPv6TERouterIdofRemoteNodeTlv tlv2 = IPv6TERouterIdofRemoteNodeTlv.of(b2);
+    private final IPv6RouterIdofLocalNodeSubTlv tlv1 = IPv6RouterIdofLocalNodeSubTlv.of(b1);
+    private final IPv6RouterIdofLocalNodeSubTlv sameAsTlv1 = IPv6RouterIdofLocalNodeSubTlv.of(b1);
+    private final IPv6RouterIdofLocalNodeSubTlv tlv2 = IPv6RouterIdofLocalNodeSubTlv.of(b2);
 
     @Test
     public void basics() {
diff --git a/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/IPv6TERouterIdofRemoteNodeTlvTest.java b/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/IPv6RouterIdofRemoteNodeSubTlvTest.java
similarity index 77%
rename from protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/IPv6TERouterIdofRemoteNodeTlvTest.java
rename to protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/IPv6RouterIdofRemoteNodeSubTlvTest.java
index f382860..eb04558 100644
--- a/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/IPv6TERouterIdofRemoteNodeTlvTest.java
+++ b/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/IPv6RouterIdofRemoteNodeSubTlvTest.java
@@ -19,18 +19,18 @@
 import org.junit.Test;
 
 /**
- * Test of the IPv6TERouterIdofRemoteNodeTlv.
+ * Test of the IPv6RouterIdofRemoteNodeSubTlv.
  */
-public class IPv6TERouterIdofRemoteNodeTlvTest {
+public class IPv6RouterIdofRemoteNodeSubTlvTest {
 
     private final byte[] b1 = new byte[] {(byte) 0xFE, (byte) 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02,
             (byte) 0xB3, (byte) 0xFF, (byte) 0xFE, 0x1E, (byte) 0x83, 0x29, 0x00, 0x02, 0x00, 0x00};
     private final byte[] b2 = new byte[] {(byte) 0xFE, (byte) 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02,
             (byte) 0xB3, (byte) 0xFF, (byte) 0xFE, 0x1E, (byte) 0x83, 0x30, 0x00, 0x02, 0x00, 0x00 };
 
-    private final IPv6TERouterIdofRemoteNodeTlv tlv1 = IPv6TERouterIdofRemoteNodeTlv.of(b1);
-    private final IPv6TERouterIdofRemoteNodeTlv sameAsTlv1 = IPv6TERouterIdofRemoteNodeTlv.of(b1);
-    private final IPv6TERouterIdofRemoteNodeTlv tlv2 = IPv6TERouterIdofRemoteNodeTlv.of(b2);
+    private final IPv6RouterIdofRemoteNodeSubTlv tlv1 = IPv6RouterIdofRemoteNodeSubTlv.of(b1);
+    private final IPv6RouterIdofRemoteNodeSubTlv sameAsTlv1 = IPv6RouterIdofRemoteNodeSubTlv.of(b1);
+    private final IPv6RouterIdofRemoteNodeSubTlv tlv2 = IPv6RouterIdofRemoteNodeSubTlv.of(b2);
 
     @Test
     public void basics() {
diff --git a/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/IPv6TERouterIdofLocalNodeTlvTest.java b/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/IPv6TERouterIdofLocalNodeTlvTest.java
deleted file mode 100644
index 6516ed3..0000000
--- a/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/IPv6TERouterIdofLocalNodeTlvTest.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Copyright 2015 Open Networking Laboratory
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.onosproject.pcepio.types;
-
-import com.google.common.testing.EqualsTester;
-import org.junit.Test;
-
-/**
- * Test of the IPv6TERouterIdofLocalNodeTlv.
- */
-public class IPv6TERouterIdofLocalNodeTlvTest {
-
-    private final byte[] b1 = new byte[] {(byte) 0xFE, (byte) 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02,
-            (byte) 0xB3, (byte) 0xFF, (byte) 0xFE, 0x1E, (byte) 0x83, 0x29, 0x00, 0x02, 0x00, 0x00};
-    private final byte[] b2 = new byte[] {(byte) 0xFE, (byte) 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02,
-            (byte) 0xB3, (byte) 0xFF, (byte) 0xFE, 0x1E, (byte) 0x83, 0x30, 0x00, 0x02, 0x00, 0x00 };
-
-    private final IPv6TERouterIdofLocalNodeTlv tlv1 = IPv6TERouterIdofLocalNodeTlv.of(b1);
-    private final IPv6TERouterIdofLocalNodeTlv sameAsTlv1 = IPv6TERouterIdofLocalNodeTlv.of(b1);
-    private final IPv6TERouterIdofLocalNodeTlv tlv2 = IPv6TERouterIdofLocalNodeTlv.of(b2);
-
-    @Test
-    public void basics() {
-        new EqualsTester()
-        .addEqualityGroup(tlv1, sameAsTlv1)
-        .addEqualityGroup(tlv2)
-        .testEquals();
-    }
-}
diff --git a/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/IgpMetricTlvTest.java b/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/IgpMetricSubTlvTest.java
similarity index 77%
rename from protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/IgpMetricTlvTest.java
rename to protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/IgpMetricSubTlvTest.java
index 20c9dc7..20945f2 100644
--- a/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/IgpMetricTlvTest.java
+++ b/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/IgpMetricSubTlvTest.java
@@ -19,14 +19,14 @@
 import org.junit.Test;
 
 /**
- * Test of the IGPMetricTlv.
+ * Test of the IgpMetricSubTlv.
  */
-public class IgpMetricTlvTest {
+public class IgpMetricSubTlvTest {
     private final byte[] b1 = new byte[] {0x01, 0x02};
     private final byte[] b2 = new byte[] {0x01, 0x03};
-    private final IgpMetricTlv tlv1 = IgpMetricTlv.of(b1, (short) 2);
-    private final IgpMetricTlv sameAsTlv1 = IgpMetricTlv.of(b1, (short) 2);
-    private final IgpMetricTlv tlv2 = IgpMetricTlv.of(b2, (short) 2);
+    private final IgpMetricSubTlv tlv1 = IgpMetricSubTlv.of(b1, (short) 2);
+    private final IgpMetricSubTlv sameAsTlv1 = IgpMetricSubTlv.of(b1, (short) 2);
+    private final IgpMetricSubTlv tlv2 = IgpMetricSubTlv.of(b2, (short) 2);
 
     @Test
     public void basics() {
diff --git a/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/RouterIDSubTlvTest.java b/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/IgpRouterIdSubTlvTest.java
similarity index 77%
rename from protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/RouterIDSubTlvTest.java
rename to protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/IgpRouterIdSubTlvTest.java
index 2f9e18a..5f36f90 100644
--- a/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/RouterIDSubTlvTest.java
+++ b/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/IgpRouterIdSubTlvTest.java
@@ -19,20 +19,20 @@
 import org.junit.Test;
 
 /**
- * Test case for Router ID Sub tlv.
+ * Test case for IgpRouterIdSubTlv.
  */
-public class RouterIDSubTlvTest {
+public class IgpRouterIdSubTlvTest {
 
     private final byte[] value1 = {1, 2 };
     private final Short length1 = 2;
-    private final RouterIDSubTlv tlv1 = RouterIDSubTlv.of(value1, length1);
+    private final IgpRouterIdSubTlv tlv1 = IgpRouterIdSubTlv.of(value1, length1);
 
     private final Short length2 = 2;
-    private final RouterIDSubTlv tlv2 = RouterIDSubTlv.of(value1, length2);
+    private final IgpRouterIdSubTlv tlv2 = IgpRouterIdSubTlv.of(value1, length2);
 
     private final byte[] value3 = {1, 2, 3 };
     private final Short length3 = 3;
-    private final RouterIDSubTlv tlv3 = RouterIDSubTlv.of(value3, length3);
+    private final IgpRouterIdSubTlv tlv3 = IgpRouterIdSubTlv.of(value3, length3);
 
     @Test
     public void basics() {
diff --git a/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/IsisAreaIdentifierTlvTest.java b/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/IsisAreaIdentifierSubTlvTest.java
similarity index 74%
rename from protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/IsisAreaIdentifierTlvTest.java
rename to protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/IsisAreaIdentifierSubTlvTest.java
index a5a14c2..1b91fcd 100644
--- a/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/IsisAreaIdentifierTlvTest.java
+++ b/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/IsisAreaIdentifierSubTlvTest.java
@@ -19,16 +19,16 @@
 import org.junit.Test;
 
 /**
- * Test of the ISISAreaIdentifierTlv.
+ * Test of the IsisAreaIdentifierSubTlv.
  */
-public class IsisAreaIdentifierTlvTest {
+public class IsisAreaIdentifierSubTlvTest {
 
     private final byte[] b1 = new byte[] {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 };
     private final byte[] b2 = new byte[] {2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 };
 
-    private final IsisAreaIdentifierTlv tlv1 = IsisAreaIdentifierTlv.of(b1, (short) 20);
-    private final IsisAreaIdentifierTlv sameAsTlv1 = IsisAreaIdentifierTlv.of(b1, (short) 20);
-    private final IsisAreaIdentifierTlv tlv2 = IsisAreaIdentifierTlv.of(b2, (short) 20);
+    private final IsisAreaIdentifierSubTlv tlv1 = IsisAreaIdentifierSubTlv.of(b1, (short) 20);
+    private final IsisAreaIdentifierSubTlv sameAsTlv1 = IsisAreaIdentifierSubTlv.of(b1, (short) 20);
+    private final IsisAreaIdentifierSubTlv tlv2 = IsisAreaIdentifierSubTlv.of(b2, (short) 20);
 
     @Test
     public void basics() {
diff --git a/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/LinkAttributesTlvTest.java b/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/LinkAttributesTlvTest.java
new file mode 100644
index 0000000..8c0cb62
--- /dev/null
+++ b/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/LinkAttributesTlvTest.java
@@ -0,0 +1,55 @@
+/*
+ * Copyright 2015 Open Networking Laboratory
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.onosproject.pcepio.types;
+
+import com.google.common.testing.EqualsTester;
+import org.junit.Test;
+
+import java.util.LinkedList;
+import java.util.List;
+
+/**
+ * Test case for TE Link Attribute Tlv.
+ */
+public class LinkAttributesTlvTest {
+
+    private final AdministrativeGroupSubTlv administrativeGroupTlv1 = new AdministrativeGroupSubTlv(10);
+    private final MaximumReservableLinkBandwidthSubTlv maximumReservableLinkBandwidthTlv1 =
+            new MaximumReservableLinkBandwidthSubTlv(20);
+
+    private final AdministrativeGroupSubTlv administrativeGroupTlv2 = new AdministrativeGroupSubTlv(20);
+    private final MaximumReservableLinkBandwidthSubTlv maximumReservableLinkBandwidthTlv2 =
+            new MaximumReservableLinkBandwidthSubTlv(30);
+
+    private final List<PcepValueType> llLinkAttributesSubTLV1 = new LinkedList<>();
+    private final boolean a = llLinkAttributesSubTLV1.add(administrativeGroupTlv1);
+    private final boolean b = llLinkAttributesSubTLV1.add(maximumReservableLinkBandwidthTlv1);
+
+    private final List<PcepValueType> llLinkAttributesSubTLV2 = new LinkedList<>();
+
+    private final boolean c = llLinkAttributesSubTLV2.add(administrativeGroupTlv2);
+    private final boolean d = llLinkAttributesSubTLV2.add(maximumReservableLinkBandwidthTlv2);
+
+    private final LinkAttributesTlv tlv1 = LinkAttributesTlv.of(llLinkAttributesSubTLV1);
+    private final LinkAttributesTlv sameAsTlv1 = LinkAttributesTlv.of(llLinkAttributesSubTLV1);
+    private final LinkAttributesTlv tlv2 = LinkAttributesTlv.of(llLinkAttributesSubTLV2);
+
+    @Test
+    public void basics() {
+        new EqualsTester().addEqualityGroup(tlv1, sameAsTlv1).addEqualityGroup(tlv2).testEquals();
+    }
+
+}
diff --git a/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/LinkDescriptorsTlvTest.java b/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/LinkDescriptorsTlvTest.java
new file mode 100644
index 0000000..d271595
--- /dev/null
+++ b/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/LinkDescriptorsTlvTest.java
@@ -0,0 +1,53 @@
+/*
+ * Copyright 2015 Open Networking Laboratory
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.onosproject.pcepio.types;
+
+import com.google.common.testing.EqualsTester;
+import org.junit.Test;
+
+import java.util.LinkedList;
+import java.util.List;
+
+/**
+ * Test case for TE link descriptors Tlv.
+ */
+public class LinkDescriptorsTlvTest {
+    private final LinkLocalRemoteIdentifiersSubTlv linkLocalRemoteIdentifiersTlv1 = new
+            LinkLocalRemoteIdentifiersSubTlv(10, 10);
+    private final IPv4InterfaceAddressSubTlv iPv4InterfaceAddressTlv1 = new IPv4InterfaceAddressSubTlv(0x01010101);
+
+    private final LinkLocalRemoteIdentifiersSubTlv linkLocalRemoteIdentifiersTlv2 = new
+            LinkLocalRemoteIdentifiersSubTlv(20, 20);
+    private final IPv4InterfaceAddressSubTlv iPv4InterfaceAddressTlv2 = new IPv4InterfaceAddressSubTlv(0x02020202);
+
+    private final List<PcepValueType> llLinkDescriptorsSubTLVs1 = new LinkedList<>();
+    private final boolean a = llLinkDescriptorsSubTLVs1.add(linkLocalRemoteIdentifiersTlv1);
+    private final boolean b = llLinkDescriptorsSubTLVs1.add(iPv4InterfaceAddressTlv1);
+
+    private final List<PcepValueType> llLinkDescriptorsSubTLVs2 = new LinkedList<>();
+    private final boolean c = llLinkDescriptorsSubTLVs2.add(linkLocalRemoteIdentifiersTlv2);
+    private final boolean d = llLinkDescriptorsSubTLVs2.add(iPv4InterfaceAddressTlv2);
+
+    private final LinkDescriptorsTlv tlv1 = LinkDescriptorsTlv.of(llLinkDescriptorsSubTLVs1);
+    private final LinkDescriptorsTlv sameAstlv1 = LinkDescriptorsTlv.of(llLinkDescriptorsSubTLVs1);
+    private final LinkDescriptorsTlv tlv2 = LinkDescriptorsTlv.of(llLinkDescriptorsSubTLVs2);
+
+    @Test
+    public void basics() {
+        new EqualsTester().addEqualityGroup(tlv1, sameAstlv1).addEqualityGroup(tlv2).testEquals();
+    }
+
+}
diff --git a/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/IPv4TERouterIdOfRemoteNodeTlvTest.java b/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/LinkLocalRemoteIdentifiersSubTlvTest.java
similarity index 68%
copy from protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/IPv4TERouterIdOfRemoteNodeTlvTest.java
copy to protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/LinkLocalRemoteIdentifiersSubTlvTest.java
index f40ede0..9752874 100644
--- a/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/IPv4TERouterIdOfRemoteNodeTlvTest.java
+++ b/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/LinkLocalRemoteIdentifiersSubTlvTest.java
@@ -19,13 +19,13 @@
 import org.junit.Test;
 
 /**
- * Test of the IPv4TERouterIdOfRemoteNodeTlv.
+ * Test of the LinkLocalRemoteIdentifiersSubTlv.
  */
-public class IPv4TERouterIdOfRemoteNodeTlvTest {
+public class LinkLocalRemoteIdentifiersSubTlvTest {
 
-    private final IPv4TERouterIdOfRemoteNodeTlv tlv1 = IPv4TERouterIdOfRemoteNodeTlv.of(2);
-    private final IPv4TERouterIdOfRemoteNodeTlv sameAsTlv1 = IPv4TERouterIdOfRemoteNodeTlv.of(2);
-    private final IPv4TERouterIdOfRemoteNodeTlv tlv2 = IPv4TERouterIdOfRemoteNodeTlv.of(3);
+    private final LinkLocalRemoteIdentifiersSubTlv tlv1 = LinkLocalRemoteIdentifiersSubTlv.of(10, 20);
+    private final LinkLocalRemoteIdentifiersSubTlv sameAsTlv1 = LinkLocalRemoteIdentifiersSubTlv.of(10, 20);
+    private final LinkLocalRemoteIdentifiersSubTlv tlv2 = LinkLocalRemoteIdentifiersSubTlv.of(20, 30);
 
     @Test
     public void basics() {
diff --git a/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/LinkLocalRemoteIdentifiersTlvTest.java b/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/LinkLocalRemoteIdentifiersTlvTest.java
deleted file mode 100644
index e25bda0..0000000
--- a/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/LinkLocalRemoteIdentifiersTlvTest.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Copyright 2015 Open Networking Laboratory
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.onosproject.pcepio.types;
-
-import com.google.common.testing.EqualsTester;
-import org.junit.Test;
-
-/**
- * Test of the LinkLocalRemoteIdentifiersTlv.
- */
-public class LinkLocalRemoteIdentifiersTlvTest {
-
-    private final LinkLocalRemoteIdentifiersTlv tlv1 = LinkLocalRemoteIdentifiersTlv.of(10, 20);
-    private final LinkLocalRemoteIdentifiersTlv sameAsTlv1 = LinkLocalRemoteIdentifiersTlv.of(10, 20);
-    private final LinkLocalRemoteIdentifiersTlv tlv2 = LinkLocalRemoteIdentifiersTlv.of(20, 30);
-
-    @Test
-    public void basics() {
-        new EqualsTester()
-        .addEqualityGroup(tlv1, sameAsTlv1)
-        .addEqualityGroup(tlv2)
-        .testEquals();
-    }
-}
diff --git a/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/LinkNameTlvTest.java b/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/LinkNameAttributeSubTlvTest.java
similarity index 70%
rename from protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/LinkNameTlvTest.java
rename to protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/LinkNameAttributeSubTlvTest.java
index 7d9dcb2..697f015 100644
--- a/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/LinkNameTlvTest.java
+++ b/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/LinkNameAttributeSubTlvTest.java
@@ -19,15 +19,15 @@
 import org.junit.Test;
 
 /**
- * Equality test for LinkNameTlv.
+ * Equality test for LinkNameAttributeSubTlv.
  */
-public class LinkNameTlvTest {
+public class LinkNameAttributeSubTlvTest {
     private final byte[] rawValue1 = new byte[] {0x01, 0x00};
     private final byte[] rawValue2 = new byte[] {0x02, 0x00};
 
-    private final LinkNameTlv tlv1 = new LinkNameTlv(rawValue1, (short) rawValue1.length);
-    private final LinkNameTlv sameAsTlv1 = LinkNameTlv.of(tlv1.getValue(), tlv1.getLength());
-    private final LinkNameTlv tlv2 = new LinkNameTlv(rawValue2, (short) 0);
+    private final LinkNameAttributeSubTlv tlv1 = new LinkNameAttributeSubTlv(rawValue1, (short) rawValue1.length);
+    private final LinkNameAttributeSubTlv sameAsTlv1 = LinkNameAttributeSubTlv.of(tlv1.getValue(), tlv1.getLength());
+    private final LinkNameAttributeSubTlv tlv2 = new LinkNameAttributeSubTlv(rawValue2, (short) 0);
 
     @Test
     public void basics() {
diff --git a/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/NodeFlagBitsTlvTest.java b/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/LinkProtectionTypeSubTlvTest.java
similarity index 72%
copy from protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/NodeFlagBitsTlvTest.java
copy to protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/LinkProtectionTypeSubTlvTest.java
index fb90fed..412cfcc 100644
--- a/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/NodeFlagBitsTlvTest.java
+++ b/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/LinkProtectionTypeSubTlvTest.java
@@ -19,15 +19,15 @@
 import org.junit.Test;
 
 /**
- * Test of the NodeFlagBitsTlv.
+ * Test of the LinkProtectionTypeSubTlv.
  */
-public class NodeFlagBitsTlvTest {
+public class LinkProtectionTypeSubTlvTest {
     private final byte rawValue1 = 0x0A;
     private final byte rawValue2 = 0x0B;
 
-    private final NodeFlagBitsTlv tlv1 = new NodeFlagBitsTlv(rawValue1);
-    private final NodeFlagBitsTlv sameAsTlv1 = new NodeFlagBitsTlv(rawValue1);
-    private final NodeFlagBitsTlv tlv2 = NodeFlagBitsTlv.of(rawValue2);
+    private final LinkProtectionTypeSubTlv tlv1 = new LinkProtectionTypeSubTlv(rawValue1);
+    private final LinkProtectionTypeSubTlv sameAsTlv1 = new LinkProtectionTypeSubTlv(rawValue1);
+    private final LinkProtectionTypeSubTlv tlv2 = new LinkProtectionTypeSubTlv(rawValue2, (byte) 0);
 
     @Test
     public void basics() {
diff --git a/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/LinkProtectionTypeTlvTest.java b/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/LinkProtectionTypeTlvTest.java
deleted file mode 100644
index 61928f2..0000000
--- a/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/LinkProtectionTypeTlvTest.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Copyright 2015 Open Networking Laboratory
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.onosproject.pcepio.types;
-
-import com.google.common.testing.EqualsTester;
-import org.junit.Test;
-
-/**
- * Test of the LinkProtectionTypeTlv.
- */
-public class LinkProtectionTypeTlvTest {
-    private final byte rawValue1 = 0x0A;
-    private final byte rawValue2 = 0x0B;
-
-    private final LinkProtectionTypeTlv tlv1 = new LinkProtectionTypeTlv(rawValue1);
-    private final LinkProtectionTypeTlv sameAsTlv1 = new LinkProtectionTypeTlv(rawValue1);
-    private final LinkProtectionTypeTlv tlv2 = new LinkProtectionTypeTlv(rawValue2, (byte) 0);
-
-    @Test
-    public void basics() {
-        new EqualsTester()
-        .addEqualityGroup(tlv1, sameAsTlv1)
-        .addEqualityGroup(tlv2)
-        .testEquals();
-    }
-}
diff --git a/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/LocalNodeDescriptorsTlvTest.java b/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/LocalNodeDescriptorsTlvTest.java
new file mode 100644
index 0000000..2570e66
--- /dev/null
+++ b/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/LocalNodeDescriptorsTlvTest.java
@@ -0,0 +1,51 @@
+/*
+ * Copyright 2015 Open Networking Laboratory
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.onosproject.pcepio.types;
+
+import com.google.common.testing.EqualsTester;
+import org.junit.Test;
+
+import java.util.LinkedList;
+import java.util.List;
+
+/**
+ * Test of the LocalNodeDescriptorsTlv.
+ */
+public class LocalNodeDescriptorsTlvTest {
+
+    private final AutonomousSystemSubTlv baAutoSysTlvRawValue1 = new AutonomousSystemSubTlv(1);
+    private final BgpLsIdentifierSubTlv baBgplsIdRawValue1 = new BgpLsIdentifierSubTlv(1);
+
+    private final AutonomousSystemSubTlv baAutoSysTlvRawValue2 = new AutonomousSystemSubTlv(2);
+    private final BgpLsIdentifierSubTlv baBgplsIdRawValue2 = new BgpLsIdentifierSubTlv(2);
+
+    private final List<PcepValueType> llNodeDescriptorSubTLVs1 = new LinkedList<PcepValueType>();
+    private final boolean a = llNodeDescriptorSubTLVs1.add(baAutoSysTlvRawValue1);
+    private final boolean b = llNodeDescriptorSubTLVs1.add(baBgplsIdRawValue1);
+
+    private final List<PcepValueType> llNodeDescriptorSubTLVs2 = new LinkedList<PcepValueType>();
+    private final boolean c = llNodeDescriptorSubTLVs2.add(baAutoSysTlvRawValue2);
+    private final boolean d = llNodeDescriptorSubTLVs2.add(baBgplsIdRawValue2);
+
+    private final LocalNodeDescriptorsTlv tlv1 = LocalNodeDescriptorsTlv.of(llNodeDescriptorSubTLVs1);
+    private final LocalNodeDescriptorsTlv sameAstlv1 = LocalNodeDescriptorsTlv.of(llNodeDescriptorSubTLVs1);
+    private final LocalNodeDescriptorsTlv tlv2 = LocalNodeDescriptorsTlv.of(llNodeDescriptorSubTLVs2);
+
+    @Test
+    public void basics() {
+        new EqualsTester().addEqualityGroup(tlv1, sameAstlv1).addEqualityGroup(tlv2).testEquals();
+    }
+}
diff --git a/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/LocalTENodeDescriptorsTlvTest.java b/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/LocalTENodeDescriptorsTlvTest.java
deleted file mode 100644
index 17daa75..0000000
--- a/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/LocalTENodeDescriptorsTlvTest.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Copyright 2015 Open Networking Laboratory
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.onosproject.pcepio.types;
-
-import com.google.common.testing.EqualsTester;
-import org.junit.Test;
-
-import java.util.LinkedList;
-
-/**
- * Test of the LocalTENodeDescriptorsTlv.
- */
-public class LocalTENodeDescriptorsTlvTest {
-
-    private final AutonomousSystemTlv baAutoSysTlvRawValue1 = new AutonomousSystemTlv(1);
-    private final BgpLsIdentifierTlv baBgplsIdRawValue1 = new BgpLsIdentifierTlv(1);
-
-    private final AutonomousSystemTlv baAutoSysTlvRawValue2 = new AutonomousSystemTlv(2);
-    private final BgpLsIdentifierTlv baBgplsIdRawValue2 = new BgpLsIdentifierTlv(2);
-
-    private final LinkedList<PcepValueType> llNodeDescriptorSubTLVs1 = new LinkedList<PcepValueType>();
-    private final boolean a = llNodeDescriptorSubTLVs1.add(baAutoSysTlvRawValue1);
-    private final boolean b = llNodeDescriptorSubTLVs1.add(baBgplsIdRawValue1);
-
-    private final LinkedList<PcepValueType> llNodeDescriptorSubTLVs2 = new LinkedList<PcepValueType>();
-    private final boolean c = llNodeDescriptorSubTLVs2.add(baAutoSysTlvRawValue2);
-    private final boolean d = llNodeDescriptorSubTLVs2.add(baBgplsIdRawValue2);
-
-    private final LocalTENodeDescriptorsTlv tlv1 = LocalTENodeDescriptorsTlv.of(llNodeDescriptorSubTLVs1);
-    private final LocalTENodeDescriptorsTlv sameAstlv1 = LocalTENodeDescriptorsTlv.of(llNodeDescriptorSubTLVs1);
-    private final LocalTENodeDescriptorsTlv tlv2 = LocalTENodeDescriptorsTlv.of(llNodeDescriptorSubTLVs2);
-
-    @Test
-    public void basics() {
-        new EqualsTester().addEqualityGroup(tlv1, sameAstlv1).addEqualityGroup(tlv2).testEquals();
-    }
-}
diff --git a/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/TedCapabilityTlvTest.java b/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/LsCapabilityTlvTest.java
similarity index 79%
rename from protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/TedCapabilityTlvTest.java
rename to protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/LsCapabilityTlvTest.java
index 18677ca..3766a4d 100644
--- a/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/TedCapabilityTlvTest.java
+++ b/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/LsCapabilityTlvTest.java
@@ -21,11 +21,11 @@
 /**
  * Test case for TED Capability tlv.
  */
-public class TedCapabilityTlvTest {
+public class LsCapabilityTlvTest {
 
-    private final TedCapabilityTlv tlv1 = TedCapabilityTlv.of(1);
-    private final TedCapabilityTlv tlv2 = TedCapabilityTlv.of(1);
-    private final TedCapabilityTlv tlv3 = TedCapabilityTlv.of(2);
+    private final LsCapabilityTlv tlv1 = LsCapabilityTlv.of(1);
+    private final LsCapabilityTlv tlv2 = LsCapabilityTlv.of(1);
+    private final LsCapabilityTlv tlv3 = LsCapabilityTlv.of(2);
 
     @Test
     public void basics() {
diff --git a/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/MaximumLinkBandwidthTlvTest.java b/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/MaximumLinkBandwidthSubTlvTest.java
similarity index 72%
rename from protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/MaximumLinkBandwidthTlvTest.java
rename to protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/MaximumLinkBandwidthSubTlvTest.java
index 4e022b8..d4b9c6b 100644
--- a/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/MaximumLinkBandwidthTlvTest.java
+++ b/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/MaximumLinkBandwidthSubTlvTest.java
@@ -19,15 +19,15 @@
 import org.junit.Test;
 
 /**
- * Test of the MaximumLinkBandwidthTlv.
+ * Test of the MaximumLinkBandwidthSubTlv.
  */
-public class MaximumLinkBandwidthTlvTest {
+public class MaximumLinkBandwidthSubTlvTest {
     private final int rawValue1 = 0x0A;
     private final int rawValue2 = 0x0B;
 
-    private final MaximumLinkBandwidthTlv tlv1 = new MaximumLinkBandwidthTlv(rawValue1);
-    private final MaximumLinkBandwidthTlv sameAsTlv1 = new MaximumLinkBandwidthTlv(rawValue1);
-    private final MaximumLinkBandwidthTlv tlv2 = MaximumLinkBandwidthTlv.of(rawValue2);
+    private final MaximumLinkBandwidthSubTlv tlv1 = new MaximumLinkBandwidthSubTlv(rawValue1);
+    private final MaximumLinkBandwidthSubTlv sameAsTlv1 = new MaximumLinkBandwidthSubTlv(rawValue1);
+    private final MaximumLinkBandwidthSubTlv tlv2 = MaximumLinkBandwidthSubTlv.of(rawValue2);
 
     @Test
     public void basics() {
diff --git a/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/MaximumLinkBandwidthTlvTest.java b/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/MaximumReservableLinkBandwidthSubTlvTest.java
similarity index 68%
copy from protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/MaximumLinkBandwidthTlvTest.java
copy to protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/MaximumReservableLinkBandwidthSubTlvTest.java
index 4e022b8..85e108d 100644
--- a/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/MaximumLinkBandwidthTlvTest.java
+++ b/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/MaximumReservableLinkBandwidthSubTlvTest.java
@@ -19,15 +19,15 @@
 import org.junit.Test;
 
 /**
- * Test of the MaximumLinkBandwidthTlv.
+ * Test of the MaximumReservableLinkBandwidthSubTlv.
  */
-public class MaximumLinkBandwidthTlvTest {
+public class MaximumReservableLinkBandwidthSubTlvTest {
     private final int rawValue1 = 0x0A;
     private final int rawValue2 = 0x0B;
 
-    private final MaximumLinkBandwidthTlv tlv1 = new MaximumLinkBandwidthTlv(rawValue1);
-    private final MaximumLinkBandwidthTlv sameAsTlv1 = new MaximumLinkBandwidthTlv(rawValue1);
-    private final MaximumLinkBandwidthTlv tlv2 = MaximumLinkBandwidthTlv.of(rawValue2);
+    private final MaximumReservableLinkBandwidthSubTlv tlv1 = new MaximumReservableLinkBandwidthSubTlv(rawValue1);
+    private final MaximumReservableLinkBandwidthSubTlv sameAsTlv1 = new MaximumReservableLinkBandwidthSubTlv(rawValue1);
+    private final MaximumReservableLinkBandwidthSubTlv tlv2 = MaximumReservableLinkBandwidthSubTlv.of(rawValue2);
 
     @Test
     public void basics() {
diff --git a/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/MaximumReservableLinkBandwidthTlvTest.java b/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/MaximumReservableLinkBandwidthTlvTest.java
deleted file mode 100644
index 7b37035..0000000
--- a/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/MaximumReservableLinkBandwidthTlvTest.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Copyright 2015 Open Networking Laboratory
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.onosproject.pcepio.types;
-
-import com.google.common.testing.EqualsTester;
-import org.junit.Test;
-
-/**
- * Test of the MaximumReservableLinkBandwidthTlv.
- */
-public class MaximumReservableLinkBandwidthTlvTest {
-    private final int rawValue1 = 0x0A;
-    private final int rawValue2 = 0x0B;
-
-    private final MaximumReservableLinkBandwidthTlv tlv1 = new MaximumReservableLinkBandwidthTlv(rawValue1);
-    private final MaximumReservableLinkBandwidthTlv sameAsTlv1 = new MaximumReservableLinkBandwidthTlv(rawValue1);
-    private final MaximumReservableLinkBandwidthTlv tlv2 = MaximumReservableLinkBandwidthTlv.of(rawValue2);
-
-    @Test
-    public void basics() {
-        new EqualsTester()
-        .addEqualityGroup(tlv1, sameAsTlv1)
-        .addEqualityGroup(tlv2)
-        .testEquals();
-    }
-}
diff --git a/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/NodeFlagBitsTlvTest.java b/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/MplsProtocolMaskSubTlvTest.java
similarity index 73%
copy from protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/NodeFlagBitsTlvTest.java
copy to protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/MplsProtocolMaskSubTlvTest.java
index fb90fed..6e396b8 100644
--- a/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/NodeFlagBitsTlvTest.java
+++ b/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/MplsProtocolMaskSubTlvTest.java
@@ -19,15 +19,15 @@
 import org.junit.Test;
 
 /**
- * Test of the NodeFlagBitsTlv.
+ * Test of the MplsProtocolMaskSubTlv.
  */
-public class NodeFlagBitsTlvTest {
+public class MplsProtocolMaskSubTlvTest {
     private final byte rawValue1 = 0x0A;
     private final byte rawValue2 = 0x0B;
 
-    private final NodeFlagBitsTlv tlv1 = new NodeFlagBitsTlv(rawValue1);
-    private final NodeFlagBitsTlv sameAsTlv1 = new NodeFlagBitsTlv(rawValue1);
-    private final NodeFlagBitsTlv tlv2 = NodeFlagBitsTlv.of(rawValue2);
+    private final MplsProtocolMaskSubTlv tlv1 = new MplsProtocolMaskSubTlv(rawValue1);
+    private final MplsProtocolMaskSubTlv sameAsTlv1 = new MplsProtocolMaskSubTlv(rawValue1);
+    private final MplsProtocolMaskSubTlv tlv2 = MplsProtocolMaskSubTlv.of(rawValue2);
 
     @Test
     public void basics() {
diff --git a/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/MplsProtocolMaskTlvTest.java b/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/MplsProtocolMaskTlvTest.java
deleted file mode 100644
index ff87b7a..0000000
--- a/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/MplsProtocolMaskTlvTest.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Copyright 2015 Open Networking Laboratory
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.onosproject.pcepio.types;
-
-import com.google.common.testing.EqualsTester;
-import org.junit.Test;
-
-/**
- * Test of the MPLSProtocolMaskTlv.
- */
-public class MplsProtocolMaskTlvTest {
-    private final byte rawValue1 = 0x0A;
-    private final byte rawValue2 = 0x0B;
-
-    private final MplsProtocolMaskTlv tlv1 = new MplsProtocolMaskTlv(rawValue1);
-    private final MplsProtocolMaskTlv sameAsTlv1 = new MplsProtocolMaskTlv(rawValue1);
-    private final MplsProtocolMaskTlv tlv2 = MplsProtocolMaskTlv.of(rawValue2);
-
-    @Test
-    public void basics() {
-        new EqualsTester()
-        .addEqualityGroup(tlv1, sameAsTlv1)
-        .addEqualityGroup(tlv2)
-        .testEquals();
-    }
-}
diff --git a/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/NodeAttributesTlvTest.java b/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/NodeAttributesTlvTest.java
new file mode 100644
index 0000000..2c9664d
--- /dev/null
+++ b/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/NodeAttributesTlvTest.java
@@ -0,0 +1,55 @@
+/*
+ * Copyright 2015 Open Networking Laboratory
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.onosproject.pcepio.types;
+
+import com.google.common.testing.EqualsTester;
+import org.junit.Test;
+
+import java.util.LinkedList;
+import java.util.List;
+
+/**
+ * Test case for TE Node Attribute tlv.
+ */
+public class NodeAttributesTlvTest {
+
+    private final NodeFlagBitsSubTlv nodeFlagBitsTlv1 = new NodeFlagBitsSubTlv((byte) 10);
+    private final IPv4RouterIdOfLocalNodeSubTlv iPv4TERouterIdOfLocalNodeTlv1 = new
+            IPv4RouterIdOfLocalNodeSubTlv(0x01010101);
+
+    private final NodeFlagBitsSubTlv nodeFlagBitsTlv2 = new NodeFlagBitsSubTlv((byte) 20);
+    private final IPv4RouterIdOfLocalNodeSubTlv iPv4TERouterIdOfLocalNodeTlv2 = new
+            IPv4RouterIdOfLocalNodeSubTlv(0x02020202);
+
+    private final List<PcepValueType> llNodeAttributesSubTLV1 = new LinkedList<>();
+    private final boolean a = llNodeAttributesSubTLV1.add(nodeFlagBitsTlv1);
+    private final boolean b = llNodeAttributesSubTLV1.add(iPv4TERouterIdOfLocalNodeTlv1);
+
+    private final List<PcepValueType> llNodeAttributesSubTLV2 = new LinkedList<>();
+
+    private final boolean c = llNodeAttributesSubTLV2.add(nodeFlagBitsTlv2);
+    private final boolean d = llNodeAttributesSubTLV2.add(iPv4TERouterIdOfLocalNodeTlv2);
+
+    private final NodeAttributesTlv tlv1 = NodeAttributesTlv.of(llNodeAttributesSubTLV1);
+    private final NodeAttributesTlv sameAsTlv1 = NodeAttributesTlv.of(llNodeAttributesSubTLV1);
+    private final NodeAttributesTlv tlv2 = NodeAttributesTlv.of(llNodeAttributesSubTLV2);
+
+    @Test
+    public void basics() {
+        new EqualsTester().addEqualityGroup(tlv1, sameAsTlv1).addEqualityGroup(tlv2).testEquals();
+    }
+
+}
diff --git a/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/NodeFlagBitsTlvTest.java b/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/NodeFlagBitsSubTlvTest.java
similarity index 76%
rename from protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/NodeFlagBitsTlvTest.java
rename to protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/NodeFlagBitsSubTlvTest.java
index fb90fed..5179a2c 100644
--- a/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/NodeFlagBitsTlvTest.java
+++ b/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/NodeFlagBitsSubTlvTest.java
@@ -19,15 +19,15 @@
 import org.junit.Test;
 
 /**
- * Test of the NodeFlagBitsTlv.
+ * Test of the NodeFlagBitsSubTlv.
  */
-public class NodeFlagBitsTlvTest {
+public class NodeFlagBitsSubTlvTest {
     private final byte rawValue1 = 0x0A;
     private final byte rawValue2 = 0x0B;
 
-    private final NodeFlagBitsTlv tlv1 = new NodeFlagBitsTlv(rawValue1);
-    private final NodeFlagBitsTlv sameAsTlv1 = new NodeFlagBitsTlv(rawValue1);
-    private final NodeFlagBitsTlv tlv2 = NodeFlagBitsTlv.of(rawValue2);
+    private final NodeFlagBitsSubTlv tlv1 = new NodeFlagBitsSubTlv(rawValue1);
+    private final NodeFlagBitsSubTlv sameAsTlv1 = new NodeFlagBitsSubTlv(rawValue1);
+    private final NodeFlagBitsSubTlv tlv2 = NodeFlagBitsSubTlv.of(rawValue2);
 
     @Test
     public void basics() {
diff --git a/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/NodeNameTlvTest.java b/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/NodeNameSubTlvTest.java
similarity index 74%
rename from protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/NodeNameTlvTest.java
rename to protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/NodeNameSubTlvTest.java
index d6d53d6..c21c986 100644
--- a/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/NodeNameTlvTest.java
+++ b/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/NodeNameSubTlvTest.java
@@ -19,15 +19,15 @@
 import org.junit.Test;
 
 /**
- * Test of the NodeNameTlv.
+ * Test of the NodeNameSubTlv.
  */
-public class NodeNameTlvTest {
+public class NodeNameSubTlvTest {
     private final byte[] rawValue1 = new byte[] {0x01, 0x02};
     private final byte[] rawValue2 = new byte[] {0x14, 0x15};
 
-    private final NodeNameTlv tlv1 = new NodeNameTlv(rawValue1, (short) rawValue1.length);
-    private final NodeNameTlv sameAsTlv1 = NodeNameTlv.of(tlv1.getValue(), tlv1.getLength());
-    private final NodeNameTlv tlv2 = new NodeNameTlv(rawValue2, (short) 0);
+    private final NodeNameSubTlv tlv1 = new NodeNameSubTlv(rawValue1, (short) rawValue1.length);
+    private final NodeNameSubTlv sameAsTlv1 = NodeNameSubTlv.of(tlv1.getValue(), tlv1.getLength());
+    private final NodeNameSubTlv tlv2 = new NodeNameSubTlv(rawValue2, (short) 0);
 
     @Test
     public void basics() {
diff --git a/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/OpaqueLinkAttributeTlvTest.java b/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/OpaqueLinkAttributeSubTlvTest.java
similarity index 69%
rename from protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/OpaqueLinkAttributeTlvTest.java
rename to protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/OpaqueLinkAttributeSubTlvTest.java
index f437fb5..4a4c29e 100644
--- a/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/OpaqueLinkAttributeTlvTest.java
+++ b/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/OpaqueLinkAttributeSubTlvTest.java
@@ -19,15 +19,17 @@
 import org.junit.Test;
 
 /**
- * Test of the OpaqueLinkAttributeTlv.
+ * Test of the OpaqueLinkAttributeSubTlv.
  */
-public class OpaqueLinkAttributeTlvTest {
+public class OpaqueLinkAttributeSubTlvTest {
     private final byte[] rawValue1 = new byte[] {0x01, 0x02};
     private final byte[] rawValue2 = new byte[] {0x14, 0x15};
 
-    private final OpaqueLinkAttributeTlv tlv1 = new OpaqueLinkAttributeTlv(rawValue1, (short) rawValue1.length);
-    private final OpaqueLinkAttributeTlv sameAsTlv1 = OpaqueLinkAttributeTlv.of(tlv1.getValue(), tlv1.getLength());
-    private final OpaqueLinkAttributeTlv tlv2 = new OpaqueLinkAttributeTlv(rawValue2, (short) 0);
+    private final OpaqueLinkAttributeSubTlv tlv1 =
+            new OpaqueLinkAttributeSubTlv(rawValue1, (short) rawValue1.length);
+    private final OpaqueLinkAttributeSubTlv sameAsTlv1 =
+            OpaqueLinkAttributeSubTlv.of(tlv1.getValue(), tlv1.getLength());
+    private final OpaqueLinkAttributeSubTlv tlv2 = new OpaqueLinkAttributeSubTlv(rawValue2, (short) 0);
 
     @Test
     public void basics() {
diff --git a/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/OspfAreaIdSubTlvTest.java b/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/OspfAreaIdSubTlvTest.java
index 2ea3511..4dc4fdd 100644
--- a/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/OspfAreaIdSubTlvTest.java
+++ b/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/OspfAreaIdSubTlvTest.java
@@ -19,7 +19,7 @@
 import org.junit.Test;
 
 /**
- * Test of the OSPFareaIDsubTlv.
+ * Test of the OspfAreaIdSubTlv.
  */
 public class OspfAreaIdSubTlvTest {
     private final int rawValue1 = 0x0A;
diff --git a/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/RemoteNodeDescriptorsTlvTest.java b/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/RemoteNodeDescriptorsTlvTest.java
new file mode 100644
index 0000000..ee78b57
--- /dev/null
+++ b/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/RemoteNodeDescriptorsTlvTest.java
@@ -0,0 +1,53 @@
+/*
+ * Copyright 2015 Open Networking Laboratory
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.onosproject.pcepio.types;
+
+import com.google.common.testing.EqualsTester;
+import org.junit.Test;
+
+import java.util.LinkedList;
+import java.util.List;
+
+/**
+ * Test case for Remote TE Node Descriptors tlv.
+ */
+public class RemoteNodeDescriptorsTlvTest {
+
+    private final AutonomousSystemSubTlv autonomousSystemTlv1 = new AutonomousSystemSubTlv(10);
+    private final BgpLsIdentifierSubTlv bGPLSidentifierTlv1 = new BgpLsIdentifierSubTlv(20);
+
+    private final AutonomousSystemSubTlv autonomousSystemTlv2 = new AutonomousSystemSubTlv(20);
+    private final BgpLsIdentifierSubTlv bGPLSidentifierTlv2 = new BgpLsIdentifierSubTlv(30);
+
+    private final List<PcepValueType> llRemoteTENodeDescriptorSubTLV1 = new LinkedList<>();
+    private final boolean a = llRemoteTENodeDescriptorSubTLV1.add(autonomousSystemTlv1);
+    private final boolean b = llRemoteTENodeDescriptorSubTLV1.add(bGPLSidentifierTlv1);
+
+    private final List<PcepValueType> llRemoteTENodeDescriptorSubTLV2 = new LinkedList<>();
+    private final boolean c = llRemoteTENodeDescriptorSubTLV2.add(autonomousSystemTlv2);
+    private final boolean d = llRemoteTENodeDescriptorSubTLV2.add(bGPLSidentifierTlv2);
+
+    private final RemoteNodeDescriptorsTlv tlv1 = RemoteNodeDescriptorsTlv.of(llRemoteTENodeDescriptorSubTLV1);
+    private final RemoteNodeDescriptorsTlv sameAsTlv1 =
+            RemoteNodeDescriptorsTlv.of(llRemoteTENodeDescriptorSubTLV1);
+    private final RemoteNodeDescriptorsTlv tlv2 = RemoteNodeDescriptorsTlv.of(llRemoteTENodeDescriptorSubTLV2);
+
+    @Test
+    public void basics() {
+        new EqualsTester().addEqualityGroup(tlv1, sameAsTlv1).addEqualityGroup(tlv2).testEquals();
+    }
+
+}
diff --git a/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/RemoteTENodeDescriptorsTlvTest.java b/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/RemoteTENodeDescriptorsTlvTest.java
deleted file mode 100644
index 8e74921..0000000
--- a/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/RemoteTENodeDescriptorsTlvTest.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * Copyright 2015 Open Networking Laboratory
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.onosproject.pcepio.types;
-
-import com.google.common.testing.EqualsTester;
-import org.junit.Test;
-
-import java.util.LinkedList;
-
-/**
- * Test case for Remote TE Node Descriptors tlv.
- */
-public class RemoteTENodeDescriptorsTlvTest {
-
-    private final AutonomousSystemTlv autonomousSystemTlv1 = new AutonomousSystemTlv(10);
-    private final BgpLsIdentifierTlv bGPLSidentifierTlv1 = new BgpLsIdentifierTlv(20);
-
-    private final AutonomousSystemTlv autonomousSystemTlv2 = new AutonomousSystemTlv(20);
-    private final BgpLsIdentifierTlv bGPLSidentifierTlv2 = new BgpLsIdentifierTlv(30);
-
-    private final LinkedList<PcepValueType> llRemoteTENodeDescriptorSubTLV1 = new LinkedList<>();
-    private final boolean a = llRemoteTENodeDescriptorSubTLV1.add(autonomousSystemTlv1);
-    private final boolean b = llRemoteTENodeDescriptorSubTLV1.add(bGPLSidentifierTlv1);
-
-    private final LinkedList<PcepValueType> llRemoteTENodeDescriptorSubTLV2 = new LinkedList<>();
-    private final boolean c = llRemoteTENodeDescriptorSubTLV2.add(autonomousSystemTlv2);
-    private final boolean d = llRemoteTENodeDescriptorSubTLV2.add(bGPLSidentifierTlv2);
-
-    private final RemoteTENodeDescriptorsTlv tlv1 = RemoteTENodeDescriptorsTlv.of(llRemoteTENodeDescriptorSubTLV1);
-    private final RemoteTENodeDescriptorsTlv sameAsTlv1 =
-            RemoteTENodeDescriptorsTlv.of(llRemoteTENodeDescriptorSubTLV1);
-    private final RemoteTENodeDescriptorsTlv tlv2 = RemoteTENodeDescriptorsTlv.of(llRemoteTENodeDescriptorSubTLV2);
-
-    @Test
-    public void basics() {
-        new EqualsTester().addEqualityGroup(tlv1, sameAsTlv1).addEqualityGroup(tlv2).testEquals();
-    }
-
-}
diff --git a/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/SharedRiskLinkGroupTlvTest.java b/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/SharedRiskLinkGroupSubTlvTest.java
similarity index 72%
rename from protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/SharedRiskLinkGroupTlvTest.java
rename to protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/SharedRiskLinkGroupSubTlvTest.java
index 7c8ec57..777ff9c 100644
--- a/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/SharedRiskLinkGroupTlvTest.java
+++ b/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/SharedRiskLinkGroupSubTlvTest.java
@@ -19,19 +19,19 @@
 import org.junit.Test;
 
 /**
- * Test case for Shared Risk Link Group tlv.
+ * Test case for SharedRiskLinkGroupSubTlv.
  */
-public class SharedRiskLinkGroupTlvTest {
+public class SharedRiskLinkGroupSubTlvTest {
 
     private final int[] raw = {1 };
     private final Short hLength = 2;
-    private final SharedRiskLinkGroupTlv tlv1 = SharedRiskLinkGroupTlv.of(raw, hLength);
+    private final SharedRiskLinkGroupSubTlv tlv1 = SharedRiskLinkGroupSubTlv.of(raw, hLength);
 
-    private final SharedRiskLinkGroupTlv sameAsTlv1 = SharedRiskLinkGroupTlv.of(raw, hLength);
+    private final SharedRiskLinkGroupSubTlv sameAsTlv1 = SharedRiskLinkGroupSubTlv.of(raw, hLength);
 
     private final int[] raw2 = {2 };
     private final Short hLength2 = 3;
-    private final SharedRiskLinkGroupTlv tlv2 = SharedRiskLinkGroupTlv.of(raw2, hLength2);
+    private final SharedRiskLinkGroupSubTlv tlv2 = SharedRiskLinkGroupSubTlv.of(raw2, hLength2);
 
     @Test
     public void basics() {
diff --git a/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/TedCapabilityTlvTest.java b/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/TEDefaultMetricSubTlvTest.java
similarity index 73%
copy from protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/TedCapabilityTlvTest.java
copy to protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/TEDefaultMetricSubTlvTest.java
index 18677ca..ee63621 100644
--- a/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/TedCapabilityTlvTest.java
+++ b/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/TEDefaultMetricSubTlvTest.java
@@ -19,13 +19,13 @@
 import org.junit.Test;
 
 /**
- * Test case for TED Capability tlv.
+ * Test case for TEDefaultMetricSubTlv.
  */
-public class TedCapabilityTlvTest {
+public class TEDefaultMetricSubTlvTest {
 
-    private final TedCapabilityTlv tlv1 = TedCapabilityTlv.of(1);
-    private final TedCapabilityTlv tlv2 = TedCapabilityTlv.of(1);
-    private final TedCapabilityTlv tlv3 = TedCapabilityTlv.of(2);
+    private final TEDefaultMetricSubTlv tlv1 = TEDefaultMetricSubTlv.of(1);
+    private final TEDefaultMetricSubTlv tlv2 = TEDefaultMetricSubTlv.of(1);
+    private final TEDefaultMetricSubTlv tlv3 = TEDefaultMetricSubTlv.of(2);
 
     @Test
     public void basics() {
diff --git a/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/TEDefaultMetricTlvTest.java b/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/TEDefaultMetricTlvTest.java
deleted file mode 100644
index c46b0af..0000000
--- a/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/TEDefaultMetricTlvTest.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Copyright 2015 Open Networking Laboratory
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.onosproject.pcepio.types;
-
-import com.google.common.testing.EqualsTester;
-import org.junit.Test;
-
-/**
- * Test case for TE Default Metric tlv.
- */
-public class TEDefaultMetricTlvTest {
-
-    private final TEDefaultMetricTlv tlv1 = TEDefaultMetricTlv.of(1);
-    private final TEDefaultMetricTlv tlv2 = TEDefaultMetricTlv.of(1);
-    private final TEDefaultMetricTlv tlv3 = TEDefaultMetricTlv.of(2);
-
-    @Test
-    public void basics() {
-        new EqualsTester().addEqualityGroup(tlv1, tlv2).addEqualityGroup(tlv3).testEquals();
-    }
-}
diff --git a/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/TELinkAttributesTlvTest.java b/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/TELinkAttributesTlvTest.java
deleted file mode 100644
index 8504a87..0000000
--- a/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/TELinkAttributesTlvTest.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Copyright 2015 Open Networking Laboratory
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.onosproject.pcepio.types;
-
-import com.google.common.testing.EqualsTester;
-import org.junit.Test;
-
-import java.util.LinkedList;
-
-/**
- * Test case for TE Link Attribute Tlv.
- */
-public class TELinkAttributesTlvTest {
-
-    private final AdministrativeGroupTlv administrativeGroupTlv1 = new AdministrativeGroupTlv(10);
-    private final MaximumReservableLinkBandwidthTlv maximumReservableLinkBandwidthTlv1 =
-            new MaximumReservableLinkBandwidthTlv(20);
-
-    private final AdministrativeGroupTlv administrativeGroupTlv2 = new AdministrativeGroupTlv(20);
-    private final MaximumReservableLinkBandwidthTlv maximumReservableLinkBandwidthTlv2 =
-            new MaximumReservableLinkBandwidthTlv(30);
-
-    private final LinkedList<PcepValueType> llLinkAttributesSubTLV1 = new LinkedList<>();
-    private final boolean a = llLinkAttributesSubTLV1.add(administrativeGroupTlv1);
-    private final boolean b = llLinkAttributesSubTLV1.add(maximumReservableLinkBandwidthTlv1);
-
-    private final LinkedList<PcepValueType> llLinkAttributesSubTLV2 = new LinkedList<>();
-
-    private final boolean c = llLinkAttributesSubTLV2.add(administrativeGroupTlv2);
-    private final boolean d = llLinkAttributesSubTLV2.add(maximumReservableLinkBandwidthTlv2);
-
-    private final TELinkAttributesTlv tlv1 = TELinkAttributesTlv.of(llLinkAttributesSubTLV1);
-    private final TELinkAttributesTlv sameAsTlv1 = TELinkAttributesTlv.of(llLinkAttributesSubTLV1);
-    private final TELinkAttributesTlv tlv2 = TELinkAttributesTlv.of(llLinkAttributesSubTLV2);
-
-    @Test
-    public void basics() {
-        new EqualsTester().addEqualityGroup(tlv1, sameAsTlv1).addEqualityGroup(tlv2).testEquals();
-    }
-
-}
diff --git a/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/TELinkDescriptorsTlvTest.java b/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/TELinkDescriptorsTlvTest.java
deleted file mode 100644
index 4e94209..0000000
--- a/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/TELinkDescriptorsTlvTest.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * Copyright 2015 Open Networking Laboratory
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.onosproject.pcepio.types;
-
-import com.google.common.testing.EqualsTester;
-import org.junit.Test;
-
-import java.util.LinkedList;
-
-/**
- * Test case for TE link descriptors Tlv.
- */
-public class TELinkDescriptorsTlvTest {
-    private final LinkLocalRemoteIdentifiersTlv linkLocalRemoteIdentifiersTlv1 = new
-            LinkLocalRemoteIdentifiersTlv(10, 10);
-    private final IPv4InterfaceAddressTlv iPv4InterfaceAddressTlv1 = new IPv4InterfaceAddressTlv(0x01010101);
-
-    private final LinkLocalRemoteIdentifiersTlv linkLocalRemoteIdentifiersTlv2 = new
-            LinkLocalRemoteIdentifiersTlv(20, 20);
-    private final IPv4InterfaceAddressTlv iPv4InterfaceAddressTlv2 = new IPv4InterfaceAddressTlv(0x02020202);
-
-    private final LinkedList<PcepValueType> llLinkDescriptorsSubTLVs1 = new LinkedList<>();
-    private final boolean a = llLinkDescriptorsSubTLVs1.add(linkLocalRemoteIdentifiersTlv1);
-    private final boolean b = llLinkDescriptorsSubTLVs1.add(iPv4InterfaceAddressTlv1);
-
-    private final LinkedList<PcepValueType> llLinkDescriptorsSubTLVs2 = new LinkedList<>();
-    private final boolean c = llLinkDescriptorsSubTLVs2.add(linkLocalRemoteIdentifiersTlv2);
-    private final boolean d = llLinkDescriptorsSubTLVs2.add(iPv4InterfaceAddressTlv2);
-
-    private final TELinkDescriptorsTlv tlv1 = TELinkDescriptorsTlv.of(llLinkDescriptorsSubTLVs1);
-    private final TELinkDescriptorsTlv sameAstlv1 = TELinkDescriptorsTlv.of(llLinkDescriptorsSubTLVs1);
-    private final TELinkDescriptorsTlv tlv2 = TELinkDescriptorsTlv.of(llLinkDescriptorsSubTLVs2);
-
-    @Test
-    public void basics() {
-        new EqualsTester().addEqualityGroup(tlv1, sameAstlv1).addEqualityGroup(tlv2).testEquals();
-    }
-
-}
diff --git a/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/TENodeAttributesTlvTest.java b/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/TENodeAttributesTlvTest.java
deleted file mode 100644
index 28cf27d..0000000
--- a/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/TENodeAttributesTlvTest.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Copyright 2015 Open Networking Laboratory
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.onosproject.pcepio.types;
-
-import com.google.common.testing.EqualsTester;
-import org.junit.Test;
-
-import java.util.LinkedList;
-
-/**
- * Test case for TE Node Attribute tlv.
- */
-public class TENodeAttributesTlvTest {
-
-    private final NodeFlagBitsTlv nodeFlagBitsTlv1 = new NodeFlagBitsTlv((byte) 10);
-    private final IPv4TERouterIdOfLocalNodeTlv iPv4TERouterIdOfLocalNodeTlv1 = new
-            IPv4TERouterIdOfLocalNodeTlv(0x01010101);
-
-    private final NodeFlagBitsTlv nodeFlagBitsTlv2 = new NodeFlagBitsTlv((byte) 20);
-    private final IPv4TERouterIdOfLocalNodeTlv iPv4TERouterIdOfLocalNodeTlv2 = new
-            IPv4TERouterIdOfLocalNodeTlv(0x02020202);
-
-    private final LinkedList<PcepValueType> llNodeAttributesSubTLV1 = new LinkedList<>();
-    private final boolean a = llNodeAttributesSubTLV1.add(nodeFlagBitsTlv1);
-    private final boolean b = llNodeAttributesSubTLV1.add(iPv4TERouterIdOfLocalNodeTlv1);
-
-    private final LinkedList<PcepValueType> llNodeAttributesSubTLV2 = new LinkedList<>();
-
-    private final boolean c = llNodeAttributesSubTLV2.add(nodeFlagBitsTlv2);
-    private final boolean d = llNodeAttributesSubTLV2.add(iPv4TERouterIdOfLocalNodeTlv2);
-
-    private final TENodeAttributesTlv tlv1 = TENodeAttributesTlv.of(llNodeAttributesSubTLV1);
-    private final TENodeAttributesTlv sameAsTlv1 = TENodeAttributesTlv.of(llNodeAttributesSubTLV1);
-    private final TENodeAttributesTlv tlv2 = TENodeAttributesTlv.of(llNodeAttributesSubTLV2);
-
-    @Test
-    public void basics() {
-        new EqualsTester().addEqualityGroup(tlv1, sameAsTlv1).addEqualityGroup(tlv2).testEquals();
-    }
-
-}
diff --git a/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/UnreservedBandwidthTlvTest.java b/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/UnreservedBandwidthSubTlvTest.java
similarity index 72%
rename from protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/UnreservedBandwidthTlvTest.java
rename to protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/UnreservedBandwidthSubTlvTest.java
index a50fd9f..f33018f 100644
--- a/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/UnreservedBandwidthTlvTest.java
+++ b/protocols/pcep/pcepio/src/test/java/org/onosproject/pcepio/types/UnreservedBandwidthSubTlvTest.java
@@ -19,14 +19,14 @@
 import org.junit.Test;
 
 /**
- * Unit Test case for Unreserved Bandwidth Tlv.
+ * Unit Test case for UnreservedBandwidthSubTlv.
  */
-public class UnreservedBandwidthTlvTest {
+public class UnreservedBandwidthSubTlvTest {
 
     // Objects of unreserved bandwidth tlv
-    private final UnreservedBandwidthTlv tlv1 = UnreservedBandwidthTlv.of(100);
-    private final UnreservedBandwidthTlv tlv2 = UnreservedBandwidthTlv.of(100);
-    private final UnreservedBandwidthTlv tlv3 = UnreservedBandwidthTlv.of(200);
+    private final UnreservedBandwidthSubTlv tlv1 = UnreservedBandwidthSubTlv.of(100);
+    private final UnreservedBandwidthSubTlv tlv2 = UnreservedBandwidthSubTlv.of(100);
+    private final UnreservedBandwidthSubTlv tlv3 = UnreservedBandwidthSubTlv.of(200);
 
     @Test
     public void basics() {