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.util.Arrays;
12 import org.opendaylight.transportpce.common.ResponseCodes;
13 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev200128.PathComputationRequestInput;
14 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev200128.PathComputationRequestInputBuilder;
15 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev200128.PathComputationRequestOutput;
16 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev200128.PathComputationRequestOutputBuilder;
17 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev200128.path.computation.request.input.ServiceAEnd;
18 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev200128.path.computation.request.input.ServiceAEndBuilder;
19 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev200128.path.computation.request.input.ServiceZEnd;
20 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev200128.path.computation.request.input.ServiceZEndBuilder;
21 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.node.types.rev181130.NodeIdType;
22 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev190531.ConnectionType;
23 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev190531.configuration.response.common.ConfigurationResponseCommon;
24 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev190531.configuration.response.common.ConfigurationResponseCommonBuilder;
25 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev190531.sdnc.request.header.SdncRequestHeaderBuilder;
26 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev190531.service.port.PortBuilder;
27 import org.opendaylight.yang.gen.v1.http.org.openroadm.service.format.rev190531.ServiceFormat;
28 import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.ServiceCreateInput;
29 import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.ServiceCreateInputBuilder;
30 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev201210.path.description.AToZDirection;
31 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev201210.path.description.AToZDirectionBuilder;
32 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev201210.path.description.ZToADirection;
33 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev201210.path.description.ZToADirectionBuilder;
34 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints.rev171017.RoutingConstraintsSp.PceMetric;
35 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints.rev171017.constraints.sp.co.routing.or.general.CoRoutingBuilder;
36 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints.rev171017.constraints.sp.co.routing.or.general.GeneralBuilder;
37 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints.rev171017.constraints.sp.co.routing.or.general.general.DiversityBuilder;
38 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints.rev171017.constraints.sp.co.routing.or.general.general.ExcludeBuilder;
39 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints.rev171017.constraints.sp.co.routing.or.general.general.IncludeBuilder;
40 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints.rev171017.constraints.sp.co.routing.or.general.general.LatencyBuilder;
41 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints.rev171017.constraints.sp.co.routing.or.general.general.include_.OrderedHops;
42 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints.rev171017.constraints.sp.co.routing.or.general.general.include_.OrderedHopsBuilder;
43 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints.rev171017.diversity.existing.service.contraints.sp.ExistingServiceApplicability;
44 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints.rev171017.diversity.existing.service.contraints.sp.ExistingServiceApplicabilityBuilder;
45 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints.rev171017.ordered.constraints.sp.HopTypeBuilder;
46 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints.rev171017.routing.constraints.sp.HardConstraints;
47 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints.rev171017.routing.constraints.sp.HardConstraintsBuilder;
48 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints.rev171017.routing.constraints.sp.SoftConstraints;
49 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints.rev171017.routing.constraints.sp.SoftConstraintsBuilder;
50 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev200128.response.parameters.sp.ResponseParameters;
51 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev200128.response.parameters.sp.ResponseParametersBuilder;
52 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev200128.response.parameters.sp.response.parameters.PathDescription;
53 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev200128.response.parameters.sp.response.parameters.PathDescriptionBuilder;
54 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev200128.service.endpoint.sp.RxDirectionBuilder;
55 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev200128.service.endpoint.sp.TxDirectionBuilder;
56 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev200128.service.handler.header.ServiceHandlerHeader;
57 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev200128.service.handler.header.ServiceHandlerHeaderBuilder;
58 import org.opendaylight.yangtools.yang.common.Uint16;
59 import org.opendaylight.yangtools.yang.common.Uint32;
62 public final class PceTestData {
64 private PceTestData() {
67 public static PathComputationRequestInput getEmptyPCERequest() {
68 ServiceHandlerHeader serviceHandlerHeader = new ServiceHandlerHeaderBuilder()
69 .setRequestId("request1")
71 PathComputationRequestInput input = new PathComputationRequestInputBuilder()
72 .setServiceHandlerHeader(serviceHandlerHeader)
77 public static PathComputationRequestInput getEmptyPCERequestServiceNameWithRequestId() {
78 ServiceHandlerHeader serviceHandlerHeader = new ServiceHandlerHeaderBuilder()
79 .setRequestId("request1")
81 PathComputationRequestInput input = new PathComputationRequestInputBuilder()
82 .setServiceName("serviceName")
83 .setServiceHandlerHeader(serviceHandlerHeader)
88 public static PathComputationRequestInput getEmptyPCERequestServiceNameWithOutRequestId() {
89 ServiceHandlerHeader serviceHandlerHeader = new ServiceHandlerHeaderBuilder()
91 PathComputationRequestInput input = new PathComputationRequestInputBuilder()
92 .setServiceName("serviceName")
93 .setServiceHandlerHeader(serviceHandlerHeader)
98 public static PathComputationRequestInput getPathComputationRequestInputWithCoRoutingOrGeneral2() {
99 ServiceHandlerHeader serviceHandlerHeader = new ServiceHandlerHeaderBuilder()
100 .setRequestId("request1")
102 ServiceAEnd serviceAEnd = new ServiceAEndBuilder()
103 .setServiceFormat(ServiceFormat.ODU)
104 .setServiceRate(Uint32.valueOf(100))
106 .setNodeId("XPONDER-2-2")
107 .setTxDirection(new TxDirectionBuilder().setPort(
109 .setPortDeviceName("Some port-device-name")
110 .setPortType("Some port-type")
111 .setPortName("Some port-name")
112 .setPortRack("Some port-rack")
113 .setPortShelf("Some port-shelf")
114 .setPortSlot("Some port-slot")
115 .setPortSubSlot("Some port-sub-slot")
118 .setRxDirection(new RxDirectionBuilder().setPort(
120 .setPortDeviceName("Some port-device-name")
121 .setPortType("Some port-type")
122 .setPortName("Some port-name")
123 .setPortRack("Some port-rack")
124 .setPortShelf("Some port-shelf")
125 .setPortSlot("Some port-slot")
126 .setPortSubSlot("Some port-sub-slot")
130 ServiceZEnd serviceZEnd = new ServiceZEndBuilder()
131 .setServiceFormat(ServiceFormat.ODU)
132 .setServiceRate(Uint32.valueOf(0))
133 .setClli("Some clli11")
134 .setNodeId("XPONDER-1-2")
135 .setTxDirection(new TxDirectionBuilder().setPort(
137 .setPortDeviceName("Some port-device-name")
138 .setPortType("Some port-type")
139 .setPortName("Some port-name")
140 .setPortRack("Some port-rack")
141 .setPortShelf("Some port-shelf")
142 .setPortSlot("Some port-slot")
143 .setPortSubSlot("Some port-sub-slot")
146 .setRxDirection(new RxDirectionBuilder().setPort(
148 .setPortDeviceName("Some port-device-name")
149 .setPortType("Some port-type")
150 .setPortName("Some port-name")
151 .setPortRack("Some port-rack")
152 .setPortShelf("Some port-shelf")
153 .setPortSlot("Some port-slot")
154 .setPortSubSlot("Some port-sub-slot")
158 PathComputationRequestInput input = new PathComputationRequestInputBuilder()
159 .setServiceName("service1")
160 .setResourceReserve(true)
161 .setPceMetric(PceMetric.HopCount)
162 .setLocallyProtectedLinks(true)
163 .setServiceHandlerHeader(serviceHandlerHeader)
164 .setServiceAEnd(serviceAEnd)
165 .setServiceZEnd(serviceZEnd)
166 .setHardConstraints(new HardConstraintsBuilder()
167 .setCustomerCode(Arrays.asList("Some customer-code"))
168 .setCoRoutingOrGeneral(new CoRoutingBuilder()
169 .setCoRouting(new org.opendaylight.yang.gen.v1.http.org
170 .transportpce.b.c._interface.routing.constraints.rev171017
171 .constraints.sp.co.routing.or.general.co.routing.CoRoutingBuilder()
172 .setExistingService(Arrays.asList("Some existing-service"))
177 .setSoftConstraints(new SoftConstraintsBuilder()
178 .setCustomerCode(Arrays.asList("Some customer-code"))
179 .setCoRoutingOrGeneral(new CoRoutingBuilder()
180 .setCoRouting(new org.opendaylight.yang.gen.v1.http.org
181 .transportpce.b.c._interface.routing.constraints.rev171017
182 .constraints.sp.co.routing.or.general.co.routing.CoRoutingBuilder()
183 .setExistingService(Arrays.asList("Some existing-service"))
191 public static PathComputationRequestInput getPathComputationRequestInputWithCoRoutingOrGeneral() {
192 ServiceHandlerHeader serviceHandlerHeader = new ServiceHandlerHeaderBuilder()
193 .setRequestId("request1")
195 ServiceAEnd serviceAEnd = new ServiceAEndBuilder()
196 .setServiceFormat(ServiceFormat.Ethernet)
197 .setServiceRate(Uint32.valueOf(100))
199 .setNodeId("XPONDER-2-2")
200 .setTxDirection(new TxDirectionBuilder().setPort(
202 .setPortDeviceName("Some port-device-name")
203 .setPortType("Some port-type")
204 .setPortName("Some port-name")
205 .setPortRack("Some port-rack")
206 .setPortShelf("Some port-shelf")
207 .setPortSlot("Some port-slot")
208 .setPortSubSlot("Some port-sub-slot")
211 .setRxDirection(new RxDirectionBuilder().setPort(
213 .setPortDeviceName("Some port-device-name")
214 .setPortType("Some port-type")
215 .setPortName("Some port-name")
216 .setPortRack("Some port-rack")
217 .setPortShelf("Some port-shelf")
218 .setPortSlot("Some port-slot")
219 .setPortSubSlot("Some port-sub-slot")
223 ServiceZEnd serviceZEnd = new ServiceZEndBuilder()
224 .setServiceFormat(ServiceFormat.Ethernet)
225 .setServiceRate(Uint32.valueOf(0))
226 .setClli("Some clli11")
227 .setNodeId("XPONDER-1-2")
228 .setTxDirection(new TxDirectionBuilder().setPort(
230 .setPortDeviceName("Some port-device-name")
231 .setPortType("Some port-type")
232 .setPortName("Some port-name")
233 .setPortRack("Some port-rack")
234 .setPortShelf("Some port-shelf")
235 .setPortSlot("Some port-slot")
236 .setPortSubSlot("Some port-sub-slot")
239 .setRxDirection(new RxDirectionBuilder().setPort(
241 .setPortDeviceName("Some port-device-name")
242 .setPortType("Some port-type")
243 .setPortName("Some port-name")
244 .setPortRack("Some port-rack")
245 .setPortShelf("Some port-shelf")
246 .setPortSlot("Some port-slot")
247 .setPortSubSlot("Some port-sub-slot")
251 PathComputationRequestInput input = new PathComputationRequestInputBuilder()
252 .setServiceName("service1")
253 .setResourceReserve(true)
254 .setPceMetric(PceMetric.HopCount)
255 .setLocallyProtectedLinks(true)
256 .setServiceHandlerHeader(serviceHandlerHeader)
257 .setServiceAEnd(serviceAEnd)
258 .setServiceZEnd(serviceZEnd)
259 .setHardConstraints(new HardConstraintsBuilder()
260 .setCustomerCode(Arrays.asList("Some customer-code"))
261 .setCoRoutingOrGeneral(new CoRoutingBuilder()
262 .setCoRouting(new org.opendaylight.yang.gen.v1.http.org
263 .transportpce.b.c._interface.routing.constraints.rev171017
264 .constraints.sp.co.routing.or.general.co.routing.CoRoutingBuilder()
265 .setExistingService(Arrays.asList("Some existing-service"))
270 .setSoftConstraints(new SoftConstraintsBuilder()
271 .setCustomerCode(Arrays.asList("Some customer-code"))
272 .setCoRoutingOrGeneral(new CoRoutingBuilder()
273 .setCoRouting(new org.opendaylight.yang.gen.v1.http.org
274 .transportpce.b.c._interface.routing.constraints.rev171017
275 .constraints.sp.co.routing.or.general.co.routing.CoRoutingBuilder()
276 .setExistingService(Arrays.asList("Some existing-service"))
284 public static PathComputationRequestInput getPCERequest() {
285 ServiceHandlerHeader serviceHandlerHeader = new ServiceHandlerHeaderBuilder()
286 .setRequestId("request1")
288 ServiceAEnd serviceAEnd = new ServiceAEndBuilder()
289 .setServiceFormat(ServiceFormat.Ethernet)
290 .setServiceRate(Uint32.valueOf(100))
292 .setNodeId("XPONDER-2-2")
293 .setTxDirection(new TxDirectionBuilder().setPort(
295 .setPortDeviceName("Some port-device-name")
296 .setPortType("Some port-type")
297 .setPortName("Some port-name")
298 .setPortRack("Some port-rack")
299 .setPortShelf("Some port-shelf")
300 .setPortSlot("Some port-slot")
301 .setPortSubSlot("Some port-sub-slot")
304 .setRxDirection(new RxDirectionBuilder().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")
316 ServiceZEnd serviceZEnd = new ServiceZEndBuilder()
317 .setServiceFormat(ServiceFormat.Ethernet)
318 .setServiceRate(Uint32.valueOf(0))
319 .setClli("Some clli11")
320 .setNodeId("XPONDER-1-2")
321 .setTxDirection(new TxDirectionBuilder().setPort(
323 .setPortDeviceName("Some port-device-name")
324 .setPortType("Some port-type")
325 .setPortName("Some port-name")
326 .setPortRack("Some port-rack")
327 .setPortShelf("Some port-shelf")
328 .setPortSlot("Some port-slot")
329 .setPortSubSlot("Some port-sub-slot")
332 .setRxDirection(new RxDirectionBuilder().setPort(
334 .setPortDeviceName("Some port-device-name")
335 .setPortType("Some port-type")
336 .setPortName("Some port-name")
337 .setPortRack("Some port-rack")
338 .setPortShelf("Some port-shelf")
339 .setPortSlot("Some port-slot")
340 .setPortSubSlot("Some port-sub-slot")
344 PathComputationRequestInput input = new PathComputationRequestInputBuilder()
345 .setServiceName("service1")
346 .setResourceReserve(true)
347 .setPceMetric(PceMetric.HopCount)
348 .setLocallyProtectedLinks(true)
349 .setServiceHandlerHeader(serviceHandlerHeader)
350 .setServiceAEnd(serviceAEnd)
351 .setServiceZEnd(serviceZEnd)
352 .setHardConstraints(new HardConstraintsBuilder()
353 .setCustomerCode(Arrays.asList("Some customer-code"))
354 .setCoRoutingOrGeneral(new CoRoutingBuilder()
355 .setCoRouting(new org.opendaylight.yang.gen.v1.http.org
356 .transportpce.b.c._interface.routing.constraints.rev171017
357 .constraints.sp.co.routing.or.general.co.routing.CoRoutingBuilder()
358 .setExistingService(Arrays.asList("Some existing-service"))
362 .setSoftConstraints(new SoftConstraintsBuilder()
363 .setCustomerCode(Arrays.asList("Some customer-code"))
364 .setCoRoutingOrGeneral(new CoRoutingBuilder()
365 .setCoRouting(new org.opendaylight.yang.gen.v1.http.org
366 .transportpce.b.c._interface.routing.constraints.rev171017
367 .constraints.sp.co.routing.or.general.co.routing.CoRoutingBuilder()
368 .setExistingService(Arrays.asList("Some existing-service"))
376 public static PathComputationRequestOutput getFailedPCEResultYes() {
377 PathComputationRequestOutputBuilder outputBuilder = new PathComputationRequestOutputBuilder();
378 ConfigurationResponseCommonBuilder configurationResponseCommon = new ConfigurationResponseCommonBuilder()
379 .setAckFinalIndicator("Yes")
380 .setRequestId("request1")
381 .setResponseCode("Path not calculated")
382 .setResponseMessage("Service Name is not set");
383 outputBuilder.setConfigurationResponseCommon(configurationResponseCommon.build())
384 .setResponseParameters(null);
385 return outputBuilder.build();
388 public static PathComputationRequestOutput getPCEResultOk(Long wl) {
389 PathComputationRequestOutputBuilder outputBuilder = new PathComputationRequestOutputBuilder();
390 ResponseParameters responseParameters = new ResponseParametersBuilder()
391 .setPathDescription(createPathDescription(0L, wl, 0L, wl))
393 outputBuilder.setConfigurationResponseCommon(createCommonSuccessResponse())
394 .setResponseParameters(responseParameters);
395 return outputBuilder.build();
399 * Generate Data for Test 1 request 5-4.
402 * "pce:service-name": "service 1",
403 * "pce:resource-reserve": "true",
404 * "pce:service-handler-header": {
405 * "pce:request-id": "request 1"
407 * "pce:service-a-end": {
408 * "pce:service-rate": "0",
409 * "pce:node-id": "XPONDER-1-2"
411 * "pce:service-z-end": {
412 * "pce:service-rate": "0",
413 * "pce:node-id": "XPONDER-3-2"
415 * "pce:pce-metric": "hop-count"
419 * @return input PathComputationRequestInput data
421 public static PathComputationRequestInput getPCE_test1_request_54() {
422 ServiceHandlerHeader serviceHandlerHeader = new ServiceHandlerHeaderBuilder()
423 .setRequestId("request 1")
425 ServiceAEnd serviceAEnd = new ServiceAEndBuilder()
426 .setServiceRate(Uint32.valueOf(0))
427 .setNodeId("XPONDER-1-2")
429 ServiceZEnd serviceZEnd = new ServiceZEndBuilder()
430 .setServiceRate(Uint32.valueOf(0))
431 .setNodeId("XPONDER-3-2")
433 PathComputationRequestInput input = new PathComputationRequestInputBuilder()
434 .setServiceHandlerHeader(serviceHandlerHeader)
435 .setServiceName("service 1")
436 .setResourceReserve(true)
437 .setPceMetric(PceMetric.HopCount)
438 .setServiceAEnd(serviceAEnd)
439 .setServiceZEnd(serviceZEnd)
445 * Generate Data for Test 1 result 5-4.
447 * @param wl WaveLength
448 * @return output PathComputationRequestOutput data
450 public static PathComputationRequestOutput getPCE_test_result_54(Long wl) {
451 PathComputationRequestOutputBuilder outputBuilder = new PathComputationRequestOutputBuilder();
452 ResponseParameters responseParameters = new ResponseParametersBuilder()
453 .setPathDescription(createPathDescription(0L, wl, 0L, wl))
455 outputBuilder.setConfigurationResponseCommon(createCommonSuccessResponse())
456 .setResponseParameters(responseParameters);
457 return outputBuilder.build();
461 * Generate Data for Test 2 request 5-4.
464 * "pce:service-name": "service 1",
465 * "pce:resource-reserve": "true",
466 * "pce:service-handler-header": {
467 * "pce:request-id": "request 1"
469 * "pce:service-a-end": {
470 * "pce:service-rate": "0",
471 * "pce:node-id": "XPONDER-1-2"
473 * "pce:service-z-end": {
474 * "pce:service-rate": "0",
475 * "pce:node-id": "XPONDER-3-2"
477 * "pce:hard-constraints": {
479 * "node-id": [ "OpenROADM-2-2" ]
482 * "pce:pce-metric": "hop-count"
486 * @return input PathComputationRequestInput data
488 public static PathComputationRequestInput getPCE_test2_request_54() {
489 ServiceHandlerHeader serviceHandlerHeader = new ServiceHandlerHeaderBuilder()
490 .setRequestId("request 1")
492 ServiceAEnd serviceAEnd = new ServiceAEndBuilder()
493 .setServiceRate(Uint32.valueOf(0))
494 .setNodeId("XPONDER-1-2")
496 ServiceZEnd serviceZEnd = new ServiceZEndBuilder()
497 .setServiceRate(Uint32.valueOf(0))
498 .setNodeId("XPONDER-3-2")
500 OrderedHops orderedHops = new OrderedHopsBuilder()
501 .setHopNumber(Uint16.valueOf(22))
502 .setHopType(new HopTypeBuilder()
503 .setHopType(new HopTypeBuilder().getHopType()).build())
505 PathComputationRequestInput input = new PathComputationRequestInputBuilder()
506 .setServiceHandlerHeader(serviceHandlerHeader)
507 .setServiceName("service 1")
508 .setResourceReserve(true)
509 .setPceMetric(PceMetric.HopCount)
510 .setServiceAEnd(serviceAEnd)
511 .setServiceZEnd(serviceZEnd)
512 .setHardConstraints(new HardConstraintsBuilder()
513 .setCoRoutingOrGeneral(new GeneralBuilder()
514 .setExclude(new ExcludeBuilder()
515 .setNodeId(Arrays.asList("OpenROADM-2-2"))
517 .setLatency(new LatencyBuilder().setMaxLatency(Uint32.valueOf(3223)).build())
518 .setInclude(new IncludeBuilder()
519 .setOrderedHops(Map.of(orderedHops.key(),orderedHops))
528 * Generate Data for Test 2 result 5-4.
530 * @return output PathComputationRequestOutput data
532 public static PathComputationRequestOutput getPCE_test2_result_54() {
533 PathComputationRequestOutputBuilder outputBuilder = new PathComputationRequestOutputBuilder();
534 ResponseParameters responseParameters = new ResponseParametersBuilder()
535 .setPathDescription(createPathDescription(0L, 9L, 0L, 9L))
537 outputBuilder.setConfigurationResponseCommon(createCommonSuccessResponse())
538 .setResponseParameters(responseParameters);
539 return outputBuilder.build();
543 * Generate Data for Test 2 request 5-4.
546 * "pce:service-name": "service 1",
547 * "pce:resource-reserve": "true",
548 * "pce:service-handler-header": {
549 * "pce:request-id": "request 1"
551 * "pce:service-a-end": {
552 * "pce:service-rate": "0",
553 * "pce:node-id": "XPONDER-1-2"
555 * "pce:service-z-end": {
556 * "pce:service-rate": "0",
557 * "pce:node-id": "XPONDER-3-2"
559 * "pce:hard-constraints": {
561 * "node-id": [ "OpenROADM-2-1", "OpenROADM-2-2" ]
564 * "pce:pce-metric": "hop-count"
568 * @return input PathComputationRequestInput data
570 public static PathComputationRequestInput getPCE_test3_request_54() {
571 ServiceHandlerHeader serviceHandlerHeader = new ServiceHandlerHeaderBuilder()
572 .setRequestId("request 1")
575 ServiceAEnd serviceAEnd = new ServiceAEndBuilder()
576 .setServiceRate(Uint32.valueOf(100))
577 .setServiceFormat(ServiceFormat.Ethernet)
578 .setNodeId("XPONDER-1-2")
580 ServiceZEnd serviceZEnd = new ServiceZEndBuilder()
581 .setServiceRate(Uint32.valueOf(0))
582 .setServiceFormat(ServiceFormat.Ethernet)
583 .setNodeId("XPONDER-3-2")
585 PathComputationRequestInput input = new PathComputationRequestInputBuilder()
586 .setServiceHandlerHeader(serviceHandlerHeader)
587 .setServiceName("service 1")
588 .setResourceReserve(true)
589 .setPceMetric(PceMetric.HopCount)
590 .setServiceAEnd(serviceAEnd)
591 .setServiceZEnd(serviceZEnd)
592 .setHardConstraints(new HardConstraintsBuilder()
593 .setCoRoutingOrGeneral(new GeneralBuilder()
594 .setExclude(new ExcludeBuilder()
595 .setNodeId(Arrays.asList("OpenROADM-2-1", "OpenROADM-2-2"))
604 * Generate Data for Test 3 result 5-4.
606 * @return output PathComputationRequestOutput data
608 public static PathComputationRequestOutput getPCE_test3_result_54() {
609 PathComputationRequestOutputBuilder outputBuilder = new PathComputationRequestOutputBuilder();
610 ResponseParameters responseParameters = new ResponseParametersBuilder()
611 .setPathDescription(createPathDescription(0L, 9L, 0L, 9L))
613 outputBuilder.setConfigurationResponseCommon(createCommonSuccessResponse())
614 .setResponseParameters(responseParameters);
615 return outputBuilder.build();
618 public static PathComputationRequestInput getPCE_simpletopology_test1_requestSetHardAndSoftConstrains() {
619 ServiceHandlerHeader serviceHandlerHeader = new ServiceHandlerHeaderBuilder()
620 .setRequestId("request 1")
622 ServiceAEnd serviceAEnd = new ServiceAEndBuilder()
623 .setServiceRate(Uint32.valueOf(0))
624 .setNodeId("XPONDER-1-2")
626 ServiceZEnd serviceZEnd = new ServiceZEndBuilder()
627 .setServiceRate(Uint32.valueOf(0))
628 .setNodeId("XPONDER-3-2")
630 HardConstraints hardConstrains = new HardConstraintsBuilder().build();
631 SoftConstraints softConstraints = new SoftConstraintsBuilder().build();
632 PathComputationRequestInput input = new PathComputationRequestInputBuilder()
633 .setServiceHandlerHeader(serviceHandlerHeader)
634 .setServiceName("service 1")
635 .setResourceReserve(true)
636 .setPceMetric(PceMetric.HopCount)
637 .setServiceAEnd(serviceAEnd)
638 .setServiceZEnd(serviceZEnd)
639 .setHardConstraints(hardConstrains)
640 .setSoftConstraints(softConstraints)
645 public static PathComputationRequestInput getPCE_simpletopology_test1_request() {
646 ServiceHandlerHeader serviceHandlerHeader = new ServiceHandlerHeaderBuilder()
647 .setRequestId("request 1")
649 ServiceAEnd serviceAEnd = new ServiceAEndBuilder()
650 .setServiceRate(Uint32.valueOf(0))
651 .setNodeId("XPONDER-1-2")
653 ServiceZEnd serviceZEnd = new ServiceZEndBuilder()
654 .setServiceRate(Uint32.valueOf(0))
655 .setNodeId("XPONDER-3-2")
657 PathComputationRequestInput input = new PathComputationRequestInputBuilder()
658 .setServiceHandlerHeader(serviceHandlerHeader)
659 .setServiceName("service 1")
660 .setResourceReserve(true)
661 .setPceMetric(PceMetric.HopCount)
662 .setServiceAEnd(serviceAEnd)
663 .setServiceZEnd(serviceZEnd)
668 public static PathComputationRequestOutput getPCE_simpletopology_test1_result(Long wl) {
669 PathComputationRequestOutputBuilder outputBuilder = new PathComputationRequestOutputBuilder();
670 ResponseParameters responseParameters = new ResponseParametersBuilder()
671 .setPathDescription(createPathDescription(0L, wl, 0L, wl))
673 outputBuilder.setConfigurationResponseCommon(createCommonSuccessResponse())
674 .setResponseParameters(responseParameters);
675 return outputBuilder.build();
678 private static ConfigurationResponseCommon createCommonSuccessResponse() {
679 ConfigurationResponseCommonBuilder configurationResponseCommon = new ConfigurationResponseCommonBuilder()
680 .setAckFinalIndicator(ResponseCodes.FINAL_ACK_YES)
681 .setRequestId("request 1")
682 .setResponseCode(ResponseCodes.RESPONSE_OK)
683 .setResponseMessage("Path is calculated");
684 return configurationResponseCommon.build();
687 private static PathDescription createPathDescription(long azRate, long azWaveLength, long zaRate,
689 AToZDirection atozDirection = new AToZDirectionBuilder()
690 .setRate(Uint32.valueOf(azRate))
691 .setAToZWavelengthNumber(Uint32.valueOf(azWaveLength))
693 ZToADirection ztoaDirection = new ZToADirectionBuilder()
694 .setRate(Uint32.valueOf(zaRate))
695 .setZToAWavelengthNumber(Uint32.valueOf(zaWaveLength))
697 PathDescription pathDescription = new PathDescriptionBuilder()
698 .setAToZDirection(atozDirection)
699 .setZToADirection(ztoaDirection)
701 return pathDescription;
705 * Generate Data for Test Diversity test 1 request 5-4.
708 * "pce:service-name": "service 1",
709 * "pce:resource-reserve": "true",
710 * "pce:service-handler-header": {
711 * "pce:request-id": "request 1"
713 * "pce:service-a-end": {
714 * "pce:service-rate": "0",
715 * "pce:node-id": "XPONDER-1-1"
717 * "pce:service-z-end": {
718 * "pce:service-rate": "0",
719 * "pce:node-id": "XPONDER-3-1"
721 * "pce:hard-constraints": {
723 * "existing-service": ["Path test-1-54"],
724 * "existing-service-applicability": {
729 * "pce:pce-metric": "hop-count"
733 * @param base Path Computation Request Input base
734 * @return input PathComputationRequestInput data
736 public static PathComputationRequestInput build_diversity_from_request(PathComputationRequestInput base) {
738 ExistingServiceApplicability nodeTrue = new ExistingServiceApplicabilityBuilder()
739 .setNode(true).build();
741 ServiceAEnd serviceAEnd = new ServiceAEndBuilder()
742 .setServiceRate(Uint32.valueOf(0))
743 .setNodeId("XPONDER-1-1")
745 ServiceZEnd serviceZEnd = new ServiceZEndBuilder()
746 .setServiceRate(Uint32.valueOf(0))
747 .setNodeId("XPONDER-3-1")
750 PathComputationRequestInput input = new PathComputationRequestInputBuilder(base)
751 .setServiceName("service 2")
752 .setServiceAEnd(serviceAEnd)
753 .setServiceZEnd(serviceZEnd)
754 .setHardConstraints(new HardConstraintsBuilder()
755 .setCoRoutingOrGeneral(new GeneralBuilder()
756 .setLatency(new LatencyBuilder()
757 .setMaxLatency(Uint32.valueOf(3223)).build())
758 .setDiversity(new DiversityBuilder()
759 .setExistingService(Arrays.asList(base.getServiceName()))
760 .setExistingServiceApplicability(nodeTrue)
768 public static ServiceCreateInput buildServiceCreateInput() {
770 org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.service.create.input.ServiceAEnd serviceAEnd =
771 new org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531
772 .service.create.input.ServiceAEndBuilder()
774 .setServiceRate(Uint32.valueOf(0))
775 .setNodeId(new NodeIdType("XPONDER-1-2"))
776 .setTxDirection(new org.opendaylight.yang.gen.v1.http.org
777 .openroadm.common.service.types.rev190531.service.endpoint.TxDirectionBuilder()
778 .setPort(new PortBuilder().build())
780 .setRxDirection(new org.opendaylight.yang.gen.v1.http.org
781 .openroadm.common.service.types.rev190531.service.endpoint.RxDirectionBuilder()
782 .setPort(new PortBuilder().build())
786 org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.service.create.input.ServiceZEnd serviceZEnd =
787 new org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531
788 .service.create.input.ServiceZEndBuilder()
790 .setServiceRate(Uint32.valueOf(0))
791 .setNodeId(new NodeIdType("XPONDER-3-2"))
792 .setTxDirection(new org.opendaylight.yang.gen.v1.http.org
793 .openroadm.common.service.types.rev190531.service.endpoint.TxDirectionBuilder()
794 .setPort(new PortBuilder().build())
796 .setRxDirection(new org.opendaylight.yang.gen.v1.http.org
797 .openroadm.common.service.types.rev190531.service.endpoint.RxDirectionBuilder()
798 .setPort(new PortBuilder().build())
802 ServiceCreateInputBuilder builtInput = new ServiceCreateInputBuilder()
803 .setCommonId("commonId")
804 .setConnectionType(ConnectionType.Service)
805 .setCustomer("Customer")
806 .setServiceName("service 1")
807 .setServiceAEnd(serviceAEnd)
808 .setServiceZEnd(serviceZEnd)
809 .setSdncRequestHeader(new SdncRequestHeaderBuilder()
810 .setRequestId("request 1")
813 return builtInput.build();
816 public static PathComputationRequestInput getGnpyPCERequest(String nodeA, String nodeZ) {
817 ServiceHandlerHeader serviceHandlerHeader = new ServiceHandlerHeaderBuilder()
818 .setRequestId("request1")
820 ServiceAEnd serviceAEnd = new ServiceAEndBuilder()
821 .setServiceFormat(ServiceFormat.Ethernet)
822 .setServiceRate(Uint32.valueOf(100))
825 .setTxDirection(new TxDirectionBuilder().setPort(
827 .setPortDeviceName("Some port-device-name")
828 .setPortType("Some port-type")
829 .setPortName("Some port-name")
830 .setPortRack("Some port-rack")
831 .setPortShelf("Some port-shelf")
832 .setPortSlot("Some port-slot")
833 .setPortSubSlot("Some port-sub-slot")
836 .setRxDirection(new RxDirectionBuilder().setPort(
838 .setPortDeviceName("Some port-device-name")
839 .setPortType("Some port-type")
840 .setPortName("Some port-name")
841 .setPortRack("Some port-rack")
842 .setPortShelf("Some port-shelf")
843 .setPortSlot("Some port-slot")
844 .setPortSubSlot("Some port-sub-slot")
848 ServiceZEnd serviceZEnd = new ServiceZEndBuilder()
849 .setServiceFormat(ServiceFormat.Ethernet)
850 .setServiceRate(Uint32.valueOf(0))
851 .setClli("Some clli11")
853 .setTxDirection(new TxDirectionBuilder().setPort(
855 .setPortDeviceName("Some port-device-name")
856 .setPortType("Some port-type")
857 .setPortName("Some port-name")
858 .setPortRack("Some port-rack")
859 .setPortShelf("Some port-shelf")
860 .setPortSlot("Some port-slot")
861 .setPortSubSlot("Some port-sub-slot")
864 .setRxDirection(new RxDirectionBuilder().setPort(
866 .setPortDeviceName("Some port-device-name")
867 .setPortType("Some port-type")
868 .setPortName("Some port-name")
869 .setPortRack("Some port-rack")
870 .setPortShelf("Some port-shelf")
871 .setPortSlot("Some port-slot")
872 .setPortSubSlot("Some port-sub-slot")
876 PathComputationRequestInput input = new PathComputationRequestInputBuilder()
877 .setServiceName("service1")
878 .setResourceReserve(true)
879 .setPceMetric(PceMetric.HopCount)
880 .setLocallyProtectedLinks(true)
881 .setServiceHandlerHeader(serviceHandlerHeader)
882 .setServiceAEnd(serviceAEnd)
883 .setServiceZEnd(serviceZEnd)
884 .setHardConstraints(new HardConstraintsBuilder()
885 .setCustomerCode(Arrays.asList("Some customer-code"))
886 .setCoRoutingOrGeneral(new CoRoutingBuilder()
887 .setCoRouting(new org.opendaylight.yang.gen.v1.http.org
888 .transportpce.b.c._interface.routing.constraints.rev171017
889 .constraints.sp.co.routing.or.general.co.routing.CoRoutingBuilder()
890 .setExistingService(Arrays.asList("Some existing-service"))
894 .setSoftConstraints(new SoftConstraintsBuilder()
895 .setCustomerCode(Arrays.asList("Some customer-code"))
896 .setCoRoutingOrGeneral(new CoRoutingBuilder()
897 .setCoRouting(new org.opendaylight.yang.gen.v1.http.org
898 .transportpce.b.c._interface.routing.constraints.rev171017
899 .constraints.sp.co.routing.or.general.co.routing.CoRoutingBuilder()
900 .setExistingService(Arrays.asList("Some existing-service"))