blob: 8e10f0ecb199c3fe09bd0f9aee6d9bc7cc105d47 [file] [log] [blame]
bharat saraswale2e7a002015-08-21 22:47: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;
bharat saraswale2e7a002015-08-21 22:47:30 +053017
18import org.jboss.netty.buffer.ChannelBuffer;
19import org.jboss.netty.buffer.ChannelBuffers;
bharat saraswale2e7a002015-08-21 22:47:30 +053020import org.junit.Test;
Mahesh Poojary Sf1bbd362016-02-25 18:19:59 +053021import org.onosproject.pcepio.exceptions.PcepOutOfBoundMessageException;
bharat saraswale2e7a002015-08-21 22:47:30 +053022import org.onosproject.pcepio.exceptions.PcepParseException;
Mahesh Poojaryea2e4df2015-08-27 20:38:16 +053023
24import static org.hamcrest.MatcherAssert.assertThat;
25import static org.hamcrest.Matchers.instanceOf;
26import static org.hamcrest.Matchers.is;
bharat saraswale2e7a002015-08-21 22:47:30 +053027
28public class PcepLabelUpdateMsgTest {
29
30 /**
31 * This test case checks for
32 * <pce-label-download> SRP, LSP, LABEL Object.
33 * in PcepLabelUpdate message.
bharat saraswale2e7a002015-08-21 22:47:30 +053034 */
35 @Test
Mahesh Poojary Sf1bbd362016-02-25 18:19:59 +053036 public void labelUpdateMessageTest1() throws PcepParseException, PcepOutOfBoundMessageException {
bharat saraswale2e7a002015-08-21 22:47:30 +053037
Mahesh Poojary Sf1bbd362016-02-25 18:19:59 +053038 byte[] labelUpdate = new byte[]{0x20, (byte) 0xE2, 0x00, 0x24, // common header
bharat saraswale2e7a002015-08-21 22:47:30 +053039 0x21, 0x10, 0x00, 0x0C, // SRP Object Header
40 0x00, 0x00, 0x00, 0x00,
41 0x00, 0x00, 0x00, 0x10,
42 0x20, 0x10, 0x00, 0x08, // LSP Object Header
43 0x00, 0x01, 0x00, 0x00,
Mahesh Poojary Sf1bbd362016-02-25 18:19:59 +053044 (byte) 0xE1, 0x10, 0x00, 0x0C, // LABEL Object Header
bharat saraswale2e7a002015-08-21 22:47:30 +053045 0x00, 0x00, 0x00, 0x00,
Priyanka B21f4b732016-03-21 20:54:12 +053046 0x00, 0x10, 0x10, 0x00};
bharat saraswale2e7a002015-08-21 22:47:30 +053047
48 ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
49 buffer.writeBytes(labelUpdate);
50
51 PcepMessageReader<PcepMessage> reader = PcepFactories.getGenericReader();
52 PcepMessage message = null;
53
54 message = reader.readFrom(buffer);
55
56 byte[] testLabelUpdateMsg = {0};
Mahesh Poojaryea2e4df2015-08-27 20:38:16 +053057 assertThat(message, instanceOf(PcepLabelUpdateMsg.class));
bharat saraswale2e7a002015-08-21 22:47:30 +053058
Mahesh Poojaryea2e4df2015-08-27 20:38:16 +053059
bharat saraswale2e7a002015-08-21 22:47:30 +053060 ChannelBuffer buf = ChannelBuffers.dynamicBuffer();
61 message.writeTo(buf);
62
Mahesh Poojaryea2e4df2015-08-27 20:38:16 +053063 int readLen = buf.writerIndex();
bharat saraswale2e7a002015-08-21 22:47:30 +053064 testLabelUpdateMsg = new byte[readLen];
65 buf.readBytes(testLabelUpdateMsg, 0, readLen);
66
Mahesh Poojaryea2e4df2015-08-27 20:38:16 +053067 assertThat(testLabelUpdateMsg, is(labelUpdate));
bharat saraswale2e7a002015-08-21 22:47:30 +053068 }
69
70 /**
71 * This test case checks for
72 * <pce-label-download> SRP, LSP, LABEL Object, LABEL Object.
73 * in PcepLabelUpdate message.
bharat saraswale2e7a002015-08-21 22:47:30 +053074 */
75 @Test
Mahesh Poojary Sf1bbd362016-02-25 18:19:59 +053076 public void labelUpdateMessageTest2() throws PcepParseException, PcepOutOfBoundMessageException {
bharat saraswale2e7a002015-08-21 22:47:30 +053077
Mahesh Poojary Sf1bbd362016-02-25 18:19:59 +053078 byte[] labelUpdate = new byte[]{0x20, (byte) 0xE2, 0x00, 0x30, // common header
bharat saraswale2e7a002015-08-21 22:47:30 +053079 0x21, 0x10, 0x00, 0x0C, // SRP Object Header
80 0x00, 0x00, 0x00, 0x00,
81 0x00, 0x00, 0x00, 0x10,
82 0x20, 0x10, 0x00, 0x08, // LSP Object Header
83 0x00, 0x01, 0x00, 0x00,
Mahesh Poojary Sf1bbd362016-02-25 18:19:59 +053084 (byte) 0xE1, 0x10, 0x00, 0x0C, // LABEL Object Header
bharat saraswale2e7a002015-08-21 22:47:30 +053085 0x00, 0x00, 0x00, 0x00,
Priyanka B21f4b732016-03-21 20:54:12 +053086 0x00, 0x44, 0x00, 0x00,
Mahesh Poojary Sf1bbd362016-02-25 18:19:59 +053087 (byte) 0xE1, 0x10, 0x00, 0x0C, // LABEL Object Header
bharat saraswale2e7a002015-08-21 22:47:30 +053088 0x00, 0x00, 0x00, 0x00,
Priyanka B21f4b732016-03-21 20:54:12 +053089 0x00, 0x79, 0x00, 0x00};
bharat saraswale2e7a002015-08-21 22:47:30 +053090
91 ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
92 buffer.writeBytes(labelUpdate);
93
94 PcepMessageReader<PcepMessage> reader = PcepFactories.getGenericReader();
95 PcepMessage message = null;
96
97 message = reader.readFrom(buffer);
98
99 byte[] testLabelUpdateMsg = {0};
Mahesh Poojaryea2e4df2015-08-27 20:38:16 +0530100 assertThat(message, instanceOf(PcepLabelUpdateMsg.class));
bharat saraswale2e7a002015-08-21 22:47:30 +0530101 ChannelBuffer buf = ChannelBuffers.dynamicBuffer();
102 message.writeTo(buf);
103
Mahesh Poojaryea2e4df2015-08-27 20:38:16 +0530104 int readLen = buf.writerIndex();
bharat saraswale2e7a002015-08-21 22:47:30 +0530105 testLabelUpdateMsg = new byte[readLen];
106 buf.readBytes(testLabelUpdateMsg, 0, readLen);
107
Mahesh Poojaryea2e4df2015-08-27 20:38:16 +0530108 assertThat(testLabelUpdateMsg, is(labelUpdate));
bharat saraswale2e7a002015-08-21 22:47:30 +0530109 }
110
111 /**
112 * This test case checks for
113 * <pce-label-map> SRP, LABEL, FEC Object.
114 * in PcepLabelUpdate message.
bharat saraswale2e7a002015-08-21 22:47:30 +0530115 */
116 @Test
Mahesh Poojary Sf1bbd362016-02-25 18:19:59 +0530117 public void labelUpdateMessageTest3() throws PcepParseException, PcepOutOfBoundMessageException {
bharat saraswale2e7a002015-08-21 22:47:30 +0530118
Mahesh Poojary Sf1bbd362016-02-25 18:19:59 +0530119 byte[] labelUpdate = new byte[]{0x20, (byte) 0xE2, 0x00, 0x24, // common header
bharat saraswale2e7a002015-08-21 22:47:30 +0530120 0x21, 0x10, 0x00, 0x0C, // SRP Object Header
121 0x00, 0x00, 0x00, 0x00,
122 0x00, 0x00, 0x00, 0x10,
Mahesh Poojary Sf1bbd362016-02-25 18:19:59 +0530123 (byte) 0xE1, 0x10, 0x00, 0x0C, // LABEL Object Header
bharat saraswale2e7a002015-08-21 22:47:30 +0530124 0x00, 0x00, 0x00, 0x00,
Priyanka B21f4b732016-03-21 20:54:12 +0530125 0x00, 0x79, 0x00, 0x00,
Mahesh Poojary Sf1bbd362016-02-25 18:19:59 +0530126 (byte) 0xE2, 0x10, 0x00, 0x08, // FEC Object Header
bharat saraswale2e7a002015-08-21 22:47:30 +0530127 0x0A, 0x0A, 0x0B, 0x0B};
128
129 ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
130 buffer.writeBytes(labelUpdate);
131
132 PcepMessageReader<PcepMessage> reader = PcepFactories.getGenericReader();
133 PcepMessage message = null;
134
135 message = reader.readFrom(buffer);
136
137 byte[] testLabelUpdateMsg = {0};
Mahesh Poojaryea2e4df2015-08-27 20:38:16 +0530138 assertThat(message, instanceOf(PcepLabelUpdateMsg.class));
bharat saraswale2e7a002015-08-21 22:47:30 +0530139 ChannelBuffer buf = ChannelBuffers.dynamicBuffer();
140 message.writeTo(buf);
141
Mahesh Poojaryea2e4df2015-08-27 20:38:16 +0530142 int readLen = buf.writerIndex();
bharat saraswale2e7a002015-08-21 22:47:30 +0530143 testLabelUpdateMsg = new byte[readLen];
144 buf.readBytes(testLabelUpdateMsg, 0, readLen);
145
Mahesh Poojaryea2e4df2015-08-27 20:38:16 +0530146 assertThat(testLabelUpdateMsg, is(labelUpdate));
bharat saraswale2e7a002015-08-21 22:47:30 +0530147 }
148
149 /**
150 * This test case checks for
151 * <pce-label-download> SRP, LSP, LABEL, LABEL, <pce-label-download> SRP, LSP, LABEL
152 * in PcepLabelUpdate message.
bharat saraswale2e7a002015-08-21 22:47:30 +0530153 */
154 @Test
Mahesh Poojary Sf1bbd362016-02-25 18:19:59 +0530155 public void labelUpdateMessageTest4() throws PcepParseException, PcepOutOfBoundMessageException {
bharat saraswale2e7a002015-08-21 22:47:30 +0530156
Mahesh Poojary Sf1bbd362016-02-25 18:19:59 +0530157 byte[] labelUpdate = new byte[]{0x20, (byte) 0xE2, 0x00, 0x50, // common header
bharat saraswale2e7a002015-08-21 22:47:30 +0530158 0x21, 0x10, 0x00, 0x0C, // SRP Object Header
159 0x00, 0x00, 0x00, 0x00,
160 0x00, 0x00, 0x00, 0x10,
161 0x20, 0x10, 0x00, 0x08, // LSP Object Header
162 0x00, 0x01, 0x00, 0x00,
Mahesh Poojary Sf1bbd362016-02-25 18:19:59 +0530163 (byte) 0xE1, 0x10, 0x00, 0x0C, // LABEL Object Header
bharat saraswale2e7a002015-08-21 22:47:30 +0530164 0x00, 0x00, 0x00, 0x00,
Priyanka B21f4b732016-03-21 20:54:12 +0530165 0x00, 0x66, 0x00, 0x00,
Mahesh Poojary Sf1bbd362016-02-25 18:19:59 +0530166 (byte) 0xE1, 0x10, 0x00, 0x0C, // LABEL Object Header
bharat saraswale2e7a002015-08-21 22:47:30 +0530167 0x00, 0x00, 0x00, 0x00,
Priyanka B21f4b732016-03-21 20:54:12 +0530168 0x00, 0x68, 0x00, 0x00,
bharat saraswale2e7a002015-08-21 22:47:30 +0530169 0x21, 0x10, 0x00, 0x0C, // SRP Object Header
170 0x00, 0x00, 0x00, 0x00,
171 0x00, 0x00, 0x00, 0x11,
172 0x20, 0x10, 0x00, 0x08, // LSP Object Header
173 0x00, 0x02, 0x00, 0x00,
Mahesh Poojary Sf1bbd362016-02-25 18:19:59 +0530174 (byte) 0xE1, 0x10, 0x00, 0x0C, // LABEL Object Header
bharat saraswale2e7a002015-08-21 22:47:30 +0530175 0x00, 0x00, 0x00, 0x00,
Priyanka B21f4b732016-03-21 20:54:12 +0530176 0x00, 0x44, 0x00, 0x00};
bharat saraswale2e7a002015-08-21 22:47:30 +0530177
178 ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
179 buffer.writeBytes(labelUpdate);
180
181 PcepMessageReader<PcepMessage> reader = PcepFactories.getGenericReader();
182 PcepMessage message = null;
183
184 message = reader.readFrom(buffer);
185
186 byte[] testLabelUpdateMsg = {0};
Mahesh Poojaryea2e4df2015-08-27 20:38:16 +0530187 assertThat(message, instanceOf(PcepLabelUpdateMsg.class));
bharat saraswale2e7a002015-08-21 22:47:30 +0530188 ChannelBuffer buf = ChannelBuffers.dynamicBuffer();
189 message.writeTo(buf);
190
Mahesh Poojaryea2e4df2015-08-27 20:38:16 +0530191 int readLen = buf.writerIndex();
bharat saraswale2e7a002015-08-21 22:47:30 +0530192 testLabelUpdateMsg = new byte[readLen];
193 buf.readBytes(testLabelUpdateMsg, 0, readLen);
194
Mahesh Poojaryea2e4df2015-08-27 20:38:16 +0530195 assertThat(testLabelUpdateMsg, is(labelUpdate));
bharat saraswale2e7a002015-08-21 22:47:30 +0530196 }
197
198 /**
199 * This test case checks for
200 * <pce-label-map> SRP, LABEL, FEC, <pce-label-map> SRP, LABEL, FEC.
201 * in PcepLabelUpdate message.
bharat saraswale2e7a002015-08-21 22:47:30 +0530202 */
203 @Test
Mahesh Poojary Sf1bbd362016-02-25 18:19:59 +0530204 public void labelUpdateMessageTest5() throws PcepParseException, PcepOutOfBoundMessageException {
bharat saraswale2e7a002015-08-21 22:47:30 +0530205
Mahesh Poojary Sf1bbd362016-02-25 18:19:59 +0530206 byte[] labelUpdate = new byte[]{0x20, (byte) 0xE2, 0x00, 0x44, // common header
bharat saraswale2e7a002015-08-21 22:47:30 +0530207 0x21, 0x10, 0x00, 0x0C, // SRP Object Header
208 0x00, 0x00, 0x00, 0x00,
209 0x00, 0x00, 0x00, 0x10,
Mahesh Poojary Sf1bbd362016-02-25 18:19:59 +0530210 (byte) 0xE1, 0x10, 0x00, 0x0C, // LABEL Object Header
bharat saraswale2e7a002015-08-21 22:47:30 +0530211 0x00, 0x00, 0x00, 0x01,
Priyanka B21f4b732016-03-21 20:54:12 +0530212 0x00, 0x44, 0x00, 0x00,
Mahesh Poojary Sf1bbd362016-02-25 18:19:59 +0530213 (byte) 0xE2, 0x10, 0x00, 0x08, // FEC Object Header
bharat saraswale2e7a002015-08-21 22:47:30 +0530214 0x0A, 0x0A, 0x0B, 0x0B,
215 0x21, 0x10, 0x00, 0x0C, // SRP Object Header
216 0x00, 0x00, 0x00, 0x00,
217 0x00, 0x00, 0x00, 0x11,
Mahesh Poojary Sf1bbd362016-02-25 18:19:59 +0530218 (byte) 0xE1, 0x10, 0x00, 0x0C, // LABEL Object Header
bharat saraswale2e7a002015-08-21 22:47:30 +0530219 0x00, 0x00, 0x00, 0x00,
Priyanka B21f4b732016-03-21 20:54:12 +0530220 0x00, 0x44, 0x00, 0x00,
Mahesh Poojary Sf1bbd362016-02-25 18:19:59 +0530221 (byte) 0xE2, 0x10, 0x00, 0x08, // FEC Object Header
bharat saraswale2e7a002015-08-21 22:47:30 +0530222 0x0A, 0x0A, 0x0C, 0x0C};
223
224 ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
225 buffer.writeBytes(labelUpdate);
226
227 PcepMessageReader<PcepMessage> reader = PcepFactories.getGenericReader();
228 PcepMessage message = null;
229
230 message = reader.readFrom(buffer);
231
232 byte[] testLabelUpdateMsg = {0};
Mahesh Poojaryea2e4df2015-08-27 20:38:16 +0530233 assertThat(message, instanceOf(PcepLabelUpdateMsg.class));
bharat saraswale2e7a002015-08-21 22:47:30 +0530234 ChannelBuffer buf = ChannelBuffers.dynamicBuffer();
235 message.writeTo(buf);
236
Mahesh Poojaryea2e4df2015-08-27 20:38:16 +0530237 int readLen = buf.writerIndex();
bharat saraswale2e7a002015-08-21 22:47:30 +0530238 testLabelUpdateMsg = new byte[readLen];
239 buf.readBytes(testLabelUpdateMsg, 0, readLen);
240
Mahesh Poojaryea2e4df2015-08-27 20:38:16 +0530241 assertThat(testLabelUpdateMsg, is(labelUpdate));
bharat saraswale2e7a002015-08-21 22:47:30 +0530242 }
243
244 /**
245 * This test case checks for
246 * <pce-label-download> SRP, LSP, LABEL, LABEL, <pce-label-download> SRP, LABEL, FEC.
247 * in PcepLabelUpdate message.
bharat saraswale2e7a002015-08-21 22:47:30 +0530248 */
249 @Test
Mahesh Poojary Sf1bbd362016-02-25 18:19:59 +0530250 public void labelUpdateMessageTest6() throws PcepParseException, PcepOutOfBoundMessageException {
bharat saraswale2e7a002015-08-21 22:47:30 +0530251
Mahesh Poojary Sf1bbd362016-02-25 18:19:59 +0530252 byte[] labelUpdate = new byte[]{0x20, (byte) 0xE2, 0x00, 0x50, // common header
bharat saraswale2e7a002015-08-21 22:47:30 +0530253 0x21, 0x10, 0x00, 0x0C, // SRP Object Header
254 0x00, 0x00, 0x00, 0x00,
255 0x00, 0x00, 0x00, 0x10,
256 0x20, 0x10, 0x00, 0x08, // LSP Object Header
257 0x00, 0x01, 0x00, 0x00,
Mahesh Poojary Sf1bbd362016-02-25 18:19:59 +0530258 (byte) 0xE1, 0x10, 0x00, 0x0C, // LABEL Object Header
bharat saraswale2e7a002015-08-21 22:47:30 +0530259 0x00, 0x00, 0x00, 0x00,
Priyanka B21f4b732016-03-21 20:54:12 +0530260 0x00, 0x44, 0x00, 0x00,
Mahesh Poojary Sf1bbd362016-02-25 18:19:59 +0530261 (byte) 0xE1, 0x10, 0x00, 0x0C, // LABEL Object Header
bharat saraswale2e7a002015-08-21 22:47:30 +0530262 0x00, 0x00, 0x00, 0x00,
Priyanka B21f4b732016-03-21 20:54:12 +0530263 0x00, 0x44, 0x00, 0x00,
bharat saraswale2e7a002015-08-21 22:47:30 +0530264 0x21, 0x10, 0x00, 0x0C, // SRP Object Header
265 0x00, 0x00, 0x00, 0x00,
266 0x00, 0x00, 0x00, 0x12,
Mahesh Poojary Sf1bbd362016-02-25 18:19:59 +0530267 (byte) 0xE1, 0x10, 0x00, 0x0C, // LABEL Object Header
bharat saraswale2e7a002015-08-21 22:47:30 +0530268 0x00, 0x00, 0x00, 0x00,
Priyanka B21f4b732016-03-21 20:54:12 +0530269 0x00, 0x44, 0x00, 0x00,
Mahesh Poojary Sf1bbd362016-02-25 18:19:59 +0530270 (byte) 0xE2, 0x10, 0x00, 0x08, // FEC Object Header
bharat saraswale2e7a002015-08-21 22:47:30 +0530271 0x0A, 0x0A, 0x0D, 0x0D};
272
273 ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
274 buffer.writeBytes(labelUpdate);
275
276 PcepMessageReader<PcepMessage> reader = PcepFactories.getGenericReader();
277 PcepMessage message = null;
278
279 message = reader.readFrom(buffer);
280
281 byte[] testLabelUpdateMsg = {0};
Mahesh Poojaryea2e4df2015-08-27 20:38:16 +0530282 assertThat(message, instanceOf(PcepLabelUpdateMsg.class));
bharat saraswale2e7a002015-08-21 22:47:30 +0530283 ChannelBuffer buf = ChannelBuffers.dynamicBuffer();
284 message.writeTo(buf);
285
Mahesh Poojaryea2e4df2015-08-27 20:38:16 +0530286 int readLen = buf.writerIndex();
bharat saraswale2e7a002015-08-21 22:47:30 +0530287 testLabelUpdateMsg = new byte[readLen];
288 buf.readBytes(testLabelUpdateMsg, 0, readLen);
289
Mahesh Poojaryea2e4df2015-08-27 20:38:16 +0530290 assertThat(testLabelUpdateMsg, is(labelUpdate));
bharat saraswale2e7a002015-08-21 22:47:30 +0530291 }
292
293 /**
294 * This test case checks for
Mahesh Poojaryea2e4df2015-08-27 20:38:16 +0530295 * <pce-label-download> SRP, LABEL, FEC, <pce-label-download> SRP, LSP, LABEL, LABEL.
bharat saraswale2e7a002015-08-21 22:47:30 +0530296 * in PcepLabelUpdate message.
bharat saraswale2e7a002015-08-21 22:47:30 +0530297 */
298 @Test
Mahesh Poojary Sf1bbd362016-02-25 18:19:59 +0530299 public void labelUpdateMessageTest7() throws PcepParseException, PcepOutOfBoundMessageException {
bharat saraswale2e7a002015-08-21 22:47:30 +0530300
Mahesh Poojary Sf1bbd362016-02-25 18:19:59 +0530301 byte[] labelUpdate = new byte[]{0x20, (byte) 0xE2, 0x00, 0x50, // common header
bharat saraswale2e7a002015-08-21 22:47:30 +0530302 0x21, 0x10, 0x00, 0x0C, // SRP Object Header
303 0x00, 0x00, 0x00, 0x00,
304 0x00, 0x00, 0x00, 0x12,
Mahesh Poojary Sf1bbd362016-02-25 18:19:59 +0530305 (byte) 0xE1, 0x10, 0x00, 0x0C, // LABEL Object Header
bharat saraswale2e7a002015-08-21 22:47:30 +0530306 0x00, 0x00, 0x00, 0x00,
Priyanka B21f4b732016-03-21 20:54:12 +0530307 0x00, 0x44, 0x00, 0x00,
Mahesh Poojary Sf1bbd362016-02-25 18:19:59 +0530308 (byte) 0xE2, 0x10, 0x00, 0x08, // FEC Object Header
bharat saraswale2e7a002015-08-21 22:47:30 +0530309 0x0A, 0x0A, 0x0D, 0x0D,
310 0x21, 0x10, 0x00, 0x0C, // SRP Object Header
311 0x00, 0x00, 0x00, 0x00,
312 0x00, 0x00, 0x00, 0x10,
313 0x20, 0x10, 0x00, 0x08, // LSP Object Header
314 0x00, 0x01, 0x00, 0x00,
Mahesh Poojary Sf1bbd362016-02-25 18:19:59 +0530315 (byte) 0xE1, 0x10, 0x00, 0x0C, // LABEL Object Header
bharat saraswale2e7a002015-08-21 22:47:30 +0530316 0x00, 0x00, 0x00, 0x00,
Priyanka B21f4b732016-03-21 20:54:12 +0530317 0x00, 0x44, 0x00, 0x00,
Mahesh Poojary Sf1bbd362016-02-25 18:19:59 +0530318 (byte) 0xE1, 0x10, 0x00, 0x0C, // LABEL Object Header
bharat saraswale2e7a002015-08-21 22:47:30 +0530319 0x00, 0x00, 0x00, 0x00,
Priyanka B21f4b732016-03-21 20:54:12 +0530320 0x00, 0x44, 0x00, 0x00};
bharat saraswale2e7a002015-08-21 22:47:30 +0530321
322 ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
323 buffer.writeBytes(labelUpdate);
324
325 PcepMessageReader<PcepMessage> reader = PcepFactories.getGenericReader();
326 PcepMessage message = null;
327
328 message = reader.readFrom(buffer);
329
330 byte[] testLabelUpdateMsg = {0};
Mahesh Poojaryea2e4df2015-08-27 20:38:16 +0530331 assertThat(message, instanceOf(PcepLabelUpdateMsg.class));
bharat saraswale2e7a002015-08-21 22:47:30 +0530332 ChannelBuffer buf = ChannelBuffers.dynamicBuffer();
333 message.writeTo(buf);
334
Mahesh Poojaryea2e4df2015-08-27 20:38:16 +0530335 int readLen = buf.writerIndex();
bharat saraswale2e7a002015-08-21 22:47:30 +0530336 testLabelUpdateMsg = new byte[readLen];
337 buf.readBytes(testLabelUpdateMsg, 0, readLen);
338
Mahesh Poojaryea2e4df2015-08-27 20:38:16 +0530339 assertThat(testLabelUpdateMsg, is(labelUpdate));
bharat saraswale2e7a002015-08-21 22:47:30 +0530340 }
341
342 /**
343 * This test case checks for
344 * <pce-label-download> SRP, LABEL, FEC, <pce-label-download> SRP, LSP, LABEL, LABEL.
345 * <pce-label-download> SRP, LSP, LABEL, LABEL.
346 * in PcepLabelUpdate message.
bharat saraswale2e7a002015-08-21 22:47:30 +0530347 */
348 @Test
Mahesh Poojary Sf1bbd362016-02-25 18:19:59 +0530349 public void labelUpdateMessageTest8() throws PcepParseException, PcepOutOfBoundMessageException {
bharat saraswale2e7a002015-08-21 22:47:30 +0530350
Mahesh Poojary Sf1bbd362016-02-25 18:19:59 +0530351 byte[] labelUpdate = new byte[]{0x20, (byte) 0xE2, 0x00, 0x7C, // common header
bharat saraswale2e7a002015-08-21 22:47:30 +0530352 0x21, 0x10, 0x00, 0x0C, // SRP Object Header
353 0x00, 0x00, 0x00, 0x00,
354 0x00, 0x00, 0x00, 0x12,
Mahesh Poojary Sf1bbd362016-02-25 18:19:59 +0530355 (byte) 0xE1, 0x10, 0x00, 0x0C, // LABEL Object Header
bharat saraswale2e7a002015-08-21 22:47:30 +0530356 0x00, 0x00, 0x00, 0x00,
Priyanka B21f4b732016-03-21 20:54:12 +0530357 0x00, 0x44, 0x00, 0x00,
Mahesh Poojary Sf1bbd362016-02-25 18:19:59 +0530358 (byte) 0xE2, 0x10, 0x00, 0x08, // FEC Object Header
bharat saraswale2e7a002015-08-21 22:47:30 +0530359 0x0A, 0x0A, 0x0D, 0x0D,
360 0x21, 0x10, 0x00, 0x0C, // SRP Object Header
361 0x00, 0x00, 0x00, 0x00,
362 0x00, 0x00, 0x00, 0x10,
363 0x20, 0x10, 0x00, 0x08, // LSP Object Header
364 0x00, 0x01, 0x00, 0x00,
Mahesh Poojary Sf1bbd362016-02-25 18:19:59 +0530365 (byte) 0xE1, 0x10, 0x00, 0x0C, // LABEL Object Header
bharat saraswale2e7a002015-08-21 22:47:30 +0530366 0x00, 0x00, 0x00, 0x00,
Priyanka B21f4b732016-03-21 20:54:12 +0530367 0x00, 0x44, 0x00, 0x00,
Mahesh Poojary Sf1bbd362016-02-25 18:19:59 +0530368 (byte) 0xE1, 0x10, 0x00, 0x0C, // LABEL Object Header
bharat saraswale2e7a002015-08-21 22:47:30 +0530369 0x00, 0x00, 0x00, 0x00,
Priyanka B21f4b732016-03-21 20:54:12 +0530370 0x00, 0x44, 0x00, 0x00,
bharat saraswale2e7a002015-08-21 22:47:30 +0530371 0x21, 0x10, 0x00, 0x0C, // SRP Object Header
372 0x00, 0x00, 0x00, 0x00,
373 0x00, 0x00, 0x00, 0x10,
374 0x20, 0x10, 0x00, 0x08, // LSP Object Header
375 0x00, 0x01, 0x00, 0x00,
Mahesh Poojary Sf1bbd362016-02-25 18:19:59 +0530376 (byte) 0xE1, 0x10, 0x00, 0x0C, // LABEL Object Header
bharat saraswale2e7a002015-08-21 22:47:30 +0530377 0x00, 0x00, 0x00, 0x00,
Priyanka B21f4b732016-03-21 20:54:12 +0530378 0x00, 0x44, 0x00, 0x00,
Mahesh Poojary Sf1bbd362016-02-25 18:19:59 +0530379 (byte) 0xE1, 0x10, 0x00, 0x0C, // LABEL Object Header
bharat saraswale2e7a002015-08-21 22:47:30 +0530380 0x00, 0x00, 0x00, 0x00,
Priyanka B21f4b732016-03-21 20:54:12 +0530381 0x00, 0x44, 0x00, 0x00};
bharat saraswale2e7a002015-08-21 22:47:30 +0530382
383 ChannelBuffer buffer = ChannelBuffers.dynamicBuffer();
384 buffer.writeBytes(labelUpdate);
385
386 PcepMessageReader<PcepMessage> reader = PcepFactories.getGenericReader();
387 PcepMessage message = null;
388
389 message = reader.readFrom(buffer);
390
391 byte[] testLabelUpdateMsg = {0};
392
Mahesh Poojaryea2e4df2015-08-27 20:38:16 +0530393 assertThat(message, instanceOf(PcepLabelUpdateMsg.class));
bharat saraswale2e7a002015-08-21 22:47:30 +0530394 ChannelBuffer buf = ChannelBuffers.dynamicBuffer();
395 message.writeTo(buf);
396
Mahesh Poojaryea2e4df2015-08-27 20:38:16 +0530397 int readLen = buf.writerIndex();
bharat saraswale2e7a002015-08-21 22:47:30 +0530398 testLabelUpdateMsg = new byte[readLen];
399 buf.readBytes(testLabelUpdateMsg, 0, readLen);
400
Mahesh Poojaryea2e4df2015-08-27 20:38:16 +0530401 assertThat(testLabelUpdateMsg, is(labelUpdate));
bharat saraswale2e7a002015-08-21 22:47:30 +0530402 }
403}