+++ /dev/null
-/*
- * Copyright © 2020 Orange, Inc. and others. All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-
-package org.opendaylight.transportpce.pce;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.Test;
-import org.opendaylight.transportpce.common.NetworkUtils;
-import org.opendaylight.transportpce.pce.networkanalyzer.PceLink;
-import org.opendaylight.transportpce.pce.networkanalyzer.PceOpticalNode;
-import org.opendaylight.transportpce.pce.networkanalyzer.PceResult;
-import org.opendaylight.transportpce.test.AbstractTest;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev181130.OpenroadmNodeType;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.service.format.rev190531.ServiceFormat;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.NetworkId;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.NodeId;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks.network.Node;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks.network.NodeBuilder;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks.network.NodeKey;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks.network.node.SupportingNode;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks.network.node.SupportingNodeBuilder;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.LinkId;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network.Link;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network.LinkBuilder;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network.LinkKey;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network.link.DestinationBuilder;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network.link.SourceBuilder;
-
-
-
-public class PcePathDescriptionTest extends AbstractTest {
-
- private List<PceLink> pathAtoZ = null;
- private List<PceLink> pathZtoA = null;
- private PceResult rc;
- private Map<LinkId, PceLink> allPceLinks = null;
- private static PcePathDescription pcePathDescription = null;
- private static final String LINK_ID_FORMAT = "%1$s-%2$sto%3$s-%4$s";
- private PceSendingPceRPCs pceSendingPceRPCs;
-
- @Before
- public void setup() {
-
- Link link = createLink("srcNode", "destNode", "srcTp", "destTp").build();
-
-
- /*PceOtnNode pceOtnNode =
- new PceOtnNode(node, OpenroadmNodeType.DEGREE, new NodeId("optical"), ServiceFormat.OTM.getName(), "test");*/
- //PceLink pceLink = new PceLink(link, pceOpticalNode, pceOpticalNode);
- /* rc = new PceResult();
-
- pcePathDescription = new PcePathDescription(List.of(pceLink), new HashMap<>(), rc);*/
- }
-
-
- @Test
- public void buildPceOpticalNodeRoadmTest() {
- NodeBuilder node1Builder = getNodeBuilder(geSupportingNodes());
- Node node = node1Builder.build();
-
- PceOpticalNode pceOpticalNode = new PceOpticalNode(node,
- OpenroadmNodeType.ROADM, new NodeId("optical"), ServiceFormat.OMS, "test");
- pceOpticalNode.initSrgTps();
- pceOpticalNode.initXndrTps();
- pceOpticalNode.initWLlist();
- Assert.assertFalse(pceOpticalNode.isValid());
- Assert.assertFalse(pceOpticalNode.checkWL(12));
- Assert.assertTrue(pceOpticalNode.checkTP("testTP"));
- }
-
- private List<SupportingNode> geSupportingNodes() {
- List<SupportingNode> supportingNodes1 = new ArrayList<>();
-
- supportingNodes1
- .add(new SupportingNodeBuilder()
- .setNodeRef(new NodeId("node 2"))
- .setNetworkRef(new NetworkId(NetworkUtils.UNDERLAY_NETWORK_ID))
- .build());
- return supportingNodes1;
- }
-
- private NodeBuilder getNodeBuilder(List<SupportingNode> supportingNodes1) {
- return new NodeBuilder()
- .setNodeId(new NodeId("node 1"))
- .withKey(new NodeKey(new NodeId("node 1")))
- .setSupportingNode(supportingNodes1);
- }
-
- private static LinkBuilder createLink(String srcNode, String destNode, String srcTp, String destTp) {
- //create source link
- SourceBuilder ietfSrcLinkBldr = new SourceBuilder().setSourceNode(new NodeId(srcNode)).setSourceTp(srcTp);
- //create destination link
- DestinationBuilder ietfDestLinkBldr = new DestinationBuilder().setDestNode(new NodeId(destNode))
- .setDestTp(destTp);
- LinkId linkId = new LinkId(String.format(LINK_ID_FORMAT, srcNode, srcTp, destNode, destTp));
- return new LinkBuilder()
- .setSource(ietfSrcLinkBldr.build())
- .setDestination(ietfDestLinkBldr.build())
- .setLinkId(linkId)
- .withKey(new LinkKey(linkId));
- }
-}
@Before
public void setup() throws Exception {
// networkTransactionService = Mockito.mock(NetworkTransactionService.class);
+ PceTestUtils.writeNetworkIntoDataStore(dataBroker, this.getDataStoreContextUtil(),
+ TransactionUtils.getNetworkForSpanLoss());
networkTransactionService = new NetworkTransactionImpl(new RequestProcessor(dataBroker));
- PceTestUtils.writeNetworkIntoDataStore(dataBroker, dataStoreContext, TransactionUtils.getNetworkForSpanLoss());
+
}
@Test
public void testNoHardOrSoftConstrainsExists() {
+ PceTestData.getPCE_test2_request_54().getSoftConstraints();
pceConstraintsCalc = new PceConstraintsCalc(PceTestData
.getEmptyPCERequest(), networkTransactionService);
}
- @Test(expected = NullPointerException.class)
+ @Test()
public void testHardConstrainsExists() {
pceConstraintsCalc = new PceConstraintsCalc(PceTestData
- .getPCE_test2_request_54(), networkTransactionService);
+ .getPCE_simpletopology_test1_requestSetHardAndSoftConstrains(), networkTransactionService);
+ }
+
+ @Test()
+ public void testHardConstrainsExists1() {
+ pceConstraintsCalc = new PceConstraintsCalc(PceTestData
+ .getPathComputationRequestInputWithCoRoutingOrGeneral(), networkTransactionService);
}
@Test
.getPCERequest(), networkTransactionService);
}
+ @Test(expected = Exception.class)
+ public void testHardConstrainsExists2() {
+ pceConstraintsCalc = new PceConstraintsCalc(PceTestData
+ .build_diversity_from_request(PceTestData.getPCERequest()), networkTransactionService);
+ }
+
+ @Test()
+ public void testHardConstrainsExists3() {
+ pceConstraintsCalc = new PceConstraintsCalc(PceTestData
+ .getEmptyPCERequestServiceNameWithRequestId(), networkTransactionService);
+ }
+
+ @Test(expected = Exception.class)
+ public void testHardConstrainsExists4() {
+ pceConstraintsCalc = new PceConstraintsCalc(PceTestData
+ .getPCE_test2_request_54(), networkTransactionService);
+ }
+
}
package org.opendaylight.transportpce.pce.graph;
import java.util.Map;
+import java.util.Optional;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev200128.PathComputationRequestInput;
import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev181130.OpenroadmNodeType;
import org.opendaylight.yang.gen.v1.http.org.openroadm.service.format.rev190531.ServiceFormat;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints.rev171017.RoutingConstraintsSp;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.NodeId;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks.network.Node;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network.Link;
"OpenROADM-3-1-DEG1",
"DEG1-TTP-TX", "DEG1-TTP-RX").build();
- node = NodeUtils.getNodeBuilder(NodeUtils.geSupportingNodes()).build();
+ node = NodeUtils.getNodeBuilder(NodeUtils.geSupportingNodes()).build();
pceOpticalNode = new PceOpticalNode(node,
OpenroadmNodeType.SRG, new NodeId("OpenROADM-3-2-DEG1"), ServiceFormat.Ethernet,
"DEGREE");
+ pceOpticalNode.checkWL(1);
+ pceOpticalNode.checkWL(2);
pceOpticalNode2 = new PceOpticalNode(node,
OpenroadmNodeType.SRG, new NodeId("OpenROADM-3-1-DEG1"), ServiceFormat.Ethernet,
"DEGREE");
-
+ pceOpticalNode2.checkWL(1);
+ pceOpticalNode2.checkWL(2);
pceLink = new PceLink(link, pceOpticalNode, pceOpticalNode2);
pceLink.setClient("XPONDER-CLIENT");
}
@Test
- public void clacPathFalse() {
+ public void clacPathPropagationDelay() {
+ pceHardConstraints.setPceMetrics(RoutingConstraintsSp.PceMetric.PropagationDelay);
+ pceGraph.setConstrains(pceHardConstraints, null);
+
+ Assert.assertEquals(pceGraph.calcPath(), true);
+ Assert.assertEquals(Optional.ofNullable(pceGraph.getPathAtoZ().get(0).getLatency()),
+ Optional.ofNullable(30.0));
+ Assert.assertEquals(pceGraph.getReturnStructure().getRate(), -1);
+ }
+
+ @Test
+ public void clacPath100GE() {
+ pceOpticalNode.checkWL(1);
pceGraph = new PceGraph(pceOpticalNode, pceOpticalNode2, allPceNodes,
pceHardConstraints,
null, rc,
}
@Test(expected = Exception.class)
- public void clacPath1GE() {
+ public void clacPath10GE() {
pceGraph = new PceGraph(pceOpticalNode, pceOpticalNode2, allPceNodes,
pceHardConstraints,
null, rc,
*/
package org.opendaylight.transportpce.pce.networkanalyzer;
+import java.util.concurrent.ExecutionException;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.opendaylight.transportpce.common.network.RequestProcessor;
import org.opendaylight.transportpce.pce.constraints.PceConstraintsCalc;
import org.opendaylight.transportpce.pce.utils.PceTestData;
+import org.opendaylight.transportpce.pce.utils.PceTestUtils;
+import org.opendaylight.transportpce.pce.utils.TransactionUtils;
import org.opendaylight.transportpce.test.AbstractTest;
+
public class PceCalculationTest extends AbstractTest {
private PceCalculation pceCalculation;
+ private PceConstraintsCalc pceConstraintsCalc;
+ private PceResult pceResult = new PceResult();
// setup object
@Before
- public void setUp() {
- PceResult pceResult = new PceResult();
+ public void setUp() throws ExecutionException, InterruptedException {
pceResult.setRC("200");
+ PceTestUtils.writeNetworkIntoDataStore(this.getDataBroker(), this.getDataStoreContextUtil(),
+ TransactionUtils.getNetworkForSpanLoss());
+ pceConstraintsCalc = new PceConstraintsCalc(PceTestData.getPCERequest(),
+ new NetworkTransactionImpl(new RequestProcessor(this.getDataBroker())));
- PceConstraintsCalc pceConstraintsCalc = new PceConstraintsCalc(PceTestData
- .getPCERequest(), new NetworkTransactionImpl(new RequestProcessor(this.getDataBroker())));
pceCalculation = new PceCalculation(
PceTestData.getPCERequest(),
new NetworkTransactionImpl(new RequestProcessor(this.getDataBroker())),
pceConstraintsCalc.getPceHardConstraints(),
pceConstraintsCalc.getPceSoftConstraints(),
pceResult);
+ }
+ @Test
+ public void testPceCalculationValues() {
+ pceCalculation.retrievePceNetwork();
+ Assert.assertEquals("100GE", pceCalculation.getServiceType());
+ Assert.assertNotNull(pceCalculation.getReturnStructure());
+
+ Assert.assertNull(pceCalculation.getaendPceNode());
+ Assert.assertNull(pceCalculation.getzendPceNode());
}
+
@Test
- public void testPceCalculationValues() {
+ public void testPceCalculationValues2() {
+ pceCalculation = new PceCalculation(
+ PceTestData.getPathComputationRequestInputWithCoRoutingOrGeneral(),
+ new NetworkTransactionImpl(new RequestProcessor(this.getDataBroker())),
+ pceConstraintsCalc.getPceHardConstraints(),
+ pceConstraintsCalc.getPceSoftConstraints(),
+ pceResult);
pceCalculation.retrievePceNetwork();
Assert.assertEquals("100GE", pceCalculation.getServiceType());
Assert.assertNotNull(pceCalculation.getReturnStructure());
import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints.rev171017.constraints.sp.co.routing.or.general.general.include_.OrderedHopsBuilder;
import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints.rev171017.diversity.existing.service.contraints.sp.ExistingServiceApplicability;
import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints.rev171017.diversity.existing.service.contraints.sp.ExistingServiceApplicabilityBuilder;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints.rev171017.ordered.constraints.sp.HopTypeBuilder;
import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints.rev171017.routing.constraints.sp.HardConstraints;
import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints.rev171017.routing.constraints.sp.HardConstraintsBuilder;
import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints.rev171017.routing.constraints.sp.SoftConstraints;
import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev200128.service.handler.header.ServiceHandlerHeaderBuilder;
-
public final class PceTestData {
private PceTestData() {
.setServiceZEnd(serviceZEnd)
.setHardConstraints(new HardConstraintsBuilder()
.setCoRoutingOrGeneral(new GeneralBuilder()
- .setExclude(new ExcludeBuilder()
- .setNodeId(Arrays.asList("OpenROADM-2-2"))
- .build())
- .setLatency(new LatencyBuilder()
- .setMaxLatency(3223L).build())
- .setInclude(new IncludeBuilder()
- .setOrderedHops(
- Arrays.asList(new OrderedHopsBuilder()
- .setHopNumber(22)
- // .setHopType(new HopTypeBuilder()
- // .setHopType(new ClliBuilder().getClli())
- .build()))
- .build())
- .build())
+ .setExclude(new ExcludeBuilder()
+ .setNodeId(Arrays.asList("OpenROADM-2-2"))
+ .build())
+ .setLatency(new LatencyBuilder().setMaxLatency(3223L).build())
+ .setInclude(new IncludeBuilder()
+ .setOrderedHops(Arrays.asList(new OrderedHopsBuilder()
+ .setHopNumber(22)
+ .setHopType(new HopTypeBuilder()
+ .setHopType(new HopTypeBuilder().getHopType()).build())
+ .build()))
+ .build())
+ .build())
.build())
.build();
return input;
.setServiceZEnd(serviceZEnd)
.setHardConstraints(new HardConstraintsBuilder()
.setCoRoutingOrGeneral(new GeneralBuilder()
+ .setLatency(new LatencyBuilder()
+ .setMaxLatency(3223L).build())
.setDiversity(new DiversityBuilder()
.setExistingService(Arrays.asList(base.getServiceName()))
.setExistingServiceApplicability(nodeTrue)