blob: ea1009d2ab322267818d157037e7c3deeb0afe5c [file] [log] [blame]
Mahesh Poojary Sf1bbd362016-02-25 18:19:59 +05301/*
2 * Copyright 2014-2015 Open Networking Laboratory
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16package org.onosproject.pcepio.protocol;
17
18import org.jboss.netty.buffer.ChannelBuffer;
19import org.jboss.netty.buffer.ChannelBuffers;
20import org.junit.Test;
21import org.onosproject.pcepio.exceptions.PcepOutOfBoundMessageException;
22import org.onosproject.pcepio.exceptions.PcepParseException;
23
24import static org.hamcrest.MatcherAssert.assertThat;
25import static org.hamcrest.Matchers.instanceOf;
26import static org.hamcrest.core.Is.is;
27
28public class PcepLSReportMsgTest {
29
30 /**
31 * This test case checks for
32 * LS Object (Routing Universe TLV, Local Node Descriptors TLV(AutonomousSystemSubTlv)).
33 * in PcLSRpt message.
34 */
35 @Test
36 public void lsReportMessageTest1() throws PcepParseException, PcepOutOfBoundMessageException {
37
38 byte[] lsReportMsg = new byte[]{0x20, (byte) 0xE0, 0x00, 0x2C, // common header
39 (byte) 0xE0, 0x10, 0x00, 0x28, // LS Object Header
40 0x01, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, // LS-ID
41 (byte) 0xFF, 0x01, 0x00, 0x08, // Routing Universe TLV
42 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
43 (byte) 0xFF, 0x02, 0x00, 0x08, // Local Node Descriptors TLV
44 0x00, 0x01, 0x00, 0x04, //AutonomousSystem Tlv
45 0x00, 0x00, 0x00, 0x11};
46
47 ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
48 buffer.writeBytes(lsReportMsg);
49
50 PcepMessageReader<PcepMessage> reader = PcepFactories.getGenericReader();
51 PcepMessage message = null;
52
53 message = reader.readFrom(buffer);
54
55 byte[] testReportMsg = {0};
56
57 assertThat(message, instanceOf(PcepLSReportMsg.class));
58 ChannelBuffer buf = ChannelBuffers.dynamicBuffer();
59 message.writeTo(buf);
60
61 int readLen = buf.writerIndex();
62 testReportMsg = new byte[readLen];
63 buf.readBytes(testReportMsg, 0, readLen);
64
65 assertThat(testReportMsg, is(lsReportMsg));
66 }
67
68 /**
69 * This test case checks for
70 * LS Object (Routing Universe TLV, Local Node Descriptors TLV(AutonomousSystemSubTlv)) with different LS-ID.
71 * in PcLSRpt message.
72 */
73 @Test
74 public void lsReportMessageTest2() throws PcepParseException, PcepOutOfBoundMessageException {
75
76 byte[] lsReportMsg = new byte[]{0x20, (byte) 0xE0, 0x00, 0x2C, // common header
77 (byte) 0xE0, 0x10, 0x00, 0x28, // LS Object Header
78 0x01, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, // LS-ID
79 (byte) 0xFF, 0x01, 0x00, 0x08, // Routing Universe TLV
80 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
81 (byte) 0xFF, 0x02, 0x00, 0x08, // Local Node Descriptors TLV
82 0x00, 0x01, 0x00, 0x04, //AutonomousSystemSubTlv
83 0x00, 0x00, 0x00, 0x11};
84
85 ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
86 buffer.writeBytes(lsReportMsg);
87
88 PcepMessageReader<PcepMessage> reader = PcepFactories.getGenericReader();
89 PcepMessage message = null;
90
91 message = reader.readFrom(buffer);
92
93 byte[] testReportMsg = {0};
94 assertThat(message, instanceOf(PcepLSReportMsg.class));
95 ChannelBuffer buf = ChannelBuffers.dynamicBuffer();
96 message.writeTo(buf);
97
98 int readLen = buf.writerIndex();
99 testReportMsg = new byte[readLen];
100 buf.readBytes(testReportMsg, 0, readLen);
101
102 assertThat(testReportMsg, is(lsReportMsg));
103 }
104
105 /**
106 * This test case checks for LS Object (Routing Universe TLV)
107 * in PcLSRpt message.
108 */
109 @Test
110 public void lsReportMessageTest3() throws PcepParseException, PcepOutOfBoundMessageException {
111
112 byte[] lsReportMsg = new byte[]{0x20, (byte) 0xE0, 0x00, 0x20, // common header
113 (byte) 0xE0, 0x10, 0x00, 0x1C, // LS Object Header
114 0x01, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, // LS-ID
115 (byte) 0xFF, 0x01, 0x00, 0x08, // Routing Universe TLV
116 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01};
117
118 ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
119 buffer.writeBytes(lsReportMsg);
120
121 PcepMessageReader<PcepMessage> reader = PcepFactories.getGenericReader();
122 PcepMessage message = null;
123
124 message = reader.readFrom(buffer);
125
126 byte[] testReportMsg = {0};
127 assertThat(message, instanceOf(PcepLSReportMsg.class));
128 ChannelBuffer buf = ChannelBuffers.dynamicBuffer();
129 message.writeTo(buf);
130
131 int readLen = buf.writerIndex();
132 testReportMsg = new byte[readLen];
133 buf.readBytes(testReportMsg, 0, readLen);
134
135 assertThat(testReportMsg, is(lsReportMsg));
136 }
137
138 /**
139 * This test case checks for
140 * LS Object (Routing Universe TLV,Local Node Descriptors TLV(AutonomousSystemSubTlv, BGPLSidentifierSubTlv.
141 * OSPFareaIDsubTlv, IgpRouterIdSubTlv)).
142 * in PcLSRpt message.
143 */
144 @Test
145 public void lsReportMessageTest4() throws PcepParseException, PcepOutOfBoundMessageException {
146
147 byte[] lsReportMsg = new byte[]{0x20, (byte) 0xE0, 0x00, 0x48, // common header
148 (byte) 0xE0, 0x10, 0x00, 0x44, // LS Object Header
149 0x01, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, // LS-ID
150 (byte) 0xFF, 0x01, 0x00, 0x08, // Routing Universe TLV
151 0x00, 0x00, 0x00, 0x00,
152 0x00, 0x00, 0x00, 0x01,
153 (byte) 0xFF, 0x02, 0x00, 0x24, // Local Node Descriptors TLV
154 0x00, 0x01, 0x00, 0x04, //AutonomousSystemSubTlv
155 0x00, 0x00, 0x00, 0x11,
156 0x00, 0x02, 0x00, 0x04, //BGPLSidentifierSubTlv
157 0x00, 0x00, 0x00, 0x11,
158 0x00, 0x03, 0x00, 0x04, //OspfAreaIdSubTlv
159 0x00, 0x00, 0x00, 0x11,
160 0x00, 0x04, 0x00, 0x08, //IgpRouterIdSubTlv
161 0x00, 0x00, 0x00, 0x11,
162 0x00, 0x00, 0x00, 0x11};
163
164 ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
165 buffer.writeBytes(lsReportMsg);
166
167 PcepMessageReader<PcepMessage> reader = PcepFactories.getGenericReader();
168 PcepMessage message = null;
169
170 message = reader.readFrom(buffer);
171
172 byte[] testReportMsg = {0};
173 assertThat(message, instanceOf(PcepLSReportMsg.class));
174 ChannelBuffer buf = ChannelBuffers.dynamicBuffer();
175 message.writeTo(buf);
176
177 int readLen = buf.writerIndex();
178 testReportMsg = new byte[readLen];
179 buf.readBytes(testReportMsg, 0, readLen);
180
181 assertThat(testReportMsg, is(lsReportMsg));
182 }
183
184 /**
185 * This test case checks for
186 * LS Object (Routing Universe TLV,Local Node Descriptors TLV(BGPLSidentifierSubTlv
187 * OSPFareaIDsubTlv, IgpRouterIdSubTlv))
188 * in PcLSRpt message.
189 */
190 @Test
191 public void lsReportMessageTest5() throws PcepParseException, PcepOutOfBoundMessageException {
192
193 byte[] lsReportMsg = new byte[]{0x20, (byte) 0xE0, 0x00, 0x40, // common header
194 (byte) 0xE0, 0x10, 0x00, 0x3C, // LS Object Header
195 0x01, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, // LS-ID
196 (byte) 0xFF, 0x01, 0x00, 0x08, // Routing Universe TLV
197 0x00, 0x00, 0x00, 0x00,
198 0x00, 0x00, 0x00, 0x01,
199 (byte) 0xFF, 0x02, 0x00, 0x1C, // Local Node Descriptors TLV
200 0x00, 0x02, 0x00, 0x04, //BGPLSidentifierSubTlv
201 0x00, 0x00, 0x00, 0x11,
202 0x00, 0x03, 0x00, 0x04, //OSPFareaIDsubTlv
203 0x00, 0x00, 0x00, 0x11,
204 0x00, 0x04, 0x00, 0x08, //IgpRouterIdSubTlv
205 0x00, 0x00, 0x00, 0x11,
206 0x00, 0x00, 0x00, 0x11};
207
208 ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
209 buffer.writeBytes(lsReportMsg);
210
211 PcepMessageReader<PcepMessage> reader = PcepFactories.getGenericReader();
212 PcepMessage message = null;
213
214 message = reader.readFrom(buffer);
215
216 byte[] testReportMsg = {0};
217 assertThat(message, instanceOf(PcepLSReportMsg.class));
218 ChannelBuffer buf = ChannelBuffers.dynamicBuffer();
219 message.writeTo(buf);
220
221 int readLen = buf.writerIndex();
222 testReportMsg = new byte[readLen];
223 buf.readBytes(testReportMsg, 0, readLen);
224
225 assertThat(testReportMsg, is(lsReportMsg));
226 }
227
228 /**
229 * This test case checks for LS Object (Routing Universe TLV,Local Node Descriptors TLV(OSPFareaIDsubTlv,
230 * IgpRouterIdSubTlv))
231 * in PcLSRpt message.
232 */
233 @Test
234 public void lsReportMessageTest6() throws PcepParseException, PcepOutOfBoundMessageException {
235
236 byte[] lsReportMsg = new byte[]{0x20, (byte) 0xE0, 0x00, 0x38, // common header
237 (byte) 0xE0, 0x10, 0x00, 0x34, // LS Object Header
238 0x01, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, // LS-ID
239 (byte) 0xFF, 0x01, 0x00, 0x08, // Routing Universe TLV
240 0x00, 0x00, 0x00, 0x00,
241 0x00, 0x00, 0x00, 0x01,
242 (byte) 0xFF, 0x02, 0x00, 0x14, // Local Node Descriptors TLV
243 0x00, 0x03, 0x00, 0x04, //OSPFareaIDsubTlv
244 0x00, 0x00, 0x00, 0x11,
245 0x00, 0x04, 0x00, 0x08, //IgpRouterIdSubTlv
246 0x00, 0x00, 0x00, 0x11,
247 0x00, 0x00, 0x00, 0x11};
248
249 ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
250 buffer.writeBytes(lsReportMsg);
251
252 PcepMessageReader<PcepMessage> reader = PcepFactories.getGenericReader();
253 PcepMessage message = null;
254
255 message = reader.readFrom(buffer);
256
257 byte[] testReportMsg = {0};
258 assertThat(message, instanceOf(PcepLSReportMsg.class));
259 ChannelBuffer buf = ChannelBuffers.dynamicBuffer();
260 message.writeTo(buf);
261
262 int readLen = buf.writerIndex();
263 testReportMsg = new byte[readLen];
264 buf.readBytes(testReportMsg, 0, readLen);
265
266 assertThat(testReportMsg, is(lsReportMsg));
267 }
268
269 /**
270 * This test case checks for LS Object (Routing Universe TLV,Local Node Descriptors TLV(IgpRouterIdSubTlv)).
271 * in PcLSRpt message.
272 */
273 @Test
274 public void lsReportMessageTest7() throws PcepParseException, PcepOutOfBoundMessageException {
275
276 byte[] lsReportMsg = new byte[]{0x20, (byte) 0xE0, 0x00, 0x30, // common header
277 (byte) 0xE0, 0x10, 0x00, 0x2C, // LS Object Header
278 0x01, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, // LS-ID
279 (byte) 0xFF, 0x01, 0x00, 0x08, // Routing Universe TLV
280 0x00, 0x00, 0x00, 0x00,
281 0x00, 0x00, 0x00, 0x01,
282 (byte) 0xFF, 0x02, 0x00, 0x0C, // Local Node Descriptors TLV
283 0x00, 0x04, 0x00, 0x08, //IgpRouterIdSubTlv
284 0x00, 0x00, 0x00, 0x11,
285 0x00, 0x00, 0x00, 0x11};
286
287 ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
288 buffer.writeBytes(lsReportMsg);
289
290 PcepMessageReader<PcepMessage> reader = PcepFactories.getGenericReader();
291 PcepMessage message = null;
292
293 message = reader.readFrom(buffer);
294
295 byte[] testReportMsg = {0};
296 assertThat(message, instanceOf(PcepLSReportMsg.class));
297 ChannelBuffer buf = ChannelBuffers.dynamicBuffer();
298 message.writeTo(buf);
299
300 int readLen = buf.writerIndex();
301 testReportMsg = new byte[readLen];
302 buf.readBytes(testReportMsg, 0, readLen);
303
304 assertThat(testReportMsg, is(lsReportMsg));
305 }
306
307 /**
308 * This test case checks for LS Object (Routing Universe TLV,Local Node Descriptors TLV)
309 * in PcLSRpt message.
310 */
311 @Test
312 public void lsReportMessageTest8() throws PcepParseException, PcepOutOfBoundMessageException {
313
314 byte[] lsReportMsg = new byte[]{0x20, (byte) 0xE0, 0x00, 0x24, // common header
315 (byte) 0xE0, 0x10, 0x00, 0x20, // LS Object Header
316 0x01, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, // LS-ID
317 (byte) 0xFF, 0x01, 0x00, 0x08, // Routing Universe TLV
318 0x00, 0x00, 0x00, 0x00,
319 0x00, 0x00, 0x00, 0x01,
320 (byte) 0xFF, 0x02, 0x00, 0x00 // Local Node Descriptors TLV
321 };
322
323 ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
324 buffer.writeBytes(lsReportMsg);
325
326 PcepMessageReader<PcepMessage> reader = PcepFactories.getGenericReader();
327 PcepMessage message = null;
328
329 message = reader.readFrom(buffer);
330
331 byte[] testReportMsg = {0};
332 assertThat(message, instanceOf(PcepLSReportMsg.class));
333 ChannelBuffer buf = ChannelBuffers.dynamicBuffer();
334 message.writeTo(buf);
335
336 int readLen = buf.writerIndex();
337 testReportMsg = new byte[readLen];
338 buf.readBytes(testReportMsg, 0, readLen);
339
340 assertThat(testReportMsg, is(lsReportMsg));
341 }
342
343 /**
344 * This test case checks for
345 * LS Object (Routing Universe TLV,Local Node Descriptors TLV(AutonomousSystemSubTlv, BGPLSidentifierSubTlv.
346 * OSPFareaIDsubTlv, IgpRouterIdSubTlv), RemoteNodeDescriptorsTLV(AutonomousSystemSubTlv, BGPLSidentifierSubTlv.
347 * OSPFareaIDsubTlv, IgpRouterIdSubTlv)).
348 * in PcLSRpt message.
349 */
350 @Test
351 public void lsReportMessageTest9() throws PcepParseException, PcepOutOfBoundMessageException {
352
353 byte[] lsReportMsg = new byte[]{0x20, (byte) 0xE0, 0x00, 0x70, // common header
354 (byte) 0xE0, 0x10, 0x00, 0x6C, // LS Object Header
355 0x01, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, // LS-ID
356 (byte) 0xFF, 0x01, 0x00, 0x08, // Routing Universe TLV
357 0x00, 0x00, 0x00, 0x00,
358 0x00, 0x00, 0x00, 0x01,
359 (byte) 0xFF, 0x02, 0x00, 0x24, // Local Node Descriptors TLV
360 0x00, 0x01, 0x00, 0x04, //AutonomousSystemSubTlv
361 0x00, 0x00, 0x00, 0x11,
362 0x00, 0x02, 0x00, 0x04, //BGPLSidentifierSubTlv
363 0x00, 0x00, 0x00, 0x11,
364 0x00, 0x03, 0x00, 0x04, //OSPFareaIDsubTlv
365 0x00, 0x00, 0x00, 0x11,
366 0x00, 0x04, 0x00, 0x08, //IgpRouterIdSubTlv
367 0x00, 0x00, 0x00, 0x11,
368 0x00, 0x00, 0x00, 0x11,
369 (byte) 0xFF, 0x03, 0x00, 0x24, //RemoteNodeDescriptorsTLV
370 0x00, 0x01, 0x00, 0x04, //AutonomousSystemSubTlv
371 0x00, 0x00, 0x00, 0x11,
372 0x00, 0x02, 0x00, 0x04, //BGPLSidentifierSubTlv
373 0x00, 0x00, 0x00, 0x11,
374 0x00, 0x03, 0x00, 0x04, //OSPFareaIDsubTlv
375 0x00, 0x00, 0x00, 0x11,
376 0x00, 0x04, 0x00, 0x08, //IgpRouterIdSubTlv
377 0x00, 0x00, 0x00, 0x11,
378 0x00, 0x00, 0x00, 0x11
379 };
380
381 ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
382 buffer.writeBytes(lsReportMsg);
383
384 PcepMessageReader<PcepMessage> reader = PcepFactories.getGenericReader();
385 PcepMessage message = null;
386
387 message = reader.readFrom(buffer);
388
389 byte[] testReportMsg = {0};
390 assertThat(message, instanceOf(PcepLSReportMsg.class));
391 ChannelBuffer buf = ChannelBuffers.dynamicBuffer();
392 message.writeTo(buf);
393
394 int readLen = buf.writerIndex();
395 testReportMsg = new byte[readLen];
396 buf.readBytes(testReportMsg, 0, readLen);
397
398 assertThat(testReportMsg, is(lsReportMsg));
399 }
400
401 /**
402 * This test case checks for
403 * LS Object (Routing Universe TLV,Local Node Descriptors TLV(AutonomousSystemSubTlv, BGPLSidentifierSubTlv
404 * OSPFareaIDsubTlv, IgpRouterIdSubTlv), RemoteNodeDescriptorsTLV(BGPLSidentifierSubTlv
405 * OSPFareaIDsubTlv, IgpRouterIdSubTlv))
406 * in PcLSRpt message.
407 */
408 @Test
409 public void lsReportMessageTest10() throws PcepParseException, PcepOutOfBoundMessageException {
410
411 byte[] lsReportMsg = new byte[]{0x20, (byte) 0xE0, 0x00, 0x68, // common header
412 (byte) 0xE0, 0x10, 0x00, 0x64, // LS Object Header
413 0x01, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, // LS-ID
414 (byte) 0xFF, 0x01, 0x00, 0x08, // Routing Universe TLV
415 0x00, 0x00, 0x00, 0x00,
416 0x00, 0x00, 0x00, 0x01,
417 (byte) 0xFF, 0x02, 0x00, 0x24, // Local Node Descriptors TLV
418 0x00, 0x01, 0x00, 0x04, //AutonomousSystemSubTlv
419 0x00, 0x00, 0x00, 0x11,
420 0x00, 0x02, 0x00, 0x04, //BGPLSidentifierSubTlv
421 0x00, 0x00, 0x00, 0x11,
422 0x00, 0x03, 0x00, 0x04, //OSPFareaIDsubTlv
423 0x00, 0x00, 0x00, 0x11,
424 0x00, 0x04, 0x00, 0x08, //IgpRouterIdSubTlv
425 0x00, 0x00, 0x00, 0x11,
426 0x00, 0x00, 0x00, 0x11,
427 (byte) 0xFF, 0x03, 0x00, 0x1C, //RemoteNodeDescriptorsTLV
428 0x00, 0x02, 0x00, 0x04, //BGPLSidentifierSubTlv
429 0x00, 0x00, 0x00, 0x11,
430 0x00, 0x03, 0x00, 0x04, //OSPFareaIDsubTlv
431 0x00, 0x00, 0x00, 0x11,
432 0x00, 0x04, 0x00, 0x08, //IgpRouterIdSubTlv
433 0x00, 0x00, 0x00, 0x11,
434 0x00, 0x00, 0x00, 0x11
435 };
436
437 ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
438 buffer.writeBytes(lsReportMsg);
439
440 PcepMessageReader<PcepMessage> reader = PcepFactories.getGenericReader();
441 PcepMessage message = null;
442
443 message = reader.readFrom(buffer);
444
445 byte[] testReportMsg = {0};
446 assertThat(message, instanceOf(PcepLSReportMsg.class));
447 ChannelBuffer buf = ChannelBuffers.dynamicBuffer();
448 message.writeTo(buf);
449
450 int readLen = buf.writerIndex();
451 testReportMsg = new byte[readLen];
452 buf.readBytes(testReportMsg, 0, readLen);
453
454 assertThat(testReportMsg, is(lsReportMsg));
455 }
456
457 /**
458 * This test case checks for
459 * LS Object (Routing Universe TLV,Local Node Descriptors TLV(AutonomousSystemSubTlv, BGPLSidentifierSubTlv
460 * OSPFareaIDsubTlv, IgpRouterIdSubTlv), RemoteNodeDescriptorsTLV(OSPFareaIDsubTlv, IgpRouterIdSubTlv))
461 * in PcLSRpt message.
462 */
463 @Test
464 public void lsReportMessageTest11() throws PcepParseException, PcepOutOfBoundMessageException {
465
466 byte[] lsReportMsg = new byte[]{0x20, (byte) 0xE0, 0x00, 0x60, // common header
467 (byte) 0xE0, 0x10, 0x00, 0x5C, // LS Object Header
468 0x01, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, // LS-ID
469 (byte) 0xFF, 0x01, 0x00, 0x08, // Routing Universe TLV
470 0x00, 0x00, 0x00, 0x00,
471 0x00, 0x00, 0x00, 0x01,
472 (byte) 0xFF, 0x02, 0x00, 0x24, // Local Node Descriptors TLV
473 0x00, 0x01, 0x00, 0x04, //AutonomousSystemSubTlv
474 0x00, 0x00, 0x00, 0x11,
475 0x00, 0x02, 0x00, 0x04, //BGPLSidentifierSubTlv
476 0x00, 0x00, 0x00, 0x11,
477 0x00, 0x03, 0x00, 0x04, //OSPFareaIDsubTlv
478 0x00, 0x00, 0x00, 0x11,
479 0x00, 0x04, 0x00, 0x08, //IgpRouterIdSubTlv
480 0x00, 0x00, 0x00, 0x11,
481 0x00, 0x00, 0x00, 0x11,
482 (byte) 0xFF, 0x03, 0x00, 0x14, //RemoteNodeDescriptorsTLV
483 0x00, 0x03, 0x00, 0x04, //OSPFareaIDsubTlv
484 0x00, 0x00, 0x00, 0x11,
485 0x00, 0x04, 0x00, 0x08, //IgpRouterIdSubTlv
486 0x00, 0x00, 0x00, 0x11,
487 0x00, 0x00, 0x00, 0x11
488 };
489
490 ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
491 buffer.writeBytes(lsReportMsg);
492
493 PcepMessageReader<PcepMessage> reader = PcepFactories.getGenericReader();
494 PcepMessage message = null;
495
496 message = reader.readFrom(buffer);
497
498 byte[] testReportMsg = {0};
499 assertThat(message, instanceOf(PcepLSReportMsg.class));
500 ChannelBuffer buf = ChannelBuffers.dynamicBuffer();
501 message.writeTo(buf);
502
503 int readLen = buf.writerIndex();
504 testReportMsg = new byte[readLen];
505 buf.readBytes(testReportMsg, 0, readLen);
506
507 assertThat(testReportMsg, is(lsReportMsg));
508 }
509
510 /**
511 * This test case checks for
512 * LS Object (Routing Universe TLV,Local Node Descriptors TLV(AutonomousSystemSubTlv, BGPLSidentifierSubTlv
513 * OSPFareaIDsubTlv, IgpRouterIdSubTlv), RemoteNodeDescriptorsTLV(IgpRouterIdSubTlv))
514 * in PcLSRpt message.
515 */
516 @Test
517 public void lsReportMessageTest12() throws PcepParseException, PcepOutOfBoundMessageException {
518
519 byte[] lsReportMsg = new byte[]{0x20, (byte) 0xE0, 0x00, 0x58, // common header
520 (byte) 0xE0, 0x10, 0x00, 0x54, // LS Object Header
521 0x01, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, // LS-ID
522 (byte) 0xFF, 0x01, 0x00, 0x08, // Routing Universe TLV
523 0x00, 0x00, 0x00, 0x00,
524 0x00, 0x00, 0x00, 0x01,
525 (byte) 0xFF, 0x02, 0x00, 0x24, // Local Node Descriptors TLV
526 0x00, 0x01, 0x00, 0x04, //AutonomousSystemSubTlv
527 0x00, 0x00, 0x00, 0x11,
528 0x00, 0x02, 0x00, 0x04, //BGPLSidentifierSubTlv
529 0x00, 0x00, 0x00, 0x11,
530 0x00, 0x03, 0x00, 0x04, //OSPFareaIDsubTlv
531 0x00, 0x00, 0x00, 0x11,
532 0x00, 0x04, 0x00, 0x08, //IgpRouterIdSubTlv
533 0x00, 0x00, 0x00, 0x11,
534 0x00, 0x00, 0x00, 0x11,
535 (byte) 0xFF, 0x03, 0x00, 0x0c, //RemoteNodeDescriptorsTLV
536 0x00, 0x04, 0x00, 0x08, //IgpRouterIdSubTlv
537 0x00, 0x00, 0x00, 0x11,
538 0x00, 0x00, 0x00, 0x11
539 };
540
541 ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
542 buffer.writeBytes(lsReportMsg);
543
544 PcepMessageReader<PcepMessage> reader = PcepFactories.getGenericReader();
545 PcepMessage message = null;
546
547 message = reader.readFrom(buffer);
548
549 byte[] testReportMsg = {0};
550 assertThat(message, instanceOf(PcepLSReportMsg.class));
551 ChannelBuffer buf = ChannelBuffers.dynamicBuffer();
552 message.writeTo(buf);
553
554 int readLen = buf.writerIndex();
555 testReportMsg = new byte[readLen];
556 buf.readBytes(testReportMsg, 0, readLen);
557
558 assertThat(testReportMsg, is(lsReportMsg));
559 }
560
561 /**
562 * This test case checks for
563 * LS Object (Routing Universe TLV,Local Node Descriptors TLV(AutonomousSystemSubTlv, BGPLSidentifierSubTlv
564 * OSPFareaIDsubTlv, IgpRouterIdSubTlv), RemoteNodeDescriptorsTLV)
565 * in PcLSRpt message.
566 */
567 @Test
568 public void lsReportMessageTest13() throws PcepParseException, PcepOutOfBoundMessageException {
569
570 byte[] lsReportMsg = new byte[]{0x20, (byte) 0xE0, 0x00, 0x4C, // common header
571 (byte) 0xE0, 0x10, 0x00, 0x48, // LS Object Header
572 0x01, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, // LS-ID
573 (byte) 0xFF, 0x01, 0x00, 0x08, // Routing Universe TLV
574 0x00, 0x00, 0x00, 0x00,
575 0x00, 0x00, 0x00, 0x01,
576 (byte) 0xFF, 0x02, 0x00, 0x24, // Local Node Descriptors TLV
577 0x00, 0x01, 0x00, 0x04, //AutonomousSystemSubTlv
578 0x00, 0x00, 0x00, 0x11,
579 0x00, 0x02, 0x00, 0x04, //BGPLSidentifierSubTlv
580 0x00, 0x00, 0x00, 0x11,
581 0x00, 0x03, 0x00, 0x04, //OSPFareaIDsubTlv
582 0x00, 0x00, 0x00, 0x11,
583 0x00, 0x04, 0x00, 0x08, //IgpRouterIdSubTlv
584 0x00, 0x00, 0x00, 0x11,
585 0x00, 0x00, 0x00, 0x11,
586 (byte) 0xFF, 0x03, 0x00, 0x00 //RemoteNodeDescriptorsTLV
587 };
588
589 ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
590 buffer.writeBytes(lsReportMsg);
591
592 PcepMessageReader<PcepMessage> reader = PcepFactories.getGenericReader();
593 PcepMessage message = null;
594
595 message = reader.readFrom(buffer);
596
597 byte[] testReportMsg = {0};
598 assertThat(message, instanceOf(PcepLSReportMsg.class));
599 ChannelBuffer buf = ChannelBuffers.dynamicBuffer();
600 message.writeTo(buf);
601
602 int readLen = buf.writerIndex();
603 testReportMsg = new byte[readLen];
604 buf.readBytes(testReportMsg, 0, readLen);
605
606 assertThat(testReportMsg, is(lsReportMsg));
607 }
608
609 /**
610 * This test case checks for
611 * LS Object (Routing Universe TLV,Local Node Descriptors TLV(AutonomousSystemSubTlv, BGPLSidentifierSubTlv
612 * OSPFareaIDsubTlv, IgpRouterIdSubTlv), RemoteNodeDescriptorsTLV(AutonomousSystemSubTlv, BGPLSidentifierSubTlv
613 * OSPFareaIDsubTlv, IgpRouterIdSubTlv), LinkDescriptorsTLV(LinkLocalRemoteIdentifiersSubTlv
614 * IPv4InterfaceAddressSubTlv, IPv4NeighborAddressSubTlv))
615 * in PcLSRpt message.
616 */
617 @Test
618 public void lsReportMessageTest14() throws PcepParseException, PcepOutOfBoundMessageException {
619
620 byte[] lsReportMsg = new byte[]{0x20, (byte) 0xE0, 0x00, (byte) 0x90, // common header
621 (byte) 0xE0, 0x10, 0x00, (byte) 0x8C, // LS Object Header
622 0x01, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, // LS-ID
623 (byte) 0xFF, 0x01, 0x00, 0x08, // Routing Universe TLV
624 0x00, 0x00, 0x00, 0x00,
625 0x00, 0x00, 0x00, 0x01,
626 (byte) 0xFF, 0x02, 0x00, 0x24, // Local Node Descriptors TLV
627 0x00, 0x01, 0x00, 0x04, //AutonomousSystemSubTlv
628 0x00, 0x00, 0x00, 0x11,
629 0x00, 0x02, 0x00, 0x04, //BGPLSidentifierSubTlv
630 0x00, 0x00, 0x00, 0x11,
631 0x00, 0x03, 0x00, 0x04, //OSPFareaIDsubTlv
632 0x00, 0x00, 0x00, 0x11,
633 0x00, 0x04, 0x00, 0x08, //IgpRouterIdSubTlv
634 0x00, 0x00, 0x00, 0x11,
635 0x00, 0x00, 0x00, 0x11,
636 (byte) 0xFF, 0x03, 0x00, 0x24, //RemoteNodeDescriptorsTLV
637 0x00, 0x01, 0x00, 0x04, //AutonomousSystemSubTlv
638 0x00, 0x00, 0x00, 0x11,
639 0x00, 0x02, 0x00, 0x04, //BGPLSidentifierSubTlv
640 0x00, 0x00, 0x00, 0x11,
641 0x00, 0x03, 0x00, 0x04, //OSPFareaIDsubTlv
642 0x00, 0x00, 0x00, 0x11,
643 0x00, 0x04, 0x00, 0x08, //IgpRouterIdSubTlv
644 0x00, 0x00, 0x00, 0x11,
645 0x00, 0x00, 0x00, 0x11,
646 (byte) 0xFF, 0x04, 0x00, 0x1C, //LinkDescriptorsTLV
647 0x00, 0x06, 0x00, 0x08, //LinkLocalRemoteIdentifiersSubTlv
648 0x01, 0x11, 0x00, 0x09,
649 0x01, 0x21, 0x00, 0x09,
650 0x00, 0x07, 0x00, 0x04, //IPv4InterfaceAddressSubTlv
651 0x01, 0x01, 0x01, 0x01,
652 0x00, 0x08, 0x00, 0x04, //IPv4NeighborAddressSubTlv
653 0x01, 0x011, 0x01, 0x10
654 };
655
656 ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
657 buffer.writeBytes(lsReportMsg);
658
659 PcepMessageReader<PcepMessage> reader = PcepFactories.getGenericReader();
660 PcepMessage message = null;
661
662 message = reader.readFrom(buffer);
663
664 byte[] testReportMsg = {0};
665 assertThat(message, instanceOf(PcepLSReportMsg.class));
666 ChannelBuffer buf = ChannelBuffers.dynamicBuffer();
667 message.writeTo(buf);
668
669 int readLen = buf.writerIndex();
670 testReportMsg = new byte[readLen];
671 buf.readBytes(testReportMsg, 0, readLen);
672
673 assertThat(testReportMsg, is(lsReportMsg));
674 }
675
676 /**
677 * This test case checks for
678 * LS Object (Routing Universe TLV,Local Node Descriptors TLV(AutonomousSystemSubTlv, BGPLSidentifierSubTlv
679 * OSPFareaIDsubTlv, IgpRouterIdSubTlv), RemoteNodeDescriptorsTLV(AutonomousSystemSubTlv, BGPLSidentifierSubTlv
680 * OSPFareaIDsubTlv, IgpRouterIdSubTlv), LinkDescriptorsTLV(
681 * IPv4InterfaceAddressSubTlv, IPv4NeighborAddressSubTlv))
682 * in PcLSRpt message.
683 */
684 @Test
685 public void lsReportMessageTest15() throws PcepParseException, PcepOutOfBoundMessageException {
686
687 byte[] lsReportMsg = new byte[]{0x20, (byte) 0xE0, 0x00, (byte) 0x84, // common header
688 (byte) 0xE0, 0x10, 0x00, (byte) 0x80, // LS Object Header
689 0x01, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, // LS-ID
690 (byte) 0xFF, 0x01, 0x00, 0x08, // Routing Universe TLV
691 0x00, 0x00, 0x00, 0x00,
692 0x00, 0x00, 0x00, 0x01,
693 (byte) 0xFF, 0x02, 0x00, 0x24, // Local Node Descriptors TLV
694 0x00, 0x01, 0x00, 0x04, //AutonomousSystemSubTlv
695 0x00, 0x00, 0x00, 0x11,
696 0x00, 0x02, 0x00, 0x04, //BGPLSidentifierSubTlv
697 0x00, 0x00, 0x00, 0x11,
698 0x00, 0x03, 0x00, 0x04, //OSPFareaIDsubTlv
699 0x00, 0x00, 0x00, 0x11,
700 0x00, 0x04, 0x00, 0x08, //IgpRouterIdSubTlv
701 0x00, 0x00, 0x00, 0x11,
702 0x00, 0x00, 0x00, 0x11,
703 (byte) 0xFF, 0x03, 0x00, 0x24, //RemoteNodeDescriptorsTLV
704 0x00, 0x01, 0x00, 0x04, //AutonomousSystemSubTlv
705 0x00, 0x00, 0x00, 0x11,
706 0x00, 0x02, 0x00, 0x04, //BGPLSidentifierSubTlv
707 0x00, 0x00, 0x00, 0x11,
708 0x00, 0x03, 0x00, 0x04, //OSPFareaIDsubTlv
709 0x00, 0x00, 0x00, 0x11,
710 0x00, 0x04, 0x00, 0x08, //IgpRouterIdSubTlv
711 0x00, 0x00, 0x00, 0x11,
712 0x00, 0x00, 0x00, 0x11,
713 (byte) 0xFF, 0x04, 0x00, 0x10, //LinkDescriptorsTLV
714 0x00, 0x07, 0x00, 0x04, //IPv4InterfaceAddressSubTlv
715 0x01, 0x01, 0x01, 0x01,
716 0x00, 0x08, 0x00, 0x04, //IPv4NeighborAddressSubTlv
717 0x01, 0x011, 0x01, 0x10
718 };
719
720 ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
721 buffer.writeBytes(lsReportMsg);
722
723 PcepMessageReader<PcepMessage> reader = PcepFactories.getGenericReader();
724 PcepMessage message = null;
725
726 message = reader.readFrom(buffer);
727
728 byte[] testReportMsg = {0};
729 assertThat(message, instanceOf(PcepLSReportMsg.class));
730 ChannelBuffer buf = ChannelBuffers.dynamicBuffer();
731 message.writeTo(buf);
732
733 int readLen = buf.writerIndex();
734 testReportMsg = new byte[readLen];
735 buf.readBytes(testReportMsg, 0, readLen);
736
737 assertThat(testReportMsg, is(lsReportMsg));
738 }
739
740 /**
741 * This test case checks for
742 * LS Object (Routing Universe TLV,Local Node Descriptors TLV(AutonomousSystemSubTlv, BGPLSidentifierSubTlv
743 * OSPFareaIDsubTlv, IgpRouterIdSubTlv), RemoteNodeDescriptorsTLV(AutonomousSystemSubTlv, BGPLSidentifierSubTlv
744 * OSPFareaIDsubTlv, IgpRouterIdSubTlv), LinkDescriptorsTLV(IPv4NeighborAddressSubTlv))
745 * in PcLSRpt message.
746 */
747 @Test
748 public void lsReportMessageTest16() throws PcepParseException, PcepOutOfBoundMessageException {
749
750 byte[] lsReportMsg = new byte[]{0x20, (byte) 0xE0, 0x00, (byte) 0x7C, // common header
751 (byte) 0xE0, 0x10, 0x00, (byte) 0x78, // LS Object Header
752 0x01, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, // LS-ID
753 (byte) 0xFF, 0x01, 0x00, 0x08, // Routing Universe TLV
754 0x00, 0x00, 0x00, 0x00,
755 0x00, 0x00, 0x00, 0x01,
756 (byte) 0xFF, 0x02, 0x00, 0x24, // Local Node Descriptors TLV
757 0x00, 0x01, 0x00, 0x04, //AutonomousSystemSubTlv
758 0x00, 0x00, 0x00, 0x11,
759 0x00, 0x02, 0x00, 0x04, //BGPLSidentifierSubTlv
760 0x00, 0x00, 0x00, 0x11,
761 0x00, 0x03, 0x00, 0x04, //OSPFareaIDsubTlv
762 0x00, 0x00, 0x00, 0x11,
763 0x00, 0x04, 0x00, 0x08, //IgpRouterIdSubTlv
764 0x00, 0x00, 0x00, 0x11,
765 0x00, 0x00, 0x00, 0x11,
766 (byte) 0xFF, 0x03, 0x00, 0x24, //RemoteNodeDescriptorsTLV
767 0x00, 0x01, 0x00, 0x04, //AutonomousSystemSubTlv
768 0x00, 0x00, 0x00, 0x11,
769 0x00, 0x02, 0x00, 0x04, //BGPLSidentifierSubTlv
770 0x00, 0x00, 0x00, 0x11,
771 0x00, 0x03, 0x00, 0x04, //OSPFareaIDsubTlv
772 0x00, 0x00, 0x00, 0x11,
773 0x00, 0x04, 0x00, 0x08, //IgpRouterIdSubTlv
774 0x00, 0x00, 0x00, 0x11,
775 0x00, 0x00, 0x00, 0x11,
776 (byte) 0xFF, 0x04, 0x00, 0x08, //LinkDescriptorsTLV
777 0x00, 0x08, 0x00, 0x04, //IPv4NeighborAddressSubTlv
778 0x01, 0x011, 0x01, 0x10
779 };
780
781 ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
782 buffer.writeBytes(lsReportMsg);
783
784 PcepMessageReader<PcepMessage> reader = PcepFactories.getGenericReader();
785 PcepMessage message = null;
786
787 message = reader.readFrom(buffer);
788
789 byte[] testReportMsg = {0};
790 assertThat(message, instanceOf(PcepLSReportMsg.class));
791 ChannelBuffer buf = ChannelBuffers.dynamicBuffer();
792 message.writeTo(buf);
793
794 int readLen = buf.writerIndex();
795 testReportMsg = new byte[readLen];
796 buf.readBytes(testReportMsg, 0, readLen);
797
798 assertThat(testReportMsg, is(lsReportMsg));
799 }
800
801 /**
802 * This test case checks for
803 * LS Object (Routing Universe TLV,Local Node Descriptors TLV(AutonomousSystemSubTlv, BGPLSidentifierSubTlv
804 * OSPFareaIDsubTlv, IgpRouterIdSubTlv), RemoteNodeDescriptorsTLV(AutonomousSystemSubTlv, BGPLSidentifierSubTlv
805 * OSPFareaIDsubTlv, IgpRouterIdSubTlv), LinkDescriptorsTLV)
806 * in PcLSRpt message.
807 */
808 @Test
809 public void lsReportMessageTest17() throws PcepParseException, PcepOutOfBoundMessageException {
810
811 byte[] lsReportMsg = new byte[]{0x20, (byte) 0xE0, 0x00, (byte) 0x74, // common header
812 (byte) 0xE0, 0x10, 0x00, (byte) 0x70, // LS Object Header
813 0x01, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, // LS-ID
814 (byte) 0xFF, 0x01, 0x00, 0x08, // Routing Universe TLV
815 0x00, 0x00, 0x00, 0x00,
816 0x00, 0x00, 0x00, 0x01,
817 (byte) 0xFF, 0x02, 0x00, 0x24, // Local Node Descriptors TLV
818 0x00, 0x01, 0x00, 0x04, //AutonomousSystemSubTlv
819 0x00, 0x00, 0x00, 0x11,
820 0x00, 0x02, 0x00, 0x04, //BGPLSidentifierSubTlv
821 0x00, 0x00, 0x00, 0x11,
822 0x00, 0x03, 0x00, 0x04, //OSPFareaIDsubTlv
823 0x00, 0x00, 0x00, 0x11,
824 0x00, 0x04, 0x00, 0x08, //IgpRouterIdSubTlv
825 0x00, 0x00, 0x00, 0x11,
826 0x00, 0x00, 0x00, 0x11,
827 (byte) 0xFF, 0x03, 0x00, 0x24, //RemoteNodeDescriptorsTLV
828 0x00, 0x01, 0x00, 0x04, //AutonomousSystemSubTlv
829 0x00, 0x00, 0x00, 0x11,
830 0x00, 0x02, 0x00, 0x04, //BGPLSidentifierSubTlv
831 0x00, 0x00, 0x00, 0x11,
832 0x00, 0x03, 0x00, 0x04, //OSPFareaIDsubTlv
833 0x00, 0x00, 0x00, 0x11,
834 0x00, 0x04, 0x00, 0x08, //IgpRouterIdSubTlv
835 0x00, 0x00, 0x00, 0x11,
836 0x00, 0x00, 0x00, 0x11,
837 (byte) 0xFF, 0x04, 0x00, 0x00, //LinkDescriptorsTLV
838 };
839
840 ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
841 buffer.writeBytes(lsReportMsg);
842
843 PcepMessageReader<PcepMessage> reader = PcepFactories.getGenericReader();
844 PcepMessage message = null;
845
846 message = reader.readFrom(buffer);
847
848 byte[] testReportMsg = {0};
849 assertThat(message, instanceOf(PcepLSReportMsg.class));
850 ChannelBuffer buf = ChannelBuffers.dynamicBuffer();
851 message.writeTo(buf);
852
853 int readLen = buf.writerIndex();
854 testReportMsg = new byte[readLen];
855 buf.readBytes(testReportMsg, 0, readLen);
856
857 assertThat(testReportMsg, is(lsReportMsg));
858 }
859
860 /**
861 * This test case checks for
862 * LS Object (Routing Universe TLV,Local Node Descriptors TLV(AutonomousSystemSubTlv, BGPLSidentifierSubTlv
863 * OSPFareaIDsubTlv, IgpRouterIdSubTlv), RemoteNodeDescriptorsTLV(AutonomousSystemSubTlv, BGPLSidentifierSubTlv
864 * OSPFareaIDsubTlv, IgpRouterIdSubTlv), LinkDescriptorsTLV(LinkLocalRemoteIdentifiersSubTlv
865 * IPv4InterfaceAddressSubTlv, IPv4NeighborAddressSubTlv))
866 * in PcLSRpt message.
867 */
868 @Test
869 public void lsReportMessageTest18() throws PcepParseException, PcepOutOfBoundMessageException {
870
871 byte[] lsReportMsg = new byte[]{0x20, (byte) 0xE0, 0x00, (byte) 0xC4, // common header
872 (byte) 0xE0, 0x10, 0x00, (byte) 0xC0, // LS Object Header
873 0x01, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, // LS-ID
874 (byte) 0xFF, 0x01, 0x00, 0x08, // Routing Universe TLV
875 0x00, 0x00, 0x00, 0x00,
876 0x00, 0x00, 0x00, 0x01,
877 (byte) 0xFF, 0x02, 0x00, 0x24, // Local Node Descriptors TLV
878 0x00, 0x01, 0x00, 0x04, //AutonomousSystemSubTlv
879 0x00, 0x00, 0x00, 0x11,
880 0x00, 0x02, 0x00, 0x04, //BGPLSidentifierSubTlv
881 0x00, 0x00, 0x00, 0x11,
882 0x00, 0x03, 0x00, 0x04, //OSPFareaIDsubTlv
883 0x00, 0x00, 0x00, 0x11,
884 0x00, 0x04, 0x00, 0x08, //IgpRouterIdSubTlv
885 0x00, 0x00, 0x00, 0x11,
886 0x00, 0x00, 0x00, 0x11,
887 (byte) 0xFF, 0x03, 0x00, 0x24, //RemoteNodeDescriptorsTLV
888 0x00, 0x01, 0x00, 0x04, //AutonomousSystemSubTlv
889 0x00, 0x00, 0x00, 0x11,
890 0x00, 0x02, 0x00, 0x04, //BGPLSidentifierSubTlv
891 0x00, 0x00, 0x00, 0x11,
892 0x00, 0x03, 0x00, 0x04, //OSPFareaIDsubTlv
893 0x00, 0x00, 0x00, 0x11,
894 0x00, 0x04, 0x00, 0x08, //IgpRouterIdSubTlv
895 0x00, 0x00, 0x00, 0x11,
896 0x00, 0x00, 0x00, 0x11,
897 (byte) 0xFF, 0x04, 0x00, 0x1C, //LinkDescriptorsTLV
898 0x00, 0x06, 0x00, 0x08, //LinkLocalRemoteIdentifiersSubTlv
899 0x01, 0x11, 0x00, 0x09,
900 0x01, 0x21, 0x00, 0x09,
901 0x00, 0x07, 0x00, 0x04, //IPv4InterfaceAddressSubTlv
902 0x01, 0x01, 0x01, 0x01,
903 0x00, 0x08, 0x00, 0x04, //IPv4NeighborAddressSubTlv
904 0x01, 0x011, 0x01, 0x10,
905 (byte) 0xFF, 0x05, 0x00, 0x30, //NodeAttributesTlv
906 0x00, 0x0D, 0x00, 0x01, //NodeFlagBitsSubTlv
907 (byte) 0x90, 0x00, 0x00, 0x00,
908 0x00, 0x0E, 0x00, 0x04, //OpaqueNodePropertiesSubTlv
909 0x01, 0x011, 0x01, 0x10,
910 0x00, 0x0F, 0x00, 0x08, //NodeNameSubTlv
911 0x08, 0x00, 0x01, 0x09,
912 0x08, 0x00, 0x01, 0x09,
913 0x00, 0x10, 0x00, 0x08, //ISISAreaIdentifierSubTlv
914 0x20, 0x01, 0x22, 0x01,
915 0x20, 0x01, 0x22, 0x01,
916 0x00, 0x11, 0x00, 0x04, //IPv4RouterIdOfLocalNodeSubTlv
917 0x00, 0x01, 0x01, 0x02
918 };
919
920 ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
921 buffer.writeBytes(lsReportMsg);
922
923 PcepMessageReader<PcepMessage> reader = PcepFactories.getGenericReader();
924 PcepMessage message = null;
925
926 message = reader.readFrom(buffer);
927
928 byte[] testReportMsg = {0};
929 assertThat(message, instanceOf(PcepLSReportMsg.class));
930 ChannelBuffer buf = ChannelBuffers.dynamicBuffer();
931 message.writeTo(buf);
932
933 int readLen = buf.writerIndex();
934 testReportMsg = new byte[readLen];
935 buf.readBytes(testReportMsg, 0, readLen);
936
937 assertThat(testReportMsg, is(lsReportMsg));
938 }
939
940 /**
941 * This test case checks for
942 * LS Object (Routing Universe TLV,Local Node Descriptors TLV(AutonomousSystemSubTlv, BGPLSidentifierSubTlv
943 * OSPFareaIDsubTlv, IgpRouterIdSubTlv), RemoteNodeDescriptorsTLV(AutonomousSystemSubTlv, BGPLSidentifierSubTlv
944 * OSPFareaIDsubTlv, IgpRouterIdSubTlv), LinkDescriptorsTLV(LinkLocalRemoteIdentifiersSubTlv
945 * IPv4InterfaceAddressSubTlv, IPv4NeighborAddressSubTlv), NodeAttributesTlv(NodeFlagBitsSubTlv
946 * OpaqueNodePropertiesSubTlv, NodeNameSubTlv, ISISAreaIdentifierSubTlv, IPv4RouterIdOfLocalNodeSubTlv))
947 * in PcLSRpt message.
948 */
949 @Test
950 public void lsReportMessageTest19() throws PcepParseException, PcepOutOfBoundMessageException {
951
952 byte[] lsReportMsg = new byte[]{0x20, (byte) 0xE0, 0x00, (byte) 0xC4, // common header
953 (byte) 0xE0, 0x10, 0x00, (byte) 0xC0, // LS Object Header
954 0x01, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, // LS-ID
955 (byte) 0xFF, 0x01, 0x00, 0x08, // Routing Universe TLV
956 0x00, 0x00, 0x00, 0x00,
957 0x00, 0x00, 0x00, 0x01,
958 (byte) 0xFF, 0x02, 0x00, 0x24, // Local Node Descriptors TLV
959 0x00, 0x01, 0x00, 0x04, //AutonomousSystemSubTlv
960 0x00, 0x00, 0x00, 0x11,
961 0x00, 0x02, 0x00, 0x04, //BGPLSidentifierSubTlv
962 0x00, 0x00, 0x00, 0x11,
963 0x00, 0x03, 0x00, 0x04, //OSPFareaIDsubTlv
964 0x00, 0x00, 0x00, 0x11,
965 0x00, 0x04, 0x00, 0x08, //IgpRouterIdSubTlv
966 0x00, 0x00, 0x00, 0x11,
967 0x00, 0x00, 0x00, 0x11,
968 (byte) 0xFF, 0x03, 0x00, 0x24, //RemoteNodeDescriptorsTLV
969 0x00, 0x01, 0x00, 0x04, //AutonomousSystemSubTlv
970 0x00, 0x00, 0x00, 0x11,
971 0x00, 0x02, 0x00, 0x04, //BGPLSidentifierSubTlv
972 0x00, 0x00, 0x00, 0x11,
973 0x00, 0x03, 0x00, 0x04, //OSPFareaIDsubTlv
974 0x00, 0x00, 0x00, 0x11,
975 0x00, 0x04, 0x00, 0x08, //IgpRouterIdSubTlv
976 0x00, 0x00, 0x00, 0x11,
977 0x00, 0x00, 0x00, 0x11,
978 (byte) 0xFF, 0x04, 0x00, 0x1C, //LinkDescriptorsTLV
979 0x00, 0x06, 0x00, 0x08, //LinkLocalRemoteIdentifiersSubTlv
980 0x01, 0x11, 0x00, 0x09,
981 0x01, 0x21, 0x00, 0x09,
982 0x00, 0x07, 0x00, 0x04, //IPv4InterfaceAddressSubTlv
983 0x01, 0x01, 0x01, 0x01,
984 0x00, 0x08, 0x00, 0x04, //IPv4NeighborAddressSubTlv
985 0x01, 0x011, 0x01, 0x10,
986 (byte) 0xFF, 0x05, 0x00, 0x30, //NodeAttributesTlv
987 0x00, 0x0D, 0x00, 0x01, //NodeFlagBitsSubTlv
988 (byte) 0x90, 0x00, 0x00, 0x00,
989 0x00, 0x0E, 0x00, 0x04, //OpaqueNodePropertiesSubTlv
990 0x01, 0x011, 0x01, 0x10,
991 0x00, 0x0F, 0x00, 0x08, //NodeNameSubTlv
992 0x08, 0x00, 0x01, 0x09,
993 0x08, 0x00, 0x01, 0x09,
994 0x00, 0x10, 0x00, 0x08, //ISISAreaIdentifierSubTlv
995 0x20, 0x01, 0x22, 0x01,
996 0x20, 0x01, 0x22, 0x01,
997 0x00, 0x11, 0x00, 0x04, //IPv4RouterIdOfLocalNodeSubTlv
998 0x00, 0x01, 0x01, 0x02
999 };
1000
1001 ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
1002 buffer.writeBytes(lsReportMsg);
1003
1004 PcepMessageReader<PcepMessage> reader = PcepFactories.getGenericReader();
1005 PcepMessage message = null;
1006
1007 message = reader.readFrom(buffer);
1008
1009 byte[] testReportMsg = {0};
1010 assertThat(message, instanceOf(PcepLSReportMsg.class));
1011 ChannelBuffer buf = ChannelBuffers.dynamicBuffer();
1012 message.writeTo(buf);
1013
1014 int readLen = buf.writerIndex();
1015 testReportMsg = new byte[readLen];
1016 buf.readBytes(testReportMsg, 0, readLen);
1017
1018 assertThat(testReportMsg, is(lsReportMsg));
1019 }
1020
1021 /**
1022 * This test case checks for
1023 * LS Object (Routing Universe TLV,Local Node Descriptors TLV(AutonomousSystemSubTlv, BGPLSidentifierSubTlv
1024 * OSPFareaIDsubTlv, IgpRouterIdSubTlv), RemoteNodeDescriptorsTLV(AutonomousSystemSubTlv, BGPLSidentifierSubTlv
1025 * OSPFareaIDsubTlv, IgpRouterIdSubTlv), LinkDescriptorsTLV(LinkLocalRemoteIdentifiersSubTlv
1026 * IPv4InterfaceAddressSubTlv, IPv4NeighborAddressSubTlv), NodeAttributesTlv(OpaqueNodePropertiesSubTlv
1027 * NodeNameSubTlv, ISISAreaIdentifierSubTlv, IPv4RouterIdOfLocalNodeSubTlv))
1028 * in PcLSRpt message.
1029 */
1030 @Test
1031 public void lsReportMessageTest20() throws PcepParseException, PcepOutOfBoundMessageException {
1032
1033 byte[] lsReportMsg = new byte[]{0x20, (byte) 0xE0, 0x00, (byte) 0xBC, // common header
1034 (byte) 0xE0, 0x10, 0x00, (byte) 0xB8, // LS Object Header
1035 0x01, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, // LS-ID
1036 (byte) 0xFF, 0x01, 0x00, 0x08, // Routing Universe TLV
1037 0x00, 0x00, 0x00, 0x00,
1038 0x00, 0x00, 0x00, 0x01,
1039 (byte) 0xFF, 0x02, 0x00, 0x24, // Local Node Descriptors TLV
1040 0x00, 0x01, 0x00, 0x04, //AutonomousSystemSubTlv
1041 0x00, 0x00, 0x00, 0x11,
1042 0x00, 0x02, 0x00, 0x04, //BGPLSidentifierSubTlv
1043 0x00, 0x00, 0x00, 0x11,
1044 0x00, 0x03, 0x00, 0x04, //OSPFareaIDsubTlv
1045 0x00, 0x00, 0x00, 0x11,
1046 0x00, 0x04, 0x00, 0x08, //IgpRouterIdSubTlv
1047 0x00, 0x00, 0x00, 0x11,
1048 0x00, 0x00, 0x00, 0x11,
1049 (byte) 0xFF, 0x03, 0x00, 0x24, //RemoteNodeDescriptorsTLV
1050 0x00, 0x01, 0x00, 0x04, //AutonomousSystemSubTlv
1051 0x00, 0x00, 0x00, 0x11,
1052 0x00, 0x02, 0x00, 0x04, //BGPLSidentifierSubTlv
1053 0x00, 0x00, 0x00, 0x11,
1054 0x00, 0x03, 0x00, 0x04, //OSPFareaIDsubTlv
1055 0x00, 0x00, 0x00, 0x11,
1056 0x00, 0x04, 0x00, 0x08, //IgpRouterIdSubTlv
1057 0x00, 0x00, 0x00, 0x11,
1058 0x00, 0x00, 0x00, 0x11,
1059 (byte) 0xFF, 0x04, 0x00, 0x1C, //LinkDescriptorsTLV
1060 0x00, 0x06, 0x00, 0x08, //LinkLocalRemoteIdentifiersSubTlv
1061 0x01, 0x11, 0x00, 0x09,
1062 0x01, 0x21, 0x00, 0x09,
1063 0x00, 0x07, 0x00, 0x04, //IPv4InterfaceAddressSubTlv
1064 0x01, 0x01, 0x01, 0x01,
1065 0x00, 0x08, 0x00, 0x04, //IPv4NeighborAddressSubTlv
1066 0x01, 0x011, 0x01, 0x10,
1067 (byte) 0xFF, 0x05, 0x00, 0x28, //NodeAttributesTlv
1068 0x00, 0x0E, 0x00, 0x04, //OpaqueNodePropertiesSubTlv
1069 0x01, 0x011, 0x01, 0x10,
1070 0x00, 0x0F, 0x00, 0x08, //NodeNameSubTlv
1071 0x08, 0x00, 0x01, 0x09,
1072 0x08, 0x00, 0x01, 0x09,
1073 0x00, 0x10, 0x00, 0x08, //ISISAreaIdentifierSubTlv
1074 0x20, 0x01, 0x22, 0x01,
1075 0x20, 0x01, 0x22, 0x01,
1076 0x00, 0x11, 0x00, 0x04, //IPv4RouterIdOfLocalNodeSubTlv
1077 0x00, 0x01, 0x01, 0x02
1078 };
1079
1080 ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
1081 buffer.writeBytes(lsReportMsg);
1082
1083 PcepMessageReader<PcepMessage> reader = PcepFactories.getGenericReader();
1084 PcepMessage message = null;
1085
1086 message = reader.readFrom(buffer);
1087
1088 byte[] testReportMsg = {0};
1089 assertThat(message, instanceOf(PcepLSReportMsg.class));
1090 ChannelBuffer buf = ChannelBuffers.dynamicBuffer();
1091 message.writeTo(buf);
1092
1093 int readLen = buf.writerIndex();
1094 testReportMsg = new byte[readLen];
1095 buf.readBytes(testReportMsg, 0, readLen);
1096
1097 assertThat(testReportMsg, is(lsReportMsg));
1098 }
1099
1100 /**
1101 * This test case checks for
1102 * LS Object (Routing Universe TLV,Local Node Descriptors TLV(AutonomousSystemSubTlv, BGPLSidentifierSubTlv
1103 * OSPFareaIDsubTlv, IgpRouterIdSubTlv), RemoteNodeDescriptorsTLV(AutonomousSystemSubTlv, BGPLSidentifierSubTlv
1104 * OSPFareaIDsubTlv, IgpRouterIdSubTlv), LinkDescriptorsTLV(LinkLocalRemoteIdentifiersSubTlv.
1105 * IPv4InterfaceAddressSubTlv, IPv4NeighborAddressSubTlv), NodeAttributesTlv(OpaqueNodePropertiesSubTlv
1106 * ISISAreaIdentifierSubTlv, IPv4RouterIdOfLocalNodeSubTlv))
1107 * in PcLSRpt message.
1108 */
1109 @Test
1110 public void lsReportMessageTest21() throws PcepParseException, PcepOutOfBoundMessageException {
1111
1112 byte[] lsReportMsg = new byte[]{0x20, (byte) 0xE0, 0x00, (byte) 0xB0, // common header
1113 (byte) 0xE0, 0x10, 0x00, (byte) 0xAC, // LS Object Header
1114 0x01, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, // LS-ID
1115 (byte) 0xFF, 0x01, 0x00, 0x08, // Routing Universe TLV
1116 0x00, 0x00, 0x00, 0x00,
1117 0x00, 0x00, 0x00, 0x01,
1118 (byte) 0xFF, 0x02, 0x00, 0x24, // Local Node Descriptors TLV
1119 0x00, 0x01, 0x00, 0x04, //AutonomousSystemSubTlv
1120 0x00, 0x00, 0x00, 0x11,
1121 0x00, 0x02, 0x00, 0x04, //BGPLSidentifierSubTlv
1122 0x00, 0x00, 0x00, 0x11,
1123 0x00, 0x03, 0x00, 0x04, //OSPFareaIDsubTlv
1124 0x00, 0x00, 0x00, 0x11,
1125 0x00, 0x04, 0x00, 0x08, //IgpRouterIdSubTlv
1126 0x00, 0x00, 0x00, 0x11,
1127 0x00, 0x00, 0x00, 0x11,
1128 (byte) 0xFF, 0x03, 0x00, 0x24, //RemoteNodeDescriptorsTLV
1129 0x00, 0x01, 0x00, 0x04, //AutonomousSystemSubTlv
1130 0x00, 0x00, 0x00, 0x11,
1131 0x00, 0x02, 0x00, 0x04, //BGPLSidentifierSubTlv
1132 0x00, 0x00, 0x00, 0x11,
1133 0x00, 0x03, 0x00, 0x04, //OSPFareaIDsubTlv
1134 0x00, 0x00, 0x00, 0x11,
1135 0x00, 0x04, 0x00, 0x08, //IgpRouterIdSubTlv
1136 0x00, 0x00, 0x00, 0x11,
1137 0x00, 0x00, 0x00, 0x11,
1138 (byte) 0xFF, 0x04, 0x00, 0x1C, //LinkDescriptorsTLV
1139 0x00, 0x06, 0x00, 0x08, //LinkLocalRemoteIdentifiersSubTlv
1140 0x01, 0x11, 0x00, 0x09,
1141 0x01, 0x21, 0x00, 0x09,
1142 0x00, 0x07, 0x00, 0x04, //IPv4InterfaceAddressSubTlv
1143 0x01, 0x01, 0x01, 0x01,
1144 0x00, 0x08, 0x00, 0x04, //IPv4NeighborAddressSubTlv
1145 0x01, 0x011, 0x01, 0x10,
1146 (byte) 0xFF, 0x05, 0x00, 0x1C, //NodeAttributesTlv
1147 0x00, 0x0E, 0x00, 0x04, //OpaqueNodePropertiesSubTlv
1148 0x01, 0x011, 0x01, 0x10,
1149 0x00, 0x10, 0x00, 0x08, //ISISAreaIdentifierSubTlv
1150 0x20, 0x01, 0x22, 0x01,
1151 0x20, 0x01, 0x22, 0x01,
1152 0x00, 0x11, 0x00, 0x04, //IPv4RouterIdOfLocalNodeSubTlv
1153 0x00, 0x01, 0x01, 0x02
1154 };
1155
1156 ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
1157 buffer.writeBytes(lsReportMsg);
1158
1159 PcepMessageReader<PcepMessage> reader = PcepFactories.getGenericReader();
1160 PcepMessage message = null;
1161
1162 message = reader.readFrom(buffer);
1163
1164 byte[] testReportMsg = {0};
1165 assertThat(message, instanceOf(PcepLSReportMsg.class));
1166 ChannelBuffer buf = ChannelBuffers.dynamicBuffer();
1167 message.writeTo(buf);
1168
1169 int readLen = buf.writerIndex();
1170 testReportMsg = new byte[readLen];
1171 buf.readBytes(testReportMsg, 0, readLen);
1172
1173 assertThat(testReportMsg, is(lsReportMsg));
1174 }
1175
1176 /**
1177 * This test case checks for
1178 * LS Object (Routing Universe TLV,Local Node Descriptors TLV(AutonomousSystemSubTlv, BGPLSidentifierSubTlv,
1179 * OSPFareaIDsubTlv, IgpRouterIdSubTlv), RemoteNodeDescriptorsTLV(AutonomousSystemSubTlv, BGPLSidentifierSubTlv,
1180 * OSPFareaIDsubTlv, IgpRouterIdSubTlv), LinkDescriptorsTLV(LinkLocalRemoteIdentifiersSubTlv,
1181 * IPv4InterfaceAddressSubTlv, IPv4NeighborAddressSubTlv), NodeAttributesTlv(NodeFlagBitsSubTlv,
1182 * OpaqueNodePropertiesSubTlv, NodeNameSubTlv, ISISAreaIdentifierSubTlv, IPv4RouterIdOfLocalNodeSubTlv),
1183 * LinkAttributesTlv(IPv4RouterIdOfRemoteNodeSubTlv, IPv6LSRouterIdofRemoteNodeTlv, AdministrativeGroupSubTlv,
1184 * TEDefaultMetricSubTlv, MaximumLinkBandwidthSubTlv, MaximumReservableLinkBandwidthSubTlv,
1185 * UnreservedBandwidthSubTlv, LinkProtectionTypeSubTlv, MPLSProtocolMaskSubTlv, IgpMetricSubTlv,
1186 * SharedRiskLinkGroupSubTlv, OpaqueLinkAttributeSubTlv, LinkNameAttributeSubTlv)).
1187 * in PcLSRpt message.
1188 */
1189 @Test
1190 public void lsReportMessageTest22() throws PcepParseException, PcepOutOfBoundMessageException {
1191
1192 byte[] lsReportMsg = new byte[]{0x20, (byte) 0xE0, 0x01, 0x18, // common header
1193 (byte) 0xE0, 0x10, 0x01, 0x14, // LS Object Header
1194 0x01, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, // LS-ID
1195 (byte) 0xFF, 0x01, 0x00, 0x08, // Routing Universe TLV
1196 0x00, 0x00, 0x00, 0x00,
1197 0x00, 0x00, 0x00, 0x01,
1198 (byte) 0xFF, 0x02, 0x00, 0x24, // Local Node Descriptors TLV
1199 0x00, 0x01, 0x00, 0x04, //AutonomousSystemSubTlv
1200 0x00, 0x00, 0x00, 0x11,
1201 0x00, 0x02, 0x00, 0x04, //BGPLSidentifierSubTlv
1202 0x00, 0x00, 0x00, 0x11,
1203 0x00, 0x03, 0x00, 0x04, //OSPFareaIDsubTlv
1204 0x00, 0x00, 0x00, 0x11,
1205 0x00, 0x04, 0x00, 0x08, //IgpRouterIdSubTlv
1206 0x00, 0x00, 0x00, 0x11,
1207 0x00, 0x00, 0x00, 0x11,
1208 (byte) 0xFF, 0x03, 0x00, 0x24, //RemoteNodeDescriptorsTLV
1209 0x00, 0x01, 0x00, 0x04, //AutonomousSystemSubTlv
1210 0x00, 0x00, 0x00, 0x11,
1211 0x00, 0x02, 0x00, 0x04, //BGPLSidentifierSubTlv
1212 0x00, 0x00, 0x00, 0x11,
1213 0x00, 0x03, 0x00, 0x04, //OSPFareaIDsubTlv
1214 0x00, 0x00, 0x00, 0x11,
1215 0x00, 0x04, 0x00, 0x08, //IgpRouterIdSubTlv
1216 0x00, 0x00, 0x00, 0x11,
1217 0x00, 0x00, 0x00, 0x11,
1218 (byte) 0xFF, 0x04, 0x00, 0x1C, //LinkDescriptorsTLV
1219 0x00, 0x06, 0x00, 0x08, //LinkLocalRemoteIdentifiersSubTlv
1220 0x01, 0x11, 0x00, 0x09,
1221 0x01, 0x21, 0x00, 0x09,
1222 0x00, 0x07, 0x00, 0x04, //IPv4InterfaceAddressSubTlv
1223 0x01, 0x01, 0x01, 0x01,
1224 0x00, 0x08, 0x00, 0x04, //IPv4NeighborAddressSubTlv
1225 0x01, 0x011, 0x01, 0x10,
1226 (byte) 0xFF, 0x05, 0x00, 0x1C, //NodeAttributesTlv
1227 0x00, 0x0E, 0x00, 0x04, //OpaqueNodePropertiesSubTlv
1228 0x01, 0x011, 0x01, 0x10,
1229 0x00, 0x10, 0x00, 0x08, //ISISAreaIdentifierSubTlv
1230 0x20, 0x01, 0x22, 0x01,
1231 0x20, 0x01, 0x22, 0x01,
1232 0x00, 0x11, 0x00, 0x04, //IPv4RouterIdOfLocalNodeSubTlv
1233 0x00, 0x01, 0x01, 0x02,
1234 (byte) 0xFF, 0x06, 0x00, 0x64, //LinkAttributesTlv
1235 0x00, 0x13, 0x00, 0x04, //IPv4RouterIdOfRemoteNodeSubTlv
1236 0x00, 0x07, 0x08, 0x00,
1237 0x00, 0x16, 0x00, 0x04, //AdministrativeGroupSubTlv
1238 0x00, 0x09, 0x08, 0x00,
1239 0x00, 0x17, 0x00, 0x04, //MaximumLinkBandwidthSubTlv
1240 0x00, 0x09, 0x00, 0x00,
1241 0x00, 0x18, 0x00, 0x04, //MaximumReservableLinkBandwidthSubTlv
1242 0x00, 0x10, 0x00, 0x00,
1243 0x00, 0x19, 0x00, 0x04, //UnreservedBandwidthSubTlv
1244 0x00, 0x00, (byte) 0x90, 0x00,
1245 0x00, 0x1A, 0x00, 0x04, //TEDefaultMetricSubTlv
1246 0x00, (byte) 0x99, 0x09, 0x00,
1247 0x00, 0x1B, 0x00, 0x02, //LinkProtectionTypeSubTlv
1248 0x09, 0x00, 0x00, 0x00,
1249 0x00, 0x1C, 0x00, 0x01, //MPLSProtocolMaskSubTlv
1250 (byte) 0x80, 0x00, 0x00, 0x00,
1251 0x00, 0x1D, 0x00, 0x04, //IgpMetricSubTlv
1252 0x09, (byte) 0x89, 0x07, 0x00,
1253 0x00, 0x1E, 0x00, 0x04, //SharedRiskLinkGroupSubTlv
1254 0x04, 0x47, 0x00, 0x03,
1255 0x00, 0x1F, 0x00, 0x08, //OpaqueLinkAttributeSubTlv
1256 0x04, 0x49, 0x00, 0x04,
1257 0x04, 0x47, 0x00, 0x03,
1258 0x00, 0x20, 0x00, 0x04, //LinkNameAttributeSubTlv
1259 0x04, 0x47, 0x00, 0x03
1260 };
1261
1262 ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
1263 buffer.writeBytes(lsReportMsg);
1264
1265 PcepMessageReader<PcepMessage> reader = PcepFactories.getGenericReader();
1266 PcepMessage message = null;
1267
1268 message = reader.readFrom(buffer);
1269
1270 byte[] testReportMsg = {0};
1271 assertThat(message, instanceOf(PcepLSReportMsg.class));
1272 ChannelBuffer buf = ChannelBuffers.dynamicBuffer();
1273 message.writeTo(buf);
1274
1275 int readLen = buf.writerIndex();
1276 testReportMsg = new byte[readLen];
1277 buf.readBytes(testReportMsg, 0, readLen);
1278
1279 assertThat(testReportMsg, is(lsReportMsg));
1280 }
1281
1282 /**
1283 * This test case checks for
1284 * LS Object (Routing Universe TLV,Local Node Descriptors TLV(AutonomousSystemSubTlv, BGPLSidentifierSubTlv,
1285 * OSPFareaIDsubTlv, IgpRouterIdSubTlv), RemoteNodeDescriptorsTLV(AutonomousSystemSubTlv, BGPLSidentifierSubTlv,
1286 * OSPFareaIDsubTlv, IgpRouterIdSubTlv), LinkDescriptorsTLV(LinkLocalRemoteIdentifiersSubTlv,
1287 * IPv4InterfaceAddressSubTlv, IPv4NeighborAddressSubTlv), NodeAttributesTlv(NodeFlagBitsSubTlv,
1288 * OpaqueNodePropertiesSubTlv, NodeNameSubTlv, ISISAreaIdentifierSubTlv, IPv4RouterIdOfLocalNodeSubTlv),
1289 * LinkAttributesTlv(IPv4RouterIdOfRemoteNodeSubTlv, IPv6LSRouterIdofRemoteNodeTlv, AdministrativeGroupSubTlv,
1290 * MaximumLinkBandwidthSubTlv, MaximumReservableLinkBandwidthSubTlv, UnreservedBandwidthSubTlv,
1291 * TEDefaultMetricSubTlv, LinkProtectionTypeSubTlv, MPLSProtocolMaskSubTlv, IgpMetricSubTlv,
1292 * SharedRiskLinkGroupSubTlv, OpaqueLinkAttributeSubTlv))
1293 * in PcLSRpt message.
1294 */
1295 @Test
1296 public void lsReportMessageTest23() throws PcepParseException, PcepOutOfBoundMessageException {
1297
1298 byte[] lsReportMsg = new byte[]{0x20, (byte) 0xE0, 0x01, 0x10, // common header
1299 (byte) 0xE0, 0x10, 0x01, 0x0C, // LS Object Header
1300 0x01, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, // LS-ID
1301 (byte) 0xFF, 0x01, 0x00, 0x08, // Routing Universe TLV
1302 0x00, 0x00, 0x00, 0x00,
1303 0x00, 0x00, 0x00, 0x01,
1304 (byte) 0xFF, 0x02, 0x00, 0x24, // Local Node Descriptors TLV
1305 0x00, 0x01, 0x00, 0x04, //AutonomousSystemSubTlv
1306 0x00, 0x00, 0x00, 0x11,
1307 0x00, 0x02, 0x00, 0x04, //BGPLSidentifierSubTlv
1308 0x00, 0x00, 0x00, 0x11,
1309 0x00, 0x03, 0x00, 0x04, //OSPFareaIDsubTlv
1310 0x00, 0x00, 0x00, 0x11,
1311 0x00, 0x04, 0x00, 0x08, //IgpRouterIdSubTlv
1312 0x00, 0x00, 0x00, 0x11,
1313 0x00, 0x00, 0x00, 0x11,
1314 (byte) 0xFF, 0x03, 0x00, 0x24, //RemoteNodeDescriptorsTLV
1315 0x00, 0x01, 0x00, 0x04, //AutonomousSystemSubTlv
1316 0x00, 0x00, 0x00, 0x11,
1317 0x00, 0x02, 0x00, 0x04, //BGPLSidentifierSubTlv
1318 0x00, 0x00, 0x00, 0x11,
1319 0x00, 0x03, 0x00, 0x04, //OSPFareaIDsubTlv
1320 0x00, 0x00, 0x00, 0x11,
1321 0x00, 0x04, 0x00, 0x08, //IgpRouterIdSubTlv
1322 0x00, 0x00, 0x00, 0x11,
1323 0x00, 0x00, 0x00, 0x11,
1324 (byte) 0xFF, 0x04, 0x00, 0x1C, //LinkDescriptorsTLV
1325 0x00, 0x06, 0x00, 0x08, //LinkLocalRemoteIdentifiersSubTlv
1326 0x01, 0x11, 0x00, 0x09,
1327 0x01, 0x21, 0x00, 0x09,
1328 0x00, 0x07, 0x00, 0x04, //IPv4InterfaceAddressSubTlv
1329 0x01, 0x01, 0x01, 0x01,
1330 0x00, 0x08, 0x00, 0x04, //IPv4NeighborAddressSubTlv
1331 0x01, 0x011, 0x01, 0x10,
1332 (byte) 0xFF, 0x05, 0x00, 0x1C, //NodeAttributesTlv
1333 0x00, 0x0E, 0x00, 0x04, //OpaqueNodePropertiesSubTlv
1334 0x01, 0x011, 0x01, 0x10,
1335 0x00, 0x10, 0x00, 0x08, //ISISAreaIdentifierSubTlv
1336 0x20, 0x01, 0x22, 0x01,
1337 0x20, 0x01, 0x22, 0x01,
1338 0x00, 0x11, 0x00, 0x04, //IPv4RouterIdOfLocalNodeSubTlv
1339 0x00, 0x01, 0x01, 0x02,
1340 (byte) 0xFF, 0x06, 0x00, 0x5C, //LinkAttributesTlv
1341 0x00, 0x13, 0x00, 0x04, //IPv4RouterIdOfRemoteNodeSubTlv
1342 0x00, 0x07, 0x08, 0x00,
1343 0x00, 0x16, 0x00, 0x04, //AdministrativeGroupSubTlv
1344 0x00, 0x09, 0x08, 0x00,
1345 0x00, 0x17, 0x00, 0x04, //MaximumLinkBandwidthSubTlv
1346 0x00, 0x09, 0x00, 0x00,
1347 0x00, 0x18, 0x00, 0x04, //MaximumReservableLinkBandwidthSubTlv
1348 0x00, 0x10, 0x00, 0x00,
1349 0x00, 0x19, 0x00, 0x04, //UnreservedBandwidthSubTlv
1350 0x00, 0x00, (byte) 0x90, 0x00,
1351 0x00, 0x1A, 0x00, 0x04, //TEDefaultMetricSubTlv
1352 0x00, (byte) 0x99, 0x09, 0x00,
1353 0x00, 0x1B, 0x00, 0x02, //LinkProtectionTypeSubTlv
1354 0x09, 0x00, 0x00, 0x00,
1355 0x00, 0x1C, 0x00, 0x01, //MPLSProtocolMaskSubTlv
1356 (byte) 0x80, 0x00, 0x00, 0x00,
1357 0x00, 0x1D, 0x00, 0x04, //IgpMetricSubTlv
1358 0x09, (byte) 0x89, 0x07, 0x00,
1359 0x00, 0x1E, 0x00, 0x04, //SharedRiskLinkGroupSubTlv
1360 0x04, 0x47, 0x00, 0x03,
1361 0x00, 0x1F, 0x00, 0x08, //OpaqueLinkAttributeSubTlv
1362 0x04, 0x49, 0x00, 0x04,
1363 0x04, 0x47, 0x00, 0x03
1364 };
1365
1366 ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
1367 buffer.writeBytes(lsReportMsg);
1368
1369 PcepMessageReader<PcepMessage> reader = PcepFactories.getGenericReader();
1370 PcepMessage message = null;
1371
1372 message = reader.readFrom(buffer);
1373
1374 byte[] testReportMsg = {0};
1375 assertThat(message, instanceOf(PcepLSReportMsg.class));
1376 ChannelBuffer buf = ChannelBuffers.dynamicBuffer();
1377 message.writeTo(buf);
1378
1379 int readLen = buf.writerIndex();
1380 testReportMsg = new byte[readLen];
1381 buf.readBytes(testReportMsg, 0, readLen);
1382
1383 assertThat(testReportMsg, is(lsReportMsg));
1384 }
1385
1386 /**
1387 * This test case checks for
1388 * LS Object (Routing Universe TLV,Local Node Descriptors TLV(AutonomousSystemSubTlv, BGPLSidentifierSubTlv,
1389 * OSPFareaIDsubTlv, IgpRouterIdSubTlv), RemoteNodeDescriptorsTLV(AutonomousSystemSubTlv, BGPLSidentifierSubTlv,
1390 * OSPFareaIDsubTlv, IgpRouterIdSubTlv), LinkDescriptorsTLV(LinkLocalRemoteIdentifiersSubTlv,
1391 * IPv4InterfaceAddressSubTlv, IPv4NeighborAddressSubTlv), NodeAttributesTlv(NodeFlagBitsSubTlv,
1392 * OpaqueNodePropertiesSubTlv, NodeNameSubTlv, ISISAreaIdentifierSubTlv, IPv4RouterIdOfLocalNodeSubTlv),
1393 * LinkAttributesTlv(IPv4RouterIdOfRemoteNodeSubTlv, IPv6LSRouterIdofRemoteNodeTlv, AdministrativeGroupSubTlv,
1394 * MaximumLinkBandwidthSubTlv, MaximumReservableLinkBandwidthSubTlv, UnreservedBandwidthSubTlv,
1395 * TEDefaultMetricSubTlv, LinkProtectionTypeSubTlv, MPLSProtocolMaskSubTlv, IgpMetricSubTlv,
1396 * SharedRiskLinkGroupSubTlv)) in PcLSRpt message.
1397 */
1398 @Test
1399 public void lsReportMessageTest24() throws PcepParseException, PcepOutOfBoundMessageException {
1400
1401 byte[] lsReportMsg = new byte[]{0x20, (byte) 0xE0, 0x01, 0x08, // common header
1402 (byte) 0xE0, 0x10, 0x01, 0x04, // LS Object Header
1403 0x01, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, // LS-ID
1404 (byte) 0xFF, 0x01, 0x00, 0x08, // Routing Universe TLV
1405 0x00, 0x00, 0x00, 0x00,
1406 0x00, 0x00, 0x00, 0x01,
1407 (byte) 0xFF, 0x02, 0x00, 0x24, // Local Node Descriptors TLV
1408 0x00, 0x01, 0x00, 0x04, //AutonomousSystemSubTlv
1409 0x00, 0x00, 0x00, 0x11,
1410 0x00, 0x02, 0x00, 0x04, //BGPLSidentifierSubTlv
1411 0x00, 0x00, 0x00, 0x11,
1412 0x00, 0x03, 0x00, 0x04, //OSPFareaIDsubTlv
1413 0x00, 0x00, 0x00, 0x11,
1414 0x00, 0x04, 0x00, 0x08, //IgpRouterIdSubTlv
1415 0x00, 0x00, 0x00, 0x11,
1416 0x00, 0x00, 0x00, 0x11,
1417 (byte) 0xFF, 0x03, 0x00, 0x24, //RemoteNodeDescriptorsTLV
1418 0x00, 0x01, 0x00, 0x04, //AutonomousSystemSubTlv
1419 0x00, 0x00, 0x00, 0x11,
1420 0x00, 0x02, 0x00, 0x04, //BGPLSidentifierSubTlv
1421 0x00, 0x00, 0x00, 0x11,
1422 0x00, 0x03, 0x00, 0x04, //OSPFareaIDsubTlv
1423 0x00, 0x00, 0x00, 0x11,
1424 0x00, 0x04, 0x00, 0x08, //IgpRouterIdSubTlv
1425 0x00, 0x00, 0x00, 0x11,
1426 0x00, 0x00, 0x00, 0x11,
1427 (byte) 0xFF, 0x04, 0x00, 0x1C, //LinkDescriptorsTLV
1428 0x00, 0x06, 0x00, 0x08, //LinkLocalRemoteIdentifiersSubTlv
1429 0x01, 0x11, 0x00, 0x09,
1430 0x01, 0x21, 0x00, 0x09,
1431 0x00, 0x07, 0x00, 0x04, //IPv4InterfaceAddressSubTlv
1432 0x01, 0x01, 0x01, 0x01,
1433 0x00, 0x08, 0x00, 0x04, //IPv4NeighborAddressSubTlv
1434 0x01, 0x011, 0x01, 0x10,
1435 (byte) 0xFF, 0x05, 0x00, 0x1C, //NodeAttributesTlv
1436 0x00, 0x0E, 0x00, 0x04, //OpaqueNodePropertiesSubTlv
1437 0x01, 0x011, 0x01, 0x10,
1438 0x00, 0x10, 0x00, 0x08, //ISISAreaIdentifierSubTlv
1439 0x20, 0x01, 0x22, 0x01,
1440 0x20, 0x01, 0x22, 0x01,
1441 0x00, 0x11, 0x00, 0x04, //IPv4RouterIdOfLocalNodeSubTlv
1442 0x00, 0x01, 0x01, 0x02,
1443 (byte) 0xFF, 0x06, 0x00, 0x54, //LinkAttributesTlv
1444 0x00, 0x13, 0x00, 0x04, //IPv4RouterIdOfRemoteNodeSubTlv
1445 0x00, 0x07, 0x08, 0x00,
1446 0x00, 0x16, 0x00, 0x04, //AdministrativeGroupSubTlv
1447 0x00, 0x09, 0x08, 0x00,
1448 0x00, 0x17, 0x00, 0x04, //MaximumLinkBandwidthSubTlv
1449 0x00, 0x09, 0x00, 0x00,
1450 0x00, 0x18, 0x00, 0x04, //MaximumReservableLinkBandwidthSubTlv
1451 0x00, 0x10, 0x00, 0x00,
1452 0x00, 0x19, 0x00, 0x04, //UnreservedBandwidthSubTlv
1453 0x00, 0x00, (byte) 0x90, 0x00,
1454 0x00, 0x1A, 0x00, 0x04, //TEDefaultMetricSubTlv
1455 0x00, (byte) 0x99, 0x09, 0x00,
1456 0x00, 0x1B, 0x00, 0x02, //LinkProtectionTypeSubTlv
1457 0x09, 0x00, 0x00, 0x00,
1458 0x00, 0x1C, 0x00, 0x01, //MPLSProtocolMaskSubTlv
1459 (byte) 0x80, 0x00, 0x00, 0x00,
1460 0x00, 0x1D, 0x00, 0x04, //IgpMetricSubTlv
1461 0x09, (byte) 0x89, 0x07, 0x00,
1462 0x00, 0x1E, 0x00, 0x08, //SharedRiskLinkGroupSubTlv
1463 0x04, 0x47, 0x00, 0x03,
1464 0x04, 0x47, 0x00, 0x03
1465 };
1466
1467 ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
1468 buffer.writeBytes(lsReportMsg);
1469
1470 PcepMessageReader<PcepMessage> reader = PcepFactories.getGenericReader();
1471 PcepMessage message = null;
1472
1473 message = reader.readFrom(buffer);
1474
1475 byte[] testReportMsg = {0};
1476 assertThat(message, instanceOf(PcepLSReportMsg.class));
1477 ChannelBuffer buf = ChannelBuffers.dynamicBuffer();
1478 message.writeTo(buf);
1479
1480 int readLen = buf.writerIndex();
1481 testReportMsg = new byte[readLen];
1482 buf.readBytes(testReportMsg, 0, readLen);
1483
1484 assertThat(testReportMsg, is(lsReportMsg));
1485 }
1486
1487 /**
1488 * This test case checks for
1489 * LS Object (Routing Universe TLV,Local Node Descriptors TLV(AutonomousSystemSubTlv, BGPLSidentifierSubTlv,
1490 * OSPFareaIDsubTlv, IgpRouterIdSubTlv), RemoteNodeDescriptorsTLV(AutonomousSystemSubTlv, BGPLSidentifierSubTlv,
1491 * OSPFareaIDsubTlv, IgpRouterIdSubTlv), LinkDescriptorsTLV(LinkLocalRemoteIdentifiersSubTlv,
1492 * IPv4InterfaceAddressSubTlv, IPv4NeighborAddressSubTlv), NodeAttributesTlv(NodeFlagBitsSubTlv,
1493 * OpaqueNodePropertiesSubTlv, NodeNameSubTlv, ISISAreaIdentifierSubTlv, IPv4RouterIdOfLocalNodeSubTlv),
1494 * LinkAttributesTlv(IPv4RouterIdOfRemoteNodeSubTlv, IPv6LSRouterIdofRemoteNodeTlv, AdministrativeGroupSubTlv,
1495 * MaximumLinkBandwidthSubTlv, MaximumReservableLinkBandwidthSubTlv, UnreservedBandwidthSubTlv,
1496 * TEDefaultMetricSubTlv, LinkProtectionTypeSubTlv, MPLSProtocolMaskSubTlv, IgpMetricSubTlv))
1497 * in PcLSRpt message.
1498 */
1499 @Test
1500 public void lsReportMessageTest25() throws PcepParseException, PcepOutOfBoundMessageException {
1501
1502 byte[] lsReportMsg = new byte[]{0x20, (byte) 0xE0, 0x00, (byte) 0xFC, // common header
1503 (byte) 0xE0, 0x10, 0x00, (byte) 0xF8, // LS Object Header
1504 0x01, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, // LS-ID
1505 (byte) 0xFF, 0x01, 0x00, 0x08, // Routing Universe TLV
1506 0x00, 0x00, 0x00, 0x00,
1507 0x00, 0x00, 0x00, 0x01,
1508 (byte) 0xFF, 0x02, 0x00, 0x24, // Local Node Descriptors TLV
1509 0x00, 0x01, 0x00, 0x04, //AutonomousSystemSubTlv
1510 0x00, 0x00, 0x00, 0x11,
1511 0x00, 0x02, 0x00, 0x04, //BGPLSidentifierSubTlv
1512 0x00, 0x00, 0x00, 0x11,
1513 0x00, 0x03, 0x00, 0x04, //OSPFareaIDsubTlv
1514 0x00, 0x00, 0x00, 0x11,
1515 0x00, 0x04, 0x00, 0x08, //IgpRouterIdSubTlv
1516 0x00, 0x00, 0x00, 0x11,
1517 0x00, 0x00, 0x00, 0x11,
1518 (byte) 0xFF, 0x03, 0x00, 0x24, //RemoteNodeDescriptorsTLV
1519 0x00, 0x01, 0x00, 0x04, //AutonomousSystemSubTlv
1520 0x00, 0x00, 0x00, 0x11,
1521 0x00, 0x02, 0x00, 0x04, //BGPLSidentifierSubTlv
1522 0x00, 0x00, 0x00, 0x11,
1523 0x00, 0x03, 0x00, 0x04, //OSPFareaIDsubTlv
1524 0x00, 0x00, 0x00, 0x11,
1525 0x00, 0x04, 0x00, 0x08, //IgpRouterIdSubTlv
1526 0x00, 0x00, 0x00, 0x11,
1527 0x00, 0x00, 0x00, 0x11,
1528 (byte) 0xFF, 0x04, 0x00, 0x1C, //LinkDescriptorsTLV
1529 0x00, 0x06, 0x00, 0x08, //LinkLocalRemoteIdentifiersSubTlv
1530 0x01, 0x11, 0x00, 0x09,
1531 0x01, 0x21, 0x00, 0x09,
1532 0x00, 0x07, 0x00, 0x04, //IPv4InterfaceAddressSubTlv
1533 0x01, 0x01, 0x01, 0x01,
1534 0x00, 0x08, 0x00, 0x04, //IPv4NeighborAddressSubTlv
1535 0x01, 0x011, 0x01, 0x10,
1536 (byte) 0xFF, 0x05, 0x00, 0x1C, //NodeAttributesTlv
1537 0x00, 0x0E, 0x00, 0x04, //OpaqueNodePropertiesSubTlv
1538 0x01, 0x011, 0x01, 0x10,
1539 0x00, 0x10, 0x00, 0x08, //ISISAreaIdentifierSubTlv
1540 0x20, 0x01, 0x22, 0x01,
1541 0x20, 0x01, 0x22, 0x01,
1542 0x00, 0x11, 0x00, 0x04, //IPv4RouterIdOfLocalNodeSubTlv
1543 0x00, 0x01, 0x01, 0x02,
1544 (byte) 0xFF, 0x06, 0x00, 0x48, //LinkAttributesTlv
1545 0x00, 0x13, 0x00, 0x04, //IPv4RouterIdOfRemoteNodeSubTlv
1546 0x00, 0x07, 0x08, 0x00,
1547 0x00, 0x16, 0x00, 0x04, //AdministrativeGroupSubTlv
1548 0x00, 0x09, 0x08, 0x00,
1549 0x00, 0x17, 0x00, 0x04, //MaximumLinkBandwidthSubTlv
1550 0x00, 0x09, 0x00, 0x00,
1551 0x00, 0x18, 0x00, 0x04, //MaximumReservableLinkBandwidthSubTlv
1552 0x00, 0x10, 0x00, 0x00,
1553 0x00, 0x19, 0x00, 0x04, //UnreservedBandwidthSubTlv
1554 0x00, 0x00, (byte) 0x90, 0x00,
1555 0x00, 0x1A, 0x00, 0x04, //TEDefaultMetricSubTlv
1556 0x00, (byte) 0x99, 0x09, 0x00,
1557 0x00, 0x1B, 0x00, 0x02, //LinkProtectionTypeSubTlv
1558 0x09, 0x00, 0x00, 0x00,
1559 0x00, 0x1C, 0x00, 0x01, //MPLSProtocolMaskSubTlv
1560 (byte) 0x80, 0x00, 0x00, 0x00,
1561 0x00, 0x1D, 0x00, 0x04, //IgpMetricSubTlv
1562 0x09, (byte) 0x89, 0x07, 0x00
1563 };
1564
1565 ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
1566 buffer.writeBytes(lsReportMsg);
1567
1568 PcepMessageReader<PcepMessage> reader = PcepFactories.getGenericReader();
1569 PcepMessage message = null;
1570
1571 message = reader.readFrom(buffer);
1572
1573 byte[] testReportMsg = {0};
1574
1575 assertThat(message, instanceOf(PcepLSReportMsg.class));
1576 ChannelBuffer buf = ChannelBuffers.dynamicBuffer();
1577 message.writeTo(buf);
1578
1579 int readLen = buf.writerIndex();
1580 testReportMsg = new byte[readLen];
1581 buf.readBytes(testReportMsg, 0, readLen);
1582
1583 assertThat(testReportMsg, is(lsReportMsg));
1584 }
1585}