+ new TotalSizeBuilder().setUnit(CapacityUnit.GBPS).setValue(Uint64.valueOf(100)).build()).build())
+ .build();
+ this.tapiLinks.put(transiLink.key(), transiLink);
+ }
+ }
+
+ private Link createTapiLink(org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226
+ .networks.network.Link link) {
+ String prefix = link.getLinkId().getValue().split("-")[0];
+ String sourceNode = link.getSource().getSourceNode().getValue();
+ String sourceTp = link.getSource().getSourceTp().toString();
+ String destNode = link.getDestination().getDestNode().getValue();
+ String destTp = link.getDestination().getDestTp().toString();
+ Map<NodeEdgePointKey, NodeEdgePoint> nepList = new HashMap<>();
+ Uuid sourceUuidTp;
+ Uuid sourceUuidNode;
+ Uuid destUuidTp;
+ Uuid destUuidNode;
+ Name linkName;
+ switch (prefix) {
+ case "OTU4":
+ sourceUuidTp = this.uuidMap.get(String.join("+", sourceNode, I_OTSI, sourceTp));
+ sourceUuidNode = this.uuidMap.get(String.join("+", sourceNode, OTSI));
+ NodeEdgePoint sourceNep = new NodeEdgePointBuilder()
+ .setTopologyUuid(this.tapiTopoUuid)
+ .setNodeUuid(sourceUuidNode)
+ .setNodeEdgePointUuid(sourceUuidTp)
+ .build();
+ nepList.put(sourceNep.key(), sourceNep);
+ destUuidTp = this.uuidMap.get(String.join("+", destNode, I_OTSI, destTp));
+ destUuidNode = this.uuidMap.get(String.join("+", destNode, OTSI));
+ NodeEdgePoint destNep = new NodeEdgePointBuilder()
+ .setTopologyUuid(this.tapiTopoUuid)
+ .setNodeUuid(destUuidNode)
+ .setNodeEdgePointUuid(destUuidTp)
+ .build();
+ nepList.put(destNep.key(), destNep);
+ linkName = new NameBuilder().setValueName("otn link name")
+ .setValue(link.getLinkId().getValue())
+ .build();
+ return new LinkBuilder()
+ .setUuid(new Uuid(
+ UUID.nameUUIDFromBytes((link.getLinkId().getValue())
+ .getBytes(Charset.forName("UTF-8")))
+ .toString()))
+ .setName(Map.of(linkName.key(), linkName))
+ .setLayerProtocolName(Arrays.asList(LayerProtocolName.PHOTONICMEDIA))
+ .setAdministrativeState(AdministrativeState.UNLOCKED)
+ .setOperationalState(OperationalState.ENABLED)
+ .setDirection(ForwardingDirection.BIDIRECTIONAL)
+ .setNodeEdgePoint(nepList)
+ .setTotalPotentialCapacity(new TotalPotentialCapacityBuilder().setTotalSize(
+ new TotalSizeBuilder().setUnit(CapacityUnit.GBPS)
+ .setValue(Uint64.valueOf(100)).build()).build())
+ .setAvailableCapacity(new AvailableCapacityBuilder().setTotalSize(
+ new TotalSizeBuilder().setUnit(CapacityUnit.MBPS)
+ .setValue(Uint64.valueOf(link.augmentation(Link1.class).getAvailableBandwidth())).build())
+ .build())
+ .build();
+ case "ODU4":
+ sourceUuidTp = this.uuidMap.get(String.join("+", sourceNode, DSR, sourceTp));
+ sourceUuidNode = this.uuidMap.get(String.join("+", sourceNode, DSR));
+ NodeEdgePoint sourceNep2 = new NodeEdgePointBuilder()
+ .setTopologyUuid(this.tapiTopoUuid)
+ .setNodeUuid(sourceUuidNode)
+ .setNodeEdgePointUuid(sourceUuidTp)
+ .build();
+ nepList.put(sourceNep2.key(), sourceNep2);
+ destUuidTp = this.uuidMap.get(String.join("+", destNode, DSR, destTp));
+ destUuidNode = this.uuidMap.get(String.join("+", destNode, DSR));
+ NodeEdgePoint destNep2 = new NodeEdgePointBuilder()
+ .setTopologyUuid(this.tapiTopoUuid)
+ .setNodeUuid(destUuidNode)
+ .setNodeEdgePointUuid(destUuidTp)
+ .build();
+ nepList.put(destNep2.key(), destNep2);
+ linkName = new NameBuilder().setValueName("otn link name")
+ .setValue(link.getLinkId().getValue())
+ .build();
+ return new LinkBuilder()
+ .setUuid(new Uuid(
+ UUID.nameUUIDFromBytes((link.getLinkId().getValue())
+ .getBytes(Charset.forName("UTF-8")))
+ .toString()))
+ .setName(Map.of(linkName.key(), linkName))
+ .setLayerProtocolName(Arrays.asList(LayerProtocolName.ODU))
+ .setAdministrativeState(AdministrativeState.UNLOCKED)
+ .setOperationalState(OperationalState.ENABLED)
+ .setDirection(ForwardingDirection.BIDIRECTIONAL)
+ .setNodeEdgePoint(nepList)
+ .setTotalPotentialCapacity(new TotalPotentialCapacityBuilder().setTotalSize(
+ new TotalSizeBuilder().setUnit(CapacityUnit.GBPS)
+ .setValue(Uint64.valueOf(100)).build()).build())
+ .setAvailableCapacity(new AvailableCapacityBuilder().setTotalSize(
+ new TotalSizeBuilder().setUnit(CapacityUnit.MBPS)
+ .setValue(Uint64.valueOf(link.augmentation(Link1.class).getAvailableBandwidth())).build())
+ .build())
+ .build();
+ default:
+ LOG.error("OTN link of type {} not managed yet", prefix);
+ return null;