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.rev210701.PathComputationRequestInput;
14 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev210701.PathComputationRequestInputBuilder;
15 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev210701.PathComputationRequestOutput;
16 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev210701.PathComputationRequestOutputBuilder;
17 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev210701.path.computation.request.input.ServiceAEnd;
18 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev210701.path.computation.request.input.ServiceAEndBuilder;
19 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev210701.path.computation.request.input.ServiceZEnd;
20 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev210701.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.rev210705.path.description.AToZDirection;
31 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev210705.path.description.AToZDirectionBuilder;
32 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev210705.path.description.ZToADirection;
33 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev210705.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 return new PathComputationRequestInputBuilder()
72 .setServiceHandlerHeader(serviceHandlerHeader)
76 public static PathComputationRequestInput getEmptyPCERequestServiceNameWithRequestId() {
77 ServiceHandlerHeader serviceHandlerHeader = new ServiceHandlerHeaderBuilder()
78 .setRequestId("request1")
80 return new PathComputationRequestInputBuilder()
81 .setServiceName("serviceName")
82 .setServiceHandlerHeader(serviceHandlerHeader)
86 public static PathComputationRequestInput getEmptyPCERequestServiceNameWithOutRequestId() {
87 ServiceHandlerHeader serviceHandlerHeader = new ServiceHandlerHeaderBuilder()
89 return new PathComputationRequestInputBuilder()
90 .setServiceName("serviceName")
91 .setServiceHandlerHeader(serviceHandlerHeader)
95 public static PathComputationRequestInput getPathComputationRequestInputWithCoRoutingOrGeneral2() {
96 ServiceHandlerHeader serviceHandlerHeader = new ServiceHandlerHeaderBuilder()
97 .setRequestId("request1")
99 ServiceAEnd serviceAEnd = new ServiceAEndBuilder()
100 .setServiceFormat(ServiceFormat.ODU)
101 .setServiceRate(Uint32.valueOf(100))
103 .setNodeId("XPONDER-2-2")
104 .setTxDirection(new TxDirectionBuilder().setPort(
106 .setPortDeviceName("Some port-device-name")
107 .setPortType("Some port-type")
108 .setPortName("Some port-name")
109 .setPortRack("Some port-rack")
110 .setPortShelf("Some port-shelf")
111 .setPortSlot("Some port-slot")
112 .setPortSubSlot("Some port-sub-slot")
115 .setRxDirection(new RxDirectionBuilder().setPort(
117 .setPortDeviceName("Some port-device-name")
118 .setPortType("Some port-type")
119 .setPortName("Some port-name")
120 .setPortRack("Some port-rack")
121 .setPortShelf("Some port-shelf")
122 .setPortSlot("Some port-slot")
123 .setPortSubSlot("Some port-sub-slot")
127 ServiceZEnd serviceZEnd = new ServiceZEndBuilder()
128 .setServiceFormat(ServiceFormat.ODU)
129 .setServiceRate(Uint32.valueOf(0))
130 .setClli("Some clli11")
131 .setNodeId("XPONDER-1-2")
132 .setTxDirection(new TxDirectionBuilder().setPort(
134 .setPortDeviceName("Some port-device-name")
135 .setPortType("Some port-type")
136 .setPortName("Some port-name")
137 .setPortRack("Some port-rack")
138 .setPortShelf("Some port-shelf")
139 .setPortSlot("Some port-slot")
140 .setPortSubSlot("Some port-sub-slot")
143 .setRxDirection(new RxDirectionBuilder().setPort(
145 .setPortDeviceName("Some port-device-name")
146 .setPortType("Some port-type")
147 .setPortName("Some port-name")
148 .setPortRack("Some port-rack")
149 .setPortShelf("Some port-shelf")
150 .setPortSlot("Some port-slot")
151 .setPortSubSlot("Some port-sub-slot")
155 return new PathComputationRequestInputBuilder()
156 .setServiceName("service1")
157 .setResourceReserve(true)
158 .setPceMetric(PceMetric.HopCount)
159 .setLocallyProtectedLinks(true)
160 .setServiceHandlerHeader(serviceHandlerHeader)
161 .setServiceAEnd(serviceAEnd)
162 .setServiceZEnd(serviceZEnd)
163 .setHardConstraints(new HardConstraintsBuilder()
164 .setCustomerCode(Arrays.asList("Some customer-code"))
165 .setCoRoutingOrGeneral(new CoRoutingBuilder()
166 .setCoRouting(new org.opendaylight.yang.gen.v1.http.org
167 .transportpce.b.c._interface.routing.constraints.rev171017
168 .constraints.sp.co.routing.or.general.co.routing.CoRoutingBuilder()
169 .setExistingService(Arrays.asList("Some existing-service"))
173 .setSoftConstraints(new SoftConstraintsBuilder()
174 .setCustomerCode(Arrays.asList("Some customer-code"))
175 .setCoRoutingOrGeneral(new CoRoutingBuilder()
176 .setCoRouting(new org.opendaylight.yang.gen.v1.http.org
177 .transportpce.b.c._interface.routing.constraints.rev171017
178 .constraints.sp.co.routing.or.general.co.routing.CoRoutingBuilder()
179 .setExistingService(Arrays.asList("Some existing-service"))
186 public static PathComputationRequestInput getPathComputationRequestInputWithCoRoutingOrGeneral() {
187 ServiceHandlerHeader serviceHandlerHeader = new ServiceHandlerHeaderBuilder()
188 .setRequestId("request1")
190 ServiceAEnd serviceAEnd = new ServiceAEndBuilder()
191 .setServiceFormat(ServiceFormat.Ethernet)
192 .setServiceRate(Uint32.valueOf(100))
194 .setNodeId("XPONDER-2-2")
195 .setTxDirection(new TxDirectionBuilder().setPort(
197 .setPortDeviceName("Some port-device-name")
198 .setPortType("Some port-type")
199 .setPortName("Some port-name")
200 .setPortRack("Some port-rack")
201 .setPortShelf("Some port-shelf")
202 .setPortSlot("Some port-slot")
203 .setPortSubSlot("Some port-sub-slot")
206 .setRxDirection(new RxDirectionBuilder().setPort(
208 .setPortDeviceName("Some port-device-name")
209 .setPortType("Some port-type")
210 .setPortName("Some port-name")
211 .setPortRack("Some port-rack")
212 .setPortShelf("Some port-shelf")
213 .setPortSlot("Some port-slot")
214 .setPortSubSlot("Some port-sub-slot")
218 ServiceZEnd serviceZEnd = new ServiceZEndBuilder()
219 .setServiceFormat(ServiceFormat.Ethernet)
220 .setServiceRate(Uint32.valueOf(0))
221 .setClli("Some clli11")
222 .setNodeId("XPONDER-1-2")
223 .setTxDirection(new TxDirectionBuilder().setPort(
225 .setPortDeviceName("Some port-device-name")
226 .setPortType("Some port-type")
227 .setPortName("Some port-name")
228 .setPortRack("Some port-rack")
229 .setPortShelf("Some port-shelf")
230 .setPortSlot("Some port-slot")
231 .setPortSubSlot("Some port-sub-slot")
234 .setRxDirection(new RxDirectionBuilder().setPort(
236 .setPortDeviceName("Some port-device-name")
237 .setPortType("Some port-type")
238 .setPortName("Some port-name")
239 .setPortRack("Some port-rack")
240 .setPortShelf("Some port-shelf")
241 .setPortSlot("Some port-slot")
242 .setPortSubSlot("Some port-sub-slot")
246 return new PathComputationRequestInputBuilder()
247 .setServiceName("service1")
248 .setResourceReserve(true)
249 .setPceMetric(PceMetric.HopCount)
250 .setLocallyProtectedLinks(true)
251 .setServiceHandlerHeader(serviceHandlerHeader)
252 .setServiceAEnd(serviceAEnd)
253 .setServiceZEnd(serviceZEnd)
254 .setHardConstraints(new HardConstraintsBuilder()
255 .setCustomerCode(Arrays.asList("Some customer-code"))
256 .setCoRoutingOrGeneral(new CoRoutingBuilder()
257 .setCoRouting(new org.opendaylight.yang.gen.v1.http.org
258 .transportpce.b.c._interface.routing.constraints.rev171017
259 .constraints.sp.co.routing.or.general.co.routing.CoRoutingBuilder()
260 .setExistingService(Arrays.asList("Some existing-service"))
264 .setSoftConstraints(new SoftConstraintsBuilder()
265 .setCustomerCode(Arrays.asList("Some customer-code"))
266 .setCoRoutingOrGeneral(new CoRoutingBuilder()
267 .setCoRouting(new org.opendaylight.yang.gen.v1.http.org
268 .transportpce.b.c._interface.routing.constraints.rev171017
269 .constraints.sp.co.routing.or.general.co.routing.CoRoutingBuilder()
270 .setExistingService(Arrays.asList("Some existing-service"))
277 public static PathComputationRequestInput getPCERequest() {
278 ServiceHandlerHeader serviceHandlerHeader = new ServiceHandlerHeaderBuilder()
279 .setRequestId("request1")
281 ServiceAEnd serviceAEnd = new ServiceAEndBuilder()
282 .setServiceFormat(ServiceFormat.Ethernet)
283 .setServiceRate(Uint32.valueOf(100))
285 .setNodeId("XPONDER-2-2")
286 .setTxDirection(new TxDirectionBuilder().setPort(
288 .setPortDeviceName("Some port-device-name")
289 .setPortType("Some port-type")
290 .setPortName("Some port-name")
291 .setPortRack("Some port-rack")
292 .setPortShelf("Some port-shelf")
293 .setPortSlot("Some port-slot")
294 .setPortSubSlot("Some port-sub-slot")
297 .setRxDirection(new RxDirectionBuilder().setPort(
299 .setPortDeviceName("Some port-device-name")
300 .setPortType("Some port-type")
301 .setPortName("Some port-name")
302 .setPortRack("Some port-rack")
303 .setPortShelf("Some port-shelf")
304 .setPortSlot("Some port-slot")
305 .setPortSubSlot("Some port-sub-slot")
309 ServiceZEnd serviceZEnd = new ServiceZEndBuilder()
310 .setServiceFormat(ServiceFormat.Ethernet)
311 .setServiceRate(Uint32.valueOf(0))
312 .setClli("Some clli11")
313 .setNodeId("XPONDER-1-2")
314 .setTxDirection(new TxDirectionBuilder().setPort(
316 .setPortDeviceName("Some port-device-name")
317 .setPortType("Some port-type")
318 .setPortName("Some port-name")
319 .setPortRack("Some port-rack")
320 .setPortShelf("Some port-shelf")
321 .setPortSlot("Some port-slot")
322 .setPortSubSlot("Some port-sub-slot")
325 .setRxDirection(new RxDirectionBuilder().setPort(
327 .setPortDeviceName("Some port-device-name")
328 .setPortType("Some port-type")
329 .setPortName("Some port-name")
330 .setPortRack("Some port-rack")
331 .setPortShelf("Some port-shelf")
332 .setPortSlot("Some port-slot")
333 .setPortSubSlot("Some port-sub-slot")
337 return new PathComputationRequestInputBuilder()
338 .setServiceName("service1")
339 .setResourceReserve(true)
340 .setPceMetric(PceMetric.HopCount)
341 .setLocallyProtectedLinks(true)
342 .setServiceHandlerHeader(serviceHandlerHeader)
343 .setServiceAEnd(serviceAEnd)
344 .setServiceZEnd(serviceZEnd)
345 .setHardConstraints(new HardConstraintsBuilder()
346 .setCustomerCode(Arrays.asList("Some customer-code"))
347 .setCoRoutingOrGeneral(new CoRoutingBuilder()
348 .setCoRouting(new org.opendaylight.yang.gen.v1.http.org
349 .transportpce.b.c._interface.routing.constraints.rev171017
350 .constraints.sp.co.routing.or.general.co.routing.CoRoutingBuilder()
351 .setExistingService(Arrays.asList("Some existing-service"))
355 .setSoftConstraints(new SoftConstraintsBuilder()
356 .setCustomerCode(Arrays.asList("Some customer-code"))
357 .setCoRoutingOrGeneral(new CoRoutingBuilder()
358 .setCoRouting(new org.opendaylight.yang.gen.v1.http.org
359 .transportpce.b.c._interface.routing.constraints.rev171017
360 .constraints.sp.co.routing.or.general.co.routing.CoRoutingBuilder()
361 .setExistingService(Arrays.asList("Some existing-service"))
368 public static PathComputationRequestOutput getFailedPCEResultYes() {
369 PathComputationRequestOutputBuilder outputBuilder = new PathComputationRequestOutputBuilder();
370 ConfigurationResponseCommonBuilder configurationResponseCommon = new ConfigurationResponseCommonBuilder()
371 .setAckFinalIndicator("Yes")
372 .setRequestId("request1")
373 .setResponseCode("Path not calculated")
374 .setResponseMessage("Service Name is not set");
375 outputBuilder.setConfigurationResponseCommon(configurationResponseCommon.build())
376 .setResponseParameters(null);
377 return outputBuilder.build();
380 public static PathComputationRequestOutput getPCEResultOk(Long wl) {
381 PathComputationRequestOutputBuilder outputBuilder = new PathComputationRequestOutputBuilder();
382 ResponseParameters responseParameters = new ResponseParametersBuilder()
383 .setPathDescription(createPathDescription(0L, wl, 0L, wl))
385 outputBuilder.setConfigurationResponseCommon(createCommonSuccessResponse())
386 .setResponseParameters(responseParameters);
387 return outputBuilder.build();
391 * Generate Data for Test 1 request 5-4.
394 * "pce:service-name": "service 1",
395 * "pce:resource-reserve": "true",
396 * "pce:service-handler-header": {
397 * "pce:request-id": "request 1"
399 * "pce:service-a-end": {
400 * "pce:service-rate": "0",
401 * "pce:node-id": "XPONDER-1-2"
403 * "pce:service-z-end": {
404 * "pce:service-rate": "0",
405 * "pce:node-id": "XPONDER-3-2"
407 * "pce:pce-metric": "hop-count"
411 * @return input PathComputationRequestInput data
413 public static PathComputationRequestInput getPCE_test1_request_54() {
414 ServiceHandlerHeader serviceHandlerHeader = new ServiceHandlerHeaderBuilder()
415 .setRequestId("request 1")
417 ServiceAEnd serviceAEnd = new ServiceAEndBuilder()
418 .setServiceRate(Uint32.valueOf(0))
419 .setNodeId("XPONDER-1-2")
421 ServiceZEnd serviceZEnd = new ServiceZEndBuilder()
422 .setServiceRate(Uint32.valueOf(0))
423 .setNodeId("XPONDER-3-2")
425 return new PathComputationRequestInputBuilder()
426 .setServiceHandlerHeader(serviceHandlerHeader)
427 .setServiceName("service 1")
428 .setResourceReserve(true)
429 .setPceMetric(PceMetric.HopCount)
430 .setServiceAEnd(serviceAEnd)
431 .setServiceZEnd(serviceZEnd)
436 * Generate Data for Test 1 result 5-4.
438 * @param wl WaveLength
439 * @return output PathComputationRequestOutput data
441 public static PathComputationRequestOutput getPCE_test_result_54(Long wl) {
442 PathComputationRequestOutputBuilder outputBuilder = new PathComputationRequestOutputBuilder();
443 ResponseParameters responseParameters = new ResponseParametersBuilder()
444 .setPathDescription(createPathDescription(0L, wl, 0L, wl))
446 outputBuilder.setConfigurationResponseCommon(createCommonSuccessResponse())
447 .setResponseParameters(responseParameters);
448 return outputBuilder.build();
452 * Generate Data for Test 2 request 5-4.
455 * "pce:service-name": "service 1",
456 * "pce:resource-reserve": "true",
457 * "pce:service-handler-header": {
458 * "pce:request-id": "request 1"
460 * "pce:service-a-end": {
461 * "pce:service-rate": "0",
462 * "pce:node-id": "XPONDER-1-2"
464 * "pce:service-z-end": {
465 * "pce:service-rate": "0",
466 * "pce:node-id": "XPONDER-3-2"
468 * "pce:hard-constraints": {
470 * "node-id": [ "OpenROADM-2-2" ]
473 * "pce:pce-metric": "hop-count"
477 * @return input PathComputationRequestInput data
479 public static PathComputationRequestInput getPCE_test2_request_54() {
480 ServiceHandlerHeader serviceHandlerHeader = new ServiceHandlerHeaderBuilder()
481 .setRequestId("request 1")
483 ServiceAEnd serviceAEnd = new ServiceAEndBuilder()
484 .setServiceRate(Uint32.valueOf(0))
485 .setNodeId("XPONDER-1-2")
487 ServiceZEnd serviceZEnd = new ServiceZEndBuilder()
488 .setServiceRate(Uint32.valueOf(0))
489 .setNodeId("XPONDER-3-2")
491 OrderedHops orderedHops = new OrderedHopsBuilder()
492 .setHopNumber(Uint16.valueOf(22))
493 .setHopType(new HopTypeBuilder()
494 .setHopType(new HopTypeBuilder().getHopType()).build())
496 return new PathComputationRequestInputBuilder()
497 .setServiceHandlerHeader(serviceHandlerHeader)
498 .setServiceName("service 1")
499 .setResourceReserve(true)
500 .setPceMetric(PceMetric.HopCount)
501 .setServiceAEnd(serviceAEnd)
502 .setServiceZEnd(serviceZEnd)
503 .setHardConstraints(new HardConstraintsBuilder()
504 .setCoRoutingOrGeneral(new GeneralBuilder()
505 .setExclude(new ExcludeBuilder()
506 .setNodeId(Arrays.asList("OpenROADM-2-2"))
508 .setLatency(new LatencyBuilder().setMaxLatency(Uint32.valueOf(3223)).build())
509 .setInclude(new IncludeBuilder()
510 .setOrderedHops(Map.of(orderedHops.key(),orderedHops))
518 * Generate Data for Test 2 result 5-4.
520 * @return output PathComputationRequestOutput data
522 public static PathComputationRequestOutput getPCE_test2_result_54() {
523 PathComputationRequestOutputBuilder outputBuilder = new PathComputationRequestOutputBuilder();
524 ResponseParameters responseParameters = new ResponseParametersBuilder()
525 .setPathDescription(createPathDescription(0L, 9L, 0L, 9L))
527 outputBuilder.setConfigurationResponseCommon(createCommonSuccessResponse())
528 .setResponseParameters(responseParameters);
529 return outputBuilder.build();
533 * Generate Data for Test 2 request 5-4.
536 * "pce:service-name": "service 1",
537 * "pce:resource-reserve": "true",
538 * "pce:service-handler-header": {
539 * "pce:request-id": "request 1"
541 * "pce:service-a-end": {
542 * "pce:service-rate": "0",
543 * "pce:node-id": "XPONDER-1-2"
545 * "pce:service-z-end": {
546 * "pce:service-rate": "0",
547 * "pce:node-id": "XPONDER-3-2"
549 * "pce:hard-constraints": {
551 * "node-id": [ "OpenROADM-2-1", "OpenROADM-2-2" ]
554 * "pce:pce-metric": "hop-count"
558 * @return input PathComputationRequestInput data
560 public static PathComputationRequestInput getPCE_test3_request_54() {
561 ServiceHandlerHeader serviceHandlerHeader = new ServiceHandlerHeaderBuilder()
562 .setRequestId("request 1")
565 ServiceAEnd serviceAEnd = new ServiceAEndBuilder()
566 .setServiceRate(Uint32.valueOf(100))
567 .setServiceFormat(ServiceFormat.Ethernet)
568 .setNodeId("XPONDER-1-2")
570 ServiceZEnd serviceZEnd = new ServiceZEndBuilder()
571 .setServiceRate(Uint32.valueOf(0))
572 .setServiceFormat(ServiceFormat.Ethernet)
573 .setNodeId("XPONDER-3-2")
575 return new PathComputationRequestInputBuilder()
576 .setServiceHandlerHeader(serviceHandlerHeader)
577 .setServiceName("service 1")
578 .setResourceReserve(true)
579 .setPceMetric(PceMetric.HopCount)
580 .setServiceAEnd(serviceAEnd)
581 .setServiceZEnd(serviceZEnd)
582 .setHardConstraints(new HardConstraintsBuilder()
583 .setCoRoutingOrGeneral(new GeneralBuilder()
584 .setExclude(new ExcludeBuilder()
585 .setNodeId(Arrays.asList("OpenROADM-2-1", "OpenROADM-2-2"))
593 * Generate Data for Test 3 result 5-4.
595 * @return output PathComputationRequestOutput data
597 public static PathComputationRequestOutput getPCE_test3_result_54() {
598 PathComputationRequestOutputBuilder outputBuilder = new PathComputationRequestOutputBuilder();
599 ResponseParameters responseParameters = new ResponseParametersBuilder()
600 .setPathDescription(createPathDescription(0L, 9L, 0L, 9L))
602 outputBuilder.setConfigurationResponseCommon(createCommonSuccessResponse())
603 .setResponseParameters(responseParameters);
604 return outputBuilder.build();
607 public static PathComputationRequestInput getPCE_simpletopology_test1_requestSetHardAndSoftConstrains() {
608 ServiceHandlerHeader serviceHandlerHeader = new ServiceHandlerHeaderBuilder()
609 .setRequestId("request 1")
611 ServiceAEnd serviceAEnd = new ServiceAEndBuilder()
612 .setServiceRate(Uint32.valueOf(0))
613 .setNodeId("XPONDER-1-2")
615 ServiceZEnd serviceZEnd = new ServiceZEndBuilder()
616 .setServiceRate(Uint32.valueOf(0))
617 .setNodeId("XPONDER-3-2")
619 HardConstraints hardConstrains = new HardConstraintsBuilder().build();
620 SoftConstraints softConstraints = new SoftConstraintsBuilder().build();
621 return new PathComputationRequestInputBuilder()
622 .setServiceHandlerHeader(serviceHandlerHeader)
623 .setServiceName("service 1")
624 .setResourceReserve(true)
625 .setPceMetric(PceMetric.HopCount)
626 .setServiceAEnd(serviceAEnd)
627 .setServiceZEnd(serviceZEnd)
628 .setHardConstraints(hardConstrains)
629 .setSoftConstraints(softConstraints)
633 public static PathComputationRequestInput getPCE_simpletopology_test1_request() {
634 ServiceHandlerHeader serviceHandlerHeader = new ServiceHandlerHeaderBuilder()
635 .setRequestId("request 1")
637 ServiceAEnd serviceAEnd = new ServiceAEndBuilder()
638 .setServiceRate(Uint32.valueOf(0))
639 .setNodeId("XPONDER-1-2")
641 ServiceZEnd serviceZEnd = new ServiceZEndBuilder()
642 .setServiceRate(Uint32.valueOf(0))
643 .setNodeId("XPONDER-3-2")
645 return new PathComputationRequestInputBuilder()
646 .setServiceHandlerHeader(serviceHandlerHeader)
647 .setServiceName("service 1")
648 .setResourceReserve(true)
649 .setPceMetric(PceMetric.HopCount)
650 .setServiceAEnd(serviceAEnd)
651 .setServiceZEnd(serviceZEnd)
655 public static PathComputationRequestOutput getPCE_simpletopology_test1_result(Long wl) {
656 PathComputationRequestOutputBuilder outputBuilder = new PathComputationRequestOutputBuilder();
657 ResponseParameters responseParameters = new ResponseParametersBuilder()
658 .setPathDescription(createPathDescription(0L, wl, 0L, wl))
660 outputBuilder.setConfigurationResponseCommon(createCommonSuccessResponse())
661 .setResponseParameters(responseParameters);
662 return outputBuilder.build();
665 private static ConfigurationResponseCommon createCommonSuccessResponse() {
666 ConfigurationResponseCommonBuilder configurationResponseCommon = new ConfigurationResponseCommonBuilder()
667 .setAckFinalIndicator(ResponseCodes.FINAL_ACK_YES)
668 .setRequestId("request 1")
669 .setResponseCode(ResponseCodes.RESPONSE_OK)
670 .setResponseMessage("Path is calculated");
671 return configurationResponseCommon.build();
674 private static PathDescription createPathDescription(long azRate, long azWaveLength, long zaRate,
676 AToZDirection atozDirection = new AToZDirectionBuilder()
677 .setRate(Uint32.valueOf(azRate))
678 .setAToZWavelengthNumber(Uint32.valueOf(azWaveLength))
680 ZToADirection ztoaDirection = new ZToADirectionBuilder()
681 .setRate(Uint32.valueOf(zaRate))
682 .setZToAWavelengthNumber(Uint32.valueOf(zaWaveLength))
684 return new PathDescriptionBuilder()
685 .setAToZDirection(atozDirection)
686 .setZToADirection(ztoaDirection)
691 * Generate Data for Test Diversity test 1 request 5-4.
694 * "pce:service-name": "service 1",
695 * "pce:resource-reserve": "true",
696 * "pce:service-handler-header": {
697 * "pce:request-id": "request 1"
699 * "pce:service-a-end": {
700 * "pce:service-rate": "0",
701 * "pce:node-id": "XPONDER-1-1"
703 * "pce:service-z-end": {
704 * "pce:service-rate": "0",
705 * "pce:node-id": "XPONDER-3-1"
707 * "pce:hard-constraints": {
709 * "existing-service": ["Path test-1-54"],
710 * "existing-service-applicability": {
715 * "pce:pce-metric": "hop-count"
719 * @param base Path Computation Request Input base
720 * @return input PathComputationRequestInput data
722 public static PathComputationRequestInput build_diversity_from_request(PathComputationRequestInput base) {
724 ExistingServiceApplicability nodeTrue = new ExistingServiceApplicabilityBuilder()
725 .setNode(true).build();
727 ServiceAEnd serviceAEnd = new ServiceAEndBuilder()
728 .setServiceRate(Uint32.valueOf(0))
729 .setNodeId("XPONDER-1-1")
731 ServiceZEnd serviceZEnd = new ServiceZEndBuilder()
732 .setServiceRate(Uint32.valueOf(0))
733 .setNodeId("XPONDER-3-1")
735 return new PathComputationRequestInputBuilder(base)
736 .setServiceName("service 2")
737 .setServiceAEnd(serviceAEnd)
738 .setServiceZEnd(serviceZEnd)
739 .setHardConstraints(new HardConstraintsBuilder()
740 .setCoRoutingOrGeneral(new GeneralBuilder()
741 .setLatency(new LatencyBuilder()
742 .setMaxLatency(Uint32.valueOf(3223)).build())
743 .setDiversity(new DiversityBuilder()
744 .setExistingService(Arrays.asList(base.getServiceName()))
745 .setExistingServiceApplicability(nodeTrue)
752 public static ServiceCreateInput buildServiceCreateInput() {
754 org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.service.create.input.ServiceAEnd serviceAEnd =
755 new org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531
756 .service.create.input.ServiceAEndBuilder()
758 .setServiceRate(Uint32.valueOf(0))
759 .setNodeId(new NodeIdType("XPONDER-1-2"))
760 .setTxDirection(new org.opendaylight.yang.gen.v1.http.org
761 .openroadm.common.service.types.rev190531.service.endpoint.TxDirectionBuilder()
762 .setPort(new PortBuilder().build())
764 .setRxDirection(new org.opendaylight.yang.gen.v1.http.org
765 .openroadm.common.service.types.rev190531.service.endpoint.RxDirectionBuilder()
766 .setPort(new PortBuilder().build())
770 org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.service.create.input.ServiceZEnd serviceZEnd =
771 new org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531
772 .service.create.input.ServiceZEndBuilder()
774 .setServiceRate(Uint32.valueOf(0))
775 .setNodeId(new NodeIdType("XPONDER-3-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())
785 return new ServiceCreateInputBuilder()
786 .setCommonId("commonId")
787 .setConnectionType(ConnectionType.Service)
788 .setCustomer("Customer")
789 .setServiceName("service 1")
790 .setServiceAEnd(serviceAEnd)
791 .setServiceZEnd(serviceZEnd)
792 .setSdncRequestHeader(new SdncRequestHeaderBuilder()
793 .setRequestId("request 1")
798 public static PathComputationRequestInput getGnpyPCERequest(String nodeA, String nodeZ) {
799 ServiceHandlerHeader serviceHandlerHeader = new ServiceHandlerHeaderBuilder()
800 .setRequestId("request1")
802 ServiceAEnd serviceAEnd = new ServiceAEndBuilder()
803 .setServiceFormat(ServiceFormat.Ethernet)
804 .setServiceRate(Uint32.valueOf(100))
807 .setTxDirection(new TxDirectionBuilder().setPort(
809 .setPortDeviceName("Some port-device-name")
810 .setPortType("Some port-type")
811 .setPortName("Some port-name")
812 .setPortRack("Some port-rack")
813 .setPortShelf("Some port-shelf")
814 .setPortSlot("Some port-slot")
815 .setPortSubSlot("Some port-sub-slot")
818 .setRxDirection(new RxDirectionBuilder().setPort(
820 .setPortDeviceName("Some port-device-name")
821 .setPortType("Some port-type")
822 .setPortName("Some port-name")
823 .setPortRack("Some port-rack")
824 .setPortShelf("Some port-shelf")
825 .setPortSlot("Some port-slot")
826 .setPortSubSlot("Some port-sub-slot")
830 ServiceZEnd serviceZEnd = new ServiceZEndBuilder()
831 .setServiceFormat(ServiceFormat.Ethernet)
832 .setServiceRate(Uint32.valueOf(0))
833 .setClli("Some clli11")
835 .setTxDirection(new TxDirectionBuilder().setPort(
837 .setPortDeviceName("Some port-device-name")
838 .setPortType("Some port-type")
839 .setPortName("Some port-name")
840 .setPortRack("Some port-rack")
841 .setPortShelf("Some port-shelf")
842 .setPortSlot("Some port-slot")
843 .setPortSubSlot("Some port-sub-slot")
846 .setRxDirection(new RxDirectionBuilder().setPort(
848 .setPortDeviceName("Some port-device-name")
849 .setPortType("Some port-type")
850 .setPortName("Some port-name")
851 .setPortRack("Some port-rack")
852 .setPortShelf("Some port-shelf")
853 .setPortSlot("Some port-slot")
854 .setPortSubSlot("Some port-sub-slot")
858 return new PathComputationRequestInputBuilder()
859 .setServiceName("service1")
860 .setResourceReserve(true)
861 .setPceMetric(PceMetric.HopCount)
862 .setLocallyProtectedLinks(true)
863 .setServiceHandlerHeader(serviceHandlerHeader)
864 .setServiceAEnd(serviceAEnd)
865 .setServiceZEnd(serviceZEnd)
866 .setHardConstraints(new HardConstraintsBuilder()
867 .setCustomerCode(Arrays.asList("Some customer-code"))
868 .setCoRoutingOrGeneral(new CoRoutingBuilder()
869 .setCoRouting(new org.opendaylight.yang.gen.v1.http.org
870 .transportpce.b.c._interface.routing.constraints.rev171017
871 .constraints.sp.co.routing.or.general.co.routing.CoRoutingBuilder()
872 .setExistingService(Arrays.asList("Some existing-service"))
876 .setSoftConstraints(new SoftConstraintsBuilder()
877 .setCustomerCode(Arrays.asList("Some customer-code"))
878 .setCoRoutingOrGeneral(new CoRoutingBuilder()
879 .setCoRouting(new org.opendaylight.yang.gen.v1.http.org
880 .transportpce.b.c._interface.routing.constraints.rev171017
881 .constraints.sp.co.routing.or.general.co.routing.CoRoutingBuilder()
882 .setExistingService(Arrays.asList("Some existing-service"))