*/
package org.opendaylight.transportpce.tapi.topology;
-import java.math.BigInteger;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
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<TerminationPoint> oorClientPortList;
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<Name> dsrNodeNames = Arrays.asList(new NameBuilder().setValueName("dsr/odu node name")
- .setValue(this.ietfNodeId).build());
+ this.uuidMap.put(this.ietfNodeId + PLUS_DSR, nodeUuid);
+ List<Name> dsrNodeNames = Arrays.asList(
+ new NameBuilder()
+ .setValueName("dsr/odu node name")
+ .setValue(this.ietfNodeId)
+ .build());
+
List<LayerProtocolName> 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<Name> otsiNodeNames = Arrays.asList(new NameBuilder().setValueName("otsi node name")
- .setValue(this.ietfNodeId).build());
+ this.uuidMap.put(this.ietfNodeId + OT_SI, nodeUuid);
+ List<Name> otsiNodeNames = Arrays.asList(
+ new NameBuilder()
+ .setValueName("otsi node name")
+ .setValue(this.ietfNodeId)
+ .build());
List<LayerProtocolName> 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();
}
.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<Name> 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<Name> 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<org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.node.rule.group
- .NodeEdgePoint> 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<Name> 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<Name> 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<org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.node.rule.group
- .NodeEdgePoint> 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<OwnedNodeEdgePoint> onepl, List<NodeRuleGroup> nodeRuleGroupList,
+ List<Rule> 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<Name> 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<Name> 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<org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.node.rule.group
+ .NodeEdgePoint> 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<OwnedNodeEdgePoint> onepl, List<NodeRuleGroup> nodeRuleGroupList,
+ List<Rule> 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<Name> 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<Name> 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<org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.node.rule.group
+ .NodeEdgePoint> 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<Name> nepNames, LayerProtocolName nepProtocol,
.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);
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);
private void createTapiTransitionalLinks() {
for (TerminationPoint tp : this.oorNetworkPortList) {
List<NodeEdgePoint> 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);
.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());
}
}