From e4411e83f9c4cfba18a9000616fd37149dc3c302 Mon Sep 17 00:00:00 2001 From: manuedelf Date: Fri, 18 Dec 2020 08:26:27 +0100 Subject: [PATCH] Use slot width granularity in PCE Adding a new constraint in spectrum assignment for path calculation: slot width granularity from mc capabilities. If for node, slot width granularity is equals to 50GHz then spectrum assignment will be done in fixed mode. - Add new method to PceNode interface and its implementation to get slot width granularity. - Add new method to MappingUtils to get mc capabilities for a node. - Update unit tests JIRA: TRNSPRTPCE-230 Signed-off-by: manuedelf Change-Id: I84356d45c1b8652a05fee0ef66aa53b50b1de5b0 --- .../common/mapping/MappingUtils.java | 10 +++ .../common/mapping/MappingUtilsImpl.java | 31 +++++++ .../common/mapping/MappingUtilsImplTest.java | 90 ++++++++++--------- common/src/test/resources/network.json | 78 ++++++++++++++++ .../pce/graph/PostAlgoPathValidator.java | 11 ++- .../pce/networkanalyzer/PceCalculation.java | 28 +++++- .../pce/networkanalyzer/PceNode.java | 7 ++ .../pce/networkanalyzer/PceOpticalNode.java | 20 ++++- .../pce/networkanalyzer/PceOtnNode.java | 11 +++ .../pce/PcePathDescriptionTests.java | 5 +- .../pce/constraints/PceConstraintsTest.java | 2 +- .../pce/graph/PceGraphEdgeTest.java | 5 +- .../transportpce/pce/graph/PceGraphTest.java | 5 +- .../pce/networkanalyzer/PceLinkTest.java | 11 +-- .../networkanalyzer/PceOpticalNodeTest.java | 23 ++--- 15 files changed, 266 insertions(+), 71 deletions(-) create mode 100644 common/src/test/resources/network.json diff --git a/common/src/main/java/org/opendaylight/transportpce/common/mapping/MappingUtils.java b/common/src/main/java/org/opendaylight/transportpce/common/mapping/MappingUtils.java index 42797c712..b617cec39 100644 --- a/common/src/main/java/org/opendaylight/transportpce/common/mapping/MappingUtils.java +++ b/common/src/main/java/org/opendaylight/transportpce/common/mapping/MappingUtils.java @@ -7,6 +7,9 @@ */ package org.opendaylight.transportpce.common.mapping; +import java.util.List; +import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev201012.network.nodes.McCapabilities; + public interface MappingUtils { /* @@ -14,4 +17,11 @@ public interface MappingUtils { supported by the device. */ String getOpenRoadmVersion(String nodeId); + + /** + * Get list of mc capabilities for node with nodeId. + * @param nodeId String + * @return the list of McCapabilities for the node. + */ + List getMcCapabilitiesForNode(String nodeId); } diff --git a/common/src/main/java/org/opendaylight/transportpce/common/mapping/MappingUtilsImpl.java b/common/src/main/java/org/opendaylight/transportpce/common/mapping/MappingUtilsImpl.java index fd8ec6c2c..8da678ef7 100644 --- a/common/src/main/java/org/opendaylight/transportpce/common/mapping/MappingUtilsImpl.java +++ b/common/src/main/java/org/opendaylight/transportpce/common/mapping/MappingUtilsImpl.java @@ -7,6 +7,8 @@ */ package org.opendaylight.transportpce.common.mapping; +import java.util.ArrayList; +import java.util.List; import java.util.Optional; import java.util.concurrent.ExecutionException; import org.opendaylight.mdsal.binding.api.DataBroker; @@ -16,6 +18,7 @@ import org.opendaylight.transportpce.common.StringConstants; import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev201012.Network; import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev201012.network.Nodes; import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev201012.network.NodesKey; +import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev201012.network.nodes.McCapabilities; import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev201012.network.nodes.NodeInfo; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.slf4j.Logger; @@ -62,4 +65,32 @@ public class MappingUtilsImpl implements MappingUtils { } return null; } + + /* + * (non-Javadoc) + * + * @see org.opendaylight.transportpce.common.mapping.MappingUtils#getMcCapabilitiesForNode(java.lang.String) + */ + @Override + public List getMcCapabilitiesForNode(String nodeId) { + List mcCapabilities = new ArrayList<>(); + InstanceIdentifier nodePortMappingIID = InstanceIdentifier.builder(Network.class) + .child(Nodes.class, new NodesKey(nodeId)).build(); + try (ReadTransaction readTx = this.dataBroker.newReadOnlyTransaction()) { + Optional nodePortMapObject = readTx.read(LogicalDatastoreType.CONFIGURATION, nodePortMappingIID) + .get(); + if (nodePortMapObject.isPresent()) { + LOG.info("Found node {}", nodeId); + Nodes node = nodePortMapObject.get(); + mcCapabilities.addAll(node.nonnullMcCapabilities().values()); + } + } catch (ExecutionException e) { + LOG.error("Something went wrong while getting node {}", nodeId, e); + } catch (InterruptedException e) { + LOG.error("Request interrupted for node {} interrupted", nodeId, e); + Thread.currentThread().interrupt(); + } + LOG.info("Capabilitities for node {}: {}", nodeId, mcCapabilities); + return mcCapabilities; + } } diff --git a/common/src/test/java/org/opendaylight/transportpce/common/mapping/MappingUtilsImplTest.java b/common/src/test/java/org/opendaylight/transportpce/common/mapping/MappingUtilsImplTest.java index 35dfa697a..9a4b4323a 100644 --- a/common/src/test/java/org/opendaylight/transportpce/common/mapping/MappingUtilsImplTest.java +++ b/common/src/test/java/org/opendaylight/transportpce/common/mapping/MappingUtilsImplTest.java @@ -10,64 +10,74 @@ package org.opendaylight.transportpce.common.mapping; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNull; +import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; +import java.io.FileNotFoundException; +import java.io.FileReader; +import java.io.IOException; +import java.io.Reader; +import java.nio.charset.StandardCharsets; import java.util.concurrent.ExecutionException; -import org.junit.Before; +import org.junit.BeforeClass; import org.junit.Test; -import org.opendaylight.mdsal.binding.api.DataBroker; import org.opendaylight.mdsal.binding.api.WriteTransaction; import org.opendaylight.mdsal.common.api.LogicalDatastoreType; import org.opendaylight.transportpce.common.StringConstants; -import org.opendaylight.transportpce.test.DataStoreContext; -import org.opendaylight.transportpce.test.DataStoreContextImpl; +import org.opendaylight.transportpce.test.AbstractTest; +import org.opendaylight.transportpce.test.converter.DataObjectConverter; +import org.opendaylight.transportpce.test.converter.JSONDataObjectConverter; import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev201012.Network; -import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev201012.network.Nodes; -import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev201012.network.NodesBuilder; -import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev201012.network.NodesKey; -import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev201012.network.nodes.NodeInfo; -import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev201012.network.nodes.NodeInfoBuilder; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; +import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; +import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument; +import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; -public class MappingUtilsImplTest { +public class MappingUtilsImplTest extends AbstractTest { + private static final Logger LOG = LoggerFactory.getLogger(MappingUtilsImplTest.class); + private static MappingUtils mappingUtils; - private DataBroker dataBroker = null; - - @Before - public void setUp() { - DataStoreContext dataStoreContext = new DataStoreContextImpl(); - dataBroker = dataStoreContext.getDataBroker(); + @BeforeClass + public static void setUp() throws InterruptedException, ExecutionException, FileNotFoundException { + DataObjectConverter dataObjectConverter = JSONDataObjectConverter + .createWithDataStoreUtil(getDataStoreContextUtil()); + try (Reader reader = new FileReader("src/test/resources/network.json", StandardCharsets.UTF_8)) { + NormalizedNode normalizedNode = dataObjectConverter + .transformIntoNormalizedNode(reader).get(); + Network network = (Network) getDataStoreContextUtil() + .getBindingDOMCodecServices().fromNormalizedNode(YangInstanceIdentifier + .of(Network.QNAME), normalizedNode).getValue(); + WriteTransaction writeNetworkTransaction = getDataBroker().newWriteOnlyTransaction(); + writeNetworkTransaction.put(LogicalDatastoreType.CONFIGURATION, + InstanceIdentifier.builder(Network.class).build(), network); + writeNetworkTransaction.commit().get(); + } catch (IOException e) { + LOG.error("Cannot load network ", e); + fail("Cannot load network"); + } + mappingUtils = new MappingUtilsImpl(getDataBroker()); } @Test public void getOpenRoadmVersionTest() throws ExecutionException, InterruptedException { - final MappingUtils mappingUtils = new MappingUtilsImpl(dataBroker); - final NodeInfo nodeInfo = new NodeInfoBuilder().setOpenroadmVersion(NodeInfo.OpenroadmVersion._121).build(); - final NodeInfo nodeInfo2 = new NodeInfoBuilder().setOpenroadmVersion(NodeInfo.OpenroadmVersion._221).build(); - Nodes nodes = new NodesBuilder().setNodeId("nodes").setNodeInfo(nodeInfo).build(); - Nodes nodes2 = new NodesBuilder().setNodeId("nodes2").setNodeInfo(nodeInfo2).build(); - Nodes nodes3 = new NodesBuilder().setNodeId("nodes3").build(); - InstanceIdentifier nodeIID = InstanceIdentifier.builder(Network.class).child(Nodes.class, - new NodesKey("nodes")).build(); - InstanceIdentifier nodeIID2 = InstanceIdentifier.builder(Network.class).child(Nodes.class, - new NodesKey("nodes2")).build(); - InstanceIdentifier nodeIID3 = InstanceIdentifier.builder(Network.class).child(Nodes.class, - new NodesKey("nodes3")).build(); - WriteTransaction wr = dataBroker.newWriteOnlyTransaction(); - - //Create a node version 1, a node version 2, and a node no version - wr.merge(LogicalDatastoreType.CONFIGURATION, nodeIID, nodes); - wr.merge(LogicalDatastoreType.CONFIGURATION, nodeIID2, nodes2); - wr.merge(LogicalDatastoreType.CONFIGURATION, nodeIID3, nodes3); - wr.commit().get(); - //Test the versions are returned OK - assertEquals("NodeInfo with nodes as id should be 1.2.1 version", + assertEquals("NodeInfo with ROADM-C1 as id should be 1.2.1 version", StringConstants.OPENROADM_DEVICE_VERSION_1_2_1, - mappingUtils.getOpenRoadmVersion("nodes")); - assertEquals("NodeInfo with nodes as id should be 2.2.1 version", + mappingUtils.getOpenRoadmVersion("ROADM-C1")); + assertEquals("NodeInfo with ROADM-A1 as id should be 2.2.1 version", StringConstants.OPENROADM_DEVICE_VERSION_2_2_1, - mappingUtils.getOpenRoadmVersion("nodes2")); + mappingUtils.getOpenRoadmVersion("ROADM-A1")); assertNull("NodeInfo with nodes3 as id should not exist", mappingUtils.getOpenRoadmVersion("nodes3")); } + @Test + public void getMcCapabilitiesForNodeTest() { + assertEquals("Mc capabilities list size should be 2", 2, + mappingUtils.getMcCapabilitiesForNode("ROADM-A1").size()); + assertTrue("Mc capabilities list size should be empty", + mappingUtils.getMcCapabilitiesForNode("ROADM-A2").isEmpty()); + } + } diff --git a/common/src/test/resources/network.json b/common/src/test/resources/network.json new file mode 100644 index 000000000..14eed1bbf --- /dev/null +++ b/common/src/test/resources/network.json @@ -0,0 +1,78 @@ +{ + "transportpce-portmapping:network": { + "nodes": [ + { + "node-id": "ROADM-A1", + "node-info": { + "node-type": "rdm", + "openroadm-version": "2.2.1", + "node-clli": "nodeA", + "node-vendor": "vendorA", + "node-model": "modelA", + "node-ip-address": "127.0.0.1" + }, + "mapping": [], + "mc-capabilities": [ + { + "mc-node-name": "DEG1-TTP", + "center-freq-granularity": 6.25, + "slot-width-granularity": 50 + }, + { + "mc-node-name": "SRG1-TTP", + "center-freq-granularity": 6.25, + "slot-width-granularity": 50 + } + ] + }, + { + "node-id": "ROADM-B1", + "node-info": { + "node-type": "rdm", + "openroadm-version": "2.2.1", + "node-clli": "nodeB", + "node-vendor": "vendorB", + "node-model": "modelB", + "node-ip-address": "127.0.0.2" + }, + "mapping": [], + "mc-capabilities": [ + { + "mc-node-name": "DEG1-TTP", + "center-freq-granularity": 6.25, + "slot-width-granularity": 12.5 + }, + { + "mc-node-name": "SRG1-TTP", + "center-freq-granularity": 6.25, + "slot-width-granularity": 12.5 + } + ] + }, + { + "node-id": "ROADM-C1", + "node-info": { + "node-type": "rdm", + "openroadm-version": "1.2.1", + "node-clli": "nodeC", + "node-vendor": "vendorC", + "node-model": "modelC", + "node-ip-address": "127.0.0.3" + }, + "mapping": [], + "mc-capabilities": [ + { + "mc-node-name": "DEG1-TTP", + "center-freq-granularity": 6.25, + "slot-width-granularity": 50 + }, + { + "mc-node-name": "SRG1-TTP", + "center-freq-granularity": 6.25, + "slot-width-granularity": 50 + } + ] + } + ] + } +} \ No newline at end of file diff --git a/pce/src/main/java/org/opendaylight/transportpce/pce/graph/PostAlgoPathValidator.java b/pce/src/main/java/org/opendaylight/transportpce/pce/graph/PostAlgoPathValidator.java index dceefde5e..d1e1d3021 100644 --- a/pce/src/main/java/org/opendaylight/transportpce/pce/graph/PostAlgoPathValidator.java +++ b/pce/src/main/java/org/opendaylight/transportpce/pce/graph/PostAlgoPathValidator.java @@ -393,14 +393,17 @@ public class PostAlgoPathValidator { Arrays.fill(freqMap, (byte) GridConstant.AVAILABLE_SLOT_VALUE); BitSet result = BitSet.valueOf(freqMap); boolean isFlexGrid = true; - LOG.debug("Processing path {} with length {}", path, path.getLength()); + LOG.info("Processing path {} with length {}", path, path.getLength()); BitSet pceNodeFreqMap; for (PceGraphEdge edge : path.getEdgeList()) { - LOG.debug("Processing source {} ", edge.link().getSourceId()); + LOG.info("Processing source {} ", edge.link().getSourceId()); if (allPceNodes.containsKey(edge.link().getSourceId())) { PceNode pceNode = allPceNodes.get(edge.link().getSourceId()); - if (StringConstants.OPENROADM_DEVICE_VERSION_1_2_1.equals(pceNode.getVersion())) { - LOG.info("Node {} is 1.2.1 node", pceNode.getNodeId()); + LOG.info("Processing PCE node {}", pceNode); + if (StringConstants.OPENROADM_DEVICE_VERSION_1_2_1.equals(pceNode.getVersion()) + || pceNode.getSlotWidthGranularity().compareTo(GridConstant.SLOT_WIDTH_50) == 0) { + LOG.info("Node {}: version is {} and slot width granularity is {} -> fixed grid mode", + pceNode.getNodeId(), pceNode.getVersion(), pceNode.getSlotWidthGranularity()); isFlexGrid = false; } pceNodeFreqMap = pceNode.getBitSetData(); diff --git a/pce/src/main/java/org/opendaylight/transportpce/pce/networkanalyzer/PceCalculation.java b/pce/src/main/java/org/opendaylight/transportpce/pce/networkanalyzer/PceCalculation.java index aeb2938fc..077105e1e 100644 --- a/pce/src/main/java/org/opendaylight/transportpce/pce/networkanalyzer/PceCalculation.java +++ b/pce/src/main/java/org/opendaylight/transportpce/pce/networkanalyzer/PceCalculation.java @@ -8,6 +8,7 @@ package org.opendaylight.transportpce.pce.networkanalyzer; +import java.math.BigDecimal; import java.util.ArrayList; import java.util.HashMap; import java.util.HashSet; @@ -21,11 +22,13 @@ import org.opendaylight.mdsal.common.api.LogicalDatastoreType; import org.opendaylight.transportpce.common.NetworkUtils; import org.opendaylight.transportpce.common.ResponseCodes; import org.opendaylight.transportpce.common.StringConstants; +import org.opendaylight.transportpce.common.fixedflex.GridConstant; import org.opendaylight.transportpce.common.mapping.MappingUtils; import org.opendaylight.transportpce.common.mapping.MappingUtilsImpl; import org.opendaylight.transportpce.common.network.NetworkTransactionService; import org.opendaylight.transportpce.pce.constraints.PceConstraints; import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev200128.PathComputationRequestInput; +import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev201012.network.nodes.McCapabilities; import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.Node1; import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev200529.OpenroadmLinkType; import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev200529.OpenroadmNodeType; @@ -490,7 +493,8 @@ public class PceCalculation { deviceNodeId = node.getNodeId().getValue(); } LOG.info("Device node id {} for {}", deviceNodeId, node); - PceOpticalNode pceNode = new PceOpticalNode(node, nodeType, mappingUtils.getOpenRoadmVersion(deviceNodeId)); + PceOpticalNode pceNode = new PceOpticalNode(node, nodeType, mappingUtils.getOpenRoadmVersion(deviceNodeId), + getSlotWidthGranularity(deviceNodeId, node.getNodeId())); pceNode.validateAZxponder(anodeId, znodeId, input.getServiceAEnd().getServiceFormat()); pceNode.initFrequenciesBitSet(); @@ -666,4 +670,26 @@ public class PceCalculation { pceNode.getOutgoingLinks()); })); } + + /** + * Get mc capability slot width granularity for device. + * @param deviceNodeId String + * @param nodeId NodeId + * @return slot width granularity + */ + private BigDecimal getSlotWidthGranularity(String deviceNodeId, NodeId nodeId) { + // nodeId: openroadm-topology level node + // deviceNodeId: openroadm-network level node + List mcCapabilities = mappingUtils.getMcCapabilitiesForNode(deviceNodeId); + String[] params = nodeId.getValue().split("-"); + // DEGX or SRGX + String rdmModuleName = params[params.length - 1]; + for (McCapabilities mcCapabitility : mcCapabilities) { + if (mcCapabitility.getMcNodeName().contains(rdmModuleName) + && mcCapabitility.getSlotWidthGranularity() != null) { + return mcCapabitility.getSlotWidthGranularity().getValue(); + } + } + return GridConstant.SLOT_WIDTH_50; + } } diff --git a/pce/src/main/java/org/opendaylight/transportpce/pce/networkanalyzer/PceNode.java b/pce/src/main/java/org/opendaylight/transportpce/pce/networkanalyzer/PceNode.java index 35b1dee3b..27f99331f 100644 --- a/pce/src/main/java/org/opendaylight/transportpce/pce/networkanalyzer/PceNode.java +++ b/pce/src/main/java/org/opendaylight/transportpce/pce/networkanalyzer/PceNode.java @@ -8,6 +8,7 @@ package org.opendaylight.transportpce.pce.networkanalyzer; +import java.math.BigDecimal; import java.util.BitSet; import java.util.List; import java.util.Map; @@ -48,4 +49,10 @@ public interface PceNode { * @return BitSet. */ BitSet getBitSetData(); + + /** + * For optical node the slot width granularity from mc capabilities. + * @return BigDecimal. + */ + BigDecimal getSlotWidthGranularity(); } diff --git a/pce/src/main/java/org/opendaylight/transportpce/pce/networkanalyzer/PceOpticalNode.java b/pce/src/main/java/org/opendaylight/transportpce/pce/networkanalyzer/PceOpticalNode.java index 17000587b..fb463e762 100644 --- a/pce/src/main/java/org/opendaylight/transportpce/pce/networkanalyzer/PceOpticalNode.java +++ b/pce/src/main/java/org/opendaylight/transportpce/pce/networkanalyzer/PceOpticalNode.java @@ -8,6 +8,7 @@ package org.opendaylight.transportpce.pce.networkanalyzer; +import java.math.BigDecimal; import java.util.ArrayList; import java.util.Arrays; import java.util.BitSet; @@ -47,18 +48,21 @@ public class PceOpticalNode implements PceNode { private final AvailFreqMapsKey freqMapKey = new AvailFreqMapsKey(GridConstant.C_BAND); private BitSet frequenciesBitSet; private String version; + private BigDecimal slotWidthGranularity; - public PceOpticalNode(Node node, OpenroadmNodeType nodeType, String version) { + public PceOpticalNode(Node node, OpenroadmNodeType nodeType, String version, BigDecimal slotWidthGranularity) { if (node != null && node.getNodeId() != null && nodeType != null - && version != null) { + && version != null + && slotWidthGranularity != null) { this.node = node; this.nodeId = node.getNodeId(); this.nodeType = nodeType; this.version = version; + this.slotWidthGranularity = slotWidthGranularity; } else { - LOG.error("PceNode: one of parameters is not populated : nodeId, node type"); + LOG.error("PceNode: one of parameters is not populated : nodeId, node type, slot width granularity"); this.valid = false; } } @@ -372,4 +376,14 @@ public class PceOpticalNode implements PceNode { return this.version; } + /* + * (non-Javadoc) + * + * @see org.opendaylight.transportpce.pce.networkanalyzer.PceNode#getSlotWidthGranularity() + */ + @Override + public BigDecimal getSlotWidthGranularity() { + return slotWidthGranularity; + } + } diff --git a/pce/src/main/java/org/opendaylight/transportpce/pce/networkanalyzer/PceOtnNode.java b/pce/src/main/java/org/opendaylight/transportpce/pce/networkanalyzer/PceOtnNode.java index 931b621f8..80fc4a13e 100644 --- a/pce/src/main/java/org/opendaylight/transportpce/pce/networkanalyzer/PceOtnNode.java +++ b/pce/src/main/java/org/opendaylight/transportpce/pce/networkanalyzer/PceOtnNode.java @@ -8,6 +8,7 @@ package org.opendaylight.transportpce.pce.networkanalyzer; +import java.math.BigDecimal; import java.util.ArrayList; import java.util.BitSet; import java.util.Comparator; @@ -544,4 +545,14 @@ public class PceOtnNode implements PceNode { // TODO Auto-generated method stub return null; } + + /* + * (non-Javadoc) + * + * @see org.opendaylight.transportpce.pce.networkanalyzer.PceNode#getSlotWidthGranularity() + */ + @Override + public BigDecimal getSlotWidthGranularity() { + return null; + } } diff --git a/pce/src/test/java/org/opendaylight/transportpce/pce/PcePathDescriptionTests.java b/pce/src/test/java/org/opendaylight/transportpce/pce/PcePathDescriptionTests.java index 9e7496255..323f0c454 100644 --- a/pce/src/test/java/org/opendaylight/transportpce/pce/PcePathDescriptionTests.java +++ b/pce/src/test/java/org/opendaylight/transportpce/pce/PcePathDescriptionTests.java @@ -14,6 +14,7 @@ import org.junit.Assert; import org.junit.Before; import org.junit.Test; import org.opendaylight.transportpce.common.StringConstants; +import org.opendaylight.transportpce.common.fixedflex.GridConstant; import org.opendaylight.transportpce.common.network.NetworkTransactionImpl; import org.opendaylight.transportpce.common.network.RequestProcessor; import org.opendaylight.transportpce.pce.constraints.PceConstraints; @@ -52,9 +53,9 @@ public class PcePathDescriptionTests extends AbstractTest { NodeBuilder node1Builder = NodeUtils.getNodeBuilder(NodeUtils.geSupportingNodes()); node = node1Builder.setNodeId(new NodeId("test")).build(); PceOpticalNode pceOpticalNode = new PceOpticalNode(node, - OpenroadmNodeType.SRG, StringConstants.OPENROADM_DEVICE_VERSION_2_2_1); + OpenroadmNodeType.SRG, StringConstants.OPENROADM_DEVICE_VERSION_2_2_1, GridConstant.SLOT_WIDTH_50); PceOpticalNode pceOpticalNode2 = new PceOpticalNode(node, - OpenroadmNodeType.SRG, StringConstants.OPENROADM_DEVICE_VERSION_2_2_1); + OpenroadmNodeType.SRG, StringConstants.OPENROADM_DEVICE_VERSION_2_2_1, GridConstant.SLOT_WIDTH_50); pceLink = new PceLink(link, pceOpticalNode, pceOpticalNode2); pceLink.setClient("XPONDER-CLIENT"); diff --git a/pce/src/test/java/org/opendaylight/transportpce/pce/constraints/PceConstraintsTest.java b/pce/src/test/java/org/opendaylight/transportpce/pce/constraints/PceConstraintsTest.java index ad6b006bf..74f1051ad 100644 --- a/pce/src/test/java/org/opendaylight/transportpce/pce/constraints/PceConstraintsTest.java +++ b/pce/src/test/java/org/opendaylight/transportpce/pce/constraints/PceConstraintsTest.java @@ -107,7 +107,7 @@ public class PceConstraintsTest extends AbstractTest { @Test public void getIncludePceNodesTest() { Assert.assertTrue(pceConstraints.getIncludePceNodes().size() == 0); - pceConstraints.setIncludePceNode(new PceOpticalNode(null, null, null)); + pceConstraints.setIncludePceNode(new PceOpticalNode(null, null, null, null)); Assert.assertTrue(pceConstraints.getIncludePceNodes().size() == 1); } diff --git a/pce/src/test/java/org/opendaylight/transportpce/pce/graph/PceGraphEdgeTest.java b/pce/src/test/java/org/opendaylight/transportpce/pce/graph/PceGraphEdgeTest.java index fc32c6406..9e8a61dc4 100644 --- a/pce/src/test/java/org/opendaylight/transportpce/pce/graph/PceGraphEdgeTest.java +++ b/pce/src/test/java/org/opendaylight/transportpce/pce/graph/PceGraphEdgeTest.java @@ -12,6 +12,7 @@ import org.junit.Assert; import org.junit.Before; import org.junit.Test; import org.opendaylight.transportpce.common.StringConstants; +import org.opendaylight.transportpce.common.fixedflex.GridConstant; import org.opendaylight.transportpce.pce.networkanalyzer.PceLink; import org.opendaylight.transportpce.pce.networkanalyzer.PceOpticalNode; import org.opendaylight.transportpce.pce.utils.NodeUtils; @@ -38,9 +39,9 @@ public class PceGraphEdgeTest { node = NodeUtils.getNodeBuilder(NodeUtils.geSupportingNodes()).build(); PceOpticalNode pceOpticalNode = new PceOpticalNode(node, - OpenroadmNodeType.SRG, StringConstants.OPENROADM_DEVICE_VERSION_2_2_1); + OpenroadmNodeType.SRG, StringConstants.OPENROADM_DEVICE_VERSION_2_2_1, GridConstant.SLOT_WIDTH_50); PceOpticalNode pceOpticalNode2 = new PceOpticalNode(node, - OpenroadmNodeType.SRG, StringConstants.OPENROADM_DEVICE_VERSION_2_2_1); + OpenroadmNodeType.SRG, StringConstants.OPENROADM_DEVICE_VERSION_2_2_1, GridConstant.SLOT_WIDTH_50); pceLink = new PceLink(link, pceOpticalNode, pceOpticalNode2); pceLink.setClient("XPONDER-CLIENT"); diff --git a/pce/src/test/java/org/opendaylight/transportpce/pce/graph/PceGraphTest.java b/pce/src/test/java/org/opendaylight/transportpce/pce/graph/PceGraphTest.java index 9e8575717..cedf39046 100644 --- a/pce/src/test/java/org/opendaylight/transportpce/pce/graph/PceGraphTest.java +++ b/pce/src/test/java/org/opendaylight/transportpce/pce/graph/PceGraphTest.java @@ -14,6 +14,7 @@ import org.junit.Assert; import org.junit.Before; import org.junit.Test; import org.opendaylight.transportpce.common.StringConstants; +import org.opendaylight.transportpce.common.fixedflex.GridConstant; import org.opendaylight.transportpce.pce.constraints.PceConstraints; import org.opendaylight.transportpce.pce.networkanalyzer.PceLink; import org.opendaylight.transportpce.pce.networkanalyzer.PceNode; @@ -57,12 +58,12 @@ public class PceGraphTest { .setNodeId(nodeId).withKey(new NodeKey(nodeId)) .build(); pceOpticalNode = new PceOpticalNode(node, - OpenroadmNodeType.DEGREE, StringConstants.OPENROADM_DEVICE_VERSION_2_2_1); + OpenroadmNodeType.DEGREE, StringConstants.OPENROADM_DEVICE_VERSION_2_2_1, GridConstant.SLOT_WIDTH_50); NodeId nodeId2 = new NodeId("OpenROADM-3-1-DEG1"); Node node2 = NodeUtils.getNodeBuilder(NodeUtils.geSupportingNodes()) .setNodeId(nodeId2).withKey(new NodeKey(nodeId2)).build(); pceOpticalNode2 = new PceOpticalNode(node2, - OpenroadmNodeType.DEGREE, StringConstants.OPENROADM_DEVICE_VERSION_2_2_1); + OpenroadmNodeType.DEGREE, StringConstants.OPENROADM_DEVICE_VERSION_2_2_1, GridConstant.SLOT_WIDTH_50); pceLink = new PceLink(link, pceOpticalNode, pceOpticalNode2); pceLink.setClient("XPONDER-CLIENT"); diff --git a/pce/src/test/java/org/opendaylight/transportpce/pce/networkanalyzer/PceLinkTest.java b/pce/src/test/java/org/opendaylight/transportpce/pce/networkanalyzer/PceLinkTest.java index 8e1dabc6a..2bccf8c35 100644 --- a/pce/src/test/java/org/opendaylight/transportpce/pce/networkanalyzer/PceLinkTest.java +++ b/pce/src/test/java/org/opendaylight/transportpce/pce/networkanalyzer/PceLinkTest.java @@ -16,6 +16,7 @@ import org.junit.Before; import org.junit.Test; import org.opendaylight.transportpce.common.NetworkUtils; import org.opendaylight.transportpce.common.StringConstants; +import org.opendaylight.transportpce.common.fixedflex.GridConstant; import org.opendaylight.transportpce.test.AbstractTest; import org.opendaylight.yang.gen.v1.http.org.openroadm.common.link.types.rev191129.RatioDB; import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.Link1Builder; @@ -69,7 +70,7 @@ public class PceLinkTest extends AbstractTest { NodeBuilder node1Builder = getNodeBuilder(geSupportingNodes()); Node node = node1Builder.setNodeId(new NodeId("test")).build(); PceOpticalNode pceOpticalNode = new PceOpticalNode(node, - OpenroadmNodeType.SRG, StringConstants.OPENROADM_DEVICE_VERSION_2_2_1); + OpenroadmNodeType.SRG, StringConstants.OPENROADM_DEVICE_VERSION_2_2_1, GridConstant.SLOT_WIDTH_50); pceLink = new PceLink(link, pceOpticalNode, pceOpticalNode); } @@ -82,7 +83,7 @@ public class PceLinkTest extends AbstractTest { NodeBuilder node1Builder = getNodeBuilder(geSupportingNodes()); Node node = node1Builder.setNodeId(new NodeId("test")).build(); PceOpticalNode pceOpticalNode = new PceOpticalNode(node, - OpenroadmNodeType.SRG, StringConstants.OPENROADM_DEVICE_VERSION_2_2_1); + OpenroadmNodeType.SRG, StringConstants.OPENROADM_DEVICE_VERSION_2_2_1, GridConstant.SLOT_WIDTH_50); pceLink = new PceLink(link, pceOpticalNode, pceOpticalNode); } @@ -95,7 +96,7 @@ public class PceLinkTest extends AbstractTest { NodeBuilder node1Builder = getNodeBuilder(geSupportingNodes()); Node node = node1Builder.setNodeId(new NodeId("test")).build(); PceOpticalNode pceOpticalNode = new PceOpticalNode(node, - OpenroadmNodeType.SRG, StringConstants.OPENROADM_DEVICE_VERSION_2_2_1); + OpenroadmNodeType.SRG, StringConstants.OPENROADM_DEVICE_VERSION_2_2_1, GridConstant.SLOT_WIDTH_50); pceLink = new PceLink(link, pceOpticalNode, pceOpticalNode); } @@ -109,7 +110,7 @@ public class PceLinkTest extends AbstractTest { NodeBuilder node1Builder = getNodeBuilder(geSupportingNodes()); Node node = node1Builder.setNodeId(new NodeId("test")).build(); PceOpticalNode pceOpticalNode = new PceOpticalNode(node, - OpenroadmNodeType.SRG, StringConstants.OPENROADM_DEVICE_VERSION_2_2_1); + OpenroadmNodeType.SRG, StringConstants.OPENROADM_DEVICE_VERSION_2_2_1, GridConstant.SLOT_WIDTH_50); pceLink = new PceLink(link, pceOpticalNode, pceOpticalNode); } @@ -122,7 +123,7 @@ public class PceLinkTest extends AbstractTest { NodeBuilder node1Builder = getNodeBuilder(geSupportingNodes()); Node node = node1Builder.setNodeId(new NodeId("test")).build(); PceOpticalNode pceOpticalNode = new PceOpticalNode(node, - OpenroadmNodeType.SRG, StringConstants.OPENROADM_DEVICE_VERSION_2_2_1); + OpenroadmNodeType.SRG, StringConstants.OPENROADM_DEVICE_VERSION_2_2_1, GridConstant.SLOT_WIDTH_50); pceLink = new PceLink(link, pceOpticalNode, pceOpticalNode); Assert.assertNotNull(MapUtils.getOmsAttributesSpan(link)); Assert.assertNotNull(pceLink.calcSpanOSNR()); diff --git a/pce/src/test/java/org/opendaylight/transportpce/pce/networkanalyzer/PceOpticalNodeTest.java b/pce/src/test/java/org/opendaylight/transportpce/pce/networkanalyzer/PceOpticalNodeTest.java index ab7b3be0e..06f7565d4 100644 --- a/pce/src/test/java/org/opendaylight/transportpce/pce/networkanalyzer/PceOpticalNodeTest.java +++ b/pce/src/test/java/org/opendaylight/transportpce/pce/networkanalyzer/PceOpticalNodeTest.java @@ -73,7 +73,8 @@ public class PceOpticalNodeTest extends AbstractTest { @Test public void isValidTest() { OpenroadmNodeType nodeType = OpenroadmNodeType.ROADM; - pceOpticalNode = new PceOpticalNode(node, nodeType, StringConstants.OPENROADM_DEVICE_VERSION_2_2_1); + pceOpticalNode = new PceOpticalNode(node, nodeType, StringConstants.OPENROADM_DEVICE_VERSION_2_2_1, + GridConstant.SLOT_WIDTH_50); Assert.assertTrue(pceOpticalNode.isValid()); } @@ -81,7 +82,7 @@ public class PceOpticalNodeTest extends AbstractTest { public void testInitSrgTps() { pceOpticalNode = new PceOpticalNode(node, - OpenroadmNodeType.ROADM, StringConstants.OPENROADM_DEVICE_VERSION_2_2_1); + OpenroadmNodeType.ROADM, StringConstants.OPENROADM_DEVICE_VERSION_2_2_1, GridConstant.SLOT_WIDTH_50); pceOpticalNode.initSrgTps(); pceOpticalNode.initXndrTps(ServiceFormat.OMS); pceOpticalNode.initFrequenciesBitSet(); @@ -98,7 +99,7 @@ public class PceOpticalNodeTest extends AbstractTest { NodeBuilder node1Builder = getNodeBuilder(geSupportingNodes(), OpenroadmTpType.XPONDERNETWORK); Node specificNode = node1Builder.build(); pceOpticalNode = new PceOpticalNode(specificNode, - OpenroadmNodeType.SRG, StringConstants.OPENROADM_DEVICE_VERSION_2_2_1); + OpenroadmNodeType.SRG, StringConstants.OPENROADM_DEVICE_VERSION_2_2_1, GridConstant.SLOT_WIDTH_50); pceOpticalNode.initFrequenciesBitSet(); Assert.assertTrue(pceOpticalNode.isValid()); Assert.assertEquals(availableBitSet, pceOpticalNode.getBitSetData().get(88,96)); @@ -108,7 +109,7 @@ public class PceOpticalNodeTest extends AbstractTest { @Test public void testInitXndrTpDegTypes() { pceOpticalNode = new PceOpticalNode(node, - OpenroadmNodeType.DEGREE, StringConstants.OPENROADM_DEVICE_VERSION_2_2_1); + OpenroadmNodeType.DEGREE, StringConstants.OPENROADM_DEVICE_VERSION_2_2_1, GridConstant.SLOT_WIDTH_50); pceOpticalNode.initFrequenciesBitSet(); Assert.assertTrue(pceOpticalNode.isValid()); Assert.assertEquals(usedBitSet,pceOpticalNode.getBitSetData().get(88,96)); @@ -118,7 +119,7 @@ public class PceOpticalNodeTest extends AbstractTest { @Test public void testInitXndrTpXpondrTypes() { pceOpticalNode = new PceOpticalNode(node, - OpenroadmNodeType.XPONDER, StringConstants.OPENROADM_DEVICE_VERSION_2_2_1); + OpenroadmNodeType.XPONDER, StringConstants.OPENROADM_DEVICE_VERSION_2_2_1, GridConstant.SLOT_WIDTH_50); pceOpticalNode.initFrequenciesBitSet(); Assert.assertTrue(pceOpticalNode.isValid()); Assert.assertEquals(availableBitSet, pceOpticalNode.getBitSetData().get(88,96)); @@ -128,7 +129,7 @@ public class PceOpticalNodeTest extends AbstractTest { @Test public void testinitFrequenciesBitSet() { pceOpticalNode = new PceOpticalNode(node, - OpenroadmNodeType.ROADM, StringConstants.OPENROADM_DEVICE_VERSION_2_2_1); + OpenroadmNodeType.ROADM, StringConstants.OPENROADM_DEVICE_VERSION_2_2_1, GridConstant.SLOT_WIDTH_50); pceOpticalNode.initXndrTps(ServiceFormat.OMS); pceOpticalNode.initFrequenciesBitSet(); Assert.assertFalse(pceOpticalNode.isValid()); @@ -139,7 +140,7 @@ public class PceOpticalNodeTest extends AbstractTest { @Test public void testGetRdmSrgClient() { pceOpticalNode = new PceOpticalNode(node, - OpenroadmNodeType.ROADM, StringConstants.OPENROADM_DEVICE_VERSION_2_2_1); + OpenroadmNodeType.ROADM, StringConstants.OPENROADM_DEVICE_VERSION_2_2_1, GridConstant.SLOT_WIDTH_50); pceOpticalNode.initSrgTps(); Assert.assertNull(pceOpticalNode.getRdmSrgClient("7")); Assert.assertFalse(pceOpticalNode.isValid()); @@ -152,7 +153,7 @@ public class PceOpticalNodeTest extends AbstractTest { NodeBuilder node1Builder = getNodeBuilderEmpty(geSupportingNodes(), OpenroadmTpType.SRGTXRXPP); Node specificNode = node1Builder.setNodeId(new NodeId("test")).build(); pceOpticalNode = new PceOpticalNode(specificNode, - OpenroadmNodeType.ROADM, StringConstants.OPENROADM_DEVICE_VERSION_2_2_1); + OpenroadmNodeType.ROADM, StringConstants.OPENROADM_DEVICE_VERSION_2_2_1, GridConstant.SLOT_WIDTH_50); pceOpticalNode.initSrgTps(); pceOpticalNode.initFrequenciesBitSet(); pceOpticalNode.initXndrTps(ServiceFormat.OMS); @@ -165,7 +166,7 @@ public class PceOpticalNodeTest extends AbstractTest { @Test public void testGetRdmSrgClientDeg() { pceOpticalNode = new PceOpticalNode(node, - OpenroadmNodeType.DEGREE, StringConstants.OPENROADM_DEVICE_VERSION_2_2_1); + OpenroadmNodeType.DEGREE, StringConstants.OPENROADM_DEVICE_VERSION_2_2_1, GridConstant.SLOT_WIDTH_50); pceOpticalNode.initSrgTps(); Assert.assertNull(pceOpticalNode.getRdmSrgClient("7")); Assert.assertFalse(pceOpticalNode.isValid()); @@ -178,7 +179,7 @@ public class PceOpticalNodeTest extends AbstractTest { NodeBuilder node1Builder = getNodeBuilder(geSupportingNodes(), OpenroadmTpType.SRGTXCP); Node specificNode = node1Builder.build(); pceOpticalNode = new PceOpticalNode(specificNode, - OpenroadmNodeType.ROADM, StringConstants.OPENROADM_DEVICE_VERSION_2_2_1); + OpenroadmNodeType.ROADM, StringConstants.OPENROADM_DEVICE_VERSION_2_2_1, GridConstant.SLOT_WIDTH_50); pceOpticalNode.initSrgTps(); Assert.assertFalse(pceOpticalNode.isValid()); Assert.assertNull(pceOpticalNode.getBitSetData()); @@ -191,7 +192,7 @@ public class PceOpticalNodeTest extends AbstractTest { NodeBuilder node1Builder = getNodeBuilder(geSupportingNodes(), OpenroadmTpType.DEGREERXTTP); node = node1Builder.build(); pceOpticalNode = new PceOpticalNode(node, - OpenroadmNodeType.ROADM, StringConstants.OPENROADM_DEVICE_VERSION_2_2_1); + OpenroadmNodeType.ROADM, StringConstants.OPENROADM_DEVICE_VERSION_2_2_1, GridConstant.SLOT_WIDTH_50); pceOpticalNode.initSrgTps(); Assert.assertNull(pceOpticalNode.getRdmSrgClient("2")); Assert.assertFalse(pceOpticalNode.isValid()); -- 2.36.6