X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;ds=sidebyside;f=tapi%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Ftransportpce%2Ftapi%2Ftopology%2FConvertORTopoObjectToTapiTopoObject.java;h=657ed265f9876ced2471ab7c659b431189804297;hb=bc50910144ee7979d24233a8b6e630a4495a91f2;hp=175e8788ba76c629d8bae414e5da3abc32750fac;hpb=79d36087f574a27f0ead2ce9c0d0f69065160916;p=transportpce.git diff --git a/tapi/src/main/java/org/opendaylight/transportpce/tapi/topology/ConvertORTopoObjectToTapiTopoObject.java b/tapi/src/main/java/org/opendaylight/transportpce/tapi/topology/ConvertORTopoObjectToTapiTopoObject.java index 175e8788b..657ed265f 100644 --- a/tapi/src/main/java/org/opendaylight/transportpce/tapi/topology/ConvertORTopoObjectToTapiTopoObject.java +++ b/tapi/src/main/java/org/opendaylight/transportpce/tapi/topology/ConvertORTopoObjectToTapiTopoObject.java @@ -7,7 +7,6 @@ */ package org.opendaylight.transportpce.tapi.topology; -import java.math.BigInteger; import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; @@ -62,11 +61,17 @@ import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.no import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.topology.Link; import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.topology.LinkBuilder; import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.topology.NodeBuilder; +import org.opendaylight.yangtools.yang.common.Uint64; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class ConvertORTopoObjectToTapiTopoObject { + private static final String DSR_PLUS = "DSR+"; + private static final String PLUS_DSR = "+DSR"; + private static final String OT_SI = "+OTSi"; + private static final String E_OT_SI = "eOTSi+"; + private static final String I_OT_SI = "iOTSi+"; private static final Logger LOG = LoggerFactory.getLogger(ConvertORTopoObjectToTapiTopoObject.class); private String ietfNodeId; private List oorClientPortList; @@ -98,31 +103,37 @@ public class ConvertORTopoObjectToTapiTopoObject { this.uuidMap = new HashMap<>(); } - public void convertNode() { - //node creation [DSR/ODU] + // node creation [DSR/ODU] LOG.info("creation of a DSR/ODU node"); Uuid nodeUuid = new Uuid(UUID.randomUUID().toString()); - this.uuidMap.put(this.ietfNodeId + "+DSR", nodeUuid); - List dsrNodeNames = Arrays.asList(new NameBuilder().setValueName("dsr/odu node name") - .setValue(this.ietfNodeId).build()); + this.uuidMap.put(this.ietfNodeId + PLUS_DSR, nodeUuid); + List dsrNodeNames = Arrays.asList( + new NameBuilder() + .setValueName("dsr/odu node name") + .setValue(this.ietfNodeId) + .build()); + List dsrLayerProtocols = Arrays.asList(LayerProtocolName.DSR, LayerProtocolName.ODU); org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.topology .Node dsrNode = createTapiNode(dsrNodeNames, dsrLayerProtocols); tapiNodes.add(dsrNode); - //node creation [otsi] + // node creation [otsi] LOG.info("creation of an OTSi node"); nodeUuid = new Uuid(UUID.randomUUID().toString()); - this.uuidMap.put(this.ietfNodeId + "+OTSi", nodeUuid); - List otsiNodeNames = Arrays.asList(new NameBuilder().setValueName("otsi node name") - .setValue(this.ietfNodeId).build()); + this.uuidMap.put(this.ietfNodeId + OT_SI, nodeUuid); + List otsiNodeNames = Arrays.asList( + new NameBuilder() + .setValueName("otsi node name") + .setValue(this.ietfNodeId) + .build()); List otsiLayerProtocols = Arrays.asList(LayerProtocolName.PHOTONICMEDIA); org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.topology .Node otsiNode = createTapiNode(otsiNodeNames, otsiLayerProtocols); tapiNodes.add(otsiNode); - //transitional link cration between network nep of DSR/ODU node and iNep of otsi node + // transitional link cration between network nep of DSR/ODU node and iNep of otsi node LOG.info("creation of transitional links between DSR/ODU and OTSi nodes"); createTapiTransitionalLinks(); } @@ -140,115 +151,144 @@ public class ConvertORTopoObjectToTapiTopoObject { .build(); ruleList.add(rule); if (layerProtocols.contains(LayerProtocolName.DSR)) { - nodeUuid = this.uuidMap.get(this.ietfNodeId + "+DSR"); - // client nep creation on DSR/ODU node - for (int i = 0; i < oorClientPortList.size(); i++) { - Uuid nepUuid = new Uuid(UUID.randomUUID().toString()); - this.uuidMap.put("DSR+" + oorClientPortList.get(i).getTpId().getValue(), nepUuid); - List onedNames = Arrays.asList(new NameBuilder().setValueName(new StringBuilder("NodeEdgePoint_C") - .append(i + 1).toString()).setValue(oorClientPortList.get(i).getTpId().getValue()).build()); - OwnedNodeEdgePoint onep = createNep(oorClientPortList.get(i), onedNames, LayerProtocolName.ETH, - LayerProtocolName.DSR, true, "DSR+"); - onepl.add(onep); - } - // network nep creation on DSR/ODU node - for (int i = 0; i < oorNetworkPortList.size(); i++) { - Uuid nepUuid = new Uuid(UUID.randomUUID().toString()); - this.uuidMap.put("DSR+" + oorNetworkPortList.get(i).getTpId().getValue(), nepUuid); - List onedNames = Arrays.asList(new NameBuilder().setValueName(new StringBuilder("NodeEdgePoint_N") - .append(i + 1).toString()).setValue(oorNetworkPortList.get(i).getTpId().getValue()).build()); - OwnedNodeEdgePoint onep = createNep(oorNetworkPortList.get(i), onedNames, LayerProtocolName.ODU, - LayerProtocolName.DSR, true, "DSR+"); - onepl.add(onep); - } - // create NodeRuleGroup - for (NonBlockingList nbl : this.oorOduSwitchingPool.getNonBlockingList()) { - List nepList = new ArrayList<>(); - for (TpId tp : nbl.getTpList()) { - org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.node.rule.group - .NodeEdgePoint nep = new org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology - .rev181210.node.rule.group.NodeEdgePointBuilder() - .setTopologyUuid(tapiTopoUuid) - .setNodeUuid(this.uuidMap.get(this.ietfNodeId + "+DSR")) - .setNodeEdgePointUuid(this.uuidMap.get("DSR+" + tp.getValue())) - .build(); - nepList.add(nep); - } - NodeRuleGroup nodeRuleGroup = new NodeRuleGroupBuilder() - .setUuid(new Uuid(UUID.randomUUID().toString())) - .setRule(ruleList) - .setNodeEdgePoint(nepList) - .build(); - nodeRuleGroupList.add(nodeRuleGroup); - } + nodeUuid = getNodeUuid4Dsr(onepl, nodeRuleGroupList, ruleList); } else if (layerProtocols.contains(LayerProtocolName.PHOTONICMEDIA)) { - nodeUuid = this.uuidMap.get(this.ietfNodeId + "+OTSi"); - // iNep creation on otsi node - for (int i = 0; i < oorNetworkPortList.size(); i++) { - Uuid nepUuid1 = new Uuid(UUID.randomUUID().toString()); - this.uuidMap.put("iOTSi+" + oorNetworkPortList.get(i).getTpId().getValue(), nepUuid1); - List onedNames = Arrays.asList(new NameBuilder().setValueName(new StringBuilder("iNodeEdgePoint_") - .append(i + 1).toString()).setValue(oorNetworkPortList.get(i).getTpId().getValue()).build()); - OwnedNodeEdgePoint onep = createNep(oorNetworkPortList.get(i), onedNames, - LayerProtocolName.PHOTONICMEDIA, LayerProtocolName.PHOTONICMEDIA, true, "iOTSi+"); - onepl.add(onep); - } - // eNep creation on otsi node - for (int i = 0; i < oorNetworkPortList.size(); i++) { - Uuid nepUuid2 = new Uuid(UUID.randomUUID().toString()); - this.uuidMap.put("eOTSi+" + oorNetworkPortList.get(i).getTpId().getValue(), nepUuid2); - List onedNames = Arrays.asList(new NameBuilder().setValueName(new StringBuilder("eNodeEdgePoint_") - .append(i + 1).toString()).setValue(oorNetworkPortList.get(i).getTpId().getValue()).build()); - OwnedNodeEdgePoint onep = createNep(oorNetworkPortList.get(i), onedNames, - LayerProtocolName.PHOTONICMEDIA, LayerProtocolName.PHOTONICMEDIA, true, "eOTSi+"); - onepl.add(onep); - } - // create NodeRuleGroup - for (TerminationPoint tp : this.oorNetworkPortList) { - List nepList = new ArrayList<>(); - org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.node.rule.group - .NodeEdgePoint inep = new org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210 - .node.rule.group.NodeEdgePointBuilder() - .setTopologyUuid(tapiTopoUuid) - .setNodeUuid(this.uuidMap.get(this.ietfNodeId + "+OTSi")) - .setNodeEdgePointUuid(this.uuidMap.get("iOTSi+" + tp.getTpId().getValue())) - .build(); + nodeUuid = getNodeUuid4Phonic(onepl, nodeRuleGroupList, ruleList); + } else { + LOG.error("Undefined LayerProtocolName for {} node {}", nodeNames.get(0).getValueName(), + nodeNames.get(0).getValue()); + } + + // create tapi node + + return new NodeBuilder() + .setUuid(nodeUuid) + .setName(nodeNames) + .setLayerProtocolName(layerProtocols) + .setAdministrativeState(AdministrativeState.UNLOCKED) + .setOperationalState(OperationalState.ENABLED) + .setLifecycleState(LifecycleState.INSTALLED) + .setOwnedNodeEdgePoint(onepl) + .setNodeRuleGroup(nodeRuleGroupList) + .build(); + } + + private Uuid getNodeUuid4Phonic(List onepl, List nodeRuleGroupList, + List ruleList) { + Uuid nodeUuid; + nodeUuid = this.uuidMap.get(this.ietfNodeId + OT_SI); + // iNep creation on otsi node + for (int i = 0; i < oorNetworkPortList.size(); i++) { + Uuid nepUuid1 = new Uuid(UUID.randomUUID().toString()); + this.uuidMap.put(I_OT_SI + oorNetworkPortList.get(i).getTpId().getValue(), nepUuid1); + List onedNames = Arrays.asList( + new NameBuilder() + .setValueName(new StringBuilder("iNodeEdgePoint_").append(i + 1).toString()) + .setValue(oorNetworkPortList.get(i).getTpId().getValue()) + .build()); + + OwnedNodeEdgePoint onep = createNep(oorNetworkPortList.get(i), onedNames, + LayerProtocolName.PHOTONICMEDIA, LayerProtocolName.PHOTONICMEDIA, true, I_OT_SI); + onepl.add(onep); + } + // eNep creation on otsi node + for (int i = 0; i < oorNetworkPortList.size(); i++) { + Uuid nepUuid2 = new Uuid(UUID.randomUUID().toString()); + this.uuidMap.put(E_OT_SI + oorNetworkPortList.get(i).getTpId().getValue(), nepUuid2); + List onedNames = Arrays.asList( + new NameBuilder() + .setValueName(new StringBuilder("eNodeEdgePoint_").append(i + 1).toString()) + .setValue(oorNetworkPortList.get(i).getTpId().getValue()) + .build()); + + OwnedNodeEdgePoint onep = createNep(oorNetworkPortList.get(i), onedNames, + LayerProtocolName.PHOTONICMEDIA, LayerProtocolName.PHOTONICMEDIA, true, E_OT_SI); + onepl.add(onep); + } + // create NodeRuleGroup + for (TerminationPoint tp : this.oorNetworkPortList) { + List nepList = new ArrayList<>(); + org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.node.rule.group + .NodeEdgePoint inep = new org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210 + .node.rule.group.NodeEdgePointBuilder() + .setTopologyUuid(tapiTopoUuid) + .setNodeUuid(this.uuidMap.get(this.ietfNodeId + OT_SI)) + .setNodeEdgePointUuid(this.uuidMap.get(I_OT_SI + tp.getTpId().getValue())) + .build(); + org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.node.rule.group + .NodeEdgePoint enep = new org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210 + .node.rule.group.NodeEdgePointBuilder() + .setTopologyUuid(tapiTopoUuid) + .setNodeUuid(this.uuidMap.get(this.ietfNodeId + OT_SI)) + .setNodeEdgePointUuid(this.uuidMap.get(E_OT_SI + tp.getTpId().getValue())) + .build(); + nepList.add(inep); + nepList.add(enep); + NodeRuleGroup nodeRuleGroup = new NodeRuleGroupBuilder() + .setUuid(new Uuid(UUID.randomUUID().toString())) + .setRule(ruleList) + .setNodeEdgePoint(nepList) + .build(); + nodeRuleGroupList.add(nodeRuleGroup); + } + return nodeUuid; + } + + private Uuid getNodeUuid4Dsr(List onepl, List nodeRuleGroupList, + List ruleList) { + Uuid nodeUuid; + nodeUuid = this.uuidMap.get(this.ietfNodeId + PLUS_DSR); + // client nep creation on DSR/ODU node + for (int i = 0; i < oorClientPortList.size(); i++) { + Uuid nepUuid = new Uuid(UUID.randomUUID().toString()); + this.uuidMap.put(DSR_PLUS + oorClientPortList.get(i).getTpId().getValue(), nepUuid); + List onedNames = Arrays.asList( + new NameBuilder() + .setValueName(new StringBuilder("NodeEdgePoint_C").append(i + 1).toString()) + .setValue(oorClientPortList.get(i).getTpId().getValue()) + .build()); + + OwnedNodeEdgePoint onep = createNep(oorClientPortList.get(i), onedNames, LayerProtocolName.ETH, + LayerProtocolName.DSR, true, DSR_PLUS); + onepl.add(onep); + } + // network nep creation on DSR/ODU node + for (int i = 0; i < oorNetworkPortList.size(); i++) { + Uuid nepUuid = new Uuid(UUID.randomUUID().toString()); + this.uuidMap.put(DSR_PLUS + oorNetworkPortList.get(i).getTpId().getValue(), nepUuid); + List onedNames = Arrays.asList( + new NameBuilder() + .setValueName(new StringBuilder("NodeEdgePoint_N").append(i + 1).toString()) + .setValue(oorNetworkPortList.get(i).getTpId().getValue()) + .build()); + + OwnedNodeEdgePoint onep = createNep(oorNetworkPortList.get(i), onedNames, LayerProtocolName.ODU, + LayerProtocolName.DSR, true, DSR_PLUS); + onepl.add(onep); + } + // create NodeRuleGroup + for (NonBlockingList nbl : this.oorOduSwitchingPool.getNonBlockingList()) { + List nepList = new ArrayList<>(); + for (TpId tp : nbl.getTpList()) { org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.node.rule.group - .NodeEdgePoint enep = new org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210 + .NodeEdgePoint nep = new org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210 .node.rule.group.NodeEdgePointBuilder() .setTopologyUuid(tapiTopoUuid) - .setNodeUuid(this.uuidMap.get(this.ietfNodeId + "+OTSi")) - .setNodeEdgePointUuid(this.uuidMap.get("eOTSi+" + tp.getTpId().getValue())) + .setNodeUuid(this.uuidMap.get(this.ietfNodeId + PLUS_DSR)) + .setNodeEdgePointUuid(this.uuidMap.get(DSR_PLUS + tp.getValue())) .build(); - nepList.add(inep); - nepList.add(enep); - NodeRuleGroup nodeRuleGroup = new NodeRuleGroupBuilder() - .setUuid(new Uuid(UUID.randomUUID().toString())) - .setRule(ruleList) - .setNodeEdgePoint(nepList) - .build(); - nodeRuleGroupList.add(nodeRuleGroup); + nepList.add(nep); } - } else { - LOG.error("Undefined LayerProtocolName for {} node {}", nodeNames.get(0).getValueName(), nodeNames.get(0) - .getValue()); + NodeRuleGroup nodeRuleGroup = new NodeRuleGroupBuilder() + .setUuid(new Uuid(UUID.randomUUID().toString())) + .setRule(ruleList) + .setNodeEdgePoint(nepList) + .build(); + nodeRuleGroupList.add(nodeRuleGroup); } - - // create tapi node - org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.topology.Node tapiNode = - new NodeBuilder() - .setUuid(nodeUuid) - .setName(nodeNames) - .setLayerProtocolName(layerProtocols) - .setAdministrativeState(AdministrativeState.UNLOCKED) - .setOperationalState(OperationalState.ENABLED) - .setLifecycleState(LifecycleState.INSTALLED) - .setOwnedNodeEdgePoint(onepl) - .setNodeRuleGroup(nodeRuleGroupList) - .build(); - return tapiNode; + return nodeUuid; } private OwnedNodeEdgePoint createNep(TerminationPoint oorTp, List nepNames, LayerProtocolName nepProtocol, @@ -287,7 +327,7 @@ public class ConvertORTopoObjectToTapiTopoObject { .getSupportedInterfaceCapability(); for (SupportedInterfaceCapability sic : sicList) { switch (lpn.getName()) { - case "DSR" : + case "DSR": if (sic.getIfCapType().getSimpleName().equals("If10GEODU2e")) { sclpqList.add(DIGITALSIGNALTYPE10GigELAN.class); sclpqList.add(ODUTYPEODU2E.class); @@ -298,7 +338,7 @@ public class ConvertORTopoObjectToTapiTopoObject { sclpqList.add(ODUTYPEODU4.class); } break; - case "PHOTONIC_MEDIA" : + case "PHOTONIC_MEDIA": if (sic.getIfCapType().getSimpleName().equals("IfOCHOTU4ODU4")) { sclpqList.add(PHOTONICLAYERQUALIFIEROTSi.class); sclpqList.add(PHOTONICLAYERQUALIFIEROMS.class); @@ -315,19 +355,19 @@ public class ConvertORTopoObjectToTapiTopoObject { private void createTapiTransitionalLinks() { for (TerminationPoint tp : this.oorNetworkPortList) { List nepList = new ArrayList<>(); - String sourceKey = "DSR+" + tp.getTpId().getValue(); + String sourceKey = DSR_PLUS + tp.getTpId().getValue(); Uuid sourceUuidTp = this.uuidMap.get(sourceKey); - String destKey = "iOTSi+" + tp.getTpId().getValue(); + String destKey = I_OT_SI + tp.getTpId().getValue(); Uuid destUuidTp = this.uuidMap.get(destKey); NodeEdgePoint sourceNep = new NodeEdgePointBuilder() .setTopologyUuid(this.tapiTopoUuid) - .setNodeUuid(this.uuidMap.get(this.ietfNodeId + "+DSR")) + .setNodeUuid(this.uuidMap.get(this.ietfNodeId + PLUS_DSR)) .setNodeEdgePointUuid(sourceUuidTp) .build(); nepList.add(sourceNep); NodeEdgePoint destNep = new NodeEdgePointBuilder() .setTopologyUuid(this.tapiTopoUuid) - .setNodeUuid(this.uuidMap.get(this.ietfNodeId + "+OTSi")) + .setNodeUuid(this.uuidMap.get(this.ietfNodeId + OT_SI)) .setNodeEdgePointUuid(destUuidTp) .build(); nepList.add(destNep); @@ -338,7 +378,7 @@ public class ConvertORTopoObjectToTapiTopoObject { .setNodeEdgePoint(nepList) .setDirection(ForwardingDirection.BIDIRECTIONAL) .setAvailableCapacity(new AvailableCapacityBuilder().setTotalSize( - new TotalSizeBuilder().setUnit(CapacityUnit.GBPS).setValue(new BigInteger("100")).build()).build()); + new TotalSizeBuilder().setUnit(CapacityUnit.GBPS).setValue(Uint64.valueOf(100)).build()).build()); this.tapiLinks.add(transiLinkBldr.build()); } }