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.rev201126.path.description.AToZDirection;
31 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev201126.path.description.AToZDirectionBuilder;
32 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev201126.path.description.ZToADirection;
33 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev201126.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")
574 ServiceAEnd serviceAEnd = new ServiceAEndBuilder()
575 .setServiceRate(Uint32.valueOf(0))
576 .setNodeId("XPONDER-1-2")
578 ServiceZEnd serviceZEnd = new ServiceZEndBuilder()
579 .setServiceRate(Uint32.valueOf(0))
580 .setNodeId("XPONDER-3-2")
582 PathComputationRequestInput input = new PathComputationRequestInputBuilder()
583 .setServiceHandlerHeader(serviceHandlerHeader)
584 .setServiceName("service 1")
585 .setResourceReserve(true)
586 .setPceMetric(PceMetric.HopCount)
587 .setServiceAEnd(serviceAEnd)
588 .setServiceZEnd(serviceZEnd)
589 .setHardConstraints(new HardConstraintsBuilder()
590 .setCoRoutingOrGeneral(new GeneralBuilder()
591 .setExclude(new ExcludeBuilder()
592 .setNodeId(Arrays.asList("OpenROADM-2-1", "OpenROADM-2-2"))
601 * Generate Data for Test 3 result 5-4.
603 * @return output PathComputationRequestOutput data
605 public static PathComputationRequestOutput getPCE_test3_result_54() {
606 PathComputationRequestOutputBuilder outputBuilder = new PathComputationRequestOutputBuilder();
607 ResponseParameters responseParameters = new ResponseParametersBuilder()
608 .setPathDescription(createPathDescription(0L, 9L, 0L, 9L))
610 outputBuilder.setConfigurationResponseCommon(createCommonSuccessResponse())
611 .setResponseParameters(responseParameters);
612 return outputBuilder.build();
615 public static PathComputationRequestInput getPCE_simpletopology_test1_requestSetHardAndSoftConstrains() {
616 ServiceHandlerHeader serviceHandlerHeader = new ServiceHandlerHeaderBuilder()
617 .setRequestId("request 1")
619 ServiceAEnd serviceAEnd = new ServiceAEndBuilder()
620 .setServiceRate(Uint32.valueOf(0))
621 .setNodeId("XPONDER-1-2")
623 ServiceZEnd serviceZEnd = new ServiceZEndBuilder()
624 .setServiceRate(Uint32.valueOf(0))
625 .setNodeId("XPONDER-3-2")
627 HardConstraints hardConstrains = new HardConstraintsBuilder().build();
628 SoftConstraints softConstraints = new SoftConstraintsBuilder().build();
629 PathComputationRequestInput input = new PathComputationRequestInputBuilder()
630 .setServiceHandlerHeader(serviceHandlerHeader)
631 .setServiceName("service 1")
632 .setResourceReserve(true)
633 .setPceMetric(PceMetric.HopCount)
634 .setServiceAEnd(serviceAEnd)
635 .setServiceZEnd(serviceZEnd)
636 .setHardConstraints(hardConstrains)
637 .setSoftConstraints(softConstraints)
642 public static PathComputationRequestInput getPCE_simpletopology_test1_request() {
643 ServiceHandlerHeader serviceHandlerHeader = new ServiceHandlerHeaderBuilder()
644 .setRequestId("request 1")
646 ServiceAEnd serviceAEnd = new ServiceAEndBuilder()
647 .setServiceRate(Uint32.valueOf(0))
648 .setNodeId("XPONDER-1-2")
650 ServiceZEnd serviceZEnd = new ServiceZEndBuilder()
651 .setServiceRate(Uint32.valueOf(0))
652 .setNodeId("XPONDER-3-2")
654 PathComputationRequestInput input = new PathComputationRequestInputBuilder()
655 .setServiceHandlerHeader(serviceHandlerHeader)
656 .setServiceName("service 1")
657 .setResourceReserve(true)
658 .setPceMetric(PceMetric.HopCount)
659 .setServiceAEnd(serviceAEnd)
660 .setServiceZEnd(serviceZEnd)
665 public static PathComputationRequestOutput getPCE_simpletopology_test1_result(Long wl) {
666 PathComputationRequestOutputBuilder outputBuilder = new PathComputationRequestOutputBuilder();
667 ResponseParameters responseParameters = new ResponseParametersBuilder()
668 .setPathDescription(createPathDescription(0L, wl, 0L, wl))
670 outputBuilder.setConfigurationResponseCommon(createCommonSuccessResponse())
671 .setResponseParameters(responseParameters);
672 return outputBuilder.build();
675 private static ConfigurationResponseCommon createCommonSuccessResponse() {
676 ConfigurationResponseCommonBuilder configurationResponseCommon = new ConfigurationResponseCommonBuilder()
677 .setAckFinalIndicator(ResponseCodes.FINAL_ACK_YES)
678 .setRequestId("request 1")
679 .setResponseCode(ResponseCodes.RESPONSE_OK)
680 .setResponseMessage("Path is calculated");
681 return configurationResponseCommon.build();
684 private static PathDescription createPathDescription(long azRate, long azWaveLength, long zaRate,
686 AToZDirection atozDirection = new AToZDirectionBuilder()
687 .setRate(Uint32.valueOf(azRate))
688 .setAToZWavelengthNumber(Uint32.valueOf(azWaveLength))
690 ZToADirection ztoaDirection = new ZToADirectionBuilder()
691 .setRate(Uint32.valueOf(zaRate))
692 .setZToAWavelengthNumber(Uint32.valueOf(zaWaveLength))
694 PathDescription pathDescription = new PathDescriptionBuilder()
695 .setAToZDirection(atozDirection)
696 .setZToADirection(ztoaDirection)
698 return pathDescription;
702 * Generate Data for Test Diversity test 1 request 5-4.
705 * "pce:service-name": "service 1",
706 * "pce:resource-reserve": "true",
707 * "pce:service-handler-header": {
708 * "pce:request-id": "request 1"
710 * "pce:service-a-end": {
711 * "pce:service-rate": "0",
712 * "pce:node-id": "XPONDER-1-1"
714 * "pce:service-z-end": {
715 * "pce:service-rate": "0",
716 * "pce:node-id": "XPONDER-3-1"
718 * "pce:hard-constraints": {
720 * "existing-service": ["Path test-1-54"],
721 * "existing-service-applicability": {
726 * "pce:pce-metric": "hop-count"
730 * @param base Path Computation Request Input base
731 * @return input PathComputationRequestInput data
733 public static PathComputationRequestInput build_diversity_from_request(PathComputationRequestInput base) {
735 ExistingServiceApplicability nodeTrue = new ExistingServiceApplicabilityBuilder()
736 .setNode(true).build();
738 ServiceAEnd serviceAEnd = new ServiceAEndBuilder()
739 .setServiceRate(Uint32.valueOf(0))
740 .setNodeId("XPONDER-1-1")
742 ServiceZEnd serviceZEnd = new ServiceZEndBuilder()
743 .setServiceRate(Uint32.valueOf(0))
744 .setNodeId("XPONDER-3-1")
747 PathComputationRequestInput input = new PathComputationRequestInputBuilder(base)
748 .setServiceName("service 2")
749 .setServiceAEnd(serviceAEnd)
750 .setServiceZEnd(serviceZEnd)
751 .setHardConstraints(new HardConstraintsBuilder()
752 .setCoRoutingOrGeneral(new GeneralBuilder()
753 .setLatency(new LatencyBuilder()
754 .setMaxLatency(Uint32.valueOf(3223)).build())
755 .setDiversity(new DiversityBuilder()
756 .setExistingService(Arrays.asList(base.getServiceName()))
757 .setExistingServiceApplicability(nodeTrue)
765 public static ServiceCreateInput buildServiceCreateInput() {
767 org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.service.create.input.ServiceAEnd serviceAEnd =
768 new org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531
769 .service.create.input.ServiceAEndBuilder()
771 .setServiceRate(Uint32.valueOf(0))
772 .setNodeId(new NodeIdType("XPONDER-1-2"))
773 .setTxDirection(new org.opendaylight.yang.gen.v1.http.org
774 .openroadm.common.service.types.rev190531.service.endpoint.TxDirectionBuilder()
775 .setPort(new PortBuilder().build())
777 .setRxDirection(new org.opendaylight.yang.gen.v1.http.org
778 .openroadm.common.service.types.rev190531.service.endpoint.RxDirectionBuilder()
779 .setPort(new PortBuilder().build())
783 org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.service.create.input.ServiceZEnd serviceZEnd =
784 new org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531
785 .service.create.input.ServiceZEndBuilder()
787 .setServiceRate(Uint32.valueOf(0))
788 .setNodeId(new NodeIdType("XPONDER-3-2"))
789 .setTxDirection(new org.opendaylight.yang.gen.v1.http.org
790 .openroadm.common.service.types.rev190531.service.endpoint.TxDirectionBuilder()
791 .setPort(new PortBuilder().build())
793 .setRxDirection(new org.opendaylight.yang.gen.v1.http.org
794 .openroadm.common.service.types.rev190531.service.endpoint.RxDirectionBuilder()
795 .setPort(new PortBuilder().build())
799 ServiceCreateInputBuilder builtInput = new ServiceCreateInputBuilder()
800 .setCommonId("commonId")
801 .setConnectionType(ConnectionType.Service)
802 .setCustomer("Customer")
803 .setServiceName("service 1")
804 .setServiceAEnd(serviceAEnd)
805 .setServiceZEnd(serviceZEnd)
806 .setSdncRequestHeader(new SdncRequestHeaderBuilder()
807 .setRequestId("request 1")
810 return builtInput.build();
813 public static PathComputationRequestInput getGnpyPCERequest(String nodeA, String nodeZ) {
814 ServiceHandlerHeader serviceHandlerHeader = new ServiceHandlerHeaderBuilder()
815 .setRequestId("request1")
817 ServiceAEnd serviceAEnd = new ServiceAEndBuilder()
818 .setServiceFormat(ServiceFormat.Ethernet)
819 .setServiceRate(Uint32.valueOf(100))
822 .setTxDirection(new TxDirectionBuilder().setPort(
824 .setPortDeviceName("Some port-device-name")
825 .setPortType("Some port-type")
826 .setPortName("Some port-name")
827 .setPortRack("Some port-rack")
828 .setPortShelf("Some port-shelf")
829 .setPortSlot("Some port-slot")
830 .setPortSubSlot("Some port-sub-slot")
833 .setRxDirection(new RxDirectionBuilder().setPort(
835 .setPortDeviceName("Some port-device-name")
836 .setPortType("Some port-type")
837 .setPortName("Some port-name")
838 .setPortRack("Some port-rack")
839 .setPortShelf("Some port-shelf")
840 .setPortSlot("Some port-slot")
841 .setPortSubSlot("Some port-sub-slot")
845 ServiceZEnd serviceZEnd = new ServiceZEndBuilder()
846 .setServiceFormat(ServiceFormat.Ethernet)
847 .setServiceRate(Uint32.valueOf(0))
848 .setClli("Some clli11")
850 .setTxDirection(new TxDirectionBuilder().setPort(
852 .setPortDeviceName("Some port-device-name")
853 .setPortType("Some port-type")
854 .setPortName("Some port-name")
855 .setPortRack("Some port-rack")
856 .setPortShelf("Some port-shelf")
857 .setPortSlot("Some port-slot")
858 .setPortSubSlot("Some port-sub-slot")
861 .setRxDirection(new RxDirectionBuilder().setPort(
863 .setPortDeviceName("Some port-device-name")
864 .setPortType("Some port-type")
865 .setPortName("Some port-name")
866 .setPortRack("Some port-rack")
867 .setPortShelf("Some port-shelf")
868 .setPortSlot("Some port-slot")
869 .setPortSubSlot("Some port-sub-slot")
873 PathComputationRequestInput input = new PathComputationRequestInputBuilder()
874 .setServiceName("service1")
875 .setResourceReserve(true)
876 .setPceMetric(PceMetric.HopCount)
877 .setLocallyProtectedLinks(true)
878 .setServiceHandlerHeader(serviceHandlerHeader)
879 .setServiceAEnd(serviceAEnd)
880 .setServiceZEnd(serviceZEnd)
881 .setHardConstraints(new HardConstraintsBuilder()
882 .setCustomerCode(Arrays.asList("Some customer-code"))
883 .setCoRoutingOrGeneral(new CoRoutingBuilder()
884 .setCoRouting(new org.opendaylight.yang.gen.v1.http.org
885 .transportpce.b.c._interface.routing.constraints.rev171017
886 .constraints.sp.co.routing.or.general.co.routing.CoRoutingBuilder()
887 .setExistingService(Arrays.asList("Some existing-service"))
891 .setSoftConstraints(new SoftConstraintsBuilder()
892 .setCustomerCode(Arrays.asList("Some customer-code"))
893 .setCoRoutingOrGeneral(new CoRoutingBuilder()
894 .setCoRouting(new org.opendaylight.yang.gen.v1.http.org
895 .transportpce.b.c._interface.routing.constraints.rev171017
896 .constraints.sp.co.routing.or.general.co.routing.CoRoutingBuilder()
897 .setExistingService(Arrays.asList("Some existing-service"))