| /* |
| * Copyright 2016-present 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)); |
| } |
| } |