X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;ds=sidebyside;f=tapi%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Ftransportpce%2Ftapi%2Ftopology%2FConvertORTopoToTapiTopo.java;h=2dcbfc52b56f7c29e2731b3aeae9e2f47d1f9a3b;hb=db87ba733190c2e59997e00e0fe9199c9c74234d;hp=5e989eb7557bdfa23eee0ebe993fca4ed5a77a02;hpb=942384f299eecdf5163014ff7930b12ce26a2ca3;p=transportpce.git diff --git a/tapi/src/main/java/org/opendaylight/transportpce/tapi/topology/ConvertORTopoToTapiTopo.java b/tapi/src/main/java/org/opendaylight/transportpce/tapi/topology/ConvertORTopoToTapiTopo.java index 5e989eb75..2dcbfc52b 100644 --- a/tapi/src/main/java/org/opendaylight/transportpce/tapi/topology/ConvertORTopoToTapiTopo.java +++ b/tapi/src/main/java/org/opendaylight/transportpce/tapi/topology/ConvertORTopoToTapiTopo.java @@ -56,7 +56,7 @@ import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.digital.otn.rev221121 import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.dsr.rev221121.DIGITALSIGNALTYPE100GigE; import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.dsr.rev221121.DIGITALSIGNALTYPE10GigELAN; import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.dsr.rev221121.DIGITALSIGNALTYPEGigE; -import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.photonic.media.rev221121.PHOTONICLAYERQUALIFIEROMS; +//import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.photonic.media.rev221121.PHOTONICLAYERQUALIFIEROMS; import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.photonic.media.rev221121.PHOTONICLAYERQUALIFIEROTS; import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.photonic.media.rev221121.PHOTONICLAYERQUALIFIEROTSiMC; import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev221121.FORWARDINGRULEMAYFORWARDACROSSGROUP; @@ -70,6 +70,8 @@ import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev221121.no import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev221121.node.OwnedNodeEdgePoint; import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev221121.node.OwnedNodeEdgePointBuilder; import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev221121.node.OwnedNodeEdgePointKey; +import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev221121.node.RiskParameterPac; +import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev221121.node.RiskParameterPacBuilder; import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev221121.node.edge.point.MappedServiceInterfacePoint; import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev221121.node.edge.point.MappedServiceInterfacePointBuilder; import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev221121.node.edge.point.MappedServiceInterfacePointKey; @@ -78,11 +80,17 @@ import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev221121.no import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev221121.node.rule.group.Rule; import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev221121.node.rule.group.RuleBuilder; import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev221121.node.rule.group.RuleKey; +import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev221121.risk.parameter.pac.RiskCharacteristic; +import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev221121.risk.parameter.pac.RiskCharacteristicBuilder; import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev221121.topology.Link; import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev221121.topology.LinkBuilder; import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev221121.topology.LinkKey; import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev221121.topology.NodeBuilder; import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev221121.topology.NodeKey; +import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev221121.transfer.cost.pac.CostCharacteristic; +import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev221121.transfer.cost.pac.CostCharacteristicBuilder; +import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev221121.transfer.timing.pac.LatencyCharacteristic; +import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev221121.transfer.timing.pac.LatencyCharacteristicBuilder; import org.opendaylight.yangtools.yang.common.Uint16; import org.opendaylight.yangtools.yang.common.Uint64; import org.slf4j.Logger; @@ -94,11 +102,11 @@ public class ConvertORTopoToTapiTopo { private static final Logger LOG = LoggerFactory.getLogger(ConvertORTopoToTapiTopo.class); private String ietfNodeId; private OpenroadmNodeType ietfNodeType; - private AdminStates ietfNodeAdminState; - private State ietfNodeOperState; - private List oorClientPortList; - private List oorNetworkPortList; - private OduSwitchingPools oorOduSwitchingPool; + private AdminStates ietfNodeAdminState = null; + private State ietfNodeOperState = null; + private List oorClientPortList = null; + private List oorNetworkPortList = null; + private OduSwitchingPools oorOduSwitchingPool = null; private Uuid tapiTopoUuid; private Map tapiNodes; @@ -169,15 +177,17 @@ public class ConvertORTopoToTapiTopo { this.uuidMap.put(String.join("+", this.ietfNodeId, TapiStringConstants.XPDR), nodeUuid); Name nameDsr = new NameBuilder().setValueName("dsr/odu node name") .setValue(String.join("+", this.ietfNodeId, TapiStringConstants.XPDR)).build(); + Name namePhot = new NameBuilder().setValueName("otsi node name") + .setValue(String.join("+", this.ietfNodeId, TapiStringConstants.XPDR)).build(); Name nameNodeType = new NameBuilder().setValueName("Node Type") .setValue(this.ietfNodeType.getName()).build(); Set dsrLayerProtocols = Set.of(LayerProtocolName.DSR, LayerProtocolName.ODU, - LayerProtocolName.PHOTONICMEDIA); + LayerProtocolName.DIGITALOTN,LayerProtocolName.PHOTONICMEDIA); org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev221121.topology - .Node dsrNode = createTapiNode(Map.of(nameDsr.key(), nameDsr, nameNodeType.key(), nameNodeType), + .Node dsrNode = createTapiNode(Map.of(nameDsr.key(), nameDsr, namePhot.key(), namePhot,nameNodeType.key(), + nameNodeType), dsrLayerProtocols); tapiNodes.put(dsrNode.key(), dsrNode); - } public void convertLinks(Map< @@ -218,9 +228,9 @@ public class ConvertORTopoToTapiTopo { ? null : this.tapiLink.setTapiOperationalState( otnlink.augmentation(Link1.class).getOperationalState(), oppLnkOpState).getName(); - + // TODO: Handle not only OTU4 but also other cases String prefix = otnlink.getLinkId().getValue().split("-")[0]; - String nodesQual = prefix.equals("OTU4") ? TapiStringConstants.OTSI : TapiStringConstants.DSR; + String nodesQual = TapiStringConstants.XPDR; String tpsQual = prefix.equals("OTU4") ? TapiStringConstants.I_OTSI : TapiStringConstants.E_ODU; LayerProtocolName layerProtocolName = prefix.equals("OTU4") ? LayerProtocolName.PHOTONICMEDIA : LayerProtocolName.ODU; @@ -232,6 +242,7 @@ public class ConvertORTopoToTapiTopo { Set.of(layerProtocolName.getName()), this.tapiTopoUuid); linksToNotConvert.add(oppositeLinkId); tapiLinks.put(tapLink.key(), tapLink); + LOG.debug("Links converted are as follow {}", tapiLinks.toString()); } } } @@ -245,15 +256,35 @@ public class ConvertORTopoToTapiTopo { Name nameNodeType = new NameBuilder().setValueName("Node Type") .setValue(OpenroadmNodeType.ROADM.getName()).build(); Set nodeLayerProtocols = Set.of(LayerProtocolName.PHOTONICMEDIA); - List tapiPhotonicNodes = pruneTapiPhotonicNodes(); + //At that stage, there is no Roadm in the tapiPhotonicNodes Map / only the transponders Map photonicNepUuisMap = convertListNodeWithListNepToMapForUuidAndName(tapiPhotonicNodes); // nep creation for rdm infra abstraction node Map onepMap = createNepForRdmNode(photonicNepUuisMap.size()); // node rule group creation Map nodeRuleGroupList = createNodeRuleGroupForRdmNode(nodeUuid, onepMap.values()); + // Empty random creation of mandatory fields for avoiding errors.... + CostCharacteristic costCharacteristic = new CostCharacteristicBuilder() + .setCostAlgorithm("Restricted Shortest Path - RSP") + .setCostName("HOP_COUNT") + .setCostValue(TapiStringConstants.COST_HOP_VALUE) + .build(); + LatencyCharacteristic latencyCharacteristic = new LatencyCharacteristicBuilder() + .setFixedLatencyCharacteristic(TapiStringConstants.FIXED_LATENCY_VALUE) + .setQueuingLatencyCharacteristic(TapiStringConstants.QUEING_LATENCY_VALUE) + .setJitterCharacteristic(TapiStringConstants.JITTER_VALUE) + .setWanderCharacteristic(TapiStringConstants.WANDER_VALUE) + .setTrafficPropertyName("FIXED_LATENCY") + .build(); + RiskCharacteristic riskCharacteristic = new RiskCharacteristicBuilder() + .setRiskCharacteristicName("risk characteristic") + .setRiskIdentifierList(Set.of("risk identifier1", "risk identifier2")) + .build(); + RiskParameterPac riskParamPac = new RiskParameterPacBuilder() + .setRiskCharacteristic(Map.of(riskCharacteristic.key(), riskCharacteristic)) + .build(); // build RDM infra node abstraction org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev221121.topology.Node rdmNode = new NodeBuilder() .setUuid(nodeUuid) @@ -264,15 +295,27 @@ public class ConvertORTopoToTapiTopo { .setLifecycleState(LifecycleState.INSTALLED) .setOwnedNodeEdgePoint(onepMap) .setNodeRuleGroup(nodeRuleGroupList) + .setCostCharacteristic(Map.of(costCharacteristic.key(), costCharacteristic)) + .setLatencyCharacteristic(Map.of(latencyCharacteristic.key(), latencyCharacteristic)) + .setRiskParameterPac(riskParamPac) .build(); tapiNodes.put(rdmNode.key(), rdmNode); - - // OMS link creation between photonoci nodes and RDM infra abstraction node + // OTS link creation between photonic nodes and RDM infra abstraction node : + //onepMap is a list of nep which Uuid is formed from THE ROADM node name, "nep" and an integer (order of the nep) + // It has absolutely no relationship with the real ROADM infrastructure (SRG ports) + //rdmInfraNepUuisMap is a Map built from onepMap + //photonicNepUuisMap is a Map built from TapiPhotonicNode Map rdmInfraNepUuisMap = convertListNodeWithListNepToMapForUuidAndName(List.of(rdmNode)); if (photonicNepUuisMap.size() != rdmInfraNepUuisMap.size()) { - LOG.warn("Unable to build OMS links between photonics nodes and RDM infrasctructure abstraction"); + LOG.warn("Unable to build OTS links between photonics nodes and RDM infrasctructure abstraction"); } else { - createTapiOmsLinks(photonicNepUuisMap, rdmInfraNepUuisMap); + //Tapi OtsLinks are created between Neps corresponding to the eNEPs of transponders (existing network ports) + //and Generic NEPS with abstracted names created in the ROADM infrastructure corresponding to tps mirroring + //transponders NETWORK PORTs. There is a simplification here considering that any network port of + //transponders will have a mirroring SRG client port in the ROADM infrastructure. + // TODO: Do not understand that we build OTS link without checking that existing transponder ports + //are effectively connected. Need some consolidation + createTapiOtsLinks(photonicNepUuisMap, rdmInfraNepUuisMap); } } @@ -306,9 +349,8 @@ public class ConvertORTopoToTapiTopo { prunedTapiPhotonicNodes = new ArrayList<>(); List tapiPhotonicNodes = this.tapiNodes.values().stream() - .filter(n -> LayerProtocolName.PHOTONICMEDIA.equals(n.getLayerProtocolName().stream().findFirst() - .orElseThrow())) - .collect(Collectors.toList()); + .filter(n -> n.getLayerProtocolName().contains(LayerProtocolName.PHOTONICMEDIA)) + .collect(Collectors.toList()); for (org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev221121.topology.Node node : tapiPhotonicNodes) { Map onepM = new HashMap<>(); @@ -356,14 +398,33 @@ public class ConvertORTopoToTapiTopo { .setRuleType(ruleTypes) .build(); ruleList.put(rule.key(), rule); - if (layerProtocols.contains(LayerProtocolName.DSR)) { + if (layerProtocols.contains(LayerProtocolName.DSR) + || layerProtocols.contains(LayerProtocolName.PHOTONICMEDIA)) { nodeUuid = getNodeUuid4Dsr(onepl, nodeRuleGroupList, ruleList); - } else if (layerProtocols.contains(LayerProtocolName.PHOTONICMEDIA)) { - nodeUuid = getNodeUuid4Photonic(onepl, nodeRuleGroupList, ruleList); } else { LOG.error("Undefined LayerProtocolName for {} node {}", nodeNames.get(nodeNames.keySet().iterator().next()) .getValueName(), nodeNames.get(nodeNames.keySet().iterator().next()).getValue()); } + // Empty random creation of mandatory fields for avoiding errors.... + CostCharacteristic costCharacteristic = new CostCharacteristicBuilder() + .setCostAlgorithm("Restricted Shortest Path - RSP") + .setCostName("HOP_COUNT") + .setCostValue(TapiStringConstants.COST_HOP_VALUE) + .build(); + LatencyCharacteristic latencyCharacteristic = new LatencyCharacteristicBuilder() + .setFixedLatencyCharacteristic(TapiStringConstants.FIXED_LATENCY_VALUE) + .setQueuingLatencyCharacteristic(TapiStringConstants.QUEING_LATENCY_VALUE) + .setJitterCharacteristic(TapiStringConstants.JITTER_VALUE) + .setWanderCharacteristic(TapiStringConstants.WANDER_VALUE) + .setTrafficPropertyName("FIXED_LATENCY") + .build(); + RiskCharacteristic riskCharacteristic = new RiskCharacteristicBuilder() + .setRiskCharacteristicName("risk characteristic") + .setRiskIdentifierList(Set.of("risk identifier1", "risk identifier2")) + .build(); + RiskParameterPac riskParamPac = new RiskParameterPacBuilder() + .setRiskCharacteristic(Map.of(riskCharacteristic.key(), riskCharacteristic)) + .build(); return new NodeBuilder() .setUuid(nodeUuid) .setName(nodeNames) @@ -373,94 +434,16 @@ public class ConvertORTopoToTapiTopo { .setLifecycleState(LifecycleState.INSTALLED) .setOwnedNodeEdgePoint(onepl) .setNodeRuleGroup(nodeRuleGroupList) + .setCostCharacteristic(Map.of(costCharacteristic.key(), costCharacteristic)) + .setLatencyCharacteristic(Map.of(latencyCharacteristic.key(), latencyCharacteristic)) + .setRiskParameterPac(riskParamPac) .build(); } - private Uuid getNodeUuid4Photonic(Map onepl, - Map nodeRuleGroupList, - Map ruleList) { - Uuid nodeUuid; - nodeUuid = this.uuidMap.get(String.join("+", this.ietfNodeId, TapiStringConstants.OTSI)); - // iNep creation on otsi node - for (int i = 0; i < oorNetworkPortList.size(); i++) { - Uuid nepUuid1 = new Uuid(UUID.nameUUIDFromBytes( - (String.join("+", this.ietfNodeId, TapiStringConstants.I_OTSI, - oorNetworkPortList.get(i).getTpId().getValue())).getBytes(Charset.forName("UTF-8"))) - .toString()); - this.uuidMap.put(String.join("+", this.ietfNodeId, TapiStringConstants.I_OTSI, - oorNetworkPortList.get(i).getTpId().getValue()), nepUuid1); - Name onedName = new NameBuilder() - .setValueName("iNodeEdgePoint") - .setValue(String.join("+", this.ietfNodeId, TapiStringConstants.I_OTSI, - oorNetworkPortList.get(i).getTpId().getValue())) - .build(); - - OwnedNodeEdgePoint onep = createNep(oorNetworkPortList.get(i), Map.of(onedName.key(), onedName), - LayerProtocolName.PHOTONICMEDIA, LayerProtocolName.PHOTONICMEDIA, true, - String.join("+", this.ietfNodeId, TapiStringConstants.I_OTSI)); - onepl.put(onep.key(), onep); - } - // eNep creation on otsi node - for (int i = 0; i < oorNetworkPortList.size(); i++) { - Uuid nepUuid2 = new Uuid(UUID.nameUUIDFromBytes( - (String.join("+", this.ietfNodeId, TapiStringConstants.E_OTSI, - oorNetworkPortList.get(i).getTpId().getValue())).getBytes(Charset.forName("UTF-8"))) - .toString()); - this.uuidMap.put(String.join("+", this.ietfNodeId, TapiStringConstants.E_OTSI, - oorNetworkPortList.get(i).getTpId().getValue()), nepUuid2); - Name onedName = new NameBuilder() - .setValueName("eNodeEdgePoint") - .setValue(String.join("+", this.ietfNodeId, TapiStringConstants.E_OTSI, - oorNetworkPortList.get(i).getTpId().getValue())) - .build(); - - OwnedNodeEdgePoint onep = createNep(oorNetworkPortList.get(i), Map.of(onedName.key(), onedName), - LayerProtocolName.PHOTONICMEDIA, LayerProtocolName.PHOTONICMEDIA, true, - String.join("+", this.ietfNodeId, TapiStringConstants.E_OTSI)); - onepl.put(onep.key(), onep); - } - // create NodeRuleGroup - int count = 1; - for (TerminationPoint tp : this.oorNetworkPortList) { - Map - nepList = new HashMap<>(); - org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev221121.node.rule.group - .NodeEdgePoint inep = new org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev221121 - .node.rule.group.NodeEdgePointBuilder() - .setTopologyUuid(tapiTopoUuid) - .setNodeUuid(this.uuidMap.get(String.join("+", this.ietfNodeId, TapiStringConstants.OTSI))) - .setNodeEdgePointUuid( - this.uuidMap.get(String.join("+", this.ietfNodeId, TapiStringConstants.I_OTSI, - tp.getTpId().getValue()))).build(); - org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev221121.node.rule.group - .NodeEdgePoint enep = new org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev221121 - .node.rule.group.NodeEdgePointBuilder() - .setTopologyUuid(tapiTopoUuid) - .setNodeUuid(this.uuidMap.get(String.join("+", this.ietfNodeId, TapiStringConstants.OTSI))) - .setNodeEdgePointUuid( - this.uuidMap.get(String.join("+", this.ietfNodeId, TapiStringConstants.E_OTSI, - tp.getTpId().getValue()))) - .build(); - nepList.put(inep.key(), inep); - nepList.put(enep.key(), enep); - NodeRuleGroup nodeRuleGroup = new NodeRuleGroupBuilder() - .setUuid(new Uuid( - UUID.nameUUIDFromBytes(("otsi node rule group " + count).getBytes(Charset.forName("UTF-8"))) - .toString())) - .setRule(ruleList) - .setNodeEdgePoint(nepList) - .build(); - nodeRuleGroupList.put(nodeRuleGroup.key(), nodeRuleGroup); - count++; - } - return nodeUuid; - } - private Uuid getNodeUuid4Dsr(Map onepl, Map nodeRuleGroupList, Map ruleList) { Uuid nodeUuid; - nodeUuid = this.uuidMap.get(String.join("+", this.ietfNodeId, TapiStringConstants.DSR)); + nodeUuid = this.uuidMap.get(String.join("+", this.ietfNodeId, TapiStringConstants.XPDR)); // client nep creation on DSR/ODU node for (int i = 0; i < oorClientPortList.size(); i++) { Uuid nepUuid = new Uuid(UUID.nameUUIDFromBytes( @@ -500,6 +483,25 @@ public class ConvertORTopoToTapiTopo { TapiStringConstants.I_ODU)); onepl.put(onep.key(), onep); } + // eNep creation on otsi node + for (int i = 0; i < oorNetworkPortList.size(); i++) { + Uuid nepUuid2 = new Uuid(UUID.nameUUIDFromBytes( + (String.join("+", this.ietfNodeId, TapiStringConstants.PHTNC_MEDIA_OTS, + oorNetworkPortList.get(i).getTpId().getValue())).getBytes(Charset.forName("UTF-8"))) + .toString()); + this.uuidMap.put(String.join("+", this.ietfNodeId, TapiStringConstants.PHTNC_MEDIA_OTS, + oorNetworkPortList.get(i).getTpId().getValue()), nepUuid2); + Name onedName = new NameBuilder() + .setValueName("eNodeEdgePoint") + .setValue(String.join("+", this.ietfNodeId, TapiStringConstants.PHTNC_MEDIA_OTS, + oorNetworkPortList.get(i).getTpId().getValue())) + .build(); + + OwnedNodeEdgePoint onep = createNep(oorNetworkPortList.get(i), Map.of(onedName.key(), onedName), + LayerProtocolName.PHOTONICMEDIA, LayerProtocolName.PHOTONICMEDIA, true, + String.join("+", this.ietfNodeId, TapiStringConstants.PHTNC_MEDIA_OTS)); + onepl.put(onep.key(), onep); + } // create NodeRuleGroup int count = 1; for (NonBlockingList nbl : this.oorOduSwitchingPool.nonnullNonBlockingList().values()) { @@ -517,7 +519,7 @@ public class ConvertORTopoToTapiTopo { .NodeEdgePointBuilder() .setTopologyUuid(tapiTopoUuid) .setNodeUuid(this.uuidMap.get(String.join("+", this.ietfNodeId, - TapiStringConstants.DSR))) + TapiStringConstants.XPDR))) .setNodeEdgePointUuid(this.uuidMap.get(String.join("+", this.ietfNodeId, qual, tp.getValue()))) .build(); @@ -560,8 +562,6 @@ public class ConvertORTopoToTapiTopo { .setAdministrativeState(adminState) .setOperationalState(operState) .setLifecycleState(LifecycleState.INSTALLED); -// .setTerminationDirection(TerminationDirection.BIDIRECTIONAL) -// .setTerminationState(TerminationState.TERMINATEDBIDIRECTIONAL); if (withSip) { onepBldr.setMappedServiceInterfacePoint(createSIP(1, oorTp, keyword)); } @@ -590,8 +590,6 @@ public class ConvertORTopoToTapiTopo { .setDirection(Direction.BIDIRECTIONAL).setLinkPortRole(PortRole.SYMMETRIC) .setAdministrativeState(AdministrativeState.UNLOCKED).setOperationalState(OperationalState.ENABLED) .setLifecycleState(LifecycleState.INSTALLED) -// .setTerminationDirection(TerminationDirection.BIDIRECTIONAL) -// .setTerminationState(TerminationState.TERMINATEDBIDIRECTIONAL) .build(); onepMap.put(onep.key(), onep); } @@ -637,6 +635,7 @@ public class ConvertORTopoToTapiTopo { String nodeId) { Map msipl = new HashMap<>(); for (int i = 0; i < nb; i++) { + //TODO : verify why i is not included to proceed Uuid MappedServiceInterfacePoint msip = new MappedServiceInterfacePointBuilder() .setServiceInterfacePointUuid(new Uuid(UUID.nameUUIDFromBytes((String.join("+", "SIP", nodeId, tp.getTpId().getValue())).getBytes(Charset.forName("UTF-8"))).toString())) @@ -649,10 +648,6 @@ public class ConvertORTopoToTapiTopo { private List createSupportedCepLayerProtocolQualifier( TerminationPoint tp, LayerProtocolName lpn) { List sclpqiList = new ArrayList<>(); - sclpqiList.add(new SupportedCepLayerProtocolQualifierInstancesBuilder() - .setLayerProtocolQualifier(PHOTONICLAYERQUALIFIEROMS.VALUE) - .setNumberOfCepInstances(Uint64.valueOf(1)) - .build()); org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev230526.TerminationPoint1 tp1 = tp.augmentation(org.opendaylight.yang.gen.v1.http .org.openroadm.otn.network.topology.rev230526.TerminationPoint1.class); @@ -781,7 +776,7 @@ public class ConvertORTopoToTapiTopo { .setNumberOfCepInstances(Uint64.valueOf(0)) .build()); sclpqiList.add(new SupportedCepLayerProtocolQualifierInstancesBuilder() - .setLayerProtocolQualifier(PHOTONICLAYERQUALIFIEROMS.VALUE) + .setLayerProtocolQualifier(PHOTONICLAYERQUALIFIEROTS.VALUE) .setNumberOfCepInstances(Uint64.valueOf(0)) .build()); } @@ -791,10 +786,10 @@ public class ConvertORTopoToTapiTopo { break; } } - return sclpqiList; + return sclpqiList.stream().distinct().toList(); } - private void createTapiOmsLinks(Map photonicNepUuisMap, Map rdmInfraNepUuisMap) { + private void createTapiOtsLinks(Map photonicNepUuisMap, Map rdmInfraNepUuisMap) { Iterator> it1 = photonicNepUuisMap.entrySet().iterator(); Iterator> it2 = rdmInfraNepUuisMap.entrySet().iterator(); while (it1.hasNext()) { @@ -817,10 +812,10 @@ public class ConvertORTopoToTapiTopo { .setNodeEdgePointUuid(destUuidTp) .build(); nepMap.put(destNep.key(), destNep); - Name linkName = new NameBuilder().setValueName("OMS link name") + Name linkName = new NameBuilder().setValueName("OTS link name") .setValue(String.join(" and ", photonicEntry.getValue(), rdmEntry.getValue())) .build(); - Link omsLink = new LinkBuilder() + Link otsLink = new LinkBuilder() .setUuid(new Uuid( UUID.nameUUIDFromBytes((String.join(" and ", photonicEntry.getValue(), rdmEntry.getValue())) .getBytes(Charset.forName("UTF-8"))) @@ -830,7 +825,7 @@ public class ConvertORTopoToTapiTopo { .setNodeEdgePoint(nepMap) .setDirection(ForwardingDirection.BIDIRECTIONAL) .build(); - this.tapiLinks.put(omsLink.key(), omsLink); + this.tapiLinks.put(otsLink.key(), otsLink); } }