blob: 6e0a0596ea8f81f05d0a1d746c38ff62ba9ae06d [file] [log] [blame]
Mahesh Poojary S1c356e32015-08-21 15:05:30 +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 */
Sho SHIMIZU3559c312015-11-04 14:59:31 -080016package org.onosproject.pcepio.protocol;
Mahesh Poojary S1c356e32015-08-21 15:05:30 +053017
18import org.jboss.netty.buffer.ChannelBuffer;
19import org.jboss.netty.buffer.ChannelBuffers;
Mahesh Poojary S1c356e32015-08-21 15:05:30 +053020import org.junit.Test;
21import org.onosproject.pcepio.exceptions.PcepParseException;
Sho SHIMIZU3559c312015-11-04 14:59:31 -080022
23import static org.hamcrest.MatcherAssert.assertThat;
24import static org.hamcrest.Matchers.instanceOf;
25import static org.hamcrest.core.Is.is;
Mahesh Poojary S1c356e32015-08-21 15:05:30 +053026/**
27 * Test cases for PCEP OPEN Message.
28 */
29public class PcepOpenMsgTest {
30
SureshBR3dab0972015-08-24 18:38:09 +053031 /**
32 * This test case checks open object with STATEFUL-PCE-CAPABILITY, GMPLS-CAPABILITY-TLV,
33 * PCECC-CAPABILITY-TLV in Pcep Open message.
34 */
Mahesh Poojary S1c356e32015-08-21 15:05:30 +053035 @Test
36 public void openMessageTest1() throws PcepParseException {
37
Mahesh Poojary S1c356e32015-08-21 15:05:30 +053038 byte[] openMsg = new byte[] {0x20, 0x01, 0x00, 0x24, 0x01, 0x10, 0x00, 0x20, 0x20, 0x1e, 0x78, (byte) 0xbd,
39 0x00, 0x10, 0x00, 0x04, 0x00, 0x00, 0x00, 0x0f, //STATEFUL-PCE-CAPABILITY
40 0x00, 0x0e, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, //GMPLS-CAPABILITY-TLV
41 0x00, 0x20, 0x00, 0x04, 0x00, 0x00, 0x00, 0x07, //PCECC-CAPABILITY-TLV
42 };
43
44 byte[] testOpenMsg = {0};
45 ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
46 buffer.writeBytes(openMsg);
47
48 PcepMessageReader<PcepMessage> reader = PcepFactories.getGenericReader();
49 PcepMessage message = null;
Mahesh Poojary S1c356e32015-08-21 15:05:30 +053050
SureshBR3dab0972015-08-24 18:38:09 +053051 message = reader.readFrom(buffer);
Mahesh Poojary S1c356e32015-08-21 15:05:30 +053052
Sho SHIMIZUe090a422015-09-04 17:35:49 -070053 assertThat(message, instanceOf(PcepOpenMsg.class));
SureshBR3dab0972015-08-24 18:38:09 +053054 ChannelBuffer buf = ChannelBuffers.dynamicBuffer();
55 message.writeTo(buf);
56 testOpenMsg = buf.array();
Mahesh Poojary S1c356e32015-08-21 15:05:30 +053057
SureshBR3dab0972015-08-24 18:38:09 +053058 int readLen = buf.writerIndex() - 0;
59 testOpenMsg = new byte[readLen];
60 buf.readBytes(testOpenMsg, 0, readLen);
61
62 assertThat(testOpenMsg, is(openMsg));
63
Mahesh Poojary S1c356e32015-08-21 15:05:30 +053064 }
65
SureshBR3dab0972015-08-24 18:38:09 +053066 /**
67 * This test case checks open object with STATEFUL-PCE-CAPABILITY-TLV in Pcep Open message.
68 */
Mahesh Poojary S1c356e32015-08-21 15:05:30 +053069 @Test
70 public void openMessageTest2() throws PcepParseException {
71
Mahesh Poojary S1c356e32015-08-21 15:05:30 +053072 byte[] openMsg = new byte[] {0x20, 0x01, 0x00, 0x14, // common header
73 0x01, 0x10, 0x00, 0x10, // common object header
74 0x20, 0x1E, 0x78, 0x01, // OPEN object
75 0x00, 0x10, 0x00, 0x04, 0x00, 0x00, 0x00, 0x0f}; // STATEFUL-PCE-CAPABILITY
76 byte[] testOpenMsg = {0};
77 ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
78 buffer.writeBytes(openMsg);
79
80 PcepMessageReader<PcepMessage> reader = PcepFactories.getGenericReader();
81 PcepMessage message = null;
Mahesh Poojary S1c356e32015-08-21 15:05:30 +053082
SureshBR3dab0972015-08-24 18:38:09 +053083 message = reader.readFrom(buffer);
Mahesh Poojary S1c356e32015-08-21 15:05:30 +053084
Sho SHIMIZUe090a422015-09-04 17:35:49 -070085 assertThat(message, instanceOf(PcepOpenMsg.class));
SureshBR3dab0972015-08-24 18:38:09 +053086 ChannelBuffer buf = ChannelBuffers.dynamicBuffer();
87 message.writeTo(buf);
88 testOpenMsg = buf.array();
Mahesh Poojary S1c356e32015-08-21 15:05:30 +053089
SureshBR3dab0972015-08-24 18:38:09 +053090 int readLen = buf.writerIndex() - 0;
91 testOpenMsg = new byte[readLen];
92 buf.readBytes(testOpenMsg, 0, readLen);
93
94 assertThat(testOpenMsg, is(openMsg));
95
Mahesh Poojary S1c356e32015-08-21 15:05:30 +053096 }
97
SureshBR3dab0972015-08-24 18:38:09 +053098 /**
99 * This test case checks open object with GmplsCapability tlv in Pcep Open message.
100 */
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530101 @Test
102 public void openMessageTest3() throws PcepParseException {
103
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530104 byte[] openMsg = new byte[] {0x20, 0x01, 0x00, 0x14, // common header
105 0x01, 0x10, 0x00, 0x10, // common object header
106 0x20, 0x1E, 0x78, 0x01, // OPEN object
107 0x00, 0x0e, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00}; //GMPLS-CAPABILITY-TLV
108
109 byte[] testOpenMsg = {0};
110 ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
111 buffer.writeBytes(openMsg);
112
113 PcepMessageReader<PcepMessage> reader = PcepFactories.getGenericReader();
114 PcepMessage message = null;
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530115
SureshBR3dab0972015-08-24 18:38:09 +0530116 message = reader.readFrom(buffer);
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530117
Sho SHIMIZUe090a422015-09-04 17:35:49 -0700118 assertThat(message, instanceOf(PcepOpenMsg.class));
SureshBR3dab0972015-08-24 18:38:09 +0530119 ChannelBuffer buf = ChannelBuffers.dynamicBuffer();
120 message.writeTo(buf);
121 testOpenMsg = buf.array();
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530122
SureshBR3dab0972015-08-24 18:38:09 +0530123 int readLen = buf.writerIndex() - 0;
124 testOpenMsg = new byte[readLen];
125 buf.readBytes(testOpenMsg, 0, readLen);
126
127
128 assertThat(testOpenMsg, is(openMsg));
129
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530130 }
131
SureshBR3dab0972015-08-24 18:38:09 +0530132 /**
133 * This test case checks open object with StatefulLspDbVer Tlv in Pcep Open message.
134 */
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530135 @Test
136 public void openMessageTest4() throws PcepParseException {
137
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530138 byte[] openMsg = new byte[] {0x20, 0x01, 0x00, 0x18,
139 0x01, 0x10, 0x00, 0x14, 0x20, 0x1e, 0x78, 0x20,
140 0x00, 0x17, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02 }; //StatefulLspDbVerTlv
141
142 byte[] testOpenMsg = {0};
143 ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
144 buffer.writeBytes(openMsg);
145
146 PcepMessageReader<PcepMessage> reader = PcepFactories.getGenericReader();
147 PcepMessage message = null;
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530148
SureshBR3dab0972015-08-24 18:38:09 +0530149 message = reader.readFrom(buffer);
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530150
Sho SHIMIZUe090a422015-09-04 17:35:49 -0700151 assertThat(message, instanceOf(PcepOpenMsg.class));
SureshBR3dab0972015-08-24 18:38:09 +0530152 ChannelBuffer buf = ChannelBuffers.dynamicBuffer();
153 message.writeTo(buf);
154 testOpenMsg = buf.array();
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530155
SureshBR3dab0972015-08-24 18:38:09 +0530156 int readLen = buf.writerIndex() - 0;
157 testOpenMsg = new byte[readLen];
158 buf.readBytes(testOpenMsg, 0, readLen);
159
160 assertThat(testOpenMsg, is(openMsg));
161
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530162 }
163
SureshBR3dab0972015-08-24 18:38:09 +0530164 /**
165 * This test case checks open object with no tlv's in Pcep Open message.
166 */
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530167 @Test
168 public void openMessageTest5() throws PcepParseException {
169
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530170 byte[] openMsg = new byte[] {0x20, 0x01, 0x00, 0x0C,
171 0x01, 0x10, 0x00, 0x08, 0x20, 0x1e, 0x78, (byte) 0xbd }; // no Tlvs in open messsage
172
173 byte[] testOpenMsg = {0};
174 ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
175 buffer.writeBytes(openMsg);
176
177 PcepMessageReader<PcepMessage> reader = PcepFactories.getGenericReader();
178 PcepMessage message = null;
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530179
SureshBR3dab0972015-08-24 18:38:09 +0530180 message = reader.readFrom(buffer);
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530181
Sho SHIMIZUe090a422015-09-04 17:35:49 -0700182 assertThat(message, instanceOf(PcepOpenMsg.class));
SureshBR3dab0972015-08-24 18:38:09 +0530183 ChannelBuffer buf = ChannelBuffers.dynamicBuffer();
184 message.writeTo(buf);
185 testOpenMsg = buf.array();
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530186
SureshBR3dab0972015-08-24 18:38:09 +0530187 int readLen = buf.writerIndex() - 0;
188 testOpenMsg = new byte[readLen];
189 buf.readBytes(testOpenMsg, 0, readLen);
190
191 assertThat(testOpenMsg, is(openMsg));
192
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530193 }
194
SureshBR3dab0972015-08-24 18:38:09 +0530195 /**
196 * This test case checks open object with STATEFUL-PCE-CAPABILITY, GMPLS-CAPABILITY-TLV, PCECC-CAPABILITY-TLV
197 * with I bit set in Pcep Open message.
198 */
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530199 @Test
200 public void openMessageTest6() throws PcepParseException {
201
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530202 byte[] openMsg = new byte[] {0x20, 0x01, 0x00, 0x24, 0x01, 0x11, 0x00, 0x20, //p bit not set & i bit set
203 0x20, 0x1e, 0x78, (byte) 0xbd,
204 0x00, 0x10, 0x00, 0x04, 0x00, 0x00, 0x00, 0x0f, // STATEFUL-PCE-CAPABILITY
205 0x00, 0x0e, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, //GMPLS-CAPABILITY-TLV
206 0x00, 0x20, 0x00, 0x04, 0x00, 0x00, 0x00, 0x07, //PCECC-CAPABILITY-TLV
207 };
208
209 byte[] testOpenMsg = {0};
210 ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
211 buffer.writeBytes(openMsg);
212
213 PcepMessageReader<PcepMessage> reader = PcepFactories.getGenericReader();
214 PcepMessage message = null;
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530215
SureshBR3dab0972015-08-24 18:38:09 +0530216 message = reader.readFrom(buffer);
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530217
Sho SHIMIZUe090a422015-09-04 17:35:49 -0700218 assertThat(message, instanceOf(PcepOpenMsg.class));
SureshBR3dab0972015-08-24 18:38:09 +0530219 ChannelBuffer buf = ChannelBuffers.dynamicBuffer();
220 message.writeTo(buf);
221 testOpenMsg = buf.array();
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530222
SureshBR3dab0972015-08-24 18:38:09 +0530223 int readLen = buf.writerIndex() - 0;
224 testOpenMsg = new byte[readLen];
225 buf.readBytes(testOpenMsg, 0, readLen);
226
227 assertThat(testOpenMsg, is(openMsg));
228
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530229 }
230
SureshBR3dab0972015-08-24 18:38:09 +0530231 /**
232 * This test case checks open object with STATEFUL-PCE-CAPABILITY, GMPLS-CAPABILITY-TLV, PCECC-CAPABILITY-TLV
233 * with P bit set in Pcep Open message.
234 */
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530235 @Test
236 public void openMessageTest7() throws PcepParseException {
237
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530238 byte[] openMsg = new byte[] {0x20, 0x01, 0x00, 0x24, 0x01, 0x12, 0x00, 0x20, //p bit set & i bit not set
239 0x20, 0x1e, 0x78, (byte) 0xbd,
240 0x00, 0x10, 0x00, 0x04, 0x00, 0x00, 0x00, 0x0f, //STATEFUL-PCE-CAPABILITY
241 0x00, 0x0e, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, //GMPLS-CAPABILITY-TLV
242 0x00, 0x20, 0x00, 0x04, 0x00, 0x00, 0x00, 0x07, //PCECC-CAPABILITY-TLV
243 };
244
245 byte[] testOpenMsg = {0};
246 ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
247 buffer.writeBytes(openMsg);
248
249 PcepMessageReader<PcepMessage> reader = PcepFactories.getGenericReader();
250 PcepMessage message = null;
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530251
SureshBR3dab0972015-08-24 18:38:09 +0530252 message = reader.readFrom(buffer);
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530253
Sho SHIMIZUe090a422015-09-04 17:35:49 -0700254 assertThat(message, instanceOf(PcepOpenMsg.class));
SureshBR3dab0972015-08-24 18:38:09 +0530255 ChannelBuffer buf = ChannelBuffers.dynamicBuffer();
256 message.writeTo(buf);
257 testOpenMsg = buf.array();
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530258
SureshBR3dab0972015-08-24 18:38:09 +0530259 int readLen = buf.writerIndex() - 0;
260 testOpenMsg = new byte[readLen];
261 buf.readBytes(testOpenMsg, 0, readLen);
262
263 assertThat(testOpenMsg, is(openMsg));
264
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530265 }
266
SureshBR3dab0972015-08-24 18:38:09 +0530267 /**
268 * This test case checks open object with STATEFUL-PCE-CAPABILITY, GMPLS-CAPABILITY-TLV, PCECC-CAPABILITY-TLV
269 * with P & I bits set in Pcep Open message.
270 */
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530271 @Test
272 public void openMessageTest8() throws PcepParseException {
273
274 /* OPEN OBJECT (STATEFUL-PCE-CAPABILITY, GMPLS-CAPABILITY-TLV, PCECC-CAPABILITY-TLV)
275 with p bit set & i bit set.
276 */
277 byte[] openMsg = new byte[] {0x20, 0x01, 0x00, 0x24, 0x01, 0x13, 0x00, 0x20, //p bit set & i bit set
278 0x20, 0x1e, 0x78, (byte) 0xbd,
279 0x00, 0x10, 0x00, 0x04, 0x00, 0x00, 0x00, 0x0f, //STATEFUL-PCE-CAPABILITY
280 0x00, 0x0e, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, //GMPLS-CAPABILITY-TLV
281 0x00, 0x20, 0x00, 0x04, 0x00, 0x00, 0x00, 0x07, //PCECC-CAPABILITY-TLV
282 };
283
284 byte[] testOpenMsg = {0};
285 ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
286 buffer.writeBytes(openMsg);
287
288 PcepMessageReader<PcepMessage> reader = PcepFactories.getGenericReader();
289 PcepMessage message = null;
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530290
SureshBR3dab0972015-08-24 18:38:09 +0530291 message = reader.readFrom(buffer);
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530292
Sho SHIMIZUe090a422015-09-04 17:35:49 -0700293 assertThat(message, instanceOf(PcepOpenMsg.class));
SureshBR3dab0972015-08-24 18:38:09 +0530294 ChannelBuffer buf = ChannelBuffers.dynamicBuffer();
295 message.writeTo(buf);
296 testOpenMsg = buf.array();
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530297
SureshBR3dab0972015-08-24 18:38:09 +0530298 int readLen = buf.writerIndex() - 0;
299 testOpenMsg = new byte[readLen];
300 buf.readBytes(testOpenMsg, 0, readLen);
301
302 assertThat(testOpenMsg, is(openMsg));
303
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530304 }
305
SureshBR3dab0972015-08-24 18:38:09 +0530306 /**
307 * This test case checks open object with STATEFUL-PCE-CAPABILITY, GMPLS-CAPABILITY-TLV, PCECC-CAPABILITY-TLV
308 * with P & I bits set and invalid session id in Pcep Open message.
309 */
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530310 @Test
311 public void openMessageTest9() throws PcepParseException {
312
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530313 byte[] openMsg = new byte[] {0x20, 0x01, 0x00, 0x24, 0x01, 0x13, 0x00, 0x20, //p bit set & i bit set
314 0x20, 0x1e, 0x78, 0x00, //invalid sessionID
315 0x00, 0x10, 0x00, 0x04, 0x00, 0x00, 0x00, 0x0f, //STATEFUL-PCE-CAPABILITY
316 0x00, 0x0e, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, //GMPLS-CAPABILITY-TLV
317 0x00, 0x20, 0x00, 0x04, 0x00, 0x00, 0x00, 0x07, //PCECC-CAPABILITY-TLV
318 };
319
320 byte[] testOpenMsg = {0};
321 ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
322 buffer.writeBytes(openMsg);
323
324 PcepMessageReader<PcepMessage> reader = PcepFactories.getGenericReader();
325 PcepMessage message = null;
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530326
SureshBR3dab0972015-08-24 18:38:09 +0530327 message = reader.readFrom(buffer);
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530328
Sho SHIMIZUe090a422015-09-04 17:35:49 -0700329 assertThat(message, instanceOf(PcepOpenMsg.class));
SureshBR3dab0972015-08-24 18:38:09 +0530330 ChannelBuffer buf = ChannelBuffers.dynamicBuffer();
331 message.writeTo(buf);
332 testOpenMsg = buf.array();
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530333
SureshBR3dab0972015-08-24 18:38:09 +0530334 int readLen = buf.writerIndex() - 0;
335 testOpenMsg = new byte[readLen];
336 buf.readBytes(testOpenMsg, 0, readLen);
337
338
339 assertThat(testOpenMsg, is(openMsg));
340
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530341 }
342
SureshBR3dab0972015-08-24 18:38:09 +0530343 /**
344 * This test case checks open object with STATEFUL-PCE-CAPABILITY, GMPLS-CAPABILITY-TLV
345 * in Pcep Open message.
346 */
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530347 @Test
348 public void openMessageTest10() throws PcepParseException {
349
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530350 byte[] openMsg = new byte[] {0x20, 0x01, 0x00, 0x1C, // common header
351 0x01, 0x10, 0x00, 0x18, // common object header
352 0x20, 0x05, 0x1E, 0x01, // OPEN object
353 0x00, 0x10, 0x00, 0x04, // STATEFUL-PCE-CAPABILITY
354 0x00, 0x00, 0x00, 0x05,
355 0x00, 0x0E, 0x00, 0x04, // GMPLS-CAPABILITY-TLV
356 0x00, 0x00, 0x00, 0x00};
357
358 byte[] testOpenMsg = {0};
359 ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
360 buffer.writeBytes(openMsg);
361
362 PcepMessageReader<PcepMessage> reader = PcepFactories.getGenericReader();
363 PcepMessage message = null;
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530364
SureshBR3dab0972015-08-24 18:38:09 +0530365 message = reader.readFrom(buffer);
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530366
Sho SHIMIZUe090a422015-09-04 17:35:49 -0700367 assertThat(message, instanceOf(PcepOpenMsg.class));
SureshBR3dab0972015-08-24 18:38:09 +0530368 ChannelBuffer buf = ChannelBuffers.dynamicBuffer();
369 message.writeTo(buf);
370 testOpenMsg = buf.array();
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530371
SureshBR3dab0972015-08-24 18:38:09 +0530372 int readLen = buf.writerIndex() - 0;
373 testOpenMsg = new byte[readLen];
374 buf.readBytes(testOpenMsg, 0, readLen);
375
376 assertThat(testOpenMsg, is(openMsg));
377
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530378 }
379
SureshBR3dab0972015-08-24 18:38:09 +0530380 /**
381 * This test case checks open object with STATEFUL-PCE-CAPABILITY, GMPLS-CAPABILITY-TLV,
382 * PCECC-CAPABILITY-TLV, TED Capability TLV in Pcep Open message.
383 */
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530384 @Test
385 public void openMessageTest11() throws PcepParseException {
386
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530387 byte[] openMsg = new byte[] {0x20, 0x01, 0x00, 0x2C, // common header
388 0x01, 0x10, 0x00, 0x28, // common object header
389 0x20, 0x05, 0x1E, 0x01, // OPEN object
390 0x00, 0x10, 0x00, 0x04, // STATEFUL-PCE-CAPABILITY
391 0x00, 0x00, 0x00, 0x05, 0x00, 0x0E, 0x00, 0x04, // GMPLS-CAPABILITY-TLV
392 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, // PCECC-CAPABILITY-TLV
393 0x00, 0x00, 0x00, 0x03, 0x00, (byte) 0x84, 0x00, 0x04, // TED Capability TLV
394 0x00, 0x00, 0x00, 0x00 };
395
396 byte[] testOpenMsg = {0};
397 ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
398 buffer.writeBytes(openMsg);
399
400 PcepMessageReader<PcepMessage> reader = PcepFactories.getGenericReader();
401 PcepMessage message = null;
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530402
SureshBR3dab0972015-08-24 18:38:09 +0530403 message = reader.readFrom(buffer);
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530404
Sho SHIMIZUe090a422015-09-04 17:35:49 -0700405 assertThat(message, instanceOf(PcepOpenMsg.class));
SureshBR3dab0972015-08-24 18:38:09 +0530406 ChannelBuffer buf = ChannelBuffers.dynamicBuffer();
407 message.writeTo(buf);
408 testOpenMsg = buf.array();
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530409
SureshBR3dab0972015-08-24 18:38:09 +0530410 int readLen = buf.writerIndex() - 0;
411 testOpenMsg = new byte[readLen];
412 buf.readBytes(testOpenMsg, 0, readLen);
413
414 assertThat(testOpenMsg, is(openMsg));
415
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530416 }
417
SureshBR3dab0972015-08-24 18:38:09 +0530418 /**
419 * This test case checks open object with STATEFUL-PCE-CAPABILITY, GMPLS-CAPABILITY-TLV,
420 * PCECC-CAPABILITY-TLV in Pcep Open message.
421 */
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530422 @Test
423 public void openMessageTest12() throws PcepParseException {
424
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530425 byte[] openMsg = new byte[] {0x20, 0x01, 0x00, 0x24, // common header
426 0x01, 0x10, 0x00, 0x20, // common object header
427 0x20, 0x05, 0x1E, 0x01, // OPEN object
428 0x00, 0x10, 0x00, 0x04, // STATEFUL-PCE-CAPABILITY
429 0x00, 0x00, 0x00, 0x05, 0x00, 0x0E, 0x00, 0x04, // GMPLS-CAPABILITY-TLV
430 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, // PCECC-CAPABILITY-TLV
431 0x00, 0x00, 0x00, 0x03};
432
433 byte[] testOpenMsg = {0};
434 ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
435 buffer.writeBytes(openMsg);
436
437 PcepMessageReader<PcepMessage> reader = PcepFactories.getGenericReader();
438 PcepMessage message = null;
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530439
SureshBR3dab0972015-08-24 18:38:09 +0530440 message = reader.readFrom(buffer);
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530441
Sho SHIMIZUe090a422015-09-04 17:35:49 -0700442 assertThat(message, instanceOf(PcepOpenMsg.class));
SureshBR3dab0972015-08-24 18:38:09 +0530443 ChannelBuffer buf = ChannelBuffers.dynamicBuffer();
444 message.writeTo(buf);
445 testOpenMsg = buf.array();
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530446
SureshBR3dab0972015-08-24 18:38:09 +0530447 int readLen = buf.writerIndex() - 0;
448 testOpenMsg = new byte[readLen];
449 buf.readBytes(testOpenMsg, 0, readLen);
450
451 assertThat(testOpenMsg, is(openMsg));
452
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530453 }
454
SureshBR3dab0972015-08-24 18:38:09 +0530455 /**
456 * This test case checks open object with STATEFUL-PCE-CAPABILITY, GMPLS-CAPABILITY-TLV
457 * in Pcep Open message.
458 */
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530459 @Test
460 public void openMessageTest13() throws PcepParseException {
461
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530462 byte[] openMsg = new byte[] {0x20, 0x01, 0x00, 0x1c, // common header
463 0x01, 0x10, 0x00, 0x18, // common object header
464 0x20, 0x05, 0x1E, 0x01, // OPEN object
465 0x00, 0x10, 0x00, 0x04, // STATEFUL-PCE-CAPABILITY
466 0x00, 0x00, 0x00, 0x05, 0x00, 0x0E, 0x00, 0x04, // GMPLS-CAPABILITY-TLV
467 0x00, 0x00, 0x00, 0x00};
468
469 byte[] testOpenMsg = {0};
470 ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
471 buffer.writeBytes(openMsg);
472
473 PcepMessageReader<PcepMessage> reader = PcepFactories.getGenericReader();
474 PcepMessage message = null;
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530475
SureshBR3dab0972015-08-24 18:38:09 +0530476 message = reader.readFrom(buffer);
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530477
Sho SHIMIZUe090a422015-09-04 17:35:49 -0700478 assertThat(message, instanceOf(PcepOpenMsg.class));
SureshBR3dab0972015-08-24 18:38:09 +0530479 ChannelBuffer buf = ChannelBuffers.dynamicBuffer();
480 message.writeTo(buf);
481 testOpenMsg = buf.array();
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530482
SureshBR3dab0972015-08-24 18:38:09 +0530483 int readLen = buf.writerIndex() - 0;
484 testOpenMsg = new byte[readLen];
485 buf.readBytes(testOpenMsg, 0, readLen);
486
487
488 assertThat(testOpenMsg, is(openMsg));
489
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530490 }
491
SureshBR3dab0972015-08-24 18:38:09 +0530492 /**
493 * This test case checks open object with STATEFUL-PCE-CAPABILITY in Pcep Open message.
494 */
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530495 @Test
496 public void openMessageTest14() throws PcepParseException {
497
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530498 byte[] openMsg = new byte[] {0x20, 0x01, 0x00, 0x14, // common header
499 0x01, 0x10, 0x00, 0x10, // common object header
500 0x20, 0x05, 0x1E, 0x01, // OPEN object
501 0x00, 0x10, 0x00, 0x04, // STATEFUL-PCE-CAPABILITY
502 0x00, 0x00, 0x00, 0x05};
503
504 byte[] testOpenMsg = {0};
505 ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
506 buffer.writeBytes(openMsg);
507
508 PcepMessageReader<PcepMessage> reader = PcepFactories.getGenericReader();
509 PcepMessage message = null;
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530510
SureshBR3dab0972015-08-24 18:38:09 +0530511 message = reader.readFrom(buffer);
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530512
Sho SHIMIZUe090a422015-09-04 17:35:49 -0700513 assertThat(message, instanceOf(PcepOpenMsg.class));
SureshBR3dab0972015-08-24 18:38:09 +0530514 ChannelBuffer buf = ChannelBuffers.dynamicBuffer();
515 message.writeTo(buf);
516 testOpenMsg = buf.array();
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530517
SureshBR3dab0972015-08-24 18:38:09 +0530518 int readLen = buf.writerIndex() - 0;
519 testOpenMsg = new byte[readLen];
520 buf.readBytes(testOpenMsg, 0, readLen);
521
522 assertThat(testOpenMsg, is(openMsg));
523
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530524 }
525
SureshBR3dab0972015-08-24 18:38:09 +0530526 /**
527 * This test case checks open object with no tlv Pcep Open message.
528 */
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530529 @Test
530 public void openMessageTest15() throws PcepParseException {
531
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530532 byte[] openMsg = new byte[] {0x20, 0x01, 0x00, 0x0c, // common header
533 0x01, 0x10, 0x00, 0x08, // common object header
534 0x20, 0x05, 0x1E, 0x01 // OPEN object
535 };
536
537 byte[] testOpenMsg = {0};
538 ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
539 buffer.writeBytes(openMsg);
540
541 PcepMessageReader<PcepMessage> reader = PcepFactories.getGenericReader();
542 PcepMessage message = null;
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530543
SureshBR3dab0972015-08-24 18:38:09 +0530544 message = reader.readFrom(buffer);
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530545
Sho SHIMIZUe090a422015-09-04 17:35:49 -0700546 assertThat(message, instanceOf(PcepOpenMsg.class));
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530547
SureshBR3dab0972015-08-24 18:38:09 +0530548 ChannelBuffer buf = ChannelBuffers.dynamicBuffer();
549 message.writeTo(buf);
550 testOpenMsg = buf.array();
551
552 int readLen = buf.writerIndex() - 0;
553 testOpenMsg = new byte[readLen];
554 buf.readBytes(testOpenMsg, 0, readLen);
555 assertThat(testOpenMsg, is(openMsg));
556
Mahesh Poojary S1c356e32015-08-21 15:05:30 +0530557 }
558}