X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=networkmodel%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Ftransportpce%2Fnetworkmodel%2Futil%2FOpenRoadmTopology.java;h=950e821aed8f149e2a87f3145ec5477a9f2464a5;hb=20edcd3abf304a96abb40c171ab686fb962599f4;hp=3a23f7cf1c22aa1296a433c06f79db2b6cff2a23;hpb=0da8cea9fcd1c78753493ed6929f6e3241da06df;p=transportpce.git diff --git a/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/util/OpenRoadmTopology.java b/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/util/OpenRoadmTopology.java index 3a23f7cf1..950e821ae 100644 --- a/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/util/OpenRoadmTopology.java +++ b/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/util/OpenRoadmTopology.java @@ -15,7 +15,6 @@ import java.util.Optional; import java.util.concurrent.ExecutionException; import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeoutException; - import org.opendaylight.controller.md.sal.binding.api.DataBroker; import org.opendaylight.controller.md.sal.binding.api.WriteTransaction; import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType; @@ -100,7 +99,8 @@ public class OpenRoadmTopology { } /** - * This public method creates the OpenROADM Topology Layer and posts it to the controller. + * This public method creates the OpenROADM Topology Layer and posts it to + * the controller. */ public void createTopoLayer(DataBroker controllerdb) { try { @@ -123,7 +123,7 @@ public class OpenRoadmTopology { NetworkBuilder nwBuilder = new NetworkBuilder(); NetworkId nwId = new NetworkId(NetworkUtils.OVERLAY_NETWORK_ID); nwBuilder.setNetworkId(nwId); - nwBuilder.setKey(new NetworkKey(nwId)); + nwBuilder.withKey(new NetworkKey(nwId)); // set network type to Transport Underlay NetworkTypes1Builder topoNetworkTypesBldr = new NetworkTypes1Builder(); topoNetworkTypesBldr.setOpenroadmTopology(new OpenroadmTopologyBuilder().build()); @@ -145,9 +145,9 @@ public class OpenRoadmTopology { int portDirectionEnum = DEFAULT_PORT_DIRECTION; InstanceIdentifier infoIID = InstanceIdentifier.create(OrgOpenroadmDevice.class).child(Info.class); - java.util.Optional deviceInfoOpt = - this.deviceTransactionManager.getDataFromDevice(nodeId, LogicalDatastoreType.OPERATIONAL, infoIID, - Timeouts.DEVICE_READ_TIMEOUT, Timeouts.DEVICE_READ_TIMEOUT_UNIT); + java.util.Optional deviceInfoOpt = this.deviceTransactionManager.getDataFromDevice(nodeId, + LogicalDatastoreType.OPERATIONAL, infoIID, Timeouts.DEVICE_READ_TIMEOUT, + Timeouts.DEVICE_READ_TIMEOUT_UNIT); Info deviceInfo; if (deviceInfoOpt.isPresent()) { deviceInfo = deviceInfoOpt.get(); @@ -161,8 +161,10 @@ public class OpenRoadmTopology { if (NodeTypes.Rdm.equals(deviceInfo.getNodeType())) { /* - * Adding Degree Node Get Degree Number -> x then get connection ports then find the port directions - * to decide whether TX/RX/TXRX Get value for max degree from info subtree, required for iteration + * Adding Degree Node Get Degree Number -> x + * then get connection ports + * then find the port directions to decide whether TX/RX/TXRX + * Get value for max degree from info subtree, required for iteration * if not present assume to be 20 (temporary) */ @@ -185,7 +187,7 @@ public class OpenRoadmTopology { nodes.add(tempNode.build()); degreeCounter++; } else { - // null returned if Degree number= degreeCounter not present in the device + // null returned if Degree number= degreeCounter not present in the device break; } } @@ -215,7 +217,6 @@ public class OpenRoadmTopology { } numOfSrgs = srgCounter - 1; - LOG.info("adding links numOfDegrees={} numOfSrgs={}", numOfDegrees, numOfSrgs); List links = new ArrayList<>(); links.addAll(createExpressLinks(nodeId, numOfDegrees, portDirectionEnum)); @@ -236,7 +237,6 @@ public class OpenRoadmTopology { nodes.add(tempNode.build()); clientCounter++; lineCounter++; - LOG.info("Entered this loop"); } return new TopologyShard(nodes, links); } @@ -245,9 +245,10 @@ public class OpenRoadmTopology { } /** - * This private method gets the list of circuit packs on a xponder. For each circuit pack on a - * Xponder, it does a get on circuit-pack subtree with circuit-pack-name as key in order to get the - * list of ports. It then iterates over the list of ports to get ports with port-qual as + * This private method gets the list of circuit packs on a xponder. + * For each circuit pack on a Xponder, it does a get on circuit-pack subtree with + * circuit-pack-name as key in order to get the list of ports. + * It then iterates over the list of ports to get ports with port-qual as * xpdr-network/xpdr-client. The line and client ports are saved as: * *

@@ -259,9 +260,9 @@ public class OpenRoadmTopology { private int getNoOfClientPorts(String deviceId) { // Creating for Xponder Line and Client Ports InstanceIdentifier deviceIID = InstanceIdentifier.create(OrgOpenroadmDevice.class); - Optional deviceObject = - this.deviceTransactionManager.getDataFromDevice(deviceId, LogicalDatastoreType.OPERATIONAL, deviceIID, - Timeouts.DEVICE_READ_TIMEOUT, Timeouts.DEVICE_READ_TIMEOUT_UNIT); + Optional deviceObject = this.deviceTransactionManager.getDataFromDevice(deviceId, + LogicalDatastoreType.OPERATIONAL, deviceIID, Timeouts.DEVICE_READ_TIMEOUT, + Timeouts.DEVICE_READ_TIMEOUT_UNIT); // Variable to keep track of number of client ports int client = 1; @@ -297,7 +298,7 @@ public class OpenRoadmTopology { String nodeIdtopo = new StringBuilder().append(nodeId).append("-XPDR1").toString(); // Ad degree node specific augmentation nodebldr.setNodeId(new NodeId(nodeIdtopo)); - nodebldr.setKey(new NodeKey(new NodeId(nodeIdtopo))); + nodebldr.withKey(new NodeKey(new NodeId(nodeIdtopo))); nodebldr.addAugmentation(Node1.class, node1bldr.build()); while (clientCounter != 0) { // Create CLNT-TX termination @@ -321,18 +322,17 @@ public class OpenRoadmTopology { tpList.add(tempTpBldr.build()); lineCounter--; } - LOG.info("printing tpList {}",tpList); + LOG.info("printing tpList {}", tpList); org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev150608.Node1Builder tpNode1 = new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev150608.Node1Builder(); tpNode1.setTerminationPoint(tpList); nodebldr.addAugmentation( org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev150608.Node1.class, tpNode1.build()); - LOG.info("The nodebldr {}",nodebldr); + LOG.info("The nodebldr {}", nodebldr); return nodebldr; } - private NodeData createDegreeNode(String nodeId, int degreeCounter) { // Create augmentation node to inorder to add degree Node1Builder node1bldr = new Node1Builder(); @@ -359,7 +359,7 @@ public class OpenRoadmTopology { nodebldr.addAugmentation(Node1.class, node1bldr.build()); // Get Port direction int portDirectionEnum = getPortDirection(nodeId, degreeConPorts.get(0).getCircuitPackName(), - degreeConPorts.get(0).getPortName().toString()); + degreeConPorts.get(0).getPortName().toString()); /* * if bi-directional then create 2 tp's : @@ -368,10 +368,7 @@ public class OpenRoadmTopology { * * if uni-directional : * - * --> TTP-TX - * --> TTP-RX - * --> CTP-TX - * --> CTP-RX + * --> TTP-TX --> TTP-RX --> CTP-TX --> CTP-RX */ TerminationPoint1Builder tp1Bldr = new TerminationPoint1Builder(); TerminationPointBuilder tempTpBldr; @@ -391,21 +388,21 @@ public class OpenRoadmTopology { tempTpBldr = createTpBldr("DEG" + degreeCounter + "-TTP-RX"); tp1Bldr.setTpType(OpenroadmTpType.DEGREERXTTP); - tempTpBldr.addAugmentation(TerminationPoint1.class,tp1Bldr.build()); + tempTpBldr.addAugmentation(TerminationPoint1.class, tp1Bldr.build()); tpList.add(tempTpBldr.build()); // Create CTP-TX termination tp1Bldr = new TerminationPoint1Builder(); tempTpBldr = createTpBldr("DEG" + degreeCounter + "-CTP-TX"); tp1Bldr.setTpType(OpenroadmTpType.DEGREETXCTP); - tempTpBldr.addAugmentation(TerminationPoint1.class,tp1Bldr.build()); + tempTpBldr.addAugmentation(TerminationPoint1.class, tp1Bldr.build()); tpList.add(tempTpBldr.build()); // Create CTP-RX termination tp1Bldr = new TerminationPoint1Builder(); tempTpBldr = createTpBldr("DEG" + degreeCounter + "-CTP-RX"); tp1Bldr.setTpType(OpenroadmTpType.DEGREERXCTP); - tempTpBldr.addAugmentation(TerminationPoint1.class,tp1Bldr.build()); + tempTpBldr.addAugmentation(TerminationPoint1.class, tp1Bldr.build()); tpList.add(tempTpBldr.build()); } else if (portDirectionEnum == 3) { @@ -414,14 +411,14 @@ public class OpenRoadmTopology { tp1Bldr = new TerminationPoint1Builder(); tempTpBldr = createTpBldr("DEG" + degreeCounter + "-TTP-TXRX"); tp1Bldr.setTpType(OpenroadmTpType.DEGREETXRXTTP); - tempTpBldr.addAugmentation(TerminationPoint1.class,tp1Bldr.build()); + tempTpBldr.addAugmentation(TerminationPoint1.class, tp1Bldr.build()); tpList.add(tempTpBldr.build()); // Create CTP-TXRX termination tp1Bldr = new TerminationPoint1Builder(); tempTpBldr = createTpBldr("DEG" + degreeCounter + "-CTP-TXRX"); tp1Bldr.setTpType(OpenroadmTpType.DEGREETXRXCTP); - tempTpBldr.addAugmentation(TerminationPoint1.class,tp1Bldr.build()); + tempTpBldr.addAugmentation(TerminationPoint1.class, tp1Bldr.build()); tpList.add(tempTpBldr.build()); } @@ -437,7 +434,6 @@ public class OpenRoadmTopology { return new NodeData(nodebldr, portDirectionEnum); } - private NodeBuilder createSrgNode(String nodeId, int srgCounter, int portDirectionEnum) { // Create augmentation node to inorder to add degree Node1Builder node1bldr = new Node1Builder(); @@ -461,7 +457,6 @@ public class OpenRoadmTopology { return null; } - String nodeIdtopo = new StringBuilder().append(nodeId).append("-SRG").append(srgCounter).toString(); nodebldr.setNodeId(new NodeId(nodeIdtopo)); List tpList = new ArrayList<>(); @@ -475,14 +470,14 @@ public class OpenRoadmTopology { break; } // ports are uni Directional on a degree, therefore 4 termination points - // Create TTP-TX termination + // Create PP-TX termination tempTpBldr = createTpBldr("SRG" + srgCounter + "-PP" + i + "-TX"); tp1Bldr = new TerminationPoint1Builder(); tp1Bldr.setTpType(OpenroadmTpType.SRGTXPP); tempTpBldr.addAugmentation(TerminationPoint1.class, tp1Bldr.build()); tpList.add(tempTpBldr.build()); - // Create TTP-RX termination + // Create PP-RX termination tempTpBldr = createTpBldr("SRG" + srgCounter + "-PP" + i + "-RX"); tp1Bldr = new TerminationPoint1Builder(); tp1Bldr.setTpType(OpenroadmTpType.SRGRXPP); @@ -491,7 +486,7 @@ public class OpenRoadmTopology { } else if (portDirectionEnum == 3) { // Ports are bi directional therefore 2 termination points - // Create TTP-TXRX termination + // Create PP-TXRX termination tempTpBldr = createTpBldr("SRG" + srgCounter + "-PP" + i + "-TXRX"); tp1Bldr = new TerminationPoint1Builder(); tp1Bldr.setTpType(OpenroadmTpType.SRGTXRXPP); @@ -500,6 +495,37 @@ public class OpenRoadmTopology { } } + switch (portDirectionEnum) { + case 1: // ports are uni Directional on a degree + // Create CP-TX termination + tempTpBldr = createTpBldr("SRG" + srgCounter + "-CP" + "-TX"); + tp1Bldr = new TerminationPoint1Builder(); + tp1Bldr.setTpType(OpenroadmTpType.SRGTXCP); + tempTpBldr.addAugmentation(TerminationPoint1.class, tp1Bldr.build()); + tpList.add(tempTpBldr.build()); + break; + case 2: + // Create CP-RX termination + tempTpBldr = createTpBldr("SRG" + srgCounter + "-CP" + "-RX"); + tp1Bldr = new TerminationPoint1Builder(); + tp1Bldr.setTpType(OpenroadmTpType.SRGRXCP); + tempTpBldr.addAugmentation(TerminationPoint1.class, tp1Bldr.build()); + tpList.add(tempTpBldr.build()); + break; + case 3: + // Ports are bi directional therefore 2 termination points + // Create CP-TXRX termination + tempTpBldr = createTpBldr("SRG" + srgCounter + "-CP" + "-TXRX"); + tp1Bldr = new TerminationPoint1Builder(); + tp1Bldr.setTpType(OpenroadmTpType.SRGTXRXCP); + tempTpBldr.addAugmentation(TerminationPoint1.class, tp1Bldr.build()); + tpList.add(tempTpBldr.build()); + break; + default: + LOG.error("No correponsding direction to the value: {}", portDirectionEnum); + break; + } + org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev150608.Node1Builder tpNode1 = new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev150608.Node1Builder(); @@ -513,18 +539,18 @@ public class OpenRoadmTopology { } /* - * This method will return the TTP ports in the device for a given degree number to be used by the - * node to create TTP and CTP termination point on the device + * This method will return the TTP ports in the device for a given degree number to + * be used by the node to create TTP and CTP termination point on the device. */ private List getDegreePorts(String deviceId, Integer degreeCounter) { List degreeConPorts = new ArrayList<>(); LOG.info("Getting Connection ports for Degree Number {}", degreeCounter); - InstanceIdentifier deviceIID = - InstanceIdentifier.create(OrgOpenroadmDevice.class).child(Degree.class, new DegreeKey(degreeCounter)); + InstanceIdentifier deviceIID = InstanceIdentifier.create(OrgOpenroadmDevice.class).child(Degree.class, + new DegreeKey(degreeCounter)); - Optional ordmDegreeObject = - this.deviceTransactionManager.getDataFromDevice(deviceId, LogicalDatastoreType.CONFIGURATION, deviceIID, - Timeouts.DEVICE_READ_TIMEOUT, Timeouts.DEVICE_READ_TIMEOUT_UNIT); + Optional ordmDegreeObject = this.deviceTransactionManager.getDataFromDevice(deviceId, + LogicalDatastoreType.CONFIGURATION, deviceIID, Timeouts.DEVICE_READ_TIMEOUT, + Timeouts.DEVICE_READ_TIMEOUT_UNIT); if (ordmDegreeObject.isPresent()) { degreeConPorts.addAll(new ArrayList<>(ordmDegreeObject.get().getConnectionPorts())); @@ -540,9 +566,9 @@ public class OpenRoadmTopology { LOG.info("Getting max pp ports for Srg Number {}", srgCounter); InstanceIdentifier deviceIID = InstanceIdentifier.create(OrgOpenroadmDevice.class) .child(SharedRiskGroup.class, new SharedRiskGroupKey(srgCounter)); - Optional ordmSrgObject = - this.deviceTransactionManager.getDataFromDevice(deviceId, LogicalDatastoreType.OPERATIONAL, deviceIID, - Timeouts.DEVICE_READ_TIMEOUT, Timeouts.DEVICE_READ_TIMEOUT_UNIT); + Optional ordmSrgObject = this.deviceTransactionManager.getDataFromDevice(deviceId, + LogicalDatastoreType.OPERATIONAL, deviceIID, Timeouts.DEVICE_READ_TIMEOUT, + Timeouts.DEVICE_READ_TIMEOUT_UNIT); if (ordmSrgObject.isPresent()) { if (ordmSrgObject.get().getMaxAddDropPorts() != null) { maxPpPorts = ordmSrgObject.get().getMaxAddDropPorts(); @@ -561,7 +587,7 @@ public class OpenRoadmTopology { // Sets the value of Network-ref and Node-ref as a part of the supporting node // attribute SupportingNodeBuilder supportbldr = new SupportingNodeBuilder(); - supportbldr.setKey(new SupportingNodeKey(new NetworkId(NetworkUtils.UNDERLAY_NETWORK_ID), new NodeId(nodeId))); + supportbldr.withKey(new SupportingNodeKey(new NetworkId(NetworkUtils.UNDERLAY_NETWORK_ID), new NodeId(nodeId))); supportbldr.setNetworkRef(new NetworkId(NetworkUtils.UNDERLAY_NETWORK_ID)); supportbldr.setNodeRef(new NodeId(nodeId)); ArrayList supportlist = new ArrayList<>(); @@ -581,9 +607,9 @@ public class OpenRoadmTopology { .child(CircuitPacks.class, new CircuitPacksKey(circuitPackName)) .child(Ports.class, new PortsKey(portName)); LOG.info("Fetching Port Direction for port {} at circuit pack {}", portName, circuitPackName); - Optional portObject = - this.deviceTransactionManager.getDataFromDevice(deviceId, LogicalDatastoreType.OPERATIONAL, portIID, - Timeouts.DEVICE_READ_TIMEOUT, Timeouts.DEVICE_READ_TIMEOUT_UNIT); + Optional portObject = this.deviceTransactionManager.getDataFromDevice(deviceId, + LogicalDatastoreType.OPERATIONAL, portIID, Timeouts.DEVICE_READ_TIMEOUT, + Timeouts.DEVICE_READ_TIMEOUT_UNIT); if (portObject.isPresent()) { Ports port = portObject.get(); if (port.getPortDirection() != null) { @@ -601,12 +627,12 @@ public class OpenRoadmTopology { TerminationPointBuilder tpBldr = new TerminationPointBuilder(); TpId tp = new TpId(tpId); TerminationPointKey tpKey = new TerminationPointKey(tp); - tpBldr.setKey(tpKey); + tpBldr.withKey(tpKey); tpBldr.setTpId(tp); return tpBldr; } - // This method returns the linkBuilder object for given source and destination + // This method returns the linkBuilder object for given source and destination. public LinkBuilder createLink(String srcNode, String dstNode, String srcTp, String destTp) { LOG.info("creating link for {}-{}", srcNode, dstNode); // Create Destination for link @@ -622,9 +648,9 @@ public class OpenRoadmTopology { lnkBldr.setDestination(dstNodeBldr.build()); lnkBldr.setSource(srcNodeBldr.build()); lnkBldr.setLinkId(LinkIdUtil.buildLinkId(srcNode, srcTp, dstNode, destTp)); - lnkBldr.setKey(new LinkKey(lnkBldr.getLinkId())); + lnkBldr.withKey(new LinkKey(lnkBldr.getLinkId())); org.opendaylight.yang.gen.v1.http.org.openroadm.opposite.links.rev170929.Link1Builder lnk1Bldr = - new org.opendaylight.yang.gen.v1.http.org.openroadm.opposite.links.rev170929.Link1Builder(); + new org.opendaylight.yang.gen.v1.http.org.openroadm.opposite.links.rev170929.Link1Builder(); LinkId oppositeLinkId = LinkIdUtil.getOppositeLinkId(srcNode, srcTp, dstNode, destTp); lnk1Bldr.setOppositeLink(oppositeLinkId); lnkBldr.addAugmentation(org.opendaylight.yang.gen.v1.http.org.openroadm.opposite.links.rev170929.Link1.class, @@ -692,7 +718,6 @@ public class OpenRoadmTopology { Link1Builder lnk1Bldr = new Link1Builder(); lnk1Bldr.setLinkType(OpenroadmLinkType.EXPRESSLINK); - LinkBuilder expLinkBldr = createLink(srcNode, destNode, srcTp, destTp); expLinkBldr.addAugmentation(Link1.class, lnk1Bldr.build()); links.add(expLinkBldr.build()); @@ -707,8 +732,7 @@ public class OpenRoadmTopology { return links; } - private List createAddDropLinks(String nodeId, int numOfDegrees, int numOfSrgs, - int portDirectionEnum) { + private List createAddDropLinks(String nodeId, int numOfDegrees, int numOfSrgs, int portDirectionEnum) { LOG.info("creating add-drop links {} {} {} {}", nodeId, numOfDegrees, numOfSrgs, portDirectionEnum); List links = new ArrayList<>(); @@ -779,7 +803,7 @@ public class OpenRoadmTopology { return links; } - // This method returns the linkBuilder object for given source and destination + // This method returns the linkBuilder object for given source and destination. public boolean deleteLink(String srcNode, String dstNode, String srcTp, String destTp) { LOG.info("deleting link for {}-{}", srcNode, dstNode); try { @@ -803,7 +827,7 @@ public class OpenRoadmTopology { for (int i = 1; i < 97; i++) { AvailableWavelengthsBuilder avalBldr = new AvailableWavelengthsBuilder(); avalBldr.setIndex((long) i); - avalBldr.setKey(new AvailableWavelengthsKey((long) i)); + avalBldr.withKey(new AvailableWavelengthsKey((long) i)); waveList.add(avalBldr.build()); } @@ -822,7 +846,7 @@ public class OpenRoadmTopology { new org.opendaylight.yang.gen.v1.http.org.openroadm.srg.rev170929.srg.node.attributes .AvailableWavelengthsBuilder(); avalBldr.setIndex((long) i); - avalBldr.setKey( + avalBldr.withKey( new org.opendaylight.yang.gen.v1.http.org.openroadm.srg.rev170929.srg.node.attributes .AvailableWavelengthsKey((long) i)); waveList.add(avalBldr.build());