2 * Copyright © 2017 AT&T, Inc. and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
8 package org.opendaylight.transportpce.pce.utils;
10 import java.math.BigDecimal;
11 import java.util.Arrays;
13 import org.opendaylight.transportpce.common.ResponseCodes;
14 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev220118.PathComputationRequestInput;
15 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev220118.PathComputationRequestInputBuilder;
16 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev220118.PathComputationRequestOutput;
17 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev220118.PathComputationRequestOutputBuilder;
18 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev220118.path.computation.request.input.ServiceAEnd;
19 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev220118.path.computation.request.input.ServiceAEndBuilder;
20 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev220118.path.computation.request.input.ServiceZEnd;
21 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev220118.path.computation.request.input.ServiceZEndBuilder;
22 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.node.types.rev210528.NodeIdType;
23 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev211210.ConnectionType;
24 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev211210.configuration.response.common.ConfigurationResponseCommon;
25 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev211210.configuration.response.common.ConfigurationResponseCommonBuilder;
26 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev211210.sdnc.request.header.SdncRequestHeaderBuilder;
27 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev211210.service.endpoint.RxDirectionKey;
28 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev211210.service.endpoint.TxDirectionKey;
29 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev211210.service.port.PortBuilder;
30 import org.opendaylight.yang.gen.v1.http.org.openroadm.routing.constraints.rev211210.constraints.CoRoutingBuilder;
31 import org.opendaylight.yang.gen.v1.http.org.openroadm.routing.constraints.rev211210.constraints.DiversityBuilder;
32 import org.opendaylight.yang.gen.v1.http.org.openroadm.routing.constraints.rev211210.constraints.ExcludeBuilder;
33 import org.opendaylight.yang.gen.v1.http.org.openroadm.routing.constraints.rev211210.constraints.IncludeBuilder;
34 import org.opendaylight.yang.gen.v1.http.org.openroadm.routing.constraints.rev211210.constraints.LatencyBuilder;
35 import org.opendaylight.yang.gen.v1.http.org.openroadm.routing.constraints.rev211210.constraints.co.routing.ServiceIdentifierListBuilder;
36 import org.opendaylight.yang.gen.v1.http.org.openroadm.routing.constraints.rev211210.diversity.existing.service.constraints.ServiceIdentifierListKey;
37 import org.opendaylight.yang.gen.v1.http.org.openroadm.routing.constraints.rev211210.routing.constraints.HardConstraintsBuilder;
38 import org.opendaylight.yang.gen.v1.http.org.openroadm.routing.constraints.rev211210.routing.constraints.SoftConstraintsBuilder;
39 import org.opendaylight.yang.gen.v1.http.org.openroadm.routing.constraints.rev211210.service.applicability.g.ServiceApplicabilityBuilder;
40 import org.opendaylight.yang.gen.v1.http.org.openroadm.service.format.rev191129.ServiceFormat;
41 import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.ServiceCreateInput;
42 import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.ServiceCreateInputBuilder;
43 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev210705.path.description.AToZDirectionBuilder;
44 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev210705.path.description.ZToADirectionBuilder;
45 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev220118.PceMetric;
46 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev220118.response.parameters.sp.ResponseParameters;
47 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev220118.response.parameters.sp.ResponseParametersBuilder;
48 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev220118.response.parameters.sp.response.parameters.PathDescription;
49 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev220118.response.parameters.sp.response.parameters.PathDescriptionBuilder;
50 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev220118.service.endpoint.sp.RxDirectionBuilder;
51 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev220118.service.endpoint.sp.TxDirectionBuilder;
52 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev220118.service.handler.header.ServiceHandlerHeader;
53 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev220118.service.handler.header.ServiceHandlerHeaderBuilder;
54 import org.opendaylight.yangtools.yang.common.Uint32;
55 import org.opendaylight.yangtools.yang.common.Uint8;
58 public final class PceTestData {
60 private PceTestData() {
63 public static PathComputationRequestInput getEmptyPCERequest() {
64 ServiceHandlerHeader serviceHandlerHeader = new ServiceHandlerHeaderBuilder()
65 .setRequestId("request1")
67 return new PathComputationRequestInputBuilder()
68 .setServiceHandlerHeader(serviceHandlerHeader)
72 public static PathComputationRequestInput getEmptyPCERequestServiceNameWithRequestId() {
73 ServiceHandlerHeader serviceHandlerHeader = new ServiceHandlerHeaderBuilder()
74 .setRequestId("request1")
76 return new PathComputationRequestInputBuilder()
77 .setServiceName("serviceName")
78 .setServiceHandlerHeader(serviceHandlerHeader)
82 public static PathComputationRequestInput getEmptyPCERequestServiceNameWithOutRequestId() {
83 ServiceHandlerHeader serviceHandlerHeader = new ServiceHandlerHeaderBuilder()
85 return new PathComputationRequestInputBuilder()
86 .setServiceName("serviceName")
87 .setServiceHandlerHeader(serviceHandlerHeader)
91 public static PathComputationRequestInput getPathComputationRequestInputWithCoRoutingOrGeneral2() {
92 ServiceHandlerHeader serviceHandlerHeader = new ServiceHandlerHeaderBuilder()
93 .setRequestId("request1")
95 ServiceAEnd serviceAEnd = new ServiceAEndBuilder()
96 .setServiceFormat(ServiceFormat.ODU)
97 .setServiceRate(Uint32.valueOf(100))
99 .setNodeId("XPONDER-2-2")
100 .setTxDirection(new TxDirectionBuilder().setPort(
102 .setPortDeviceName("Some port-device-name")
103 .setPortType("Some port-type")
104 .setPortName("Some port-name")
105 .setPortRack("Some port-rack")
106 .setPortShelf("Some port-shelf")
107 .setPortSlot("Some port-slot")
108 .setPortSubSlot("Some port-sub-slot")
111 .setRxDirection(new RxDirectionBuilder().setPort(
113 .setPortDeviceName("Some port-device-name")
114 .setPortType("Some port-type")
115 .setPortName("Some port-name")
116 .setPortRack("Some port-rack")
117 .setPortShelf("Some port-shelf")
118 .setPortSlot("Some port-slot")
119 .setPortSubSlot("Some port-sub-slot")
123 ServiceZEnd serviceZEnd = new ServiceZEndBuilder()
124 .setServiceFormat(ServiceFormat.ODU)
125 .setServiceRate(Uint32.valueOf(0))
126 .setClli("Some clli11")
127 .setNodeId("XPONDER-1-2")
128 .setTxDirection(new TxDirectionBuilder().setPort(
130 .setPortDeviceName("Some port-device-name")
131 .setPortType("Some port-type")
132 .setPortName("Some port-name")
133 .setPortRack("Some port-rack")
134 .setPortShelf("Some port-shelf")
135 .setPortSlot("Some port-slot")
136 .setPortSubSlot("Some port-sub-slot")
139 .setRxDirection(new RxDirectionBuilder().setPort(
141 .setPortDeviceName("Some port-device-name")
142 .setPortType("Some port-type")
143 .setPortName("Some port-name")
144 .setPortRack("Some port-rack")
145 .setPortShelf("Some port-shelf")
146 .setPortSlot("Some port-slot")
147 .setPortSubSlot("Some port-sub-slot")
151 return new PathComputationRequestInputBuilder()
152 .setServiceName("service1")
153 .setResourceReserve(true)
154 .setPceRoutingMetric(PceMetric.HopCount)
155 .setServiceHandlerHeader(serviceHandlerHeader)
156 .setServiceAEnd(serviceAEnd)
157 .setServiceZEnd(serviceZEnd)
158 .setHardConstraints(new HardConstraintsBuilder()
159 .setCustomerCode(Arrays.asList("Some customer-code"))
160 .setCoRouting(new CoRoutingBuilder()
161 .setServiceIdentifierList(Map.of(
162 new org.opendaylight.yang.gen.v1.http.org.openroadm.routing.constraints.rev211210.constraints
163 .co.routing.ServiceIdentifierListKey("Some existing-service"),
164 new ServiceIdentifierListBuilder().setServiceIdentifier("Some existing-service").build()))
167 .setSoftConstraints(new SoftConstraintsBuilder()
168 .setCustomerCode(Arrays.asList("Some customer-code"))
169 .setCoRouting(new CoRoutingBuilder()
170 .setServiceIdentifierList(Map.of(
171 new org.opendaylight.yang.gen.v1.http.org.openroadm.routing.constraints.rev211210.constraints
172 .co.routing.ServiceIdentifierListKey("Some existing-service"),
173 new ServiceIdentifierListBuilder().setServiceIdentifier("Some existing-service").build()))
179 public static PathComputationRequestInput getPathComputationRequestInputWithCoRoutingOrGeneral() {
180 ServiceHandlerHeader serviceHandlerHeader = new ServiceHandlerHeaderBuilder()
181 .setRequestId("request1")
183 ServiceAEnd serviceAEnd = new ServiceAEndBuilder()
184 .setServiceFormat(ServiceFormat.Ethernet)
185 .setServiceRate(Uint32.valueOf(100))
187 .setNodeId("XPONDER-2-2")
188 .setTxDirection(new TxDirectionBuilder().setPort(
190 .setPortDeviceName("Some port-device-name")
191 .setPortType("Some port-type")
192 .setPortName("Some port-name")
193 .setPortRack("Some port-rack")
194 .setPortShelf("Some port-shelf")
195 .setPortSlot("Some port-slot")
196 .setPortSubSlot("Some port-sub-slot")
199 .setRxDirection(new RxDirectionBuilder().setPort(
201 .setPortDeviceName("Some port-device-name")
202 .setPortType("Some port-type")
203 .setPortName("Some port-name")
204 .setPortRack("Some port-rack")
205 .setPortShelf("Some port-shelf")
206 .setPortSlot("Some port-slot")
207 .setPortSubSlot("Some port-sub-slot")
211 ServiceZEnd serviceZEnd = new ServiceZEndBuilder()
212 .setServiceFormat(ServiceFormat.Ethernet)
213 .setServiceRate(Uint32.valueOf(0))
214 .setClli("Some clli11")
215 .setNodeId("XPONDER-1-2")
216 .setTxDirection(new TxDirectionBuilder().setPort(
218 .setPortDeviceName("Some port-device-name")
219 .setPortType("Some port-type")
220 .setPortName("Some port-name")
221 .setPortRack("Some port-rack")
222 .setPortShelf("Some port-shelf")
223 .setPortSlot("Some port-slot")
224 .setPortSubSlot("Some port-sub-slot")
227 .setRxDirection(new RxDirectionBuilder().setPort(
229 .setPortDeviceName("Some port-device-name")
230 .setPortType("Some port-type")
231 .setPortName("Some port-name")
232 .setPortRack("Some port-rack")
233 .setPortShelf("Some port-shelf")
234 .setPortSlot("Some port-slot")
235 .setPortSubSlot("Some port-sub-slot")
239 return new PathComputationRequestInputBuilder()
240 .setServiceName("service1")
241 .setResourceReserve(true)
242 .setPceRoutingMetric(PceMetric.HopCount)
243 .setServiceHandlerHeader(serviceHandlerHeader)
244 .setServiceAEnd(serviceAEnd)
245 .setServiceZEnd(serviceZEnd)
246 .setHardConstraints(new HardConstraintsBuilder()
247 .setCustomerCode(Arrays.asList("Some customer-code"))
248 .setCoRouting(new CoRoutingBuilder()
249 .setServiceIdentifierList(Map.of(
250 new org.opendaylight.yang.gen.v1.http.org.openroadm.routing.constraints.rev211210.constraints.co
251 .routing.ServiceIdentifierListKey("Some existing-service"),
252 new ServiceIdentifierListBuilder().setServiceIdentifier("Some existing-service").build()))
255 .setSoftConstraints(new SoftConstraintsBuilder()
256 .setCustomerCode(Arrays.asList("Some customer-code"))
257 .setCoRouting(new CoRoutingBuilder()
258 .setServiceIdentifierList(Map.of(
259 new org.opendaylight.yang.gen.v1.http.org.openroadm.routing.constraints.rev211210.constraints.co
260 .routing.ServiceIdentifierListKey("Some existing-service"),
261 new ServiceIdentifierListBuilder().setServiceIdentifier("Some existing-service").build()))
267 public static PathComputationRequestInput getPCERequest() {
268 ServiceHandlerHeader serviceHandlerHeader = new ServiceHandlerHeaderBuilder()
269 .setRequestId("request1")
271 ServiceAEnd serviceAEnd = new ServiceAEndBuilder()
272 .setServiceFormat(ServiceFormat.Ethernet)
273 .setServiceRate(Uint32.valueOf(100))
275 .setNodeId("XPONDER-2-2")
276 .setTxDirection(new TxDirectionBuilder().setPort(
278 .setPortDeviceName("Some port-device-name")
279 .setPortType("Some port-type")
280 .setPortName("Some port-name")
281 .setPortRack("Some port-rack")
282 .setPortShelf("Some port-shelf")
283 .setPortSlot("Some port-slot")
284 .setPortSubSlot("Some port-sub-slot")
287 .setRxDirection(new RxDirectionBuilder().setPort(
289 .setPortDeviceName("Some port-device-name")
290 .setPortType("Some port-type")
291 .setPortName("Some port-name")
292 .setPortRack("Some port-rack")
293 .setPortShelf("Some port-shelf")
294 .setPortSlot("Some port-slot")
295 .setPortSubSlot("Some port-sub-slot")
299 ServiceZEnd serviceZEnd = new ServiceZEndBuilder()
300 .setServiceFormat(ServiceFormat.Ethernet)
301 .setServiceRate(Uint32.valueOf(0))
302 .setClli("Some clli11")
303 .setNodeId("XPONDER-1-2")
304 .setTxDirection(new TxDirectionBuilder().setPort(
306 .setPortDeviceName("Some port-device-name")
307 .setPortType("Some port-type")
308 .setPortName("Some port-name")
309 .setPortRack("Some port-rack")
310 .setPortShelf("Some port-shelf")
311 .setPortSlot("Some port-slot")
312 .setPortSubSlot("Some port-sub-slot")
315 .setRxDirection(new RxDirectionBuilder().setPort(
317 .setPortDeviceName("Some port-device-name")
318 .setPortType("Some port-type")
319 .setPortName("Some port-name")
320 .setPortRack("Some port-rack")
321 .setPortShelf("Some port-shelf")
322 .setPortSlot("Some port-slot")
323 .setPortSubSlot("Some port-sub-slot")
327 return new PathComputationRequestInputBuilder()
328 .setServiceName("service1")
329 .setResourceReserve(true)
330 .setPceRoutingMetric(PceMetric.HopCount)
331 .setServiceHandlerHeader(serviceHandlerHeader)
332 .setServiceAEnd(serviceAEnd)
333 .setServiceZEnd(serviceZEnd)
334 .setHardConstraints(new HardConstraintsBuilder()
335 .setCustomerCode(Arrays.asList("Some customer-code"))
336 .setCoRouting(new CoRoutingBuilder()
337 .setServiceIdentifierList(Map.of(
338 new org.opendaylight.yang.gen.v1.http.org.openroadm.routing.constraints.rev211210.constraints.co
339 .routing.ServiceIdentifierListKey("Some existing-service"),
340 new ServiceIdentifierListBuilder().setServiceIdentifier("Some existing-service").build()))
343 .setSoftConstraints(new SoftConstraintsBuilder()
344 .setCustomerCode(Arrays.asList("Some customer-code"))
345 .setCoRouting(new CoRoutingBuilder()
346 .setServiceIdentifierList(Map.of(
347 new org.opendaylight.yang.gen.v1.http.org.openroadm.routing.constraints.rev211210.constraints.co
348 .routing.ServiceIdentifierListKey("Some existing-service"),
349 new ServiceIdentifierListBuilder().setServiceIdentifier("Some existing-service").build()))
355 public static PathComputationRequestOutput getFailedPCEResultYes() {
356 PathComputationRequestOutputBuilder outputBuilder = new PathComputationRequestOutputBuilder();
357 ConfigurationResponseCommonBuilder configurationResponseCommon = new ConfigurationResponseCommonBuilder()
358 .setAckFinalIndicator("Yes")
359 .setRequestId("request1")
360 .setResponseCode("Path not calculated")
361 .setResponseMessage("Service Name is not set");
362 outputBuilder.setConfigurationResponseCommon(configurationResponseCommon.build())
363 .setResponseParameters(null);
364 return outputBuilder.build();
367 public static PathComputationRequestOutput getPCEResultOk(Long wl) {
368 PathComputationRequestOutputBuilder outputBuilder = new PathComputationRequestOutputBuilder();
369 ResponseParameters responseParameters = new ResponseParametersBuilder()
370 .setPathDescription(createPathDescription(0L, wl, 0L, wl))
372 outputBuilder.setConfigurationResponseCommon(createCommonSuccessResponse())
373 .setResponseParameters(responseParameters);
374 return outputBuilder.build();
378 * Generate Data for Test 1 request 5-4.
381 * "pce:service-name": "service 1",
382 * "pce:resource-reserve": "true",
383 * "pce:service-handler-header": {
384 * "pce:request-id": "request 1"
386 * "pce:service-a-end": {
387 * "pce:service-rate": "0",
388 * "pce:node-id": "XPONDER-1-2"
390 * "pce:service-z-end": {
391 * "pce:service-rate": "0",
392 * "pce:node-id": "XPONDER-3-2"
394 * "pce:pce-metric": "hop-count"
398 * @return input PathComputationRequestInput data
400 public static PathComputationRequestInput getPCE_test1_request_54() {
401 ServiceHandlerHeader serviceHandlerHeader = new ServiceHandlerHeaderBuilder()
402 .setRequestId("request 1")
404 ServiceAEnd serviceAEnd = new ServiceAEndBuilder()
405 .setServiceRate(Uint32.valueOf(0))
406 .setNodeId("XPONDER-1-2")
408 ServiceZEnd serviceZEnd = new ServiceZEndBuilder()
409 .setServiceRate(Uint32.valueOf(0))
410 .setNodeId("XPONDER-3-2")
412 return new PathComputationRequestInputBuilder()
413 .setServiceHandlerHeader(serviceHandlerHeader)
414 .setServiceName("service 1")
415 .setResourceReserve(true)
416 .setPceRoutingMetric(PceMetric.HopCount)
417 .setServiceAEnd(serviceAEnd)
418 .setServiceZEnd(serviceZEnd)
423 * Generate Data for Test 1 result 5-4.
425 * @param wl WaveLength
426 * @return output PathComputationRequestOutput data
428 public static PathComputationRequestOutput getPCE_test_result_54(Long wl) {
429 PathComputationRequestOutputBuilder outputBuilder = new PathComputationRequestOutputBuilder();
430 ResponseParameters responseParameters = new ResponseParametersBuilder()
431 .setPathDescription(createPathDescription(0L, wl, 0L, wl))
433 outputBuilder.setConfigurationResponseCommon(createCommonSuccessResponse())
434 .setResponseParameters(responseParameters);
435 return outputBuilder.build();
439 * Generate Data for Test 2 request 5-4.
442 * "pce:service-name": "service 1",
443 * "pce:resource-reserve": "true",
444 * "pce:service-handler-header": {
445 * "pce:request-id": "request 1"
447 * "pce:service-a-end": {
448 * "pce:service-rate": "0",
449 * "pce:node-id": "XPONDER-1-2"
451 * "pce:service-z-end": {
452 * "pce:service-rate": "0",
453 * "pce:node-id": "XPONDER-3-2"
455 * "pce:hard-constraints": {
457 * "node-id": [ "OpenROADM-2-2" ]
460 * "pce:pce-metric": "hop-count"
464 * @return input PathComputationRequestInput data
466 public static PathComputationRequestInput getPCE_test2_request_54() {
467 ServiceHandlerHeader serviceHandlerHeader = new ServiceHandlerHeaderBuilder()
468 .setRequestId("request 1")
470 ServiceAEnd serviceAEnd = new ServiceAEndBuilder()
471 .setServiceRate(Uint32.valueOf(0))
472 .setNodeId("XPONDER-1-2")
474 ServiceZEnd serviceZEnd = new ServiceZEndBuilder()
475 .setServiceRate(Uint32.valueOf(0))
476 .setNodeId("XPONDER-3-2")
478 return new PathComputationRequestInputBuilder()
479 .setServiceHandlerHeader(serviceHandlerHeader)
480 .setServiceName("service 1")
481 .setResourceReserve(true)
482 .setPceRoutingMetric(PceMetric.HopCount)
483 .setServiceAEnd(serviceAEnd)
484 .setServiceZEnd(serviceZEnd)
485 .setHardConstraints(new HardConstraintsBuilder()
486 .setExclude(new ExcludeBuilder()
487 .setNodeId(Arrays.asList(new NodeIdType("OpenROADM-2-2")))
489 .setInclude(new IncludeBuilder()
490 .setNodeId(Arrays.asList(new NodeIdType("XPONDER-1-2")))
492 .setLatency(new LatencyBuilder()
493 .setMaxLatency(BigDecimal.valueOf(3223))
500 * Generate Data for Test 2 result 5-4.
502 * @return output PathComputationRequestOutput data
504 public static PathComputationRequestOutput getPCE_test2_result_54() {
505 return new PathComputationRequestOutputBuilder()
506 .setConfigurationResponseCommon(createCommonSuccessResponse())
507 .setResponseParameters(new ResponseParametersBuilder()
508 .setPathDescription(createPathDescription(0L, 9L, 0L, 9L))
514 * Generate Data for Test 2 request 5-4.
517 * "pce:service-name": "service 1",
518 * "pce:resource-reserve": "true",
519 * "pce:service-handler-header": {
520 * "pce:request-id": "request 1"
522 * "pce:service-a-end": {
523 * "pce:service-rate": "0",
524 * "pce:node-id": "XPONDER-1-2"
526 * "pce:service-z-end": {
527 * "pce:service-rate": "0",
528 * "pce:node-id": "XPONDER-3-2"
530 * "pce:hard-constraints": {
532 * "node-id": [ "OpenROADM-2-1", "OpenROADM-2-2" ]
535 * "pce:pce-metric": "hop-count"
539 * @return input PathComputationRequestInput data
541 public static PathComputationRequestInput getPCE_test3_request_54() {
542 ServiceHandlerHeader serviceHandlerHeader = new ServiceHandlerHeaderBuilder()
543 .setRequestId("request 1")
546 ServiceAEnd serviceAEnd = new ServiceAEndBuilder()
547 .setServiceRate(Uint32.valueOf(100))
548 .setServiceFormat(ServiceFormat.Ethernet)
549 .setNodeId("XPONDER-1-2")
551 ServiceZEnd serviceZEnd = new ServiceZEndBuilder()
552 .setServiceRate(Uint32.valueOf(0))
553 .setServiceFormat(ServiceFormat.Ethernet)
554 .setNodeId("XPONDER-3-2")
556 return new PathComputationRequestInputBuilder()
557 .setServiceHandlerHeader(serviceHandlerHeader)
558 .setServiceName("service 1")
559 .setResourceReserve(true)
560 .setPceRoutingMetric(PceMetric.HopCount)
561 .setServiceAEnd(serviceAEnd)
562 .setServiceZEnd(serviceZEnd)
563 .setHardConstraints(new HardConstraintsBuilder()
564 .setExclude(new ExcludeBuilder()
565 .setNodeId(Arrays.asList(new NodeIdType("OpenROADM-2-1"), new NodeIdType("OpenROADM-2-2")))
572 * Generate Data for Test 3 result 5-4.
574 * @return output PathComputationRequestOutput data
576 public static PathComputationRequestOutput getPCE_test3_result_54() {
577 PathComputationRequestOutputBuilder outputBuilder = new PathComputationRequestOutputBuilder();
578 ResponseParameters responseParameters = new ResponseParametersBuilder()
579 .setPathDescription(createPathDescription(0L, 9L, 0L, 9L))
581 outputBuilder.setConfigurationResponseCommon(createCommonSuccessResponse())
582 .setResponseParameters(responseParameters);
583 return outputBuilder.build();
586 public static PathComputationRequestInput getPCE_simpletopology_test1_requestSetHardAndSoftConstrains() {
587 return new PathComputationRequestInputBuilder()
588 .setServiceHandlerHeader(new ServiceHandlerHeaderBuilder()
589 .setRequestId("request 1")
591 .setServiceName("service 1")
592 .setResourceReserve(true)
593 .setPceRoutingMetric(PceMetric.HopCount)
594 .setServiceAEnd(new ServiceAEndBuilder()
595 .setServiceRate(Uint32.valueOf(0))
596 .setNodeId("XPONDER-1-2")
598 .setServiceZEnd(new ServiceZEndBuilder()
599 .setServiceRate(Uint32.valueOf(0))
600 .setNodeId("XPONDER-3-2")
602 .setHardConstraints(new HardConstraintsBuilder().build())
603 .setSoftConstraints(new SoftConstraintsBuilder().build())
607 public static PathComputationRequestInput getPCE_simpletopology_test1_request() {
608 return new PathComputationRequestInputBuilder()
609 .setServiceHandlerHeader(new ServiceHandlerHeaderBuilder()
610 .setRequestId("request 1")
612 .setServiceName("service 1")
613 .setResourceReserve(true)
614 .setPceRoutingMetric(PceMetric.HopCount)
615 .setServiceAEnd(new ServiceAEndBuilder()
616 .setServiceRate(Uint32.valueOf(0))
617 .setNodeId("XPONDER-1-2")
619 .setServiceZEnd(new ServiceZEndBuilder()
620 .setServiceRate(Uint32.valueOf(0))
621 .setNodeId("XPONDER-3-2")
626 public static PathComputationRequestOutput getPCE_simpletopology_test1_result(Long wl) {
627 PathComputationRequestOutputBuilder outputBuilder = new PathComputationRequestOutputBuilder();
628 ResponseParameters responseParameters = new ResponseParametersBuilder()
629 .setPathDescription(createPathDescription(0L, wl, 0L, wl))
631 outputBuilder.setConfigurationResponseCommon(createCommonSuccessResponse())
632 .setResponseParameters(responseParameters);
633 return outputBuilder.build();
636 private static ConfigurationResponseCommon createCommonSuccessResponse() {
637 ConfigurationResponseCommonBuilder configurationResponseCommon = new ConfigurationResponseCommonBuilder()
638 .setAckFinalIndicator(ResponseCodes.FINAL_ACK_YES)
639 .setRequestId("request 1")
640 .setResponseCode(ResponseCodes.RESPONSE_OK)
641 .setResponseMessage("Path is calculated");
642 return configurationResponseCommon.build();
645 private static PathDescription createPathDescription(long azRate, long azWaveLength, long zaRate,
647 return new PathDescriptionBuilder()
648 .setAToZDirection(new AToZDirectionBuilder()
649 .setRate(Uint32.valueOf(azRate))
650 .setAToZWavelengthNumber(Uint32.valueOf(azWaveLength))
652 .setZToADirection(new ZToADirectionBuilder()
653 .setRate(Uint32.valueOf(zaRate))
654 .setZToAWavelengthNumber(Uint32.valueOf(zaWaveLength))
660 * Generate Data for Test Diversity test 1 request 5-4.
663 * "pce:service-name": "service 1",
664 * "pce:resource-reserve": "true",
665 * "pce:service-handler-header": {
666 * "pce:request-id": "request 1"
668 * "pce:service-a-end": {
669 * "pce:service-rate": "0",
670 * "pce:node-id": "XPONDER-1-1"
672 * "pce:service-z-end": {
673 * "pce:service-rate": "0",
674 * "pce:node-id": "XPONDER-3-1"
676 * "pce:hard-constraints": {
678 * "existing-service": ["Path test-1-54"],
679 * "existing-service-applicability": {
684 * "pce:pce-metric": "hop-count"
688 * @param base Path Computation Request Input base
689 * @return input PathComputationRequestInput data
691 public static PathComputationRequestInput build_diversity_from_request(PathComputationRequestInput base) {
692 return new PathComputationRequestInputBuilder(base)
693 .setServiceName("service 2")
694 .setServiceAEnd(new ServiceAEndBuilder()
695 .setServiceRate(Uint32.valueOf(0))
696 .setNodeId("XPONDER-1-1")
698 .setServiceZEnd(new ServiceZEndBuilder()
699 .setServiceRate(Uint32.valueOf(0))
700 .setNodeId("XPONDER-3-1")
702 .setHardConstraints(new HardConstraintsBuilder()
703 .setLatency(new LatencyBuilder()
704 .setMaxLatency(BigDecimal.valueOf(3223))
706 .setDiversity(new DiversityBuilder()
707 .setServiceIdentifierList(Map.of(
708 new ServiceIdentifierListKey(base.getServiceName()),
709 new org.opendaylight.yang.gen.v1.http.org.openroadm.routing.constraints.rev211210.diversity
710 .existing.service.constraints.ServiceIdentifierListBuilder()
711 .setServiceIndentifier(base.getServiceName())
712 .setServiceApplicability(new ServiceApplicabilityBuilder()
721 public static ServiceCreateInput buildServiceCreateInput() {
723 org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.service.create.input.ServiceAEnd serviceAEnd =
724 new org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.service.create.input
725 .ServiceAEndBuilder()
727 .setServiceRate(Uint32.valueOf(0))
728 .setNodeId(new NodeIdType("XPONDER-1-2"))
729 .setTxDirection(Map.of(
730 new TxDirectionKey(Uint8.ZERO),
731 new org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev211210.service.endpoint
732 .TxDirectionBuilder()
733 .setPort(new PortBuilder().build())
735 .setRxDirection(Map.of(
736 new RxDirectionKey(Uint8.ZERO),
737 new org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev211210.service.endpoint
738 .RxDirectionBuilder()
739 .setPort(new PortBuilder().build())
743 org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.service.create.input.ServiceZEnd serviceZEnd =
744 new org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.service.create.input
745 .ServiceZEndBuilder()
747 .setServiceRate(Uint32.valueOf(0))
748 .setNodeId(new NodeIdType("XPONDER-3-2"))
749 .setTxDirection(Map.of(
750 new TxDirectionKey(Uint8.ZERO),
751 new org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev211210.service.endpoint
752 .TxDirectionBuilder()
753 .setPort(new PortBuilder().build())
755 .setRxDirection(Map.of(
756 new RxDirectionKey(Uint8.ZERO),
757 new org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev211210.service.endpoint
758 .RxDirectionBuilder()
759 .setPort(new PortBuilder().build())
763 return new ServiceCreateInputBuilder()
764 .setCommonId("commonId")
765 .setConnectionType(ConnectionType.Service)
766 .setCustomer("Customer")
767 .setServiceName("service 1")
768 .setServiceAEnd(serviceAEnd)
769 .setServiceZEnd(serviceZEnd)
770 .setSdncRequestHeader(new SdncRequestHeaderBuilder()
771 .setRequestId("request 1")
776 public static PathComputationRequestInput getGnpyPCERequest(String nodeA, String nodeZ) {
777 ServiceHandlerHeader serviceHandlerHeader = new ServiceHandlerHeaderBuilder()
778 .setRequestId("request1")
780 ServiceAEnd serviceAEnd = new ServiceAEndBuilder()
781 .setServiceFormat(ServiceFormat.Ethernet)
782 .setServiceRate(Uint32.valueOf(100))
785 .setTxDirection(new TxDirectionBuilder().setPort(
787 .setPortDeviceName("Some port-device-name")
788 .setPortType("Some port-type")
789 .setPortName("Some port-name")
790 .setPortRack("Some port-rack")
791 .setPortShelf("Some port-shelf")
792 .setPortSlot("Some port-slot")
793 .setPortSubSlot("Some port-sub-slot")
796 .setRxDirection(new RxDirectionBuilder().setPort(
798 .setPortDeviceName("Some port-device-name")
799 .setPortType("Some port-type")
800 .setPortName("Some port-name")
801 .setPortRack("Some port-rack")
802 .setPortShelf("Some port-shelf")
803 .setPortSlot("Some port-slot")
804 .setPortSubSlot("Some port-sub-slot")
808 ServiceZEnd serviceZEnd = new ServiceZEndBuilder()
809 .setServiceFormat(ServiceFormat.Ethernet)
810 .setServiceRate(Uint32.valueOf(0))
811 .setClli("Some clli11")
813 .setTxDirection(new TxDirectionBuilder().setPort(
815 .setPortDeviceName("Some port-device-name")
816 .setPortType("Some port-type")
817 .setPortName("Some port-name")
818 .setPortRack("Some port-rack")
819 .setPortShelf("Some port-shelf")
820 .setPortSlot("Some port-slot")
821 .setPortSubSlot("Some port-sub-slot")
824 .setRxDirection(new RxDirectionBuilder().setPort(
826 .setPortDeviceName("Some port-device-name")
827 .setPortType("Some port-type")
828 .setPortName("Some port-name")
829 .setPortRack("Some port-rack")
830 .setPortShelf("Some port-shelf")
831 .setPortSlot("Some port-slot")
832 .setPortSubSlot("Some port-sub-slot")
836 return new PathComputationRequestInputBuilder()
837 .setServiceName("service1")
838 .setResourceReserve(true)
839 .setPceRoutingMetric(PceMetric.HopCount)
840 .setServiceHandlerHeader(serviceHandlerHeader)
841 .setServiceAEnd(serviceAEnd)
842 .setServiceZEnd(serviceZEnd)
843 .setHardConstraints(new HardConstraintsBuilder()
844 .setCustomerCode(Arrays.asList("Some customer-code"))
845 .setCoRouting(new CoRoutingBuilder()
846 .setServiceIdentifierList(Map.of(
847 new org.opendaylight.yang.gen.v1.http.org.openroadm.routing.constraints.rev211210.constraints.co
848 .routing.ServiceIdentifierListKey("Some existing-service"),
849 new ServiceIdentifierListBuilder().setServiceIdentifier("Some existing-service").build()))
852 .setSoftConstraints(new SoftConstraintsBuilder()
853 .setCustomerCode(Arrays.asList("Some customer-code"))
854 .setCoRouting(new CoRoutingBuilder()
855 .setServiceIdentifierList(Map.of(
856 new org.opendaylight.yang.gen.v1.http.org.openroadm.routing.constraints.rev211210.constraints.co
857 .routing.ServiceIdentifierListKey("Some existing-service"),
858 new ServiceIdentifierListBuilder().setServiceIdentifier("Some existing-service").build()))