import org.opendaylight.transportpce.tapi.topology.TapiNetworkModelServiceImpl;
import org.opendaylight.transportpce.tapi.topology.TapiNetworkUtilsImpl;
import org.opendaylight.transportpce.tapi.topology.TapiPortMappingListener;
+import org.opendaylight.transportpce.tapi.utils.TapiLink;
import org.opendaylight.transportpce.tapi.utils.TapiListener;
import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.networkutils.rev170818.TransportpceNetworkutilsService;
import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.olm.rev210618.TransportpceOlmService;
LOG.info("Creating tapi beans ...");
R2RTapiLinkDiscovery tapilinkDiscoveryImpl = new R2RTapiLinkDiscovery(networkTransaction,
- deviceTransactionManager);
+ deviceTransactionManager, tapiLink);
TapiRendererListenerImpl tapiRendererListenerImpl = new TapiRendererListenerImpl(lightyServices
.getBindingDataBroker());
TapiPceListenerImpl tapiPceListenerImpl = new TapiPceListenerImpl(lightyServices.getBindingDataBroker());
TapiServiceHandlerListenerImpl tapiServiceHandlerListener = new TapiServiceHandlerListenerImpl(lightyServices
.getBindingDataBroker());
TransportpceTapinetworkutilsService tapiNetworkutilsServiceImpl = new TapiNetworkUtilsImpl(
- networkTransaction);
+ networkTransaction, tapiLink);
TapiNetworkModelService tapiNetworkModelService = new TapiNetworkModelServiceImpl(
- tapilinkDiscoveryImpl, networkTransaction);
+ tapilinkDiscoveryImpl, networkTransaction, tapiLink);
TapiNetconfTopologyListener tapiNetConfTopologyListener =
new TapiNetconfTopologyListener(tapiNetworkModelService);
TapiPortMappingListener tapiPortMappingListener =
*/
package org.opendaylight.transportpce.tapi;
-import java.nio.charset.Charset;
-import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Optional;
-import java.util.UUID;
import java.util.concurrent.ExecutionException;
import java.util.stream.Collectors;
import java.util.stream.Stream;
import org.opendaylight.transportpce.common.Timeouts;
import org.opendaylight.transportpce.common.device.DeviceTransactionManager;
import org.opendaylight.transportpce.common.network.NetworkTransactionService;
+import org.opendaylight.transportpce.tapi.utils.TapiLink;
import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210426.Network;
import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210426.cp.to.degree.CpToDegree;
import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210426.mapping.Mapping;
import org.opendaylight.yang.gen.v1.http.org.openroadm.lldp.rev161014.lldp.container.lldp.NbrList;
import org.opendaylight.yang.gen.v1.http.org.openroadm.lldp.rev161014.lldp.container.lldp.nbr.list.IfName;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.NodeId;
-import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev181210.AdministrativeState;
-import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev181210.CapacityUnit;
-import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev181210.Context;
-import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev181210.ForwardingDirection;
import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev181210.LayerProtocolName;
-import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev181210.LifecycleState;
-import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev181210.OperationalState;
import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev181210.Uuid;
-import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev181210.capacity.TotalSizeBuilder;
-import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev181210.capacity.pac.AvailableCapacityBuilder;
-import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev181210.capacity.pac.TotalPotentialCapacityBuilder;
-import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev181210.global._class.Name;
-import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev181210.global._class.NameBuilder;
-import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.Context1;
-import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.ProtectionType;
-import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.RestorationPolicy;
-import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.context.TopologyContext;
-import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.link.NodeEdgePoint;
-import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.link.NodeEdgePointBuilder;
-import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.link.NodeEdgePointKey;
-import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.link.ResilienceTypeBuilder;
-import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.node.OwnedNodeEdgePoint;
-import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.node.OwnedNodeEdgePointKey;
-import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.risk.parameter.pac.RiskCharacteristic;
-import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.risk.parameter.pac.RiskCharacteristicBuilder;
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.LinkKey;
-import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.topology.Node;
-import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.topology.NodeKey;
-import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.topology.context.Topology;
-import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.topology.context.TopologyKey;
-import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.transfer.cost.pac.CostCharacteristic;
-import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.transfer.cost.pac.CostCharacteristicBuilder;
-import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.transfer.timing.pac.LatencyCharacteristic;
-import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.transfer.timing.pac.LatencyCharacteristicBuilder;
-import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.validation.pac.ValidationMechanism;
-import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.validation.pac.ValidationMechanismBuilder;
import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
-import org.opendaylight.yangtools.yang.common.Uint64;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
private final NetworkTransactionService networkTransactionService;
private final DeviceTransactionManager deviceTransactionManager;
- private static final String PHTNC_MEDIA = "PHOTONIC_MEDIA";
+ private final TapiLink tapiLink;
public R2RTapiLinkDiscovery(NetworkTransactionService networkTransactionService,
- DeviceTransactionManager deviceTransactionManager) {
+ DeviceTransactionManager deviceTransactionManager, TapiLink tapiLink) {
this.networkTransactionService = networkTransactionService;
this.deviceTransactionManager = deviceTransactionManager;
+ this.tapiLink = tapiLink;
}
public Map<LinkKey, Link> readLLDP(NodeId nodeId, int nodeVersion, Uuid tapiTopoUuid) {
// Create OMS Tapi Link
LOG.info("Tapi R2R Link Found a neighbor SrcNodeId: {} , SrcDegId: {} , SrcTPId: {}, DestNodeId:{} , "
+ "DestDegId: {}, DestTPId: {}", nodeId.getValue(), srcDegId, srcTpTx, destNodeId, destDegId, destTpRx);
- Link omsLink = createTapiLink(nodeId.getValue(), srcTpTx, destNodeId.getValue(), destTpRx, tapiTopoUuid);
+ Link omsLink = this.tapiLink.createTapiLink(nodeId.getValue(), srcTpTx, destNodeId.getValue(), destTpTx,
+ TapiStringConstants.OMS_RDM_RDM_LINK, TapiStringConstants.PHTNC_MEDIA, TapiStringConstants.PHTNC_MEDIA,
+ TapiStringConstants.PHTNC_MEDIA, TapiStringConstants.PHTNC_MEDIA,
+ this.tapiLink.getAdminState(nodeId.getValue(), destNodeId.getValue(), srcTpTx, destTpTx),
+ this.tapiLink.getOperState(nodeId.getValue(), destNodeId.getValue(), srcTpTx, destTpTx),
+ List.of(LayerProtocolName.PHOTONICMEDIA), List.of(LayerProtocolName.PHOTONICMEDIA.getName()), tapiTopoUuid);
LOG.info("Tapi R2R Link OMS link created = {}", omsLink);
return omsLink;
}
- private Link createTapiLink(String sourceNode, String sourceTp, String destNode, String destTp, Uuid tapiTopoUuid) {
- Map<NodeEdgePointKey, NodeEdgePoint> nepList = new HashMap<>();
- Uuid sourceUuidNode = new Uuid(UUID.nameUUIDFromBytes((String.join("+", sourceNode,
- PHTNC_MEDIA)).getBytes(Charset.forName("UTF-8"))).toString());
- Uuid sourceUuidTp = new Uuid(UUID.nameUUIDFromBytes((String.join("+", sourceNode, PHTNC_MEDIA, sourceTp))
- .getBytes(Charset.forName("UTF-8"))).toString());
- Uuid destUuidNode = new Uuid(UUID.nameUUIDFromBytes((String.join("+", destNode,
- PHTNC_MEDIA)).getBytes(Charset.forName("UTF-8"))).toString());
- Uuid destUuidTp = new Uuid(UUID.nameUUIDFromBytes((String.join("+", destNode, PHTNC_MEDIA, destTp))
- .getBytes(Charset.forName("UTF-8"))).toString());
- NodeEdgePoint sourceNep = new NodeEdgePointBuilder()
- .setTopologyUuid(tapiTopoUuid)
- .setNodeUuid(sourceUuidNode)
- .setNodeEdgePointUuid(sourceUuidTp)
- .build();
- nepList.put(sourceNep.key(), sourceNep);
- NodeEdgePoint destNep = new NodeEdgePointBuilder()
- .setTopologyUuid(tapiTopoUuid)
- .setNodeUuid(destUuidNode)
- .setNodeEdgePointUuid(destUuidTp)
- .build();
- nepList.put(destNep.key(), destNep);
- OperationalState sourceOperState = getOperState(tapiTopoUuid, sourceUuidTp, sourceUuidNode);
- OperationalState destOperState = getOperState(tapiTopoUuid, destUuidTp, destUuidNode);
- if (sourceOperState == null || destOperState == null) {
- LOG.error("No link can be created, as the operational state was not found in the TAPI topology");
- return null;
- }
- AdministrativeState sourceAdminState = getAdminState(tapiTopoUuid, sourceUuidTp, sourceUuidNode);
- AdministrativeState destAdminState = getAdminState(tapiTopoUuid, destUuidTp, destUuidNode);
- if (sourceAdminState == null || destAdminState == null) {
- LOG.error("No link can be created, as the administrative state was not found in the TAPI topology");
- return null;
- }
- OperationalState operState = (OperationalState.ENABLED.equals(sourceOperState)
- && OperationalState.ENABLED.equals(destOperState))
- ? OperationalState.ENABLED : OperationalState.DISABLED;
- AdministrativeState adminState = (AdministrativeState.UNLOCKED.equals(sourceAdminState)
- && AdministrativeState.UNLOCKED.equals(destAdminState))
- ? AdministrativeState.UNLOCKED : AdministrativeState.LOCKED;
- String linkNameValue = String.join("-", sourceNode, sourceTp.split("-")[0], sourceTp)
- + "to" + String.join("-", destNode, destTp.split("-")[0], destTp);
- Name linkName = new NameBuilder().setValueName("OMS link name")
- .setValue(linkNameValue)
- .build();
- CostCharacteristic costCharacteristic = new CostCharacteristicBuilder()
- .setCostAlgorithm("Restricted Shortest Path - RSP")
- .setCostName("HOP_COUNT")
- .setCostValue("12345678")
- .build();
- LatencyCharacteristic latencyCharacteristic = new LatencyCharacteristicBuilder()
- .setFixedLatencyCharacteristic("12345678")
- .setQueingLatencyCharacteristic("12345678")
- .setJitterCharacteristic("12345678")
- .setWanderCharacteristic("12345678")
- .setTrafficPropertyName("FIXED_LATENCY")
- .build();
- RiskCharacteristic riskCharacteristic = new RiskCharacteristicBuilder()
- .setRiskCharacteristicName("risk characteristic")
- .setRiskIdentifierList(List.of("risk identifier1", "risk identifier2"))
- .build();
- ValidationMechanism validationMechanism = new ValidationMechanismBuilder()
- .setValidationMechanism("validation mechanism")
- .setValidationRobustness("validation robustness")
- .setLayerProtocolAdjacencyValidated("layer protocol adjacency")
- .build();
- return new LinkBuilder()
- .setUuid(new Uuid(
- UUID.nameUUIDFromBytes(linkNameValue.getBytes(Charset.forName("UTF-8")))
- .toString()))
- .setName(Map.of(linkName.key(), linkName))
- .setLayerProtocolName(List.of(LayerProtocolName.PHOTONICMEDIA))
- .setTransitionedLayerProtocolName(new ArrayList<>())
- .setNodeEdgePoint(nepList)
- .setDirection(ForwardingDirection.BIDIRECTIONAL)
- .setResilienceType(new ResilienceTypeBuilder().setProtectionType(ProtectionType.NOPROTECTON)
- .setRestorationPolicy(RestorationPolicy.NA)
- .build())
- .setAdministrativeState(adminState)
- .setOperationalState(operState)
- .setLifecycleState(LifecycleState.INSTALLED)
- .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(100)).build())
- .build())
- .setCostCharacteristic(Map.of(costCharacteristic.key(), costCharacteristic))
- .setLatencyCharacteristic(Map.of(latencyCharacteristic.key(), latencyCharacteristic))
- .setRiskCharacteristic(Map.of(riskCharacteristic.key(), riskCharacteristic))
- .setErrorCharacteristic("error")
- .setLossCharacteristic("loss")
- .setRepeatDeliveryCharacteristic("repeat delivery")
- .setDeliveryOrderCharacteristic("delivery order")
- .setUnavailableTimeCharacteristic("unavailable time")
- .setServerIntegrityProcessCharacteristic("server integrity process")
- .setValidationMechanism(Map.of(validationMechanism.key(), validationMechanism))
- .build();
- }
-
private Integer getDegFromInterface(NodeId nodeId, String interfaceName) {
InstanceIdentifier<Nodes> nodesIID = InstanceIdentifier.builder(Network.class)
.child(Nodes.class, new NodesKey(nodeId.getValue())).build();
}
return Direction.NotApplicable;
}
-
- private OperationalState getOperState(Uuid tapiTopoUuid, Uuid nepUuid, Uuid nodeUuid) {
- InstanceIdentifier<OwnedNodeEdgePoint> onepIID = InstanceIdentifier.builder(Context.class)
- .augmentation(Context1.class).child(TopologyContext.class)
- .child(Topology.class, new TopologyKey(tapiTopoUuid)).child(Node.class, new NodeKey(nodeUuid))
- .child(OwnedNodeEdgePoint.class, new OwnedNodeEdgePointKey(nepUuid))
- .build();
- try {
- Optional<OwnedNodeEdgePoint> optionalOnep = this.networkTransactionService.read(
- LogicalDatastoreType.OPERATIONAL, onepIID).get();
- if (!optionalOnep.isPresent()) {
- LOG.error("No NEP {} object present in datastore", nepUuid);
- return null;
- }
- return optionalOnep.get().getOperationalState();
- } catch (InterruptedException | ExecutionException e) {
- LOG.error("Failed getting Mapping data from portMapping",e);
- return null;
- }
- }
-
- private AdministrativeState getAdminState(Uuid tapiTopoUuid, Uuid nepUuid, Uuid nodeUuid) {
- InstanceIdentifier<OwnedNodeEdgePoint> onepIID = InstanceIdentifier.builder(Context.class)
- .augmentation(Context1.class).child(TopologyContext.class)
- .child(Topology.class, new TopologyKey(tapiTopoUuid)).child(Node.class, new NodeKey(nodeUuid))
- .child(OwnedNodeEdgePoint.class, new OwnedNodeEdgePointKey(nepUuid))
- .build();
- try {
- Optional<OwnedNodeEdgePoint> optionalOnep = this.networkTransactionService.read(
- LogicalDatastoreType.OPERATIONAL, onepIID).get();
- if (!optionalOnep.isPresent()) {
- LOG.error("No NEP {} object present in datastore", nepUuid);
- return null;
- }
- return optionalOnep.get().getAdministrativeState();
- } catch (InterruptedException | ExecutionException e) {
- LOG.error("Failed getting Mapping data from portMapping",e);
- return null;
- }
- }
}
--- /dev/null
+/*
+ * Copyright © 2021 Nokia. All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+package org.opendaylight.transportpce.tapi;
+
+public final class TapiStringConstants {
+
+ public static final String TRANSITIONAL_LINK = "tapi-transitional-link";
+ public static final String OMS_RDM_RDM_LINK = "tapi-rdm-rdm-link";
+ public static final String OMS_XPDR_RDM_LINK = "tapi-xpdr-rdm-link";
+ public static final String OTN_XPDR_XPDR_LINK = "tapi-otn-xpdr-xpdr-link";
+ public static final String T0_MULTILAYER = "T0 - Multi-layer topology";
+ public static final String T0_FULL_MULTILAYER = "T0 - Full Multi-layer topology";
+ public static final String TPDR_100G = "Transponder 100GE";
+ public static final String DSR = "DSR";
+ public static final String ODU = "ODU";
+ public static final String I_ODU = "iODU";
+ public static final String E_ODU = "eODU";
+ public static final String OTSI = "OTSi";
+ public static final String E_OTSI = "eOTSi";
+ public static final String I_OTSI = "iOTSi";
+ public static final String PHTNC_MEDIA = "PHOTONIC_MEDIA";
+ public static final String MC = "MEDIA_CHANNEL";
+ public static final String OTSI_MC = "OTSi_MEDIA_CHANNEL";
+ public static final String RDM_INFRA = "ROADM-infra";
+ public static final String CLIENT = "-CLIENT";
+ public static final String NETWORK = "-NETWORK";
+ public static final String XPDR = "-XPDR";
+ public static final String TP = "TerminationPoint";
+ public static final String NODE = "Node";
+ public static final String LGX_PORT_NAME = "Some lgx-port-name";
+ public static final String PORT_TYPE = "some port type";
+ public static final String LGX_DEVICE_NAME = "Some lgx-device-name";
+ public static final String PORT_RACK_VALUE = "000000.00";
+
+ private TapiStringConstants() {
+ // hiding the default constructor
+ }
+}
import java.util.UUID;
import java.util.stream.Collectors;
import org.opendaylight.transportpce.servicehandler.service.ServiceDataStoreOperations;
-import org.opendaylight.transportpce.tapi.topology.TopologyUtils;
+import org.opendaylight.transportpce.tapi.TapiStringConstants;
import org.opendaylight.transportpce.tapi.utils.GenericServiceEndpoint;
import org.opendaylight.transportpce.tapi.utils.ServiceEndpointType;
import org.opendaylight.transportpce.tapi.utils.TapiContext;
public final class ConnectivityUtils {
- private static final String LGX_PORT_NAME = "Some lgx-port-name";
- private static final String PORT_TYPE = "some port type";
- private static final String LGX_DEVICE_NAME = "Some lgx-device-name";
- private static final String PORT_RACK_VALUE = "000000.00";
- private static final String DSR = "DSR";
- private static final String ODU = "ODU";
- private static final String E_ODU = "eODU";
- private static final String I_ODU = "iODU";
- private static final String OTSI = "OTSi";
- private static final String E_OTSI = "eOTSi";
- private static final String I_OTSI = "iOTSi";
- private static final String PHTNC_MEDIA = "PHOTONIC_MEDIA";
- private static final String MC = "MEDIA_CHANNEL";
- private static final String OTSI_MC = "OTSi_MEDIA_CHANNEL";
- private static final String TP = "TerminationPoint";
- private static final String NODE = "Node";
- private final Uuid tapiTopoUuid = new Uuid(UUID.nameUUIDFromBytes(TopologyUtils.T0_FULL_MULTILAYER
+ private final Uuid tapiTopoUuid = new Uuid(UUID.nameUUIDFromBytes(TapiStringConstants.T0_FULL_MULTILAYER
.getBytes(Charset.forName("UTF-8"))).toString());
private static final Logger LOG = LoggerFactory.getLogger(ConnectivityUtils.class);
.setPort(new PortBuilder()
.setPortDeviceName(txPortDeviceName)
.setPortName(txPortName)
- .setPortRack(PORT_RACK_VALUE)
+ .setPortRack(TapiStringConstants.PORT_RACK_VALUE)
.setPortShelf("00")
- .setPortType(PORT_TYPE)
+ .setPortType(TapiStringConstants.PORT_TYPE)
.build())
.setLgx(new LgxBuilder()
- .setLgxDeviceName(LGX_DEVICE_NAME)
- .setLgxPortName(LGX_PORT_NAME)
- .setLgxPortRack(PORT_RACK_VALUE)
+ .setLgxDeviceName(TapiStringConstants.LGX_DEVICE_NAME)
+ .setLgxPortName(TapiStringConstants.LGX_PORT_NAME)
+ .setLgxPortRack(TapiStringConstants.PORT_RACK_VALUE)
.setLgxPortShelf("00")
.build())
.build())
.setPort(new PortBuilder()
.setPortDeviceName(rxPortDeviceName)
.setPortName(rxPortName)
- .setPortRack(PORT_RACK_VALUE)
+ .setPortRack(TapiStringConstants.PORT_RACK_VALUE)
.setPortShelf("00")
- .setPortType(PORT_TYPE)
+ .setPortType(TapiStringConstants.PORT_TYPE)
.build())
.setLgx(new LgxBuilder()
- .setLgxDeviceName(LGX_DEVICE_NAME)
- .setLgxPortName(LGX_PORT_NAME)
- .setLgxPortRack(PORT_RACK_VALUE)
+ .setLgxDeviceName(TapiStringConstants.LGX_DEVICE_NAME)
+ .setLgxPortName(TapiStringConstants.LGX_PORT_NAME)
+ .setLgxPortRack(TapiStringConstants.PORT_RACK_VALUE)
.setLgxPortShelf("00")
.build())
.build())
.setPort(new PortBuilder()
.setPortDeviceName(txPortDeviceName)
.setPortName(txPortName)
- .setPortRack(PORT_RACK_VALUE)
+ .setPortRack(TapiStringConstants.PORT_RACK_VALUE)
.setPortShelf("00")
- .setPortType(PORT_TYPE)
+ .setPortType(TapiStringConstants.PORT_TYPE)
.build())
.setLgx(new LgxBuilder()
- .setLgxDeviceName(LGX_DEVICE_NAME)
- .setLgxPortName(LGX_PORT_NAME)
- .setLgxPortRack(PORT_RACK_VALUE)
+ .setLgxDeviceName(TapiStringConstants.LGX_DEVICE_NAME)
+ .setLgxPortName(TapiStringConstants.LGX_PORT_NAME)
+ .setLgxPortRack(TapiStringConstants.PORT_RACK_VALUE)
.setLgxPortShelf("00")
.build())
.build())
.setPort(new PortBuilder()
.setPortDeviceName(rxPortDeviceName)
.setPortName(rxPortName)
- .setPortRack(PORT_RACK_VALUE)
+ .setPortRack(TapiStringConstants.PORT_RACK_VALUE)
.setPortShelf("00")
- .setPortType(PORT_TYPE)
+ .setPortType(TapiStringConstants.PORT_TYPE)
.build())
.setLgx(new LgxBuilder()
- .setLgxDeviceName(LGX_DEVICE_NAME)
- .setLgxPortName(LGX_PORT_NAME)
- .setLgxPortRack(PORT_RACK_VALUE)
+ .setLgxDeviceName(TapiStringConstants.LGX_DEVICE_NAME)
+ .setLgxPortName(TapiStringConstants.LGX_PORT_NAME)
+ .setLgxPortRack(TapiStringConstants.PORT_RACK_VALUE)
.setLgxPortShelf("00")
.build())
.build())
.sorted(Comparator.comparing(AToZ::getId)).collect(Collectors.toList())) {
resourceType = elem.getResource().getResource().implementedInterface().getSimpleName();
switch (resourceType) {
- case TP:
+ case TapiStringConstants.TP:
TerminationPoint tp = (TerminationPoint) elem.getResource().getResource();
String tpID = tp.getTpId();
String tpNode;
}
}
break;
- case NODE:
+ case TapiStringConstants.NODE:
Node node = (Node) elem.getResource().getResource();
String nodeId = node.getNodeId();
if (nodeId.contains("XPDR") || nodeId.contains("SPDR") || nodeId.contains("MXPDR")) {
LOG.info("Creating ceps and xc for xpdr {}", xpdr);
String spcXpdrClient = xpdrClientTplist.stream().filter(netp -> netp.contains(xpdr)).findFirst().get();
- ConnectionEndPoint netCep1 = createCepXpdr(spcXpdrClient, DSR, DSR, LayerProtocolName.DSR);
- putXpdrCepInTopologyContext(xpdr, spcXpdrClient, DSR, DSR, netCep1);
+ ConnectionEndPoint netCep1 = createCepXpdr(spcXpdrClient, TapiStringConstants.DSR, TapiStringConstants.DSR,
+ LayerProtocolName.DSR);
+ putXpdrCepInTopologyContext(xpdr, spcXpdrClient, TapiStringConstants.DSR, TapiStringConstants.DSR, netCep1);
cepMap.put(netCep1.key(), netCep1);
}
String spcXpdr2 = xpdrClientTplist.stream().filter(adp -> adp.contains(xpdrNodelist
.get(xpdrNodelist.size() - 1))).findFirst().get();
org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.connectivity.rev181210.connectivity.context.Connection
- connection = createTopConnection(spcXpdr1, spcXpdr2, cepMap, DSR, LayerProtocolName.DSR);
+ connection = createTopConnection(spcXpdr1, spcXpdr2, cepMap, TapiStringConstants.DSR,
+ LayerProtocolName.DSR);
this.connectionFullMap.put(connection.key(), connection);
// ODU top connection that will be added to the service object
LOG.info("Creating ceps and xc for xpdr {}", xpdr);
String spcXpdrNetwork = xpdrNetworkTplist.stream().filter(netp -> netp.contains(xpdr)).findFirst().get();
- ConnectionEndPoint netCep1 = createCepXpdr(spcXpdrNetwork, E_ODU, DSR, LayerProtocolName.ODU);
- putXpdrCepInTopologyContext(xpdr, spcXpdrNetwork, E_ODU, DSR, netCep1);
- ConnectionEndPoint netCep2 = createCepXpdr(spcXpdrNetwork, I_ODU, DSR, LayerProtocolName.ODU);
- putXpdrCepInTopologyContext(xpdr, spcXpdrNetwork, I_ODU, DSR, netCep2);
+ ConnectionEndPoint netCep1 = createCepXpdr(spcXpdrNetwork, TapiStringConstants.E_ODU,
+ TapiStringConstants.DSR, LayerProtocolName.ODU);
+ putXpdrCepInTopologyContext(xpdr, spcXpdrNetwork, TapiStringConstants.E_ODU, TapiStringConstants.DSR,
+ netCep1);
+ ConnectionEndPoint netCep2 = createCepXpdr(spcXpdrNetwork, TapiStringConstants.I_ODU,
+ TapiStringConstants.DSR, LayerProtocolName.ODU);
+ putXpdrCepInTopologyContext(xpdr, spcXpdrNetwork, TapiStringConstants.I_ODU, TapiStringConstants.DSR,
+ netCep2);
cepMap.put(netCep1.key(), netCep1);
cepMap.put(netCep2.key(), netCep2);
// Create x connection between I_ODU and E_ODU within xpdr
org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.connectivity.rev181210.connectivity.context.Connection
- connection = createXCBetweenCeps(netCep1, netCep2, spcXpdrNetwork, spcXpdrNetwork, ODU,
- LayerProtocolName.ODU);
+ connection = createXCBetweenCeps(netCep1, netCep2, spcXpdrNetwork, spcXpdrNetwork,
+ TapiStringConstants.ODU, LayerProtocolName.ODU);
this.connectionFullMap.put(connection.key(), connection);
// Create X connection that will be added to the service object
String spcXpdr2 = xpdrNetworkTplist.stream().filter(adp -> adp.contains(xpdrNodelist
.get(xpdrNodelist.size() - 1))).findFirst().get();
org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.connectivity.rev181210.connectivity.context.Connection
- connection = createTopConnection(spcXpdr1, spcXpdr2, cepMap, E_ODU, LayerProtocolName.ODU);
+ connection = createTopConnection(spcXpdr1, spcXpdr2, cepMap, TapiStringConstants.E_ODU,
+ LayerProtocolName.ODU);
this.connectionFullMap.put(connection.key(), connection);
// ODU top connection that will be added to the service object
// TODO photonic media model should be updated to have the corresponding CEPs. I will just create
// 3 different MC CEPs giving different IDs to show that they are different
// Create 3 CEPs for each xpdr otsi node and the corresponding cross connection matchin the NEPs
- ConnectionEndPoint netCep1 = createCepXpdr(spcXpdrNetwork, PHTNC_MEDIA, OTSI,
- LayerProtocolName.PHOTONICMEDIA);
- putXpdrCepInTopologyContext(xpdr, spcXpdrNetwork, PHTNC_MEDIA, OTSI, netCep1);
- ConnectionEndPoint netCep2 = createCepXpdr(spcXpdrNetwork, E_OTSI, OTSI, LayerProtocolName.PHOTONICMEDIA);
- putXpdrCepInTopologyContext(xpdr, spcXpdrNetwork, E_OTSI, OTSI, netCep2);
- ConnectionEndPoint netCep3 = createCepXpdr(spcXpdrNetwork, I_OTSI, OTSI, LayerProtocolName.PHOTONICMEDIA);
- putXpdrCepInTopologyContext(xpdr, spcXpdrNetwork, I_OTSI, OTSI, netCep3);
+ ConnectionEndPoint netCep1 = createCepXpdr(spcXpdrNetwork, TapiStringConstants.PHTNC_MEDIA,
+ TapiStringConstants.OTSI, LayerProtocolName.PHOTONICMEDIA);
+ putXpdrCepInTopologyContext(xpdr, spcXpdrNetwork, TapiStringConstants.PHTNC_MEDIA, TapiStringConstants.OTSI,
+ netCep1);
+ ConnectionEndPoint netCep2 = createCepXpdr(spcXpdrNetwork, TapiStringConstants.E_OTSI,
+ TapiStringConstants.OTSI, LayerProtocolName.PHOTONICMEDIA);
+ putXpdrCepInTopologyContext(xpdr, spcXpdrNetwork, TapiStringConstants.E_OTSI, TapiStringConstants.OTSI,
+ netCep2);
+ ConnectionEndPoint netCep3 = createCepXpdr(spcXpdrNetwork, TapiStringConstants.I_OTSI,
+ TapiStringConstants.OTSI, LayerProtocolName.PHOTONICMEDIA);
+ putXpdrCepInTopologyContext(xpdr, spcXpdrNetwork, TapiStringConstants.I_OTSI, TapiStringConstants.OTSI,
+ netCep3);
cepMap.put(netCep1.key(), netCep1);
cepMap.put(netCep2.key(), netCep2);
cepMap.put(netCep3.key(), netCep3);
// Create x connection between I_OTSi and E_OTSi within xpdr
org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.connectivity.rev181210.connectivity.context.Connection
- connection = createXCBetweenCeps(netCep2, netCep3, spcXpdrNetwork, spcXpdrNetwork, OTSI,
- LayerProtocolName.PHOTONICMEDIA);
+ connection = createXCBetweenCeps(netCep2, netCep3, spcXpdrNetwork, spcXpdrNetwork,
+ TapiStringConstants.OTSI, LayerProtocolName.PHOTONICMEDIA);
this.connectionFullMap.put(connection.key(), connection);
// Create X connection that will be added to the service object
String spcXpdr2 = xpdrNetworkTplist.stream().filter(adp -> adp.contains(xpdrNodelist
.get(xpdrNodelist.size() - 1))).findFirst().get();
org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.connectivity.rev181210.connectivity.context.Connection
- connection = createTopConnection(spcXpdr1, spcXpdr2, cepMap, I_OTSI, LayerProtocolName.PHOTONICMEDIA);
+ connection = createTopConnection(spcXpdr1, spcXpdr2, cepMap, TapiStringConstants.I_OTSI,
+ LayerProtocolName.PHOTONICMEDIA);
this.connectionFullMap.put(connection.key(), connection);
// OTSi top connection that will be added to the service object
// Create 3 CEPs for each AD and DEG and the corresponding cross connections, matching the NEPs
// created in the topology creation
// add CEPs to the topology to the corresponding ONEP
- ConnectionEndPoint adCep1 = createCepRoadm(spcRdmAD, PHTNC_MEDIA);
- putRdmCepInTopologyContext(roadm, spcRdmAD, PHTNC_MEDIA, adCep1);
- ConnectionEndPoint adCep2 = createCepRoadm(spcRdmAD, MC);
- putRdmCepInTopologyContext(roadm, spcRdmAD, MC, adCep2);
- ConnectionEndPoint adCep3 = createCepRoadm(spcRdmAD, OTSI_MC);
- putRdmCepInTopologyContext(roadm, spcRdmAD, OTSI_MC, adCep3);
+ ConnectionEndPoint adCep1 = createCepRoadm(spcRdmAD, TapiStringConstants.PHTNC_MEDIA);
+ putRdmCepInTopologyContext(roadm, spcRdmAD, TapiStringConstants.PHTNC_MEDIA, adCep1);
+ ConnectionEndPoint adCep2 = createCepRoadm(spcRdmAD, TapiStringConstants.MC);
+ putRdmCepInTopologyContext(roadm, spcRdmAD, TapiStringConstants.MC, adCep2);
+ ConnectionEndPoint adCep3 = createCepRoadm(spcRdmAD, TapiStringConstants.OTSI_MC);
+ putRdmCepInTopologyContext(roadm, spcRdmAD, TapiStringConstants.OTSI_MC, adCep3);
cepMap.put(adCep1.key(), adCep1);
cepMap.put(adCep2.key(), adCep2);
cepMap.put(adCep3.key(), adCep3);
String spcRdmDEG = rdmDegTplist.stream().filter(adp -> adp.contains(roadm)).findFirst().get();
LOG.info("Degree port of ROADm {} = {}", roadm, spcRdmDEG);
- ConnectionEndPoint degCep1 = createCepRoadm(spcRdmDEG, PHTNC_MEDIA);
- putRdmCepInTopologyContext(roadm, spcRdmDEG, PHTNC_MEDIA, degCep1);
- ConnectionEndPoint degCep2 = createCepRoadm(spcRdmDEG, MC);
- putRdmCepInTopologyContext(roadm, spcRdmDEG, MC, degCep2);
- ConnectionEndPoint degCep3 = createCepRoadm(spcRdmDEG, OTSI_MC);
- putRdmCepInTopologyContext(roadm, spcRdmDEG, OTSI_MC, degCep3);
+ ConnectionEndPoint degCep1 = createCepRoadm(spcRdmDEG, TapiStringConstants.PHTNC_MEDIA);
+ putRdmCepInTopologyContext(roadm, spcRdmDEG, TapiStringConstants.PHTNC_MEDIA, degCep1);
+ ConnectionEndPoint degCep2 = createCepRoadm(spcRdmDEG, TapiStringConstants.MC);
+ putRdmCepInTopologyContext(roadm, spcRdmDEG, TapiStringConstants.MC, degCep2);
+ ConnectionEndPoint degCep3 = createCepRoadm(spcRdmDEG, TapiStringConstants.OTSI_MC);
+ putRdmCepInTopologyContext(roadm, spcRdmDEG, TapiStringConstants.OTSI_MC, degCep3);
cepMap.put(degCep1.key(), degCep1);
cepMap.put(degCep2.key(), degCep2);
cepMap.put(degCep3.key(), degCep3);
LOG.info("Going to create cross connections for ROADM {}", roadm);
// Create X connections between MC and OTSi_MC for full map
org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.connectivity.rev181210.connectivity.context.Connection
- connection1 = createXCBetweenCeps(adCep2, degCep2, spcRdmAD, spcRdmDEG, MC,
+ connection1 = createXCBetweenCeps(adCep2, degCep2, spcRdmAD, spcRdmDEG, TapiStringConstants.MC,
LayerProtocolName.PHOTONICMEDIA);
LOG.info("Cross connection 1 created = {}", connection1);
org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.connectivity.rev181210.connectivity.context.Connection
- connection2 = createXCBetweenCeps(adCep3, degCep3, spcRdmAD, spcRdmDEG, OTSI_MC,
+ connection2 = createXCBetweenCeps(adCep3, degCep3, spcRdmAD, spcRdmDEG, TapiStringConstants.OTSI_MC,
LayerProtocolName.PHOTONICMEDIA);
LOG.info("Cross connection 2 created = {}", connection2);
this.connectionFullMap.put(connection1.key(), connection1);
// Create top connections between MC for full map
org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.connectivity.rev181210.connectivity.context.Connection
- connection = createTopConnection(spcRdmAD1, spcRdmAD2, cepMap, MC, LayerProtocolName.PHOTONICMEDIA);
+ connection = createTopConnection(spcRdmAD1, spcRdmAD2, cepMap, TapiStringConstants.MC,
+ LayerProtocolName.PHOTONICMEDIA);
this.connectionFullMap.put(connection.key(), connection);
LOG.info("Top connection created = {}", connection);
String spcRdmAD1 = rdmAddDropTplist.stream().filter(adp -> adp.contains(edgeRoadm1)).findFirst().get();
String spcRdmAD2 = rdmAddDropTplist.stream().filter(adp -> adp.contains(edgeRoadm2)).findFirst().get();
org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.connectivity.rev181210.connectivity.context.Connection
- connection = createTopConnection(spcRdmAD1, spcRdmAD2, cepMap, OTSI_MC,
+ connection = createTopConnection(spcRdmAD1, spcRdmAD2, cepMap, TapiStringConstants.OTSI_MC,
LayerProtocolName.PHOTONICMEDIA);
this.connectionFullMap.put(connection.key(), connection);
LOG.info("Top connection created = {}", connection);
.setNodeUuid(new Uuid(UUID.nameUUIDFromBytes((String.join("+",id.split("\\+")[0],
qualifier)).getBytes(Charset.forName("UTF-8")))
.toString()))
- .setTopologyUuid(new Uuid(UUID.nameUUIDFromBytes(TopologyUtils.T0_FULL_MULTILAYER
+ .setTopologyUuid(new Uuid(UUID.nameUUIDFromBytes(TapiStringConstants.T0_FULL_MULTILAYER
.getBytes(Charset.forName("UTF-8"))).toString()))
.build();
// TODO: add augmentation with the corresponding cep-spec (i.e. MC, OTSiMC...)
.setNodeUuid(new Uuid(UUID.nameUUIDFromBytes((String.join("+",id.split("\\+")[0],
nodeLayer)).getBytes(Charset.forName("UTF-8")))
.toString()))
- .setTopologyUuid(new Uuid(UUID.nameUUIDFromBytes(TopologyUtils.T0_FULL_MULTILAYER
+ .setTopologyUuid(new Uuid(UUID.nameUUIDFromBytes(TapiStringConstants.T0_FULL_MULTILAYER
.getBytes(Charset.forName("UTF-8"))).toString()))
.build();
// TODO: add augmentation with the corresponding cep-spec (i.e. MC, OTSiMC...)
ZToA firstElement = mapztoa.values().stream().filter(ztoa -> ztoa.getId().equals("0")).findFirst().get();
TerminationPoint tp = (TerminationPoint) firstElement.getResource().getResource();
Uuid sipUuid = new Uuid(UUID.nameUUIDFromBytes((String.join("+", "SIP",
- tp.getTpNodeId(), MC, tp.getTpId())).getBytes(Charset.forName("UTF-8")))
+ tp.getTpNodeId(), TapiStringConstants.MC, tp.getTpId())).getBytes(Charset.forName("UTF-8")))
.toString());
- LOG.info("SIP name = {}", String.join("+", tp.getTpNodeId(), MC, tp.getTpId()));
+ LOG.info("SIP name = {}", String.join("+", tp.getTpNodeId(), TapiStringConstants.MC, tp.getTpId()));
for (ServiceInterfacePoint sip:this.sipMap.values()) {
if (!sip.getUuid().equals(sipUuid)) {
LOG.info("SIP {} doesn match sipname {}", sip.getUuid().getValue(), sipUuid.getValue());
tp = (TerminationPoint) firstElement.getResource().getResource();
// Network-Network ports --> iODU layer SIPs TODO --> updated to E_ODU
sipUuid = new Uuid(UUID.nameUUIDFromBytes((String.join("+", "SIP",
- tp.getTpNodeId(), E_ODU, tp.getTpId())).getBytes(Charset.forName("UTF-8")))
+ tp.getTpNodeId(), TapiStringConstants.E_ODU, tp.getTpId())).getBytes(Charset.forName("UTF-8")))
.toString());
- LOG.info("SIP name = {}", String.join("+", tp.getTpNodeId(), E_ODU, tp.getTpId()));
+ LOG.info("SIP name = {}", String.join("+", tp.getTpNodeId(), TapiStringConstants.E_ODU,
+ tp.getTpId()));
break;
case OTU:
firstElement = mapztoa.values().stream().filter(ztoa -> ztoa.getId().equals("2")).findFirst().get();
tp = (TerminationPoint) firstElement.getResource().getResource();
// Network-Network ports --> iOTSi layer SIPs
sipUuid = new Uuid(UUID.nameUUIDFromBytes((String.join("+", "SIP",
- tp.getTpNodeId(), I_OTSI, tp.getTpId())).getBytes(Charset.forName("UTF-8")))
+ tp.getTpNodeId(), TapiStringConstants.I_OTSI, tp.getTpId())).getBytes(Charset.forName("UTF-8")))
.toString());
- LOG.info("SIP name = {}", String.join("+", tp.getTpNodeId(), I_OTSI, tp.getTpId()));
+ LOG.info("SIP name = {}", String.join("+", tp.getTpNodeId(), TapiStringConstants.I_OTSI,
+ tp.getTpId()));
break;
case Ethernet:
firstElement = mapztoa.values().stream().filter(ztoa -> ztoa.getId().equals("0")).findFirst().get();
tp = (TerminationPoint) firstElement.getResource().getResource();
// Client-client ports --> DSR layer SIPs
sipUuid = new Uuid(UUID.nameUUIDFromBytes((String.join("+", "SIP",
- tp.getTpNodeId(), DSR, tp.getTpId())).getBytes(Charset.forName("UTF-8")))
+ tp.getTpNodeId(), TapiStringConstants.DSR, tp.getTpId())).getBytes(Charset.forName("UTF-8")))
.toString());
- LOG.info("SIP name = {}", String.join("+", tp.getTpNodeId(), DSR, tp.getTpId()));
+ LOG.info("SIP name = {}", String.join("+", tp.getTpNodeId(), TapiStringConstants.DSR,
+ tp.getTpId()));
break;
default:
sipUuid = null;
LOG.info("First element of service path = {}", firstElement.getResource().getResource());
TerminationPoint tp = (TerminationPoint) firstElement.getResource().getResource();
Uuid sipUuid = new Uuid(UUID.nameUUIDFromBytes((String.join("+", "SIP",
- tp.getTpNodeId(), MC, tp.getTpId())).getBytes(Charset.forName("UTF-8")))
+ tp.getTpNodeId(), TapiStringConstants.MC, tp.getTpId())).getBytes(Charset.forName("UTF-8")))
.toString());
- LOG.info("ROADM SIP name = {}", String.join("+", tp.getTpNodeId(), MC, tp.getTpId()));
+ LOG.info("ROADM SIP name = {}", String.join("+", tp.getTpNodeId(), TapiStringConstants.MC,
+ tp.getTpId()));
for (ServiceInterfacePoint sip:this.sipMap.values()) {
if (!sip.getUuid().equals(sipUuid)) {
LOG.info("SIP {} doesn match sipname {}", sip.getUuid().getValue(), sipUuid.getValue());
tp = (TerminationPoint) firstElement.getResource().getResource();
// Network-Network ports --> iODU layer SIPs. TODO -> updated to eODU
sipUuid = new Uuid(UUID.nameUUIDFromBytes((String.join("+", "SIP",
- tp.getTpNodeId(), E_ODU, tp.getTpId())).getBytes(Charset.forName("UTF-8")))
+ tp.getTpNodeId(), TapiStringConstants.E_ODU, tp.getTpId())).getBytes(Charset.forName("UTF-8")))
.toString());
- LOG.info("ODU XPDR SIP name = {}", String.join("+", tp.getTpNodeId(), E_ODU, tp.getTpId()));
+ LOG.info("ODU XPDR SIP name = {}", String.join("+", tp.getTpNodeId(),
+ TapiStringConstants.E_ODU, tp.getTpId()));
break;
case OTU:
firstElement = mapatoz.values().stream().filter(atoz -> atoz.getId().equals("2")).findFirst().get();
tp = (TerminationPoint) firstElement.getResource().getResource();
// Network-Network ports --> iOTSi layer SIPs
sipUuid = new Uuid(UUID.nameUUIDFromBytes((String.join("+", "SIP",
- tp.getTpNodeId(), I_OTSI, tp.getTpId())).getBytes(Charset.forName("UTF-8")))
+ tp.getTpNodeId(), TapiStringConstants.I_OTSI, tp.getTpId())).getBytes(Charset.forName("UTF-8")))
.toString());
- LOG.info("OTU XPDR SIP name = {}", String.join("+", tp.getTpNodeId(), I_OTSI, tp.getTpId()));
+ LOG.info("OTU XPDR SIP name = {}", String.join("+", tp.getTpNodeId(),
+ TapiStringConstants.I_OTSI, tp.getTpId()));
break;
case Ethernet:
firstElement = mapatoz.values().stream().filter(atoz -> atoz.getId().equals("0")).findFirst().get();
tp = (TerminationPoint) firstElement.getResource().getResource();
// Client-client ports --> DSR layer SIPs
sipUuid = new Uuid(UUID.nameUUIDFromBytes((String.join("+", "SIP",
- tp.getTpNodeId(), DSR, tp.getTpId())).getBytes(Charset.forName("UTF-8")))
+ tp.getTpNodeId(), TapiStringConstants.DSR, tp.getTpId())).getBytes(Charset.forName("UTF-8")))
.toString());
- LOG.info("DSR XPDR SIP name = {}", String.join("+", tp.getTpNodeId(), DSR, tp.getTpId()));
+ LOG.info("DSR XPDR SIP name = {}", String.join("+", tp.getTpNodeId(),
+ TapiStringConstants.DSR, tp.getTpId()));
break;
default:
sipUuid = null;
private void putRdmCepInTopologyContext(String node, String spcRdmAD, String qual, ConnectionEndPoint cep) {
LOG.info("NEP id before Merge = {}", String.join("+", node, qual, spcRdmAD.split("\\+")[1]));
- LOG.info("Node of NEP id before Merge = {}", String.join("+", node, PHTNC_MEDIA));
+ LOG.info("Node of NEP id before Merge = {}", String.join("+", node, TapiStringConstants.PHTNC_MEDIA));
// Give uuids so that it is easier to look for things: topology uuid, node uuid, nep uuid, cep
- Uuid topoUuid = new Uuid(UUID.nameUUIDFromBytes(TopologyUtils.T0_FULL_MULTILAYER
+ Uuid topoUuid = new Uuid(UUID.nameUUIDFromBytes(TapiStringConstants.T0_FULL_MULTILAYER
.getBytes(Charset.forName("UTF-8"))).toString());
- Uuid nodeUuid = new Uuid(UUID.nameUUIDFromBytes(String.join("+", node, PHTNC_MEDIA)
+ Uuid nodeUuid = new Uuid(UUID.nameUUIDFromBytes(String.join("+", node, TapiStringConstants.PHTNC_MEDIA)
.getBytes(Charset.forName("UTF-8"))).toString());
Uuid nepUuid = new Uuid(UUID.nameUUIDFromBytes(String.join("+", node, qual, spcRdmAD.split("\\+")[1])
.getBytes(Charset.forName("UTF-8"))).toString());
private void putXpdrCepInTopologyContext(String node, String spcXpdrNet, String qual, String nodeLayer,
ConnectionEndPoint cep) {
// Give uuids so that it is easier to look for things: topology uuid, node uuid, nep uuid, cep
- Uuid topoUuid = new Uuid(UUID.nameUUIDFromBytes(TopologyUtils.T0_FULL_MULTILAYER
+ Uuid topoUuid = new Uuid(UUID.nameUUIDFromBytes(TapiStringConstants.T0_FULL_MULTILAYER
.getBytes(Charset.forName("UTF-8"))).toString());
Uuid nodeUuid = new Uuid(UUID.nameUUIDFromBytes(String.join("+", node, nodeLayer)
.getBytes(Charset.forName("UTF-8"))).toString());
ConnectivityConstraint constraint = input.getConnectivityConstraint();
ConnectionType connType = null;
ServiceFormat serviceFormat = null;
- String nodeAid = String.join("+", endPointMap.values().stream().findFirst().get().getLocalId(), DSR);
- String nodeZid = String.join("+", endPointMap.values().stream().skip(1).findFirst().get().getLocalId(), DSR);
+ String nodeAid = String.join("+", endPointMap.values().stream().findFirst().get().getLocalId(),
+ TapiStringConstants.DSR);
+ String nodeZid = String.join("+", endPointMap.values().stream().skip(1).findFirst().get().getLocalId(),
+ TapiStringConstants.DSR);
LOG.debug("Node a = {}", nodeAid);
LOG.debug("Node z = {}", nodeZid);
switch (constraint.getServiceLayer().getIntValue()) {
serviceFormat = getServiceFormatPhtnc(endPointMap.values());
if (serviceFormat.equals(ServiceFormat.OC)) {
nodeAid = String.join("+", endPointMap.values().stream().findFirst().get().getLocalId(),
- PHTNC_MEDIA);
+ TapiStringConstants.PHTNC_MEDIA);
nodeZid = String.join("+", endPointMap.values().stream().skip(1).findFirst().get().getLocalId(),
- PHTNC_MEDIA);
+ TapiStringConstants.PHTNC_MEDIA);
} else {
- nodeAid = String.join("+", endPointMap.values().stream().findFirst().get().getLocalId(), OTSI);
+ nodeAid = String.join("+", endPointMap.values().stream().findFirst().get().getLocalId(),
+ TapiStringConstants.OTSI);
nodeZid = String.join("+", endPointMap.values().stream().skip(1).findFirst().get().getLocalId(),
- OTSI);
+ TapiStringConstants.OTSI);
}
LOG.debug("Node a photonic = {}", nodeAid);
LOG.debug("Node z photonic = {}", nodeZid);
.setPort(new PortBuilder()
.setPortDeviceName(txPortDeviceName)
.setPortName(txPortName)
- .setPortRack(PORT_RACK_VALUE)
+ .setPortRack(TapiStringConstants.PORT_RACK_VALUE)
.setPortShelf("00")
- .setPortType(PORT_TYPE)
+ .setPortType(TapiStringConstants.PORT_TYPE)
.build())
.setLgx(new LgxBuilder()
- .setLgxDeviceName(LGX_DEVICE_NAME)
- .setLgxPortName(LGX_PORT_NAME)
- .setLgxPortRack(PORT_RACK_VALUE)
+ .setLgxDeviceName(TapiStringConstants.LGX_DEVICE_NAME)
+ .setLgxPortName(TapiStringConstants.LGX_PORT_NAME)
+ .setLgxPortRack(TapiStringConstants.PORT_RACK_VALUE)
.setLgxPortShelf("00")
.build())
.build())
.setPort(new PortBuilder()
.setPortDeviceName(rxPortDeviceName)
.setPortName(rxPortName)
- .setPortRack(PORT_RACK_VALUE)
+ .setPortRack(TapiStringConstants.PORT_RACK_VALUE)
.setPortShelf("00")
- .setPortType(PORT_TYPE)
+ .setPortType(TapiStringConstants.PORT_TYPE)
.build())
.setLgx(new LgxBuilder()
- .setLgxDeviceName(LGX_DEVICE_NAME)
- .setLgxPortName(LGX_PORT_NAME)
- .setLgxPortRack(PORT_RACK_VALUE)
+ .setLgxDeviceName(TapiStringConstants.LGX_DEVICE_NAME)
+ .setLgxPortName(TapiStringConstants.LGX_PORT_NAME)
+ .setLgxPortRack(TapiStringConstants.PORT_RACK_VALUE)
.setLgxPortShelf("00")
.build())
.build());
.setPort(new PortBuilder()
.setPortDeviceName(txPortDeviceName)
.setPortName(txPortName)
- .setPortRack(PORT_RACK_VALUE)
+ .setPortRack(TapiStringConstants.PORT_RACK_VALUE)
.setPortShelf("00")
- .setPortType(PORT_TYPE)
+ .setPortType(TapiStringConstants.PORT_TYPE)
.build())
.setLgx(new LgxBuilder()
- .setLgxDeviceName(LGX_DEVICE_NAME)
- .setLgxPortName(LGX_PORT_NAME)
- .setLgxPortRack(PORT_RACK_VALUE)
+ .setLgxDeviceName(TapiStringConstants.LGX_DEVICE_NAME)
+ .setLgxPortName(TapiStringConstants.LGX_PORT_NAME)
+ .setLgxPortRack(TapiStringConstants.PORT_RACK_VALUE)
.setLgxPortShelf("00")
.build())
.build())
.setPort(new PortBuilder()
.setPortDeviceName(rxPortDeviceName)
.setPortName(rxPortName)
- .setPortRack(PORT_RACK_VALUE)
+ .setPortRack(TapiStringConstants.PORT_RACK_VALUE)
.setPortShelf("00")
- .setPortType(PORT_TYPE)
+ .setPortType(TapiStringConstants.PORT_TYPE)
.build())
.setLgx(new LgxBuilder()
- .setLgxDeviceName(LGX_DEVICE_NAME)
- .setLgxPortName(LGX_PORT_NAME)
- .setLgxPortRack(PORT_RACK_VALUE)
+ .setLgxDeviceName(TapiStringConstants.LGX_DEVICE_NAME)
+ .setLgxPortName(TapiStringConstants.LGX_PORT_NAME)
+ .setLgxPortRack(TapiStringConstants.PORT_RACK_VALUE)
.setLgxPortShelf("00")
.build())
.build());
import org.opendaylight.transportpce.tapi.topology.TopologyUtils;
import org.opendaylight.transportpce.tapi.utils.TapiContext;
import org.opendaylight.transportpce.tapi.utils.TapiInitialORMapping;
+import org.opendaylight.transportpce.tapi.utils.TapiLink;
import org.opendaylight.transportpce.tapi.utils.TapiListener;
import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev210701.TransportpcePceListener;
import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210426.Network;
LOG.info("TapiProvider Session Initiated");
TapiContext tapiContext = new TapiContext(this.networkTransactionService);
LOG.info("Empty TAPI context created: {}", tapiContext.getTapiContext());
-
- TopologyUtils topologyUtils = new TopologyUtils(this.networkTransactionService, this.dataBroker);
+ TapiLink tapiLink = new TapiLink(this.networkTransactionService);
+ TopologyUtils topologyUtils = new TopologyUtils(this.networkTransactionService, this.dataBroker, tapiLink);
ConnectivityUtils connectivityUtils = new ConnectivityUtils(this.serviceDataStoreOperations, new HashMap<>(),
tapiContext);
TapiInitialORMapping tapiInitialORMapping = new TapiInitialORMapping(topologyUtils, connectivityUtils,
TapiConnectivityImpl tapi = new TapiConnectivityImpl(this.serviceHandler, tapiContext, connectivityUtils,
pceListenerImpl, rendererListenerImpl, serviceHandlerListenerImpl);
- TapiTopologyImpl topo = new TapiTopologyImpl(this.dataBroker, tapiContext, topologyUtils);
+ TapiTopologyImpl topo = new TapiTopologyImpl(this.dataBroker, tapiContext, topologyUtils, tapiLink);
rpcRegistration = rpcProviderService.registerRpcImplementation(TapiConnectivityService.class, tapi);
rpcProviderService.registerRpcImplementation(TapiTopologyService.class, topo);
rpcProviderService.registerRpcImplementation(TapiCommonService.class, topo);
import org.opendaylight.transportpce.common.network.NetworkTransactionImpl;
import org.opendaylight.transportpce.common.network.NetworkTransactionService;
import org.opendaylight.transportpce.common.network.RequestProcessor;
-import org.opendaylight.transportpce.tapi.topology.TopologyUtils;
+import org.opendaylight.transportpce.tapi.TapiStringConstants;
import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev210701.ServicePathRpcResult;
import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev210701.TransportpcePceListener;
import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev210701.service.path.rpc.result.PathDescription;
public class TapiPceListenerImpl implements TransportpcePceListener {
- private static final String DSR = "DSR";
- private static final String ODU = "ODU";
- private static final String E_ODU = "eODU";
- private static final String I_ODU = "iODU";
- private static final String OTSI = "OTSi";
- private static final String E_OTSI = "eOTSi";
- private static final String I_OTSI = "iOTSi";
- private static final String PHTNC_MEDIA = "PHOTONIC_MEDIA";
- private static final String MC = "MEDIA_CHANNEL";
- private static final String OTSI_MC = "OTSi_MEDIA_CHANNEL";
- private static final String TP = "TerminationPoint";
- private static final String NODE = "Node";
private static final Logger LOG = LoggerFactory.getLogger(TapiPceListenerImpl.class);
private ServicePathRpcResult servicePathRpcResult;
.sorted(Comparator.comparing(AToZ::getId)).collect(Collectors.toList())) {
resourceType = elem.getResource().getResource().implementedInterface().getSimpleName();
switch (resourceType) {
- case TP:
+ case TapiStringConstants.TP:
TerminationPoint tp = (TerminationPoint) elem.getResource().getResource();
String tpID = tp.getTpId();
String tpNode;
}
}
break;
- case NODE:
+ case TapiStringConstants.NODE:
Node node = (Node) elem.getResource().getResource();
String nodeId = node.getNodeId();
if (nodeId.contains("XPDR") || nodeId.contains("SPDR") || nodeId.contains("MXPDR")) {
LOG.info("Creating ceps and xc for xpdr {}", xpdr);
String spcXpdrClient = xpdrClientTplist.stream().filter(netp -> netp.contains(xpdr)).findFirst().get();
- ConnectionEndPoint netCep1 = createCepXpdr(spcXpdrClient, DSR, DSR, LayerProtocolName.DSR);
- putXpdrCepInTopologyContext(xpdr, spcXpdrClient, DSR, DSR, netCep1);
+ ConnectionEndPoint netCep1 = createCepXpdr(spcXpdrClient, TapiStringConstants.DSR, TapiStringConstants.DSR,
+ LayerProtocolName.DSR);
+ putXpdrCepInTopologyContext(xpdr, spcXpdrClient, TapiStringConstants.DSR, TapiStringConstants.DSR, netCep1);
cepMap.put(netCep1.key(), netCep1);
}
String spcXpdr2 = xpdrClientTplist.stream().filter(adp -> adp.contains(xpdrNodelist
.get(xpdrNodelist.size() - 1))).findFirst().get();
org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.connectivity.rev181210.connectivity.context.Connection
- connection = createTopConnection(spcXpdr1, spcXpdr2, cepMap, DSR, LayerProtocolName.DSR);
+ connection = createTopConnection(spcXpdr1, spcXpdr2, cepMap, TapiStringConstants.DSR,
+ LayerProtocolName.DSR);
this.connectionFullMap.put(connection.key(), connection);
// ODU top connection that will be added to the service object
LOG.info("Creating ceps and xc for xpdr {}", xpdr);
String spcXpdrNetwork = xpdrNetworkTplist.stream().filter(netp -> netp.contains(xpdr)).findFirst().get();
- ConnectionEndPoint netCep1 = createCepXpdr(spcXpdrNetwork, E_ODU, DSR, LayerProtocolName.ODU);
- putXpdrCepInTopologyContext(xpdr, spcXpdrNetwork, E_ODU, DSR, netCep1);
- ConnectionEndPoint netCep2 = createCepXpdr(spcXpdrNetwork, I_ODU, DSR, LayerProtocolName.ODU);
- putXpdrCepInTopologyContext(xpdr, spcXpdrNetwork, I_ODU, DSR, netCep2);
+ ConnectionEndPoint netCep1 = createCepXpdr(spcXpdrNetwork, TapiStringConstants.E_ODU,
+ TapiStringConstants.DSR, LayerProtocolName.ODU);
+ putXpdrCepInTopologyContext(xpdr, spcXpdrNetwork, TapiStringConstants.E_ODU, TapiStringConstants.DSR,
+ netCep1);
+ ConnectionEndPoint netCep2 = createCepXpdr(spcXpdrNetwork, TapiStringConstants.I_ODU,
+ TapiStringConstants.DSR, LayerProtocolName.ODU);
+ putXpdrCepInTopologyContext(xpdr, spcXpdrNetwork, TapiStringConstants.I_ODU,
+ TapiStringConstants.DSR, netCep2);
cepMap.put(netCep1.key(), netCep1);
cepMap.put(netCep2.key(), netCep2);
// Create x connection between I_ODU and E_ODU within xpdr
org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.connectivity.rev181210.connectivity.context.Connection
- connection = createXCBetweenCeps(netCep1, netCep2, spcXpdrNetwork, spcXpdrNetwork, ODU,
- LayerProtocolName.ODU);
+ connection = createXCBetweenCeps(netCep1, netCep2, spcXpdrNetwork, spcXpdrNetwork,
+ TapiStringConstants.ODU, LayerProtocolName.ODU);
this.connectionFullMap.put(connection.key(), connection);
// Create X connection that will be added to the service object
String spcXpdr2 = xpdrNetworkTplist.stream().filter(adp -> adp.contains(xpdrNodelist
.get(xpdrNodelist.size() - 1))).findFirst().get();
org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.connectivity.rev181210.connectivity.context.Connection
- connection = createTopConnection(spcXpdr1, spcXpdr2, cepMap, E_ODU, LayerProtocolName.ODU);
+ connection = createTopConnection(spcXpdr1, spcXpdr2, cepMap, TapiStringConstants.E_ODU,
+ LayerProtocolName.ODU);
this.connectionFullMap.put(connection.key(), connection);
// ODU top connection that will be added to the service object
// TODO photonic media model should be updated to have the corresponding CEPs. I will just create
// 3 different MC CEPs giving different IDs to show that they are different
// Create 3 CEPs for each xpdr otsi node and the corresponding cross connection matchin the NEPs
- ConnectionEndPoint netCep1 = createCepXpdr(spcXpdrNetwork, PHTNC_MEDIA, OTSI,
- LayerProtocolName.PHOTONICMEDIA);
- putXpdrCepInTopologyContext(xpdr, spcXpdrNetwork, PHTNC_MEDIA, OTSI, netCep1);
- ConnectionEndPoint netCep2 = createCepXpdr(spcXpdrNetwork, E_OTSI, OTSI, LayerProtocolName.PHOTONICMEDIA);
- putXpdrCepInTopologyContext(xpdr, spcXpdrNetwork, E_OTSI, OTSI, netCep2);
- ConnectionEndPoint netCep3 = createCepXpdr(spcXpdrNetwork, I_OTSI, OTSI, LayerProtocolName.PHOTONICMEDIA);
- putXpdrCepInTopologyContext(xpdr, spcXpdrNetwork, I_OTSI, OTSI, netCep3);
+ ConnectionEndPoint netCep1 = createCepXpdr(spcXpdrNetwork, TapiStringConstants.PHTNC_MEDIA,
+ TapiStringConstants.OTSI, LayerProtocolName.PHOTONICMEDIA);
+ putXpdrCepInTopologyContext(xpdr, spcXpdrNetwork, TapiStringConstants.PHTNC_MEDIA, TapiStringConstants.OTSI,
+ netCep1);
+ ConnectionEndPoint netCep2 = createCepXpdr(spcXpdrNetwork, TapiStringConstants.E_OTSI,
+ TapiStringConstants.OTSI, LayerProtocolName.PHOTONICMEDIA);
+ putXpdrCepInTopologyContext(xpdr, spcXpdrNetwork, TapiStringConstants.E_OTSI, TapiStringConstants.OTSI,
+ netCep2);
+ ConnectionEndPoint netCep3 = createCepXpdr(spcXpdrNetwork, TapiStringConstants.I_OTSI,
+ TapiStringConstants.OTSI, LayerProtocolName.PHOTONICMEDIA);
+ putXpdrCepInTopologyContext(xpdr, spcXpdrNetwork, TapiStringConstants.I_OTSI, TapiStringConstants.OTSI,
+ netCep3);
cepMap.put(netCep1.key(), netCep1);
cepMap.put(netCep2.key(), netCep2);
cepMap.put(netCep3.key(), netCep3);
// Create x connection between I_OTSi and E_OTSi within xpdr
org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.connectivity.rev181210.connectivity.context.Connection
- connection = createXCBetweenCeps(netCep2, netCep3, spcXpdrNetwork, spcXpdrNetwork, OTSI,
- LayerProtocolName.PHOTONICMEDIA);
+ connection = createXCBetweenCeps(netCep2, netCep3, spcXpdrNetwork, spcXpdrNetwork,
+ TapiStringConstants.OTSI, LayerProtocolName.PHOTONICMEDIA);
this.connectionFullMap.put(connection.key(), connection);
// Create X connection that will be added to the service object
String spcXpdr2 = xpdrNetworkTplist.stream().filter(adp -> adp.contains(xpdrNodelist
.get(xpdrNodelist.size() - 1))).findFirst().get();
org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.connectivity.rev181210.connectivity.context.Connection
- connection = createTopConnection(spcXpdr1, spcXpdr2, cepMap, I_OTSI, LayerProtocolName.PHOTONICMEDIA);
+ connection = createTopConnection(spcXpdr1, spcXpdr2, cepMap, TapiStringConstants.I_OTSI,
+ LayerProtocolName.PHOTONICMEDIA);
this.connectionFullMap.put(connection.key(), connection);
// OTSi top connection that will be added to the service object
// Create 3 CEPs for each AD and DEG and the corresponding cross connections, matching the NEPs
// created in the topology creation
// add CEPs to the topology to the corresponding ONEP
- ConnectionEndPoint adCep1 = createCepRoadm(spcRdmAD, PHTNC_MEDIA);
- putRdmCepInTopologyContext(roadm, spcRdmAD, PHTNC_MEDIA, adCep1);
- ConnectionEndPoint adCep2 = createCepRoadm(spcRdmAD, MC);
- putRdmCepInTopologyContext(roadm, spcRdmAD, MC, adCep2);
- ConnectionEndPoint adCep3 = createCepRoadm(spcRdmAD, OTSI_MC);
- putRdmCepInTopologyContext(roadm, spcRdmAD, OTSI_MC, adCep3);
+ ConnectionEndPoint adCep1 = createCepRoadm(spcRdmAD, TapiStringConstants.PHTNC_MEDIA);
+ putRdmCepInTopologyContext(roadm, spcRdmAD, TapiStringConstants.PHTNC_MEDIA, adCep1);
+ ConnectionEndPoint adCep2 = createCepRoadm(spcRdmAD, TapiStringConstants.MC);
+ putRdmCepInTopologyContext(roadm, spcRdmAD, TapiStringConstants.MC, adCep2);
+ ConnectionEndPoint adCep3 = createCepRoadm(spcRdmAD, TapiStringConstants.OTSI_MC);
+ putRdmCepInTopologyContext(roadm, spcRdmAD, TapiStringConstants.OTSI_MC, adCep3);
cepMap.put(adCep1.key(), adCep1);
cepMap.put(adCep2.key(), adCep2);
cepMap.put(adCep3.key(), adCep3);
String spcRdmDEG = rdmDegTplist.stream().filter(adp -> adp.contains(roadm)).findFirst().get();
LOG.info("Degree port of ROADm {} = {}", roadm, spcRdmDEG);
- ConnectionEndPoint degCep1 = createCepRoadm(spcRdmDEG, PHTNC_MEDIA);
- putRdmCepInTopologyContext(roadm, spcRdmDEG, PHTNC_MEDIA, degCep1);
- ConnectionEndPoint degCep2 = createCepRoadm(spcRdmDEG, MC);
- putRdmCepInTopologyContext(roadm, spcRdmDEG, MC, degCep2);
- ConnectionEndPoint degCep3 = createCepRoadm(spcRdmDEG, OTSI_MC);
- putRdmCepInTopologyContext(roadm, spcRdmDEG, OTSI_MC, degCep3);
+ ConnectionEndPoint degCep1 = createCepRoadm(spcRdmDEG, TapiStringConstants.PHTNC_MEDIA);
+ putRdmCepInTopologyContext(roadm, spcRdmDEG, TapiStringConstants.PHTNC_MEDIA, degCep1);
+ ConnectionEndPoint degCep2 = createCepRoadm(spcRdmDEG, TapiStringConstants.MC);
+ putRdmCepInTopologyContext(roadm, spcRdmDEG, TapiStringConstants.MC, degCep2);
+ ConnectionEndPoint degCep3 = createCepRoadm(spcRdmDEG, TapiStringConstants.OTSI_MC);
+ putRdmCepInTopologyContext(roadm, spcRdmDEG, TapiStringConstants.OTSI_MC, degCep3);
cepMap.put(degCep1.key(), degCep1);
cepMap.put(degCep2.key(), degCep2);
cepMap.put(degCep3.key(), degCep3);
LOG.info("Going to create cross connections for ROADM {}", roadm);
// Create X connections between MC and OTSi_MC for full map
org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.connectivity.rev181210.connectivity.context.Connection
- connection1 = createXCBetweenCeps(adCep2, degCep2, spcRdmAD, spcRdmDEG, MC,
+ connection1 = createXCBetweenCeps(adCep2, degCep2, spcRdmAD, spcRdmDEG, TapiStringConstants.MC,
LayerProtocolName.PHOTONICMEDIA);
LOG.info("Cross connection 1 created = {}", connection1.toString());
org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.connectivity.rev181210.connectivity.context.Connection
- connection2 = createXCBetweenCeps(adCep3, degCep3, spcRdmAD, spcRdmDEG, OTSI_MC,
+ connection2 = createXCBetweenCeps(adCep3, degCep3, spcRdmAD, spcRdmDEG, TapiStringConstants.OTSI_MC,
LayerProtocolName.PHOTONICMEDIA);
LOG.info("Cross connection 2 created = {}", connection2.toString());
this.connectionFullMap.put(connection1.key(), connection1);
// Create top connections between MC for full map
org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.connectivity.rev181210.connectivity.context.Connection
- connection = createTopConnection(spcRdmAD1, spcRdmAD2, cepMap, MC, LayerProtocolName.PHOTONICMEDIA);
+ connection = createTopConnection(spcRdmAD1, spcRdmAD2, cepMap, TapiStringConstants.MC,
+ LayerProtocolName.PHOTONICMEDIA);
this.connectionFullMap.put(connection.key(), connection);
LOG.info("Top connection created = {}", connection.toString());
String spcRdmAD1 = rdmAddDropTplist.stream().filter(adp -> adp.contains(edgeRoadm1)).findFirst().get();
String spcRdmAD2 = rdmAddDropTplist.stream().filter(adp -> adp.contains(edgeRoadm2)).findFirst().get();
org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.connectivity.rev181210.connectivity.context.Connection
- connection = createTopConnection(spcRdmAD1, spcRdmAD2, cepMap, OTSI_MC,
+ connection = createTopConnection(spcRdmAD1, spcRdmAD2, cepMap, TapiStringConstants.OTSI_MC,
LayerProtocolName.PHOTONICMEDIA);
this.connectionFullMap.put(connection.key(), connection);
LOG.info("Top connection created = {}", connection.toString());
.setNodeUuid(new Uuid(UUID.nameUUIDFromBytes((String.join("+",id.split("\\+")[0],
qualifier)).getBytes(Charset.forName("UTF-8")))
.toString()))
- .setTopologyUuid(new Uuid(UUID.nameUUIDFromBytes(TopologyUtils.T0_FULL_MULTILAYER
+ .setTopologyUuid(new Uuid(UUID.nameUUIDFromBytes(TapiStringConstants.T0_FULL_MULTILAYER
.getBytes(Charset.forName("UTF-8"))).toString()))
.build();
// TODO: add augmentation with the corresponding cep-spec (i.e. MC, OTSiMC...)
.setNodeUuid(new Uuid(UUID.nameUUIDFromBytes((String.join("+",id.split("\\+")[0],
nodeLayer)).getBytes(Charset.forName("UTF-8")))
.toString()))
- .setTopologyUuid(new Uuid(UUID.nameUUIDFromBytes(TopologyUtils.T0_FULL_MULTILAYER
+ .setTopologyUuid(new Uuid(UUID.nameUUIDFromBytes(TapiStringConstants.T0_FULL_MULTILAYER
.getBytes(Charset.forName("UTF-8"))).toString()))
.build();
// TODO: add augmentation with the corresponding cep-spec (i.e. MC, OTSiMC...)
private void putRdmCepInTopologyContext(String node, String spcRdmAD, String qual, ConnectionEndPoint cep) {
LOG.info("NEP id before Merge = {}", String.join("+", node, qual, spcRdmAD.split("\\+")[1]));
- LOG.info("Node of NEP id before Merge = {}", String.join("+", node, PHTNC_MEDIA));
+ LOG.info("Node of NEP id before Merge = {}", String.join("+", node, TapiStringConstants.PHTNC_MEDIA));
// Give uuids so that it is easier to look for things: topology uuid, node uuid, nep uuid, cep
- Uuid topoUuid = new Uuid(UUID.nameUUIDFromBytes(TopologyUtils.T0_FULL_MULTILAYER
+ Uuid topoUuid = new Uuid(UUID.nameUUIDFromBytes(TapiStringConstants.T0_FULL_MULTILAYER
.getBytes(Charset.forName("UTF-8"))).toString());
- Uuid nodeUuid = new Uuid(UUID.nameUUIDFromBytes(String.join("+", node, PHTNC_MEDIA)
+ Uuid nodeUuid = new Uuid(UUID.nameUUIDFromBytes(String.join("+", node, TapiStringConstants.PHTNC_MEDIA)
.getBytes(Charset.forName("UTF-8"))).toString());
Uuid nepUuid = new Uuid(UUID.nameUUIDFromBytes(String.join("+", node, qual, spcRdmAD.split("\\+")[1])
.getBytes(Charset.forName("UTF-8"))).toString());
private void putXpdrCepInTopologyContext(String node, String spcXpdrNet, String qual, String nodeLayer,
ConnectionEndPoint cep) {
// Give uuids so that it is easier to look for things: topology uuid, node uuid, nep uuid, cep
- Uuid topoUuid = new Uuid(UUID.nameUUIDFromBytes(TopologyUtils.T0_FULL_MULTILAYER
+ Uuid topoUuid = new Uuid(UUID.nameUUIDFromBytes(TapiStringConstants.T0_FULL_MULTILAYER
.getBytes(Charset.forName("UTF-8"))).toString());
Uuid nodeUuid = new Uuid(UUID.nameUUIDFromBytes(String.join("+", node, nodeLayer)
.getBytes(Charset.forName("UTF-8"))).toString());
import java.util.Set;
import java.util.UUID;
import java.util.stream.Collectors;
+import org.opendaylight.transportpce.tapi.TapiStringConstants;
+import org.opendaylight.transportpce.tapi.utils.TapiLink;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.Link1;
import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.TerminationPoint1;
import org.opendaylight.yang.gen.v1.http.org.openroadm.common.state.types.rev191129.State;
import org.opendaylight.yang.gen.v1.http.org.openroadm.equipment.states.types.rev191129.AdminStates;
import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev200529.OpenroadmNodeType;
import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev200529.OpenroadmTpType;
import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev200529.xpdr.tp.supported.interfaces.SupportedInterfaceCapability;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev200529.Link1;
import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev200529.Node1;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks.Network;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks.network.Node;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.TpId;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network.node.TerminationPoint;
import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev181210.AdministrativeState;
-import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev181210.CapacityUnit;
-import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev181210.ForwardingDirection;
import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev181210.LAYERPROTOCOLQUALIFIER;
import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev181210.LayerProtocolName;
import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev181210.LifecycleState;
import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev181210.TerminationDirection;
import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev181210.TerminationState;
import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev181210.Uuid;
-import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev181210.capacity.TotalSizeBuilder;
import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev181210.capacity.pac.AvailableCapacityBuilder;
import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev181210.capacity.pac.TotalPotentialCapacityBuilder;
import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev181210.global._class.Name;
import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.photonic.media.rev181210.PHOTONICLAYERQUALIFIEROMS;
import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.photonic.media.rev181210.PHOTONICLAYERQUALIFIEROTSi;
import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.ForwardingRule;
-import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.ProtectionType;
-import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.RestorationPolicy;
import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.RuleType;
-import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.link.NodeEdgePoint;
-import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.link.NodeEdgePointBuilder;
-import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.link.NodeEdgePointKey;
-import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.link.ResilienceTypeBuilder;
import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.node.NodeRuleGroup;
import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.node.NodeRuleGroupBuilder;
import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.node.NodeRuleGroupKey;
import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.risk.parameter.pac.RiskCharacteristic;
import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.risk.parameter.pac.RiskCharacteristicBuilder;
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.LinkKey;
import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.topology.NodeBuilder;
import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.topology.NodeKey;
import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.transfer.cost.pac.CostCharacteristicBuilder;
import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.transfer.timing.pac.LatencyCharacteristic;
import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.transfer.timing.pac.LatencyCharacteristicBuilder;
-import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.validation.pac.ValidationMechanism;
-import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.validation.pac.ValidationMechanismBuilder;
import org.opendaylight.yangtools.yang.common.Uint16;
-import org.opendaylight.yangtools.yang.common.Uint64;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class ConvertORTopoToTapiFullTopo {
- private static final String DSR = "DSR";
- private static final String I_ODU = "iODU";
- private static final String E_ODU = "eODU";
- private static final String OTSI = "OTSi";
- private static final String E_OTSI = "eOTSi";
- private static final String I_OTSI = "iOTSi";
- private static final String PHTNC_MEDIA = "PHOTONIC_MEDIA";
- private static final String MC = "MEDIA_CHANNEL";
- private static final String OTSI_MC = "OTSi_MEDIA_CHANNEL";
private static final Logger LOG = LoggerFactory.getLogger(ConvertORTopoToTapiFullTopo.class);
private String ietfNodeId;
private OpenroadmNodeType ietfNodeType;
private Map<LinkKey, Link> tapiLinks;
private Map<ServiceInterfacePointKey, ServiceInterfacePoint> tapiSips;
private Map<String, Uuid> uuidMap;
+ private final TapiLink tapiLink;
- public ConvertORTopoToTapiFullTopo(Uuid tapiTopoUuid) {
+ public ConvertORTopoToTapiFullTopo(Uuid tapiTopoUuid, TapiLink tapiLink) {
this.tapiTopoUuid = tapiTopoUuid;
this.tapiNodes = new HashMap<>();
this.tapiLinks = new HashMap<>();
this.uuidMap = new HashMap<>();
this.tapiSips = new HashMap<>();
+ this.tapiLink = tapiLink;
}
public void convertNode(Node ietfNode, List<String> networkPorts) {
// node creation [DSR/ODU]
LOG.info("creation of a DSR/ODU node for {}", this.ietfNodeId);
- Uuid nodeUuid = new Uuid(UUID.nameUUIDFromBytes((String.join("+", this.ietfNodeId, DSR))
- .getBytes(Charset.forName("UTF-8"))).toString());
- this.uuidMap.put(String.join("+", this.ietfNodeId, DSR), nodeUuid);
+ Uuid nodeUuid = new Uuid(UUID.nameUUIDFromBytes((String.join("+", this.ietfNodeId,
+ TapiStringConstants.DSR)).getBytes(Charset.forName("UTF-8"))).toString());
+ this.uuidMap.put(String.join("+", this.ietfNodeId, TapiStringConstants.DSR), nodeUuid);
Name nameDsr = new NameBuilder().setValueName("dsr/odu node name").setValue(
- String.join("+", this.ietfNodeId, DSR)).build();
+ String.join("+", this.ietfNodeId, TapiStringConstants.DSR)).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(Map.of(nameDsr.key(), nameDsr), dsrLayerProtocols);
// node creation [otsi]
LOG.info("creation of an OTSi node for {}", this.ietfNodeId);
- nodeUuid = new Uuid(UUID.nameUUIDFromBytes((String.join("+", this.ietfNodeId, OTSI))
+ nodeUuid = new Uuid(UUID.nameUUIDFromBytes((String.join("+", this.ietfNodeId, TapiStringConstants.OTSI))
.getBytes(Charset.forName("UTF-8"))).toString());
- this.uuidMap.put(String.join("+", this.ietfNodeId, OTSI), nodeUuid);
+ this.uuidMap.put(String.join("+", this.ietfNodeId, TapiStringConstants.OTSI), nodeUuid);
Name nameOtsi = new NameBuilder().setValueName("otsi node name").setValue(
- String.join("+", this.ietfNodeId, OTSI)).build();
+ String.join("+", this.ietfNodeId, TapiStringConstants.OTSI)).build();
List<LayerProtocolName> otsiLayerProtocols = Arrays.asList(LayerProtocolName.PHOTONICMEDIA);
org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.topology
.Node otsiNode = createTapiNode(Map.of(nameOtsi.key(), nameOtsi), otsiLayerProtocols);
if (!linksToNotConvert.contains(otnlink.getLinkId().getValue())) {
org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks
.network.Link oppositeLink = otnLinkMap.get(new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns
- .yang.ietf.network.topology.rev180226.networks.network.LinkKey(otnlink.augmentation(
- org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.Link1.class)
+ .yang.ietf.network.topology.rev180226.networks.network.LinkKey(otnlink.augmentation(Link1.class)
.getOppositeLink()));
- Link tapiLink = createTapiLink(otnlink, oppositeLink);
- linksToNotConvert.add(oppositeLink.getLinkId().getValue());
- tapiLinks.put(tapiLink.key(), tapiLink);
+
+ AdminStates oppLnkAdmState = null;
+ State oppLnkOpState = null;
+ String oppositeLinkId = null;
+ if (oppositeLink != null) {
+ oppLnkAdmState = oppositeLink.augmentation(Link1.class).getAdministrativeState();
+ oppLnkOpState = oppositeLink.augmentation(Link1.class).getOperationalState();
+ oppositeLinkId = oppositeLink.getLinkId().getValue();
+ }
+ String adminState =
+ otnlink.augmentation(Link1.class).getAdministrativeState() == null
+ || oppLnkAdmState == null
+ ? null
+ : this.tapiLink.setTapiAdminState(
+ otnlink.augmentation(Link1.class).getAdministrativeState(), oppLnkAdmState).getName();
+ String operState =
+ otnlink.augmentation(Link1.class).getOperationalState() == null
+ || oppLnkOpState == null
+ ? null
+ : this.tapiLink.setTapiOperationalState(
+ otnlink.augmentation(Link1.class).getOperationalState(), oppLnkOpState).getName();
+
+ String prefix = otnlink.getLinkId().getValue().split("-")[0];
+ String nodesQual = prefix.equals("OTU4") ? TapiStringConstants.OTSI : TapiStringConstants.DSR;
+ String tpsQual = prefix.equals("OTU4") ? TapiStringConstants.I_OTSI : TapiStringConstants.E_ODU;
+ LayerProtocolName layerProtocolName = prefix.equals("OTU4") ? LayerProtocolName.PHOTONICMEDIA
+ : LayerProtocolName.ODU;
+
+ Link tapLink = this.tapiLink.createTapiLink(otnlink.getSource().getSourceNode().getValue(),
+ otnlink.getSource().getSourceTp().getValue(), otnlink.getDestination().getDestNode().getValue(),
+ otnlink.getDestination().getDestTp().getValue(), TapiStringConstants.OTN_XPDR_XPDR_LINK, nodesQual,
+ nodesQual, tpsQual, tpsQual, adminState, operState, List.of(layerProtocolName),
+ List.of(layerProtocolName.getName()), this.tapiTopoUuid);
+ linksToNotConvert.add(oppositeLinkId);
+ tapiLinks.put(tapLink.key(), tapLink);
}
}
}
for (org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network
.Link link : rdmTordmLinkList) {
if (!linksToNotConvert.contains(link.getLinkId().getValue())) {
- Link tapiLink = createTapiOmsLink(link, rdmTordmLinkList.stream()
- .filter(l -> l.getLinkId().equals(link.augmentation(org.opendaylight.yang.gen.v1.http
- .org.openroadm.common.network.rev200529.Link1.class).getOppositeLink()))
- .findAny().orElse(null));
+ org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang
+ .ietf.network.topology.rev180226.networks.network.Link oppositeLink = rdmTordmLinkList.stream()
+ .filter(l -> l.getLinkId().equals(link.augmentation(Link1.class).getOppositeLink()))
+ .findAny().orElse(null);
+
+ AdminStates oppLnkAdmState = null;
+ State oppLnkOpState = null;
+ if (oppositeLink != null) {
+ oppLnkAdmState = oppositeLink.augmentation(Link1.class).getAdministrativeState();
+ oppLnkOpState = oppositeLink.augmentation(Link1.class).getOperationalState();
+ }
+ String adminState =
+ link.augmentation(Link1.class).getAdministrativeState() == null
+ || oppLnkAdmState == null
+ ? null
+ : this.tapiLink.setTapiAdminState(
+ link.augmentation(Link1.class).getAdministrativeState(), oppLnkAdmState).getName();
+ String operState =
+ link.augmentation(Link1.class).getOperationalState() == null
+ || oppLnkOpState == null
+ ? null
+ : this.tapiLink.setTapiOperationalState(
+ link.augmentation(Link1.class).getOperationalState(), oppLnkOpState).getName();
+
+ Link tapLink = this.tapiLink.createTapiLink(String.join("-",
+ link.getSource().getSourceNode().getValue().split("-")[0],
+ link.getSource().getSourceNode().getValue().split("-")[1]),
+ link.getSource().getSourceTp().getValue(), String.join("-",
+ link.getDestination().getDestNode().getValue().split("-")[0],
+ link.getDestination().getDestNode().getValue().split("-")[1]),
+ link.getDestination().getDestTp().getValue(), TapiStringConstants.OMS_RDM_RDM_LINK,
+ TapiStringConstants.PHTNC_MEDIA, TapiStringConstants.PHTNC_MEDIA, TapiStringConstants.PHTNC_MEDIA,
+ TapiStringConstants.PHTNC_MEDIA, adminState, operState, List.of(LayerProtocolName.PHOTONICMEDIA),
+ List.of(LayerProtocolName.PHOTONICMEDIA.getName()), this.tapiTopoUuid);
linksToNotConvert.add(link
- .augmentation(org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.Link1.class)
+ .augmentation(Link1.class)
.getOppositeLink().getValue());
- tapiLinks.put(tapiLink.key(), tapiLink);
+ tapiLinks.put(tapLink.key(), tapLink);
}
}
}
// UUID
LOG.info("Creation of PHOTONIC node for {}", roadm.getNodeId().getValue());
Uuid nodeUuid = new Uuid(UUID.nameUUIDFromBytes((String.join("+", roadm.getNodeId().getValue(),
- PHTNC_MEDIA)).getBytes(Charset.forName("UTF-8"))).toString());
+ TapiStringConstants.PHTNC_MEDIA)).getBytes(Charset.forName("UTF-8"))).toString());
// Names
Name nodeNames = new NameBuilder().setValueName("roadm node name")
- .setValue(String.join("+", roadm.getNodeId().getValue(), PHTNC_MEDIA)).build();
+ .setValue(String.join("+", roadm.getNodeId().getValue(), TapiStringConstants.PHTNC_MEDIA)).build();
// Protocol Layer
List<LayerProtocolName> layerProtocols = Arrays.asList(LayerProtocolName.PHOTONICMEDIA);
// Build tapi node
.setUuid(nodeUuid)
.setName(nodeNames)
.setLayerProtocolName(layerProtocols)
- .setAdministrativeState(setTapiAdminState(this.ietfNodeAdminState))
- .setOperationalState(setTapiOperationalState(this.ietfNodeOperState))
+ .setAdministrativeState(this.tapiLink.setTapiAdminState(this.ietfNodeAdminState.getName()))
+ .setOperationalState(this.tapiLink.setTapiOperationalState(this.ietfNodeOperState.getName()))
.setLifecycleState(LifecycleState.INSTALLED)
.setOwnedNodeEdgePoint(onepl)
.setNodeRuleGroup(nodeRuleGroupList)
.build();
}
- private AdministrativeState setTapiAdminState(AdminStates adminState) {
- if (adminState == null) {
- return null;
- }
- return adminState.equals(AdminStates.InService)
- ? AdministrativeState.UNLOCKED : AdministrativeState.LOCKED;
- }
-
- private AdministrativeState setTapiAdminState(AdminStates adminState1, AdminStates adminState2) {
- if (adminState1 == null || adminState2 == null) {
- return null;
- }
- LOG.info("Admin state 1 = {}, andmin state 2 = {}", adminState1.getName(), adminState2.getName());
- if (AdminStates.InService.equals(adminState1) && AdminStates.InService.equals(adminState2)) {
- return AdministrativeState.UNLOCKED;
- } else {
- return AdministrativeState.LOCKED;
- }
- }
-
- private OperationalState setTapiOperationalState(State operState) {
- if (operState == null) {
- return null;
- }
- return operState.getName().equals("inService") ? OperationalState.ENABLED : OperationalState.DISABLED;
- }
-
- private OperationalState setTapiOperationalState(State operState1, State operState2) {
- if (operState1 == null || operState2 == null) {
- return null;
- }
- LOG.info("Oper state 1 = {}, Oper state 2 = {}", operState1.getName(), operState2.getName());
- if (State.InService.equals(operState1) && State.InService.equals(operState2)) {
- return OperationalState.ENABLED;
- } else {
- return OperationalState.DISABLED;
- }
- }
-
private org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.topology.Node
createRoadmTapiNode(Uuid nodeUuid, Name nodeNames, List<LayerProtocolName> layerProtocols,
Map<OwnedNodeEdgePointKey, OwnedNodeEdgePoint> oneplist) {
Map<NodeRuleGroupKey, NodeRuleGroup> nodeRuleGroupList,
Map<RuleKey, Rule> ruleList) {
Uuid nodeUuid;
- nodeUuid = this.uuidMap.get(String.join("+", this.ietfNodeId, OTSI));
+ nodeUuid = this.uuidMap.get(String.join("+", this.ietfNodeId, TapiStringConstants.OTSI));
// iNep creation on otsi node
for (int i = 0; i < oorNetworkPortList.size(); i++) {
- LOG.info("NEP = {}", String.join("+", this.ietfNodeId, I_OTSI,
+ LOG.info("NEP = {}", String.join("+", this.ietfNodeId, TapiStringConstants.I_OTSI,
oorNetworkPortList.get(i).getTpId().getValue()));
Uuid nepUuid1 = new Uuid(UUID.nameUUIDFromBytes(
- (String.join("+", this.ietfNodeId, I_OTSI, oorNetworkPortList.get(i).getTpId().getValue()))
- .getBytes(Charset.forName("UTF-8")))
+ (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, I_OTSI,
+ 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, I_OTSI, oorNetworkPortList.get(i).getTpId().getValue()))
+ .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, I_OTSI));
+ 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++) {
- LOG.info("NEP = {}", String.join("+", this.ietfNodeId, E_OTSI,
+ LOG.info("NEP = {}", String.join("+", this.ietfNodeId, TapiStringConstants.E_OTSI,
oorNetworkPortList.get(i).getTpId().getValue()));
Uuid nepUuid2 = new Uuid(UUID.nameUUIDFromBytes(
- (String.join("+", this.ietfNodeId, E_OTSI, oorNetworkPortList.get(i).getTpId().getValue()))
- .getBytes(Charset.forName("UTF-8")))
+ (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, E_OTSI,
+ 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, E_OTSI, oorNetworkPortList.get(i).getTpId().getValue()))
+ .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, false,
- String.join("+", this.ietfNodeId, E_OTSI));
+ String.join("+", this.ietfNodeId, TapiStringConstants.E_OTSI));
onepl.put(onep.key(), onep);
}
// Photonic Media Nep creation on otsi node
for (int i = 0; i < oorNetworkPortList.size(); i++) {
- LOG.info("NEP = {}", String.join("+", this.ietfNodeId, PHTNC_MEDIA,
+ LOG.info("NEP = {}", String.join("+", this.ietfNodeId, TapiStringConstants.PHTNC_MEDIA,
oorNetworkPortList.get(i).getTpId().getValue()));
Uuid nepUuid3 = new Uuid(UUID.nameUUIDFromBytes(
- (String.join("+", this.ietfNodeId, PHTNC_MEDIA,
+ (String.join("+", this.ietfNodeId, TapiStringConstants.PHTNC_MEDIA,
oorNetworkPortList.get(i).getTpId().getValue())).getBytes(Charset.forName("UTF-8")))
.toString());
- this.uuidMap.put(String.join("+", this.ietfNodeId, PHTNC_MEDIA,
+ this.uuidMap.put(String.join("+", this.ietfNodeId, TapiStringConstants.PHTNC_MEDIA,
oorNetworkPortList.get(i).getTpId().getValue()), nepUuid3);
Name onedName = new NameBuilder()
.setValueName("PhotMedNodeEdgePoint")
- .setValue(String.join("+", this.ietfNodeId, PHTNC_MEDIA,
+ .setValue(String.join("+", this.ietfNodeId, TapiStringConstants.PHTNC_MEDIA,
oorNetworkPortList.get(i).getTpId().getValue()))
.build();
OwnedNodeEdgePoint onep = createNep(oorNetworkPortList.get(i), Map.of(onedName.key(), onedName),
LayerProtocolName.PHOTONICMEDIA, LayerProtocolName.PHOTONICMEDIA, false,
- String.join("+", this.ietfNodeId, PHTNC_MEDIA));
+ String.join("+", this.ietfNodeId, TapiStringConstants.PHTNC_MEDIA));
onepl.put(onep.key(), onep);
}
// create NodeRuleGroup
.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(String.join("+", this.ietfNodeId, OTSI)))
+ .setNodeUuid(this.uuidMap.get(String.join("+", this.ietfNodeId, TapiStringConstants.OTSI)))
.setNodeEdgePointUuid(
- this.uuidMap.get(String.join("+", this.ietfNodeId, I_OTSI, tp.getTpId().getValue())))
+ 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.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(String.join("+", this.ietfNodeId, OTSI)))
+ .setNodeUuid(this.uuidMap.get(String.join("+", this.ietfNodeId, TapiStringConstants.OTSI)))
.setNodeEdgePointUuid(
- this.uuidMap.get(String.join("+", this.ietfNodeId, E_OTSI, tp.getTpId().getValue())))
+ this.uuidMap.get(String.join("+", this.ietfNodeId, TapiStringConstants.E_OTSI,
+ tp.getTpId().getValue())))
.build();
nepList.put(inep.key(), inep);
nepList.put(enep.key(), enep);
private Uuid getNodeUuid4Dsr(Map<OwnedNodeEdgePointKey, OwnedNodeEdgePoint> onepl,
Map<NodeRuleGroupKey, NodeRuleGroup> nodeRuleGroupList, Map<RuleKey, Rule> ruleList) {
Uuid nodeUuid;
- nodeUuid = this.uuidMap.get(String.join("+", this.ietfNodeId, DSR));
+ nodeUuid = this.uuidMap.get(String.join("+", this.ietfNodeId, TapiStringConstants.DSR));
// client nep creation on DSR node
for (int i = 0; i < oorClientPortList.size(); i++) {
- LOG.info("NEP = {}", String.join("+", this.ietfNodeId, DSR,
+ LOG.info("NEP = {}", String.join("+", this.ietfNodeId, TapiStringConstants.DSR,
oorClientPortList.get(i).getTpId().getValue()));
Uuid nepUuid = new Uuid(UUID.nameUUIDFromBytes(
- (String.join("+", this.ietfNodeId, DSR, oorClientPortList.get(i).getTpId().getValue()))
- .getBytes(Charset.forName("UTF-8"))).toString());
- this.uuidMap.put(String.join("+", this.ietfNodeId, DSR, oorClientPortList.get(i).getTpId().getValue()),
- nepUuid);
+ (String.join("+", this.ietfNodeId, TapiStringConstants.DSR,
+ oorClientPortList.get(i).getTpId().getValue())).getBytes(Charset.forName("UTF-8"))).toString());
+ this.uuidMap.put(String.join("+", this.ietfNodeId, TapiStringConstants.DSR,
+ oorClientPortList.get(i).getTpId().getValue()), nepUuid);
NameBuilder nameBldr = new NameBuilder().setValue(
- String.join("+", this.ietfNodeId, DSR, oorClientPortList.get(i).getTpId().getValue()));
+ String.join("+", this.ietfNodeId, TapiStringConstants.DSR,
+ oorClientPortList.get(i).getTpId().getValue()));
Name name;
if (OpenroadmNodeType.TPDR.equals(this.ietfNodeType)) {
name = nameBldr.setValueName("100G-tpdr").build();
}
OwnedNodeEdgePoint onep = createNep(oorClientPortList.get(i), Map.of(name.key(), name),
- LayerProtocolName.DSR, LayerProtocolName.DSR, true, String.join("+", this.ietfNodeId, DSR));
+ LayerProtocolName.DSR, LayerProtocolName.DSR, true, String.join("+", this.ietfNodeId,
+ TapiStringConstants.DSR));
onepl.put(onep.key(), onep);
}
// network nep creation on I_ODU node
for (int i = 0; i < oorNetworkPortList.size(); i++) {
- LOG.info("NEP = {}", String.join("+", this.ietfNodeId, I_ODU,
+ LOG.info("NEP = {}", String.join("+", this.ietfNodeId, TapiStringConstants.I_ODU,
oorNetworkPortList.get(i).getTpId().getValue()));
Uuid nepUuid = new Uuid(UUID.nameUUIDFromBytes(
- (String.join("+", this.ietfNodeId, I_ODU, oorNetworkPortList.get(i).getTpId().getValue()))
- .getBytes(Charset.forName("UTF-8"))).toString());
- this.uuidMap.put(String.join("+", this.ietfNodeId, I_ODU, oorNetworkPortList.get(i).getTpId().getValue()),
- nepUuid);
+ (String.join("+", this.ietfNodeId, TapiStringConstants.I_ODU,
+ oorNetworkPortList.get(i).getTpId().getValue())).getBytes(Charset.forName("UTF-8"))).toString());
+ this.uuidMap.put(String.join("+", this.ietfNodeId, TapiStringConstants.I_ODU,
+ oorNetworkPortList.get(i).getTpId().getValue()), nepUuid);
Name onedName = new NameBuilder()
.setValueName("iNodeEdgePoint_N")
- .setValue(String.join("+", this.ietfNodeId, I_ODU, oorNetworkPortList.get(i).getTpId().getValue()))
+ .setValue(String.join("+", this.ietfNodeId, TapiStringConstants.I_ODU,
+ oorNetworkPortList.get(i).getTpId().getValue()))
.build();
OwnedNodeEdgePoint onep = createNep(oorNetworkPortList.get(i), Map.of(onedName.key(), onedName),
- LayerProtocolName.ODU, LayerProtocolName.DSR, false, String.join("+", this.ietfNodeId, I_ODU));
+ LayerProtocolName.ODU, LayerProtocolName.DSR, false, String.join("+", this.ietfNodeId,
+ TapiStringConstants.I_ODU));
onepl.put(onep.key(), onep);
}
// network nep creation on E_ODU node
for (int i = 0; i < oorNetworkPortList.size(); i++) {
- LOG.info("NEP = {}", String.join("+", this.ietfNodeId, E_ODU,
+ LOG.info("NEP = {}", String.join("+", this.ietfNodeId, TapiStringConstants.E_ODU,
oorNetworkPortList.get(i).getTpId().getValue()));
Uuid nepUuid = new Uuid(UUID.nameUUIDFromBytes(
- (String.join("+", this.ietfNodeId, E_ODU, oorNetworkPortList.get(i).getTpId().getValue()))
- .getBytes(Charset.forName("UTF-8"))).toString());
- this.uuidMap.put(String.join("+", this.ietfNodeId, E_ODU, oorNetworkPortList.get(i).getTpId().getValue()),
- nepUuid);
+ (String.join("+", this.ietfNodeId, TapiStringConstants.E_ODU,
+ oorNetworkPortList.get(i).getTpId().getValue())).getBytes(Charset.forName("UTF-8"))).toString());
+ this.uuidMap.put(String.join("+", this.ietfNodeId, TapiStringConstants.E_ODU,
+ oorNetworkPortList.get(i).getTpId().getValue()), nepUuid);
Name onedName = new NameBuilder()
.setValueName("eNodeEdgePoint_N")
- .setValue(String.join("+", this.ietfNodeId, E_ODU, oorNetworkPortList.get(i).getTpId().getValue()))
+ .setValue(String.join("+", this.ietfNodeId, TapiStringConstants.E_ODU,
+ oorNetworkPortList.get(i).getTpId().getValue()))
.build();
OwnedNodeEdgePoint onep = createNep(oorNetworkPortList.get(i), Map.of(onedName.key(), onedName),
- LayerProtocolName.ODU, LayerProtocolName.DSR, true, String.join("+", this.ietfNodeId, E_ODU));
+ LayerProtocolName.ODU, LayerProtocolName.DSR, true, String.join("+", this.ietfNodeId,
+ TapiStringConstants.E_ODU));
onepl.put(onep.key(), onep);
}
// create NodeRuleGroup
LOG.info("TP list = {}", nbl.getTpList());
for (TpId tp : nbl.getTpList()) {
LOG.info("TP={}", tp.getValue());
- LOG.info("UuidKey={}", String.join("+", this.ietfNodeId, E_ODU, tp.getValue()));
- if (this.uuidMap.containsKey(String.join("+", this.ietfNodeId, E_ODU, tp.getValue()))
- || this.uuidMap.containsKey(String.join("+", this.ietfNodeId, DSR, tp.getValue()))) {
+ LOG.info("UuidKey={}", String.join("+", this.ietfNodeId,
+ TapiStringConstants.E_ODU, tp.getValue()));
+ if (this.uuidMap.containsKey(String.join("+", this.ietfNodeId,
+ TapiStringConstants.E_ODU, tp.getValue()))
+ || this.uuidMap.containsKey(String.join("+", this.ietfNodeId,
+ TapiStringConstants.DSR, tp.getValue()))) {
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(String.join("+", this.ietfNodeId, DSR)))
+ .setNodeUuid(this.uuidMap.get(String.join("+", this.ietfNodeId,
+ TapiStringConstants.DSR)))
.setNodeEdgePointUuid((tp.getValue().contains("CLIENT")) ? this.uuidMap.get(String.join(
- "+", this.ietfNodeId, DSR, tp.getValue())) : this.uuidMap.get(String.join(
- "+", this.ietfNodeId, E_ODU, tp.getValue())))
+ "+", this.ietfNodeId, TapiStringConstants.DSR, tp.getValue()))
+ : this.uuidMap.get(String.join(
+ "+", this.ietfNodeId, TapiStringConstants.E_ODU, tp.getValue())))
.build();
nepList.put(nep.key(), nep);
}
if (withSip) {
onepBldr.setMappedServiceInterfacePoint(createMSIP(1, nepProtocol, oorTp, keyword));
}
+ AdministrativeState adminState = null;
+ OperationalState operState = null;
+ if (oorTp.augmentation(TerminationPoint1.class).getAdministrativeState() != null) {
+ adminState = this.tapiLink.setTapiAdminState(oorTp.augmentation(TerminationPoint1.class)
+ .getAdministrativeState().getName());
+ }
+ if (oorTp.augmentation(TerminationPoint1.class).getOperationalState() != null) {
+ operState = this.tapiLink.setTapiOperationalState(oorTp.augmentation(TerminationPoint1.class)
+ .getOperationalState().getName());
+ }
onepBldr.setSupportedCepLayerProtocolQualifier(createSupportedLayerProtocolQualifier(oorTp, nodeProtocol))
.setLinkPortDirection(PortDirection.BIDIRECTIONAL)
.setLinkPortRole(PortRole.SYMMETRIC)
- .setAdministrativeState(setTapiAdminState(
- oorTp.augmentation(TerminationPoint1.class).getAdministrativeState()))
- .setOperationalState(setTapiOperationalState(
- oorTp.augmentation(TerminationPoint1.class).getOperationalState()))
+ .setAdministrativeState(adminState)
+ .setOperationalState(operState)
.setLifecycleState(LifecycleState.INSTALLED)
.setTerminationDirection(TerminationDirection.BIDIRECTIONAL)
.setTerminationState(TerminationState.TERMINATEDBIDIRECTIONAL);
AdminStates admin = tp.augmentation(TerminationPoint1.class).getAdministrativeState();
State oper = tp.augmentation(TerminationPoint1.class).getOperationalState();
// PHOTONIC MEDIA nep
- LOG.info("PHOTO NEP = {}", String.join("+", this.ietfNodeId, PHTNC_MEDIA, tp.getTpId().getValue()));
+ LOG.info("PHOTO NEP = {}", String.join("+", this.ietfNodeId, TapiStringConstants.PHTNC_MEDIA,
+ tp.getTpId().getValue()));
Name nepName = new NameBuilder()
- .setValueName(PHTNC_MEDIA + "NodeEdgePoint")
- .setValue(String.join("+", this.ietfNodeId, PHTNC_MEDIA, tp.getTpId().getValue()))
+ .setValueName(TapiStringConstants.PHTNC_MEDIA + "NodeEdgePoint")
+ .setValue(String.join("+", this.ietfNodeId, TapiStringConstants.PHTNC_MEDIA,
+ tp.getTpId().getValue()))
.build();
OwnedNodeEdgePoint onep = new OwnedNodeEdgePointBuilder()
- .setUuid(new Uuid(UUID.nameUUIDFromBytes((String.join("+", this.ietfNodeId, PHTNC_MEDIA,
- tp.getTpId().getValue())).getBytes(Charset.forName("UTF-8"))).toString()))
+ .setUuid(new Uuid(UUID.nameUUIDFromBytes((String.join("+", this.ietfNodeId,
+ TapiStringConstants.PHTNC_MEDIA, tp.getTpId().getValue()))
+ .getBytes(Charset.forName("UTF-8"))).toString()))
.setLayerProtocolName(LayerProtocolName.PHOTONICMEDIA)
.setName(Map.of(nepName.key(), nepName))
.setSupportedCepLayerProtocolQualifier(List.of(PHOTONICLAYERQUALIFIEROMS.class))
.setLinkPortDirection(PortDirection.BIDIRECTIONAL)
.setLinkPortRole(PortRole.SYMMETRIC)
- .setAdministrativeState(setTapiAdminState(admin))
- .setOperationalState(setTapiOperationalState(oper))
+ .setAdministrativeState(this.tapiLink.setTapiAdminState(admin.getName()))
+ .setOperationalState(this.tapiLink.setTapiOperationalState(oper.getName()))
.setLifecycleState(LifecycleState.INSTALLED)
.setTerminationDirection(TerminationDirection.BIDIRECTIONAL)
.setTerminationState(TerminationState.TERMINATEDBIDIRECTIONAL)
onepMap.put(onep.key(), onep);
// MC nep
- LOG.info("MC NEP = {}", String.join("+", this.ietfNodeId, MC, tp.getTpId().getValue()));
+ LOG.info("MC NEP = {}", String.join("+", this.ietfNodeId, TapiStringConstants.MC,
+ tp.getTpId().getValue()));
Name nepName1 = new NameBuilder()
- .setValueName(MC + "NodeEdgePoint")
- .setValue(String.join("+", this.ietfNodeId, MC, tp.getTpId().getValue()))
+ .setValueName(TapiStringConstants.MC + "NodeEdgePoint")
+ .setValue(String.join("+", this.ietfNodeId, TapiStringConstants.MC, tp.getTpId().getValue()))
.build();
OwnedNodeEdgePointBuilder onepBldr1 = new OwnedNodeEdgePointBuilder()
- .setUuid(new Uuid(UUID.nameUUIDFromBytes((String.join("+", this.ietfNodeId, MC,
- tp.getTpId().getValue())).getBytes(Charset.forName("UTF-8"))).toString()))
+ .setUuid(new Uuid(UUID.nameUUIDFromBytes((String.join("+", this.ietfNodeId,
+ TapiStringConstants.MC, tp.getTpId().getValue())).getBytes(Charset.forName("UTF-8"))).toString()))
.setLayerProtocolName(LayerProtocolName.PHOTONICMEDIA)
.setName(Map.of(nepName1.key(), nepName1))
.setSupportedCepLayerProtocolQualifier(List.of(PHOTONICLAYERQUALIFIEROMS.class))
.setLinkPortDirection(PortDirection.BIDIRECTIONAL)
.setLinkPortRole(PortRole.SYMMETRIC)
- .setAdministrativeState(setTapiAdminState(admin))
- .setOperationalState(setTapiOperationalState(oper))
+ .setAdministrativeState(this.tapiLink.setTapiAdminState(admin.getName()))
+ .setOperationalState(this.tapiLink.setTapiOperationalState(oper.getName()))
.setLifecycleState(LifecycleState.INSTALLED)
.setTerminationDirection(TerminationDirection.BIDIRECTIONAL)
.setTerminationState(TerminationState.TERMINATEDBIDIRECTIONAL);
if (withSip) {
onepBldr1.setMappedServiceInterfacePoint(createMSIP(1, LayerProtocolName.PHOTONICMEDIA,
- tp, String.join("+", this.ietfNodeId, MC)));
+ tp, String.join("+", this.ietfNodeId, TapiStringConstants.MC)));
}
OwnedNodeEdgePoint onep1 = onepBldr1.build();
onepMap.put(onep1.key(), onep1);
// OTSiMC nep
- LOG.info("OTSi NEP = {}", String.join("+", this.ietfNodeId, OTSI_MC, tp.getTpId().getValue()));
+ LOG.info("OTSi NEP = {}", String.join("+", this.ietfNodeId, TapiStringConstants.OTSI_MC,
+ tp.getTpId().getValue()));
Name nepName2 = new NameBuilder()
- .setValueName(OTSI_MC + "NodeEdgePoint")
- .setValue(String.join("+", this.ietfNodeId, OTSI_MC, tp.getTpId().getValue()))
+ .setValueName(TapiStringConstants.OTSI_MC + "NodeEdgePoint")
+ .setValue(String.join("+", this.ietfNodeId, TapiStringConstants.OTSI_MC,
+ tp.getTpId().getValue()))
.build();
OwnedNodeEdgePoint onep2 = new OwnedNodeEdgePointBuilder()
- .setUuid(new Uuid(UUID.nameUUIDFromBytes((String.join("+", this.ietfNodeId, OTSI_MC,
- tp.getTpId().getValue())).getBytes(Charset.forName("UTF-8"))).toString()))
+ .setUuid(new Uuid(UUID.nameUUIDFromBytes((String.join("+", this.ietfNodeId,
+ TapiStringConstants.OTSI_MC, tp.getTpId().getValue())).getBytes(Charset.forName("UTF-8")))
+ .toString()))
.setLayerProtocolName(LayerProtocolName.PHOTONICMEDIA)
.setName(Map.of(nepName2.key(), nepName2))
.setSupportedCepLayerProtocolQualifier(List.of(PHOTONICLAYERQUALIFIEROMS.class))
.setLinkPortDirection(PortDirection.BIDIRECTIONAL)
.setLinkPortRole(PortRole.SYMMETRIC)
- .setAdministrativeState(setTapiAdminState(admin))
- .setOperationalState(setTapiOperationalState(oper))
+ .setAdministrativeState(this.tapiLink.setTapiAdminState(admin.getName()))
+ .setOperationalState(this.tapiLink.setTapiOperationalState(oper.getName()))
.setLifecycleState(LifecycleState.INSTALLED)
.setTerminationDirection(TerminationDirection.BIDIRECTIONAL)
.setTerminationState(TerminationState.TERMINATEDBIDIRECTIONAL)
.setValueName("SIP name")
.setValue(String.join("+", nodeid, tp.getTpId().getValue()))
.build();
+ AdministrativeState adminState = null;
+ OperationalState operState = null;
+ if (tp.augmentation(TerminationPoint1.class).getAdministrativeState() != null) {
+ adminState = this.tapiLink.setTapiAdminState(tp.augmentation(TerminationPoint1.class)
+ .getAdministrativeState().getName());
+ }
+ if (tp.augmentation(TerminationPoint1.class).getOperationalState() != null) {
+ operState = this.tapiLink.setTapiOperationalState(tp.augmentation(TerminationPoint1.class)
+ .getOperationalState().getName());
+ }
return new ServiceInterfacePointBuilder()
.setUuid(sipUuid)
.setName(Map.of(sipName.key(), sipName))
.setLayerProtocolName(layerProtocol)
- .setAdministrativeState(setTapiAdminState(
- tp.augmentation(TerminationPoint1.class).getAdministrativeState()))
- .setOperationalState(setTapiOperationalState(
- tp.augmentation(TerminationPoint1.class).getOperationalState()))
+ .setAdministrativeState(adminState)
+ .setOperationalState(operState)
.setLifecycleState(LifecycleState.INSTALLED)
.setAvailableCapacity(new AvailableCapacityBuilder().build())
.setTotalPotentialCapacity(new TotalPotentialCapacityBuilder().build())
private void createTapiTransitionalLinks() {
for (TerminationPoint tp : this.oorNetworkPortList) {
- Map<NodeEdgePointKey, NodeEdgePoint> nepList = new HashMap<>();
- String sourceKey = String.join("+", this.ietfNodeId, I_ODU, tp.getTpId().getValue());
- Uuid sourceUuidTp = this.uuidMap.get(sourceKey);
- String destKey = String.join("+", this.ietfNodeId, I_OTSI, tp.getTpId().getValue());
- Uuid destUuidTp = this.uuidMap.get(destKey);
- NodeEdgePoint sourceNep = new NodeEdgePointBuilder()
- .setTopologyUuid(this.tapiTopoUuid)
- .setNodeUuid(this.uuidMap.get(String.join("+", this.ietfNodeId, DSR)))
- .setNodeEdgePointUuid(sourceUuidTp)
- .build();
- nepList.put(sourceNep.key(), sourceNep);
- NodeEdgePoint destNep = new NodeEdgePointBuilder()
- .setTopologyUuid(this.tapiTopoUuid)
- .setNodeUuid(this.uuidMap.get(String.join("+", this.ietfNodeId, OTSI)))
- .setNodeEdgePointUuid(destUuidTp)
- .build();
- nepList.put(destNep.key(), destNep);
- Name linkName = new NameBuilder().setValueName("transitional link name")
- .setValue(String.join("--", this.ietfNodeId, sourceKey, destKey))
- .build();
- CostCharacteristic costCharacteristic = new CostCharacteristicBuilder()
- .setCostAlgorithm("Restricted Shortest Path - RSP")
- .setCostName("HOP_COUNT")
- .setCostValue("12345678")
- .build();
- LatencyCharacteristic latencyCharacteristic = new LatencyCharacteristicBuilder()
- .setFixedLatencyCharacteristic("12345678")
- .setQueingLatencyCharacteristic("12345678")
- .setJitterCharacteristic("12345678")
- .setWanderCharacteristic("12345678")
- .setTrafficPropertyName("FIXED_LATENCY")
- .build();
- RiskCharacteristic riskCharacteristic = new RiskCharacteristicBuilder()
- .setRiskCharacteristicName("risk characteristic")
- .setRiskIdentifierList(List.of("risk identifier1", "risk identifier2"))
- .build();
- ValidationMechanism validationMechanism = new ValidationMechanismBuilder()
- .setValidationMechanism("validation mechanism")
- .setValidationRobustness("validation robustness")
- .setLayerProtocolAdjacencyValidated("layer protocol adjacency")
- .build();
- Link transiLink = new LinkBuilder()
- .setUuid(new Uuid(
- UUID.nameUUIDFromBytes((String.join("--", this.ietfNodeId, sourceKey, destKey))
- .getBytes(Charset.forName("UTF-8")))
- .toString()))
- .setName(Map.of(linkName.key(), linkName))
- .setTransitionedLayerProtocolName(Arrays.asList(LayerProtocolName.ODU.getName(),
- LayerProtocolName.PHOTONICMEDIA.getName()))
- .setLayerProtocolName(Arrays.asList(LayerProtocolName.ODU, LayerProtocolName.PHOTONICMEDIA))
- .setNodeEdgePoint(nepList)
- .setDirection(ForwardingDirection.BIDIRECTIONAL)
- .setAvailableCapacity(new AvailableCapacityBuilder().setTotalSize(
- new TotalSizeBuilder().setUnit(CapacityUnit.GBPS).setValue(Uint64.valueOf(100)).build())
- .build())
- .setResilienceType(new ResilienceTypeBuilder().setProtectionType(ProtectionType.NOPROTECTON)
- .setRestorationPolicy(RestorationPolicy.NA)
- .build())
- .setAdministrativeState(AdministrativeState.UNLOCKED)
- .setOperationalState(OperationalState.ENABLED)
- .setLifecycleState(LifecycleState.INSTALLED)
- .setTotalPotentialCapacity(new TotalPotentialCapacityBuilder().setTotalSize(
- new TotalSizeBuilder().setUnit(CapacityUnit.GBPS).setValue(Uint64.valueOf(100)).build())
- .build())
- .setCostCharacteristic(Map.of(costCharacteristic.key(), costCharacteristic))
- .setLatencyCharacteristic(Map.of(latencyCharacteristic.key(), latencyCharacteristic))
- .setRiskCharacteristic(Map.of(riskCharacteristic.key(), riskCharacteristic))
- .setErrorCharacteristic("error")
- .setLossCharacteristic("loss")
- .setRepeatDeliveryCharacteristic("repeat delivery")
- .setDeliveryOrderCharacteristic("delivery order")
- .setUnavailableTimeCharacteristic("unavailable time")
- .setServerIntegrityProcessCharacteristic("server integrity process")
- .setValidationMechanism(Map.of(validationMechanism.key(), validationMechanism))
- .build();
+ Link transiLink = tapiLink.createTapiLink(this.ietfNodeId, tp.getTpId().getValue(), this.ietfNodeId,
+ tp.getTpId().getValue(), TapiStringConstants.TRANSITIONAL_LINK, TapiStringConstants.DSR,
+ TapiStringConstants.OTSI, TapiStringConstants.I_ODU, TapiStringConstants.I_OTSI,
+ "inService", "inService", Arrays.asList(LayerProtocolName.ODU,
+ LayerProtocolName.PHOTONICMEDIA),
+ Arrays.asList(LayerProtocolName.ODU.getName(), LayerProtocolName.PHOTONICMEDIA.getName()),
+ this.tapiTopoUuid);
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,
- org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang
- .ietf.network.topology.rev180226.networks.network.Link oppositeLink) {
- String prefix = link.getLinkId().getValue().split("-")[0];
- String sourceNode = link.getSource().getSourceNode().getValue();
- String sourceTp = link.getSource().getSourceTp().getValue();
- String destNode = link.getDestination().getDestNode().getValue();
- String destTp = link.getDestination().getDestTp().getValue();
- LOG.info("prefix = {}, sourceNode = {}, sourceTp = {}, destNode = {}, destTp = {}",
- prefix, sourceNode, sourceTp, destNode, destTp);
- Map<NodeEdgePointKey, NodeEdgePoint> nepList = new HashMap<>();
- Uuid sourceUuidTp;
- Uuid sourceUuidNode;
- Uuid destUuidTp;
- Uuid destUuidNode;
- Name linkName;
- AdminStates oppositeLinkAdminState = null;
- State oppositeLinkOperState = null;
- if (oppositeLink != null) {
- oppositeLinkAdminState = oppositeLink.augmentation(
- org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.Link1.class)
- .getAdministrativeState();
- oppositeLinkOperState = oppositeLink.augmentation(
- org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.Link1.class)
- .getOperationalState();
- }
- CostCharacteristic costCharacteristic = new CostCharacteristicBuilder()
- .setCostAlgorithm("Restricted Shortest Path - RSP")
- .setCostName("HOP_COUNT")
- .setCostValue("12345678")
- .build();
- LatencyCharacteristic latencyCharacteristic = new LatencyCharacteristicBuilder()
- .setFixedLatencyCharacteristic("12345678")
- .setQueingLatencyCharacteristic("12345678")
- .setJitterCharacteristic("12345678")
- .setWanderCharacteristic("12345678")
- .setTrafficPropertyName("FIXED_LATENCY")
- .build();
- RiskCharacteristic riskCharacteristic = new RiskCharacteristicBuilder()
- .setRiskCharacteristicName("risk characteristic")
- .setRiskIdentifierList(List.of("risk identifier1", "risk identifier2"))
- .build();
- ValidationMechanism validationMechanism = new ValidationMechanismBuilder()
- .setValidationMechanism("validation mechanism")
- .setValidationRobustness("validation robustness")
- .setLayerProtocolAdjacencyValidated("layer protocol adjacency")
- .build();
- 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))
- .setTransitionedLayerProtocolName(new ArrayList<>())
- .setAdministrativeState(setTapiAdminState(link
- .augmentation(
- org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.Link1.class)
- .getAdministrativeState(), oppositeLinkAdminState))
- .setOperationalState(setTapiOperationalState(link
- .augmentation(
- org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.Link1.class)
- .getOperationalState(), oppositeLinkOperState))
- .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())
- .setResilienceType(new ResilienceTypeBuilder().setProtectionType(ProtectionType.NOPROTECTON)
- .setRestorationPolicy(RestorationPolicy.NA)
- .build())
- .setLifecycleState(LifecycleState.INSTALLED)
- .setCostCharacteristic(Map.of(costCharacteristic.key(), costCharacteristic))
- .setLatencyCharacteristic(Map.of(latencyCharacteristic.key(), latencyCharacteristic))
- .setRiskCharacteristic(Map.of(riskCharacteristic.key(), riskCharacteristic))
- .setErrorCharacteristic("error")
- .setLossCharacteristic("loss")
- .setRepeatDeliveryCharacteristic("repeat delivery")
- .setDeliveryOrderCharacteristic("delivery order")
- .setUnavailableTimeCharacteristic("unavailable time")
- .setServerIntegrityProcessCharacteristic("server integrity process")
- .setValidationMechanism(Map.of(validationMechanism.key(), validationMechanism))
- .build();
- case "ODTU4":
- sourceUuidTp = this.uuidMap.get(String.join("+", sourceNode, E_ODU, 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, E_ODU, 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))
- .setTransitionedLayerProtocolName(new ArrayList<>())
- .setAdministrativeState(setTapiAdminState(link
- .augmentation(
- org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.Link1.class)
- .getAdministrativeState(), oppositeLinkAdminState))
- .setOperationalState(setTapiOperationalState(link
- .augmentation(
- org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.Link1.class)
- .getOperationalState(), oppositeLinkOperState))
- .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())
- .setResilienceType(new ResilienceTypeBuilder().setProtectionType(ProtectionType.NOPROTECTON)
- .setRestorationPolicy(RestorationPolicy.NA)
- .build())
- .setLifecycleState(LifecycleState.INSTALLED)
- .setCostCharacteristic(Map.of(costCharacteristic.key(), costCharacteristic))
- .setLatencyCharacteristic(Map.of(latencyCharacteristic.key(), latencyCharacteristic))
- .setRiskCharacteristic(Map.of(riskCharacteristic.key(), riskCharacteristic))
- .setErrorCharacteristic("error")
- .setLossCharacteristic("loss")
- .setRepeatDeliveryCharacteristic("repeat delivery")
- .setDeliveryOrderCharacteristic("delivery order")
- .setUnavailableTimeCharacteristic("unavailable time")
- .setServerIntegrityProcessCharacteristic("server integrity process")
- .setValidationMechanism(Map.of(validationMechanism.key(), validationMechanism))
- .build();
- default:
- LOG.error("OTN link of type {} not managed yet", prefix);
- return null;
- }
- }
-
- private Link createTapiOmsLink(org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang
- .ietf.network.topology.rev180226.networks.network.Link link,
- org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang
- .ietf.network.topology.rev180226.networks.network.Link oppositeLink) {
- String sourceNode = getIdBasedOnModelVersion(link.getSource().getSourceNode().getValue());
- String sourceTp = link.getSource().getSourceTp().getValue();
- String destNode = getIdBasedOnModelVersion(link.getDestination().getDestNode().getValue());
- String destTp = link.getDestination().getDestTp().getValue();
- AdminStates oppositeLinkAdminState = null;
- State oppositeLinkOperState = null;
- if (oppositeLink != null) {
- oppositeLinkAdminState = oppositeLink.augmentation(
- org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.Link1.class)
- .getAdministrativeState();
- oppositeLinkOperState = oppositeLink.augmentation(
- org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.Link1.class)
- .getOperationalState();
- }
- Map<NodeEdgePointKey, NodeEdgePoint> nepList = new HashMap<>();
- Uuid sourceUuidNode = new Uuid(UUID.nameUUIDFromBytes((String.join("+", sourceNode,
- PHTNC_MEDIA)).getBytes(Charset.forName("UTF-8"))).toString());
- Uuid sourceUuidTp = new Uuid(UUID.nameUUIDFromBytes((String.join("+", sourceNode, PHTNC_MEDIA, sourceTp))
- .getBytes(Charset.forName("UTF-8"))).toString());
- Uuid destUuidNode = new Uuid(UUID.nameUUIDFromBytes((String.join("+", destNode,
- PHTNC_MEDIA)).getBytes(Charset.forName("UTF-8"))).toString());
- Uuid destUuidTp = new Uuid(UUID.nameUUIDFromBytes((String.join("+", destNode, PHTNC_MEDIA, destTp))
- .getBytes(Charset.forName("UTF-8"))).toString());
- NodeEdgePoint sourceNep = new NodeEdgePointBuilder()
- .setTopologyUuid(this.tapiTopoUuid)
- .setNodeUuid(sourceUuidNode)
- .setNodeEdgePointUuid(sourceUuidTp)
- .build();
- nepList.put(sourceNep.key(), sourceNep);
- NodeEdgePoint destNep = new NodeEdgePointBuilder()
- .setTopologyUuid(this.tapiTopoUuid)
- .setNodeUuid(destUuidNode)
- .setNodeEdgePointUuid(destUuidTp)
- .build();
- nepList.put(destNep.key(), destNep);
- Name linkName = new NameBuilder().setValueName("OMS link name")
- .setValue(link.getLinkId().getValue())
- .build();
- CostCharacteristic costCharacteristic = new CostCharacteristicBuilder()
- .setCostAlgorithm("Restricted Shortest Path - RSP")
- .setCostName("HOP_COUNT")
- .setCostValue("12345678")
- .build();
- LatencyCharacteristic latencyCharacteristic = new LatencyCharacteristicBuilder()
- .setFixedLatencyCharacteristic("12345678")
- .setQueingLatencyCharacteristic("12345678")
- .setJitterCharacteristic("12345678")
- .setWanderCharacteristic("12345678")
- .setTrafficPropertyName("FIXED_LATENCY")
- .build();
- RiskCharacteristic riskCharacteristic = new RiskCharacteristicBuilder()
- .setRiskCharacteristicName("risk characteristic")
- .setRiskIdentifierList(List.of("risk identifier1", "risk identifier2"))
- .build();
- ValidationMechanism validationMechanism = new ValidationMechanismBuilder()
- .setValidationMechanism("validation mechanism")
- .setValidationRobustness("validation robustness")
- .setLayerProtocolAdjacencyValidated("layer protocol adjacency")
- .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(List.of(LayerProtocolName.PHOTONICMEDIA))
- .setTransitionedLayerProtocolName(new ArrayList<>())
- .setNodeEdgePoint(nepList)
- .setDirection(ForwardingDirection.BIDIRECTIONAL)
- .setResilienceType(new ResilienceTypeBuilder().setProtectionType(ProtectionType.NOPROTECTON)
- .setRestorationPolicy(RestorationPolicy.NA)
- .build())
- .setAdministrativeState(setTapiAdminState(link
- .augmentation(
- org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.Link1.class)
- .getAdministrativeState(), oppositeLinkAdminState))
- .setOperationalState(setTapiOperationalState(link
- .augmentation(
- org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.Link1.class)
- .getOperationalState(), oppositeLinkOperState))
- .setLifecycleState(LifecycleState.INSTALLED)
- .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(100)).build())
- .build())
- .setCostCharacteristic(Map.of(costCharacteristic.key(), costCharacteristic))
- .setLatencyCharacteristic(Map.of(latencyCharacteristic.key(), latencyCharacteristic))
- .setRiskCharacteristic(Map.of(riskCharacteristic.key(), riskCharacteristic))
- .setErrorCharacteristic("error")
- .setLossCharacteristic("loss")
- .setRepeatDeliveryCharacteristic("repeat delivery")
- .setDeliveryOrderCharacteristic("delivery order")
- .setUnavailableTimeCharacteristic("unavailable time")
- .setServerIntegrityProcessCharacteristic("server integrity process")
- .setValidationMechanism(Map.of(validationMechanism.key(), validationMechanism))
- .build();
- }
-
public void convertXpdrToRdmLinks(List<org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang
.ietf.network.topology.rev180226.networks.network.Link> xpdrRdmLinkList) {
List<String> linksToNotConvert = new ArrayList<>();
if (!linksToNotConvert.contains(link.getLinkId().getValue())) {
org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang
.ietf.network.topology.rev180226.networks.network.Link oppositeLink = xpdrRdmLinkList.stream()
- .filter(l -> l.getLinkId().equals(link.augmentation(org.opendaylight.yang.gen.v1.http
- .org.openroadm.common.network.rev200529.Link1.class).getOppositeLink())).findAny().orElse(null);
+ .filter(l -> l.getLinkId().equals(link.augmentation(Link1.class).getOppositeLink())).findAny()
+ .orElse(null);
- AdminStates oppositeLinkAdminState = null;
- State oppositeLinkOperState = null;
+ AdminStates oppLnkAdmState = null;
+ State oppLnkOpState = null;
if (oppositeLink != null) {
- oppositeLinkAdminState = oppositeLink.augmentation(
- org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.Link1.class)
- .getAdministrativeState();
- oppositeLinkOperState = oppositeLink.augmentation(
- org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.Link1.class)
- .getOperationalState();
+ oppLnkAdmState = oppositeLink.augmentation(Link1.class).getAdministrativeState();
+ oppLnkOpState = oppositeLink.augmentation(Link1.class).getOperationalState();
}
+ String adminState =
+ link.augmentation(Link1.class).getAdministrativeState() == null
+ || oppLnkAdmState == null
+ ? null
+ : this.tapiLink.setTapiAdminState(
+ link.augmentation(Link1.class).getAdministrativeState(), oppLnkAdmState).getName();
+ String operState =
+ link.augmentation(Link1.class).getOperationalState() == null
+ || oppLnkOpState == null
+ ? null
+ : this.tapiLink.setTapiOperationalState(
+ link.augmentation(Link1.class).getOperationalState(), oppLnkOpState).getName();
String sourceNode = (link.getSource().getSourceNode().getValue().contains("ROADM"))
? getIdBasedOnModelVersion(link.getSource().getSourceNode().getValue())
: link.getSource().getSourceNode().getValue();
String sourceTp = link.getSource().getSourceTp().getValue();
+ String sourceNodeQual = sourceNode.contains("ROADM") ? TapiStringConstants.PHTNC_MEDIA
+ : TapiStringConstants.OTSI;
String destNode = (link.getDestination().getDestNode().getValue().contains("ROADM"))
? getIdBasedOnModelVersion(link.getDestination().getDestNode().getValue())
: link.getDestination().getDestNode().getValue();
String destTp = link.getDestination().getDestTp().getValue();
- Map<NodeEdgePointKey, NodeEdgePoint> nepList = new HashMap<>();
- Uuid sourceUuidNode = (sourceNode.contains("ROADM")) ? new Uuid(UUID.nameUUIDFromBytes((
- String.join("+", sourceNode, PHTNC_MEDIA)).getBytes(Charset.forName("UTF-8"))).toString())
- : new Uuid(UUID.nameUUIDFromBytes((String.join("+", sourceNode, OTSI))
- .getBytes(Charset.forName("UTF-8"))).toString());
- Uuid sourceUuidTp = new Uuid(UUID.nameUUIDFromBytes(
- (String.join("+", sourceNode, PHTNC_MEDIA, sourceTp))
- .getBytes(Charset.forName("UTF-8"))).toString());
- Uuid destUuidNode = (destNode.contains("ROADM")) ? new Uuid(UUID.nameUUIDFromBytes((
- String.join("+", destNode, PHTNC_MEDIA)).getBytes(Charset.forName("UTF-8"))).toString())
- : new Uuid(UUID.nameUUIDFromBytes((String.join("+", destNode, OTSI))
- .getBytes(Charset.forName("UTF-8"))).toString());
- Uuid destUuidTp = new Uuid(UUID.nameUUIDFromBytes((String.join("+", destNode,
- PHTNC_MEDIA, destTp)).getBytes(Charset.forName("UTF-8"))).toString());
- NodeEdgePoint sourceNep = new NodeEdgePointBuilder()
- .setTopologyUuid(this.tapiTopoUuid)
- .setNodeUuid(sourceUuidNode)
- .setNodeEdgePointUuid(sourceUuidTp)
- .build();
- nepList.put(sourceNep.key(), sourceNep);
- NodeEdgePoint destNep = new NodeEdgePointBuilder()
- .setTopologyUuid(this.tapiTopoUuid)
- .setNodeUuid(destUuidNode)
- .setNodeEdgePointUuid(destUuidTp)
- .build();
- nepList.put(destNep.key(), destNep);
- Name linkName = new NameBuilder().setValueName("XPDR-RDM link name")
- .setValue(link.getLinkId().getValue())
- .build();
- CostCharacteristic costCharacteristic = new CostCharacteristicBuilder()
- .setCostAlgorithm("Restricted Shortest Path - RSP")
- .setCostName("HOP_COUNT")
- .setCostValue("12345678")
- .build();
- LatencyCharacteristic latencyCharacteristic = new LatencyCharacteristicBuilder()
- .setFixedLatencyCharacteristic("12345678")
- .setQueingLatencyCharacteristic("12345678")
- .setJitterCharacteristic("12345678")
- .setWanderCharacteristic("12345678")
- .setTrafficPropertyName("FIXED_LATENCY")
- .build();
- RiskCharacteristic riskCharacteristic = new RiskCharacteristicBuilder()
- .setRiskCharacteristicName("risk characteristic")
- .setRiskIdentifierList(List.of("risk identifier1", "risk identifier2"))
- .build();
- ValidationMechanism validationMechanism = new ValidationMechanismBuilder()
- .setValidationMechanism("validation mechanism")
- .setValidationRobustness("validation robustness")
- .setLayerProtocolAdjacencyValidated("layer protocol adjacency")
- .build();
- Link tapiLink = new LinkBuilder()
- .setUuid(new Uuid(
- UUID.nameUUIDFromBytes((link.getLinkId().getValue()).getBytes(Charset.forName("UTF-8")))
- .toString()))
- .setName(Map.of(linkName.key(), linkName))
- .setLayerProtocolName(List.of(LayerProtocolName.PHOTONICMEDIA))
- .setTransitionedLayerProtocolName(new ArrayList<>())
- .setNodeEdgePoint(nepList)
- .setDirection(ForwardingDirection.BIDIRECTIONAL)
- .setResilienceType(new ResilienceTypeBuilder().setProtectionType(ProtectionType.NOPROTECTON)
- .setRestorationPolicy(RestorationPolicy.NA)
- .build())
- .setAdministrativeState(setTapiAdminState(link
- .augmentation(
- org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.Link1.class)
- .getAdministrativeState(), oppositeLinkAdminState))
- .setOperationalState(setTapiOperationalState(link
- .augmentation(
- org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.Link1.class)
- .getOperationalState(), oppositeLinkOperState))
- .setLifecycleState(LifecycleState.INSTALLED)
- .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(100)).build())
- .build())
- .setCostCharacteristic(Map.of(costCharacteristic.key(), costCharacteristic))
- .setLatencyCharacteristic(Map.of(latencyCharacteristic.key(), latencyCharacteristic))
- .setRiskCharacteristic(Map.of(riskCharacteristic.key(), riskCharacteristic))
- .setErrorCharacteristic("error")
- .setLossCharacteristic("loss")
- .setRepeatDeliveryCharacteristic("repeat delivery")
- .setDeliveryOrderCharacteristic("delivery order")
- .setUnavailableTimeCharacteristic("unavailable time")
- .setServerIntegrityProcessCharacteristic("server integrity process")
- .setValidationMechanism(Map.of(validationMechanism.key(), validationMechanism))
- .build();
- linksToNotConvert.add(link
- .augmentation(org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.Link1.class)
- .getOppositeLink().getValue());
- this.tapiLinks.put(tapiLink.key(), tapiLink);
+ String destNodeQual = destNode.contains("ROADM") ? TapiStringConstants.PHTNC_MEDIA
+ : TapiStringConstants.OTSI;
+ Link tapLink = this.tapiLink.createTapiLink(sourceNode, sourceTp, destNode, destTp,
+ TapiStringConstants.OMS_XPDR_RDM_LINK, sourceNodeQual, destNodeQual,
+ TapiStringConstants.PHTNC_MEDIA, TapiStringConstants.PHTNC_MEDIA, adminState,
+ operState, List.of(LayerProtocolName.PHOTONICMEDIA),
+ List.of(LayerProtocolName.PHOTONICMEDIA.getName()), this.tapiTopoUuid);
+ linksToNotConvert.add(link.augmentation(Link1.class).getOppositeLink().getValue());
+ this.tapiLinks.put(tapLink.key(), tapLink);
}
}
}
import java.util.Set;
import java.util.UUID;
import java.util.stream.Collectors;
+import org.opendaylight.transportpce.tapi.TapiStringConstants;
+import org.opendaylight.transportpce.tapi.utils.TapiLink;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.Link1;
import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.TerminationPoint1;
import org.opendaylight.yang.gen.v1.http.org.openroadm.common.state.types.rev191129.State;
import org.opendaylight.yang.gen.v1.http.org.openroadm.equipment.states.types.rev191129.AdminStates;
import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev200529.OpenroadmNodeType;
import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev200529.OpenroadmTpType;
import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev200529.xpdr.tp.supported.interfaces.SupportedInterfaceCapability;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev200529.Link1;
import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev200529.Node1;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks.network.Node;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.TpId;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network.node.TerminationPoint;
import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev181210.AdministrativeState;
-import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev181210.CapacityUnit;
import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev181210.ForwardingDirection;
import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev181210.LAYERPROTOCOLQUALIFIER;
import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev181210.LayerProtocolName;
import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev181210.TerminationDirection;
import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev181210.TerminationState;
import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev181210.Uuid;
-import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev181210.capacity.TotalSizeBuilder;
-import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev181210.capacity.pac.AvailableCapacityBuilder;
-import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev181210.capacity.pac.TotalPotentialCapacityBuilder;
import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev181210.global._class.Name;
import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev181210.global._class.NameBuilder;
import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev181210.global._class.NameKey;
import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.topology.NodeBuilder;
import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.topology.NodeKey;
import org.opendaylight.yangtools.yang.common.Uint16;
-import org.opendaylight.yangtools.yang.common.Uint64;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class ConvertORTopoToTapiTopo {
- private static final String DSR = "DSR";
- private static final String OTSI = "OTSi";
- private static final String E_OTSI = "eOTSi";
- private static final String I_OTSI = "iOTSi";
- private static final String RDM_INFRA = "ROADM-infra";
private static final Logger LOG = LoggerFactory.getLogger(ConvertORTopoToTapiTopo.class);
private String ietfNodeId;
private OpenroadmNodeType ietfNodeType;
tapiNodes;
private Map<LinkKey, Link> tapiLinks;
private Map<String, Uuid> uuidMap;
+ private final TapiLink tapiLink;
- public ConvertORTopoToTapiTopo(Uuid tapiTopoUuid) {
+ public ConvertORTopoToTapiTopo(Uuid tapiTopoUuid, TapiLink tapiLink) {
this.tapiTopoUuid = tapiTopoUuid;
this.tapiNodes = new HashMap<>();
this.tapiLinks = new HashMap<>();
this.uuidMap = new HashMap<>();
+ this.tapiLink = tapiLink;
}
public void convertNode(Node ietfNode, List<String> networkPorts) {
// node creation [DSR/ODU]
LOG.info("creation of a DSR/ODU node for {}", this.ietfNodeId);
- Uuid nodeUuid = new Uuid(UUID.nameUUIDFromBytes((String.join("+", this.ietfNodeId, DSR))
- .getBytes(Charset.forName("UTF-8"))).toString());
- this.uuidMap.put(String.join("+", this.ietfNodeId, DSR), nodeUuid);
+ Uuid nodeUuid = new Uuid(UUID.nameUUIDFromBytes((String.join("+", this.ietfNodeId,
+ TapiStringConstants.DSR)).getBytes(Charset.forName("UTF-8"))).toString());
+ this.uuidMap.put(String.join("+", this.ietfNodeId, TapiStringConstants.DSR), nodeUuid);
Name nameDsr = 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 creation [otsi]
LOG.info("creation of an OTSi node for {}", this.ietfNodeId);
- nodeUuid = new Uuid(UUID.nameUUIDFromBytes((String.join("+", this.ietfNodeId, OTSI))
+ nodeUuid = new Uuid(UUID.nameUUIDFromBytes((String.join("+", this.ietfNodeId, TapiStringConstants.OTSI))
.getBytes(Charset.forName("UTF-8"))).toString());
- this.uuidMap.put(String.join("+", this.ietfNodeId, OTSI), nodeUuid);
+ this.uuidMap.put(String.join("+", this.ietfNodeId, TapiStringConstants.OTSI), nodeUuid);
Name nameOtsi = 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
if (!linksToNotConvert.contains(otnlink.getLinkId().getValue())) {
org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks
.network.Link oppositeLink = otnLinkMap.get(new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns
- .yang.ietf.network.topology.rev180226.networks.network.LinkKey(otnlink.augmentation(
- org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.Link1.class)
+ .yang.ietf.network.topology.rev180226.networks.network.LinkKey(otnlink.augmentation(Link1.class)
.getOppositeLink()));
- Link tapiLink = createTapiLink(otnlink, oppositeLink);
- linksToNotConvert.add(oppositeLink.getLinkId().getValue());
- tapiLinks.put(tapiLink.key(), tapiLink);
+
+ AdminStates oppLnkAdmState = null;
+ State oppLnkOpState = null;
+ String oppositeLinkId = null;
+ if (oppositeLink != null) {
+ oppLnkAdmState = oppositeLink.augmentation(Link1.class).getAdministrativeState();
+ oppLnkOpState = oppositeLink.augmentation(Link1.class).getOperationalState();
+ oppositeLinkId = oppositeLink.getLinkId().getValue();
+ }
+ String adminState =
+ otnlink.augmentation(Link1.class).getAdministrativeState() == null
+ || oppLnkAdmState == null
+ ? null
+ : this.tapiLink.setTapiAdminState(
+ otnlink.augmentation(Link1.class).getAdministrativeState(), oppLnkAdmState).getName();
+ String operState = otnlink.augmentation(Link1.class).getOperationalState() == null
+ || oppLnkOpState == null
+ ? null
+ : this.tapiLink.setTapiOperationalState(
+ otnlink.augmentation(Link1.class).getOperationalState(), oppLnkOpState).getName();
+
+ String prefix = otnlink.getLinkId().getValue().split("-")[0];
+ String nodesQual = prefix.equals("OTU4") ? TapiStringConstants.OTSI : TapiStringConstants.DSR;
+ String tpsQual = prefix.equals("OTU4") ? TapiStringConstants.I_OTSI : TapiStringConstants.E_ODU;
+ LayerProtocolName layerProtocolName = prefix.equals("OTU4") ? LayerProtocolName.PHOTONICMEDIA
+ : LayerProtocolName.ODU;
+
+ Link tapLink = this.tapiLink.createTapiLink(otnlink.getSource().getSourceNode().getValue(),
+ otnlink.getSource().getSourceTp().getValue(), otnlink.getDestination().getDestNode().getValue(),
+ otnlink.getDestination().getDestTp().getValue(), TapiStringConstants.OTN_XPDR_XPDR_LINK, nodesQual,
+ nodesQual, tpsQual, tpsQual, adminState, operState, List.of(layerProtocolName),
+ List.of(layerProtocolName.getName()), this.tapiTopoUuid);
+ linksToNotConvert.add(oppositeLinkId);
+ tapiLinks.put(tapLink.key(), tapLink);
}
}
}
public void convertRoadmInfrastructure() {
LOG.info("abstraction of the ROADM infrastructure towards a photonic node");
- Uuid nodeUuid = new Uuid(UUID.nameUUIDFromBytes(RDM_INFRA.getBytes(Charset.forName("UTF-8"))).toString());
- Name nodeName = new NameBuilder().setValueName("otsi node name").setValue(RDM_INFRA).build();
+ Uuid nodeUuid = new Uuid(UUID.nameUUIDFromBytes(TapiStringConstants.RDM_INFRA
+ .getBytes(Charset.forName("UTF-8"))).toString());
+ Name nodeName = new NameBuilder().setValueName("otsi node name").setValue(TapiStringConstants.RDM_INFRA)
+ .build();
List<LayerProtocolName> nodeLayerProtocols = Arrays.asList(LayerProtocolName.PHOTONICMEDIA);
List<org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.topology.Node> tapiPhotonicNodes
.setUuid(nodeUuid)
.setName(nodeNames)
.setLayerProtocolName(layerProtocols)
- .setAdministrativeState(setTapiAdminState(this.ietfNodeAdminState))
- .setOperationalState(setTapiOperationalState(this.ietfNodeOperState))
+ .setAdministrativeState(this.tapiLink.setTapiAdminState(this.ietfNodeAdminState.getName()))
+ .setOperationalState(this.tapiLink.setTapiOperationalState(this.ietfNodeOperState.getName()))
.setLifecycleState(LifecycleState.INSTALLED)
.setOwnedNodeEdgePoint(onepl)
.setNodeRuleGroup(nodeRuleGroupList)
.build();
}
- private AdministrativeState setTapiAdminState(AdminStates adminState) {
- if (adminState == null) {
- return null;
- }
- return adminState.equals(AdminStates.InService) ? AdministrativeState.UNLOCKED : AdministrativeState.LOCKED;
- }
-
- private AdministrativeState setTapiAdminState(AdminStates adminState1, AdminStates adminState2) {
- if (adminState1 == null || adminState2 == null) {
- return null;
- }
- if (AdminStates.InService.equals(adminState1) && AdminStates.InService.equals(adminState2)) {
- return AdministrativeState.UNLOCKED;
- } else {
- return AdministrativeState.LOCKED;
- }
- }
-
- private OperationalState setTapiOperationalState(State operState) {
- if (operState == null) {
- return null;
- }
- return operState.getName().equals("inService") ? OperationalState.ENABLED : OperationalState.DISABLED;
- }
-
- private OperationalState setTapiOperationalState(State operState1, State operState2) {
- if (operState1 == null || operState2 == null) {
- return null;
- }
- if (State.InService.equals(operState1) && State.InService.equals(operState2)) {
- return OperationalState.ENABLED;
- } else {
- return OperationalState.DISABLED;
- }
- }
-
private Uuid getNodeUuid4Photonic(Map<OwnedNodeEdgePointKey, OwnedNodeEdgePoint> onepl,
Map<NodeRuleGroupKey, NodeRuleGroup> nodeRuleGroupList, Map<RuleKey, Rule> ruleList) {
Uuid nodeUuid;
- nodeUuid = this.uuidMap.get(String.join("+", this.ietfNodeId, OTSI));
+ 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, I_OTSI, oorNetworkPortList.get(i).getTpId().getValue()))
- .getBytes(Charset.forName("UTF-8")))
+ (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, I_OTSI, oorNetworkPortList.get(i).getTpId().getValue()),
- nepUuid1);
+ this.uuidMap.put(String.join("+", this.ietfNodeId, TapiStringConstants.I_OTSI,
+ oorNetworkPortList.get(i).getTpId().getValue()), nepUuid1);
Name onedName = new NameBuilder()
.setValueName("iNodeEdgePoint")
.setValue(oorNetworkPortList.get(i).getTpId().getValue())
OwnedNodeEdgePoint onep = createNep(oorNetworkPortList.get(i), Map.of(onedName.key(), onedName),
LayerProtocolName.PHOTONICMEDIA, LayerProtocolName.PHOTONICMEDIA, true,
- String.join("+", this.ietfNodeId, I_OTSI));
+ 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, E_OTSI, oorNetworkPortList.get(i).getTpId().getValue()))
- .getBytes(Charset.forName("UTF-8")))
+ (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, E_OTSI, oorNetworkPortList.get(i).getTpId().getValue()),
- nepUuid2);
+ this.uuidMap.put(String.join("+", this.ietfNodeId, TapiStringConstants.E_OTSI,
+ oorNetworkPortList.get(i).getTpId().getValue()), nepUuid2);
Name onedName = new NameBuilder()
.setValueName("eNodeEdgePoint")
.setValue(oorNetworkPortList.get(i).getTpId().getValue())
OwnedNodeEdgePoint onep = createNep(oorNetworkPortList.get(i), Map.of(onedName.key(), onedName),
LayerProtocolName.PHOTONICMEDIA, LayerProtocolName.PHOTONICMEDIA, true,
- String.join("+", this.ietfNodeId, E_OTSI));
+ String.join("+", this.ietfNodeId, TapiStringConstants.E_OTSI));
onepl.put(onep.key(), onep);
}
// create NodeRuleGroup
.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(String.join("+", this.ietfNodeId, OTSI)))
+ .setNodeUuid(this.uuidMap.get(String.join("+", this.ietfNodeId, TapiStringConstants.OTSI)))
.setNodeEdgePointUuid(
- this.uuidMap.get(String.join("+", this.ietfNodeId, I_OTSI, tp.getTpId().getValue())))
- .build();
+ 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.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(String.join("+", this.ietfNodeId, OTSI)))
+ .setNodeUuid(this.uuidMap.get(String.join("+", this.ietfNodeId, TapiStringConstants.OTSI)))
.setNodeEdgePointUuid(
- this.uuidMap.get(String.join("+", this.ietfNodeId, E_OTSI, tp.getTpId().getValue())))
+ this.uuidMap.get(String.join("+", this.ietfNodeId, TapiStringConstants.E_OTSI,
+ tp.getTpId().getValue())))
.build();
nepList.put(inep.key(), inep);
nepList.put(enep.key(), enep);
private Uuid getNodeUuid4Dsr(Map<OwnedNodeEdgePointKey, OwnedNodeEdgePoint> onepl,
Map<NodeRuleGroupKey, NodeRuleGroup> nodeRuleGroupList, Map<RuleKey, Rule> ruleList) {
Uuid nodeUuid;
- nodeUuid = this.uuidMap.get(String.join("+", this.ietfNodeId, DSR));
+ nodeUuid = this.uuidMap.get(String.join("+", this.ietfNodeId, TapiStringConstants.DSR));
// client nep creation on DSR/ODU node
for (int i = 0; i < oorClientPortList.size(); i++) {
Uuid nepUuid = new Uuid(UUID.nameUUIDFromBytes(
- (String.join("+", this.ietfNodeId, DSR, oorClientPortList.get(i).getTpId().getValue()))
- .getBytes(Charset.forName("UTF-8"))).toString());
- this.uuidMap.put(String.join("+", this.ietfNodeId, DSR, oorClientPortList.get(i).getTpId().getValue()),
- nepUuid);
+ (String.join("+", this.ietfNodeId, TapiStringConstants.DSR,
+ oorClientPortList.get(i).getTpId().getValue())).getBytes(Charset.forName("UTF-8"))).toString());
+ this.uuidMap.put(String.join("+", this.ietfNodeId, TapiStringConstants.DSR,
+ oorClientPortList.get(i).getTpId().getValue()), nepUuid);
NameBuilder nameBldr = new NameBuilder().setValue(oorClientPortList.get(i).getTpId().getValue());
Name name;
if (OpenroadmNodeType.TPDR.equals(this.ietfNodeType)) {
}
OwnedNodeEdgePoint onep = createNep(oorClientPortList.get(i), Map.of(name.key(), name),
- LayerProtocolName.ETH, LayerProtocolName.DSR, true, String.join("+", this.ietfNodeId, DSR));
+ LayerProtocolName.ETH, LayerProtocolName.DSR, true, String.join("+", this.ietfNodeId,
+ TapiStringConstants.DSR));
onepl.put(onep.key(), onep);
}
// network nep creation on DSR/ODU node
for (int i = 0; i < oorNetworkPortList.size(); i++) {
Uuid nepUuid = new Uuid(UUID.nameUUIDFromBytes(
- (String.join("+", this.ietfNodeId, DSR, oorNetworkPortList.get(i).getTpId().getValue()))
- .getBytes(Charset.forName("UTF-8"))).toString());
- this.uuidMap.put(String.join("+", this.ietfNodeId, DSR, oorNetworkPortList.get(i).getTpId().getValue()),
- nepUuid);
+ (String.join("+", this.ietfNodeId, TapiStringConstants.DSR,
+ oorNetworkPortList.get(i).getTpId().getValue())).getBytes(Charset.forName("UTF-8"))).toString());
+ this.uuidMap.put(String.join("+", this.ietfNodeId, TapiStringConstants.DSR,
+ oorNetworkPortList.get(i).getTpId().getValue()), nepUuid);
Name onedName = new NameBuilder()
.setValueName("NodeEdgePoint_N")
.setValue(oorNetworkPortList.get(i).getTpId().getValue())
.build();
OwnedNodeEdgePoint onep = createNep(oorNetworkPortList.get(i), Map.of(onedName.key(), onedName),
- LayerProtocolName.ODU, LayerProtocolName.DSR, true, String.join("+", this.ietfNodeId, DSR));
+ LayerProtocolName.ODU, LayerProtocolName.DSR, true, String.join("+", this.ietfNodeId,
+ TapiStringConstants.DSR));
onepl.put(onep.key(), onep);
}
// create NodeRuleGroup
org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.node.rule.group.NodeEdgePoint>
nepList = new HashMap<>();
for (TpId tp : nbl.getTpList()) {
- if (this.uuidMap.containsKey(String.join("+", this.ietfNodeId, DSR, tp.getValue()))) {
+ if (this.uuidMap.containsKey(String.join("+", this.ietfNodeId, TapiStringConstants.DSR,
+ tp.getValue()))) {
+
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(String.join("+", this.ietfNodeId, DSR)))
- .setNodeEdgePointUuid(this.uuidMap.get(String.join("+", this.ietfNodeId, DSR, tp.getValue())))
+ .setNodeUuid(this.uuidMap.get(String.join("+", this.ietfNodeId,
+ TapiStringConstants.DSR)))
+ .setNodeEdgePointUuid(this.uuidMap.get(String.join("+", this.ietfNodeId,
+ TapiStringConstants.DSR, tp.getValue())))
.build();
nepList.put(nep.key(), nep);
}
private OwnedNodeEdgePoint createNep(TerminationPoint oorTp, Map<NameKey, Name> nepNames,
LayerProtocolName nepProtocol, LayerProtocolName nodeProtocol, boolean withSip, String keyword) {
String key = String.join("+", keyword, oorTp.getTpId().getValue());
+ AdministrativeState adminState = (oorTp.augmentation(TerminationPoint1.class).getAdministrativeState() != null)
+ ? this.tapiLink.setTapiAdminState(oorTp.augmentation(TerminationPoint1.class).getAdministrativeState()
+ .getName())
+ : null;
+ OperationalState operState = (oorTp.augmentation(TerminationPoint1.class).getOperationalState() != null)
+ ? this.tapiLink.setTapiOperationalState(oorTp.augmentation(TerminationPoint1.class).getOperationalState()
+ .getName())
+ : null;
OwnedNodeEdgePointBuilder onepBldr = new OwnedNodeEdgePointBuilder()
.setUuid(this.uuidMap.get(key))
.setLayerProtocolName(nepProtocol)
.setSupportedCepLayerProtocolQualifier(createSupportedCepLayerProtocolQualifier(oorTp, nodeProtocol))
.setLinkPortDirection(PortDirection.BIDIRECTIONAL)
.setLinkPortRole(PortRole.SYMMETRIC)
- .setAdministrativeState(setTapiAdminState(
- oorTp.augmentation(TerminationPoint1.class).getAdministrativeState()))
- .setOperationalState(setTapiOperationalState(
- oorTp.augmentation(TerminationPoint1.class).getOperationalState()))
+ .setAdministrativeState(adminState)
+ .setOperationalState(operState)
.setLifecycleState(LifecycleState.INSTALLED)
.setTerminationDirection(TerminationDirection.BIDIRECTIONAL)
.setTerminationState(TerminationState.TERMINATEDBIDIRECTIONAL);
private void createTapiTransitionalLinks() {
for (TerminationPoint tp : this.oorNetworkPortList) {
- Map<NodeEdgePointKey, NodeEdgePoint> nepList = new HashMap<>();
- String sourceKey = String.join("+", this.ietfNodeId, DSR, tp.getTpId().getValue());
- Uuid sourceUuidTp = this.uuidMap.get(sourceKey);
- String destKey = String.join("+", this.ietfNodeId, I_OTSI, tp.getTpId().getValue());
- Uuid destUuidTp = this.uuidMap.get(destKey);
- NodeEdgePoint sourceNep = new NodeEdgePointBuilder()
- .setTopologyUuid(this.tapiTopoUuid)
- .setNodeUuid(this.uuidMap.get(String.join("+", this.ietfNodeId, DSR)))
- .setNodeEdgePointUuid(sourceUuidTp)
- .build();
- nepList.put(sourceNep.key(), sourceNep);
- NodeEdgePoint destNep = new NodeEdgePointBuilder()
- .setTopologyUuid(this.tapiTopoUuid)
- .setNodeUuid(this.uuidMap.get(String.join("+", this.ietfNodeId, OTSI)))
- .setNodeEdgePointUuid(destUuidTp)
- .build();
- nepList.put(destNep.key(), destNep);
- Name linkName = new NameBuilder().setValueName("transitional link name")
- .setValue(String.join("--", this.ietfNodeId, sourceKey, destKey))
- .build();
- Link transiLink = new LinkBuilder()
- .setUuid(new Uuid(
- UUID.nameUUIDFromBytes((String.join("--", this.ietfNodeId, sourceKey, destKey))
- .getBytes(Charset.forName("UTF-8")))
- .toString()))
- .setName(Map.of(linkName.key(), linkName))
- .setTransitionedLayerProtocolName(Arrays.asList(LayerProtocolName.ODU.getName(),
- LayerProtocolName.PHOTONICMEDIA.getName()))
- .setNodeEdgePoint(nepList)
- .setDirection(ForwardingDirection.BIDIRECTIONAL)
- .setAvailableCapacity(new AvailableCapacityBuilder().setTotalSize(
- new TotalSizeBuilder().setUnit(CapacityUnit.GBPS).setValue(Uint64.valueOf(100)).build()).build())
- .build();
+ Link transiLink = tapiLink.createTapiLink(this.ietfNodeId, tp.getTpId().getValue(), this.ietfNodeId,
+ tp.getTpId().getValue(), TapiStringConstants.TRANSITIONAL_LINK, TapiStringConstants.DSR,
+ TapiStringConstants.OTSI, TapiStringConstants.DSR, TapiStringConstants.I_OTSI,
+ "inService", "inService", Arrays.asList(LayerProtocolName.ODU,
+ LayerProtocolName.PHOTONICMEDIA),
+ Arrays.asList(LayerProtocolName.ODU.getName(), LayerProtocolName.PHOTONICMEDIA.getName()),
+ this.tapiTopoUuid);
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,
- org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang
- .ietf.network.topology.rev180226.networks.network.Link oppositeLink) {
- String prefix = link.getLinkId().getValue().split("-")[0];
- String sourceNode = link.getSource().getSourceNode().getValue();
- String sourceTp = link.getSource().getSourceTp().getValue();
- String destNode = link.getDestination().getDestNode().getValue();
- String destTp = link.getDestination().getDestTp().getValue();
- Map<NodeEdgePointKey, NodeEdgePoint> nepList = new HashMap<>();
- Uuid sourceUuidTp;
- Uuid sourceUuidNode;
- Uuid destUuidTp;
- Uuid destUuidNode;
- Name linkName;
- AdminStates oppositeLinkAdminState = null;
- State oppositeLinkOperState = null;
- if (oppositeLink != null) {
- oppositeLinkAdminState = oppositeLink.augmentation(
- org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.Link1.class)
- .getAdministrativeState();
- oppositeLinkOperState = oppositeLink.augmentation(
- org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.Link1.class)
- .getOperationalState();
- }
- 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(setTapiAdminState(link
- .augmentation(org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.Link1.class)
- .getAdministrativeState(), oppositeLinkAdminState))
- .setOperationalState(setTapiOperationalState(link
- .augmentation(org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.Link1.class)
- .getOperationalState(), oppositeLinkOperState))
- .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 "ODTU4":
- 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(setTapiAdminState(link
- .augmentation(org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.Link1.class)
- .getAdministrativeState(), oppositeLinkAdminState))
- .setOperationalState(setTapiOperationalState(link
- .augmentation(org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.Link1.class)
- .getOperationalState(), oppositeLinkOperState))
- .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;
- }
- }
-
private void createTapiOmsLinks(Map<String, String> photonicNepUuisMap, Map<String, String> rdmInfraNepUuisMap) {
Iterator<Entry<String, String>> it1 = photonicNepUuisMap.entrySet().iterator();
Iterator<Entry<String, String>> it2 = rdmInfraNepUuisMap.entrySet().iterator();
import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
import org.opendaylight.transportpce.common.network.NetworkTransactionService;
import org.opendaylight.transportpce.tapi.R2RTapiLinkDiscovery;
+import org.opendaylight.transportpce.tapi.TapiStringConstants;
+import org.opendaylight.transportpce.tapi.utils.TapiLink;
import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210426.mapping.Mapping;
import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210426.network.Nodes;
import org.opendaylight.yang.gen.v1.http.org.openroadm.common.state.types.rev191129.State;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.NodeId;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.TpId;
import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev181210.AdministrativeState;
-import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev181210.CapacityUnit;
import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev181210.Context;
import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev181210.ContextBuilder;
-import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev181210.ForwardingDirection;
import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev181210.LAYERPROTOCOLQUALIFIER;
import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev181210.LayerProtocolName;
import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev181210.LifecycleState;
import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev181210.TerminationDirection;
import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev181210.TerminationState;
import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev181210.Uuid;
-import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev181210.capacity.TotalSizeBuilder;
import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev181210.capacity.pac.AvailableCapacityBuilder;
import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev181210.capacity.pac.TotalPotentialCapacityBuilder;
import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev181210.global._class.Name;
import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.photonic.media.rev181210.PHOTONICLAYERQUALIFIEROTSi;
import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.Context1;
import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.ForwardingRule;
-import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.ProtectionType;
-import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.RestorationPolicy;
import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.RuleType;
import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.context.TopologyContext;
-import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.link.NodeEdgePoint;
-import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.link.NodeEdgePointBuilder;
-import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.link.NodeEdgePointKey;
-import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.link.ResilienceTypeBuilder;
import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.node.NodeRuleGroup;
import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.node.NodeRuleGroupBuilder;
import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.node.NodeRuleGroupKey;
import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.risk.parameter.pac.RiskCharacteristic;
import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.risk.parameter.pac.RiskCharacteristicBuilder;
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.LinkKey;
import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.topology.Node;
import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.topology.NodeBuilder;
import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.transfer.cost.pac.CostCharacteristicBuilder;
import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.transfer.timing.pac.LatencyCharacteristic;
import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.transfer.timing.pac.LatencyCharacteristicBuilder;
-import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.validation.pac.ValidationMechanism;
-import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.validation.pac.ValidationMechanismBuilder;
import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
import org.opendaylight.yangtools.yang.common.Uint16;
import org.opendaylight.yangtools.yang.common.Uint32;
-import org.opendaylight.yangtools.yang.common.Uint64;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class TapiNetworkModelServiceImpl implements TapiNetworkModelService {
private static final Logger LOG = LoggerFactory.getLogger(TapiNetworkModelServiceImpl.class);
- private static final String DSR = "DSR";
- private static final String I_ODU = "iODU";
- private static final String E_ODU = "eODU";
- private static final String OTSI = "OTSi";
- private static final String E_OTSI = "eOTSi";
- private static final String I_OTSI = "iOTSi";
- private static final String PHTNC_MEDIA = "PHOTONIC_MEDIA";
- private static final String MC = "MEDIA_CHANNEL";
- private static final String OTSI_MC = "OTSi_MEDIA_CHANNEL";
- private static final String CLIENT = "-CLIENT";
- private static final String NETWORK = "-NETWORK";
- private static final String XPDR = "-XPDR";
- private final Uuid tapiTopoUuid = new Uuid(UUID.nameUUIDFromBytes(TopologyUtils.T0_FULL_MULTILAYER
+ private final Uuid tapiTopoUuid = new Uuid(UUID.nameUUIDFromBytes(TapiStringConstants.T0_FULL_MULTILAYER
.getBytes(Charset.forName("UTF-8"))).toString());
private final NetworkTransactionService networkTransactionService;
private Map<ServiceInterfacePointKey, ServiceInterfacePoint> sipMap;
private final R2RTapiLinkDiscovery linkDiscovery;
+ private final TapiLink tapiLink;
public TapiNetworkModelServiceImpl(final R2RTapiLinkDiscovery linkDiscovery,
- NetworkTransactionService networkTransactionService) {
+ NetworkTransactionService networkTransactionService, TapiLink tapiLink) {
this.networkTransactionService = networkTransactionService;
this.sipMap = new HashMap<>();
this.linkDiscovery = linkDiscovery;
+ this.tapiLink = tapiLink;
}
@Override
Map<Integer, String> xpdrMap = new HashMap<>();
for (Mapping mapping : networkMappings) {
Integer xpdrNb = Integer.parseInt(mapping.getLogicalConnectionPoint().split("XPDR")[1].split("-")[0]);
- String nodeId = node.getNodeId() + XPDR + xpdrNb;
+ String nodeId = node.getNodeId() + TapiStringConstants.XPDR + xpdrNb;
if (!xpdrMap.containsKey(xpdrNb)) {
List<Mapping> xpdrNetMaps = node.nonnullMapping().values()
- .stream().filter(k -> k.getLogicalConnectionPoint()
- .contains("XPDR" + xpdrNb + NETWORK)).collect(Collectors.toList());
+ .stream().filter(k -> k.getLogicalConnectionPoint()
+ .contains("XPDR" + xpdrNb + TapiStringConstants.NETWORK)).collect(Collectors.toList());
List<Mapping> xpdrClMaps = node.nonnullMapping().values()
- .stream().filter(k -> k.getLogicalConnectionPoint()
- .contains("XPDR" + xpdrNb + CLIENT)).collect(Collectors.toList());
+ .stream().filter(k -> k.getLogicalConnectionPoint()
+ .contains("XPDR" + xpdrNb + TapiStringConstants.CLIENT)).collect(Collectors.toList());
xpdrMap.put(xpdrNb, node.getNodeId());
// create switching pool
OduSwitchingPools oorOduSwitchingPool) {
Map<NodeKey, Node> nodeMap = new HashMap<>();
LOG.info("creation of a DSR/ODU node for {}", nodeId);
- Uuid nodeUuidDsr = new Uuid(UUID.nameUUIDFromBytes((String.join("+", nodeId, DSR))
+ Uuid nodeUuidDsr = new Uuid(UUID.nameUUIDFromBytes((String.join("+", nodeId, TapiStringConstants.DSR))
.getBytes(Charset.forName("UTF-8"))).toString());
Name nameDsr = new NameBuilder().setValueName("dsr/odu node name").setValue(
- String.join("+", nodeId, DSR)).build();
+ String.join("+", nodeId, TapiStringConstants.DSR)).build();
List<LayerProtocolName> dsrLayerProtocols = Arrays.asList(LayerProtocolName.DSR,
LayerProtocolName.ODU);
org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.topology
// node creation [otsi]
LOG.info("creation of an OTSi node for {}", nodeId);
- Uuid nodeUuidOtsi = new Uuid(UUID.nameUUIDFromBytes((String.join("+", nodeId, OTSI))
+ Uuid nodeUuidOtsi = new Uuid(UUID.nameUUIDFromBytes((String.join("+", nodeId, TapiStringConstants.OTSI))
.getBytes(Charset.forName("UTF-8"))).toString());
Name nameOtsi = new NameBuilder().setValueName("otsi node name").setValue(
- String.join("+", nodeId, OTSI)).build();
+ String.join("+", nodeId, TapiStringConstants.OTSI)).build();
List<LayerProtocolName> otsiLayerProtocols = Arrays.asList(LayerProtocolName.PHOTONICMEDIA);
org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.topology
.Node otsiNode = createTapiXpdrNode(Map.of(nameOtsi.key(), nameOtsi), otsiLayerProtocols,
}
if (nodeId.contains("ROADM")) {
// Node is in photonic media layer and UUID can be built from nodeId + PHTN_MEDIA
- Uuid nodeUuid = new Uuid(UUID.nameUUIDFromBytes((String.join("+", nodeId, PHTNC_MEDIA))
- .getBytes(Charset.forName("UTF-8"))).toString());
+ Uuid nodeUuid = new Uuid(UUID.nameUUIDFromBytes((String.join("+", nodeId,
+ TapiStringConstants.PHTNC_MEDIA)).getBytes(Charset.forName("UTF-8"))).toString());
deleteNodeFromTopo(nodeUuid);
}
if (nodeId.contains("XPDR") || nodeId.contains("SPDR") || nodeId.contains("MXPDR")) {
// iNep creation on otsi node
for (int i = 0; i < xpdrNetMaps.size(); i++) {
Uuid nepUuid1 = new Uuid(UUID.nameUUIDFromBytes(
- (String.join("+", nodeId, I_OTSI, xpdrNetMaps.get(i).getLogicalConnectionPoint()))
- .getBytes(Charset.forName("UTF-8")))
- .toString());
+ (String.join("+", nodeId, TapiStringConstants.I_OTSI,
+ xpdrNetMaps.get(i).getLogicalConnectionPoint())).getBytes(Charset.forName("UTF-8"))).toString());
Name onedName = new NameBuilder()
- .setValueName("iNodeEdgePoint")
- .setValue(String.join("+", nodeId, I_OTSI, xpdrNetMaps.get(i).getLogicalConnectionPoint()))
- .build();
+ .setValueName("iNodeEdgePoint")
+ .setValue(String.join("+", nodeId, TapiStringConstants.I_OTSI,
+ xpdrNetMaps.get(i).getLogicalConnectionPoint()))
+ .build();
OwnedNodeEdgePoint onep = createNep(nepUuid1, xpdrNetMaps.get(i).getLogicalConnectionPoint(),
Map.of(onedName.key(), onedName), LayerProtocolName.PHOTONICMEDIA, LayerProtocolName.PHOTONICMEDIA,
- true, String.join("+", nodeId, I_OTSI),
+ true, String.join("+", nodeId, TapiStringConstants.I_OTSI),
xpdrNetMaps.get(i).getSupportedInterfaceCapability(),
transformOperState(xpdrNetMaps.get(i).getPortOperState()),
transformAdminState(xpdrNetMaps.get(i).getPortAdminState()));
// eNep creation on otsi node
for (int i = 0; i < xpdrNetMaps.size(); i++) {
Uuid nepUuid2 = new Uuid(UUID.nameUUIDFromBytes(
- (String.join("+", nodeId, E_OTSI, xpdrNetMaps.get(i).getLogicalConnectionPoint()))
- .getBytes(Charset.forName("UTF-8"))).toString());
+ (String.join("+", nodeId, TapiStringConstants.E_OTSI,
+ xpdrNetMaps.get(i).getLogicalConnectionPoint())).getBytes(Charset.forName("UTF-8"))).toString());
Name onedName = new NameBuilder()
- .setValueName("eNodeEdgePoint")
- .setValue(String.join("+", nodeId, E_OTSI, xpdrNetMaps.get(i).getLogicalConnectionPoint()))
- .build();
+ .setValueName("eNodeEdgePoint")
+ .setValue(String.join("+", nodeId, TapiStringConstants.E_OTSI,
+ xpdrNetMaps.get(i).getLogicalConnectionPoint()))
+ .build();
OwnedNodeEdgePoint onep = createNep(nepUuid2, xpdrNetMaps.get(i).getLogicalConnectionPoint(),
Map.of(onedName.key(), onedName), LayerProtocolName.PHOTONICMEDIA, LayerProtocolName.PHOTONICMEDIA,
- false, String.join("+", nodeId, E_OTSI),
+ false, String.join("+", nodeId, TapiStringConstants.E_OTSI),
xpdrNetMaps.get(i).getSupportedInterfaceCapability(),
transformOperState(xpdrNetMaps.get(i).getPortOperState()),
transformAdminState(xpdrNetMaps.get(i).getPortAdminState()));
// Photonic Media Nep creation on otsi node
for (int i = 0; i < xpdrNetMaps.size(); i++) {
Uuid nepUuid3 = new Uuid(UUID.nameUUIDFromBytes(
- (String.join("+", nodeId, PHTNC_MEDIA, xpdrNetMaps.get(i).getLogicalConnectionPoint()))
- .getBytes(Charset.forName("UTF-8"))).toString());
+ (String.join("+", nodeId, TapiStringConstants.PHTNC_MEDIA,
+ xpdrNetMaps.get(i).getLogicalConnectionPoint())).getBytes(Charset.forName("UTF-8"))).toString());
Name onedName = new NameBuilder()
- .setValueName("PhotMedNodeEdgePoint")
- .setValue(String.join("+", nodeId, PHTNC_MEDIA, xpdrNetMaps.get(i).getLogicalConnectionPoint()))
- .build();
+ .setValueName("PhotMedNodeEdgePoint")
+ .setValue(String.join("+", nodeId, TapiStringConstants.PHTNC_MEDIA,
+ xpdrNetMaps.get(i).getLogicalConnectionPoint()))
+ .build();
OwnedNodeEdgePoint onep = createNep(nepUuid3, xpdrNetMaps.get(i).getLogicalConnectionPoint(),
Map.of(onedName.key(), onedName), LayerProtocolName.PHOTONICMEDIA, LayerProtocolName.PHOTONICMEDIA,
- false, String.join("+", nodeId, PHTNC_MEDIA),
+ false, String.join("+", nodeId, TapiStringConstants.PHTNC_MEDIA),
xpdrNetMaps.get(i).getSupportedInterfaceCapability(),
transformOperState(xpdrNetMaps.get(i).getPortOperState()),
transformAdminState(xpdrNetMaps.get(i).getPortAdminState()));
Map<OwnedNodeEdgePointKey, OwnedNodeEdgePoint> onepl = new HashMap<>();
// client nep creation on DSR node
for (int i = 0; i < xpdrClMaps.size(); i++) {
- LOG.info("Client NEP = {}", String.join("+", nodeId, DSR, xpdrClMaps.get(i).getLogicalConnectionPoint()));
+ LOG.info("Client NEP = {}", String.join("+", nodeId, TapiStringConstants.DSR,
+ xpdrClMaps.get(i).getLogicalConnectionPoint()));
Uuid nepUuid = new Uuid(UUID.nameUUIDFromBytes(
- (String.join("+", nodeId, DSR, xpdrClMaps.get(i).getLogicalConnectionPoint()))
- .getBytes(Charset.forName("UTF-8"))).toString());
- NameBuilder nameBldr = new NameBuilder().setValue(
- String.join("+", nodeId, DSR, xpdrClMaps.get(i).getLogicalConnectionPoint()));
+ (String.join("+", nodeId, TapiStringConstants.DSR,
+ xpdrClMaps.get(i).getLogicalConnectionPoint())).getBytes(Charset.forName("UTF-8"))).toString());
+ NameBuilder nameBldr = new NameBuilder().setValue(String.join("+", nodeId,
+ TapiStringConstants.DSR, xpdrClMaps.get(i).getLogicalConnectionPoint()));
Name name;
if (OpenroadmNodeType.TPDR.getName().equalsIgnoreCase(xponderType.getName())) {
name = nameBldr.setValueName("100G-tpdr").build();
OwnedNodeEdgePoint onep = createNep(nepUuid, xpdrClMaps.get(i).getLogicalConnectionPoint(),
Map.of(name.key(), name), LayerProtocolName.DSR, LayerProtocolName.DSR, true,
- String.join("+", nodeId, DSR), xpdrClMaps.get(i).getSupportedInterfaceCapability(),
+ String.join("+", nodeId, TapiStringConstants.DSR),
+ xpdrClMaps.get(i).getSupportedInterfaceCapability(),
transformOperState(xpdrClMaps.get(i).getPortOperState()),
transformAdminState(xpdrClMaps.get(i).getPortAdminState()));
onepl.put(onep.key(), onep);
}
// network nep creation on I_ODU node
for (int i = 0; i < xpdrNetMaps.size(); i++) {
- LOG.info("iODU NEP = {}", String.join("+", nodeId, I_ODU, xpdrNetMaps.get(i).getLogicalConnectionPoint()));
+ LOG.info("iODU NEP = {}", String.join("+", nodeId, TapiStringConstants.I_ODU,
+ xpdrNetMaps.get(i).getLogicalConnectionPoint()));
Uuid nepUuid = new Uuid(UUID.nameUUIDFromBytes(
- (String.join("+", nodeId, I_ODU, xpdrNetMaps.get(i).getLogicalConnectionPoint()))
- .getBytes(Charset.forName("UTF-8"))).toString());
+ (String.join("+", nodeId, TapiStringConstants.I_ODU,
+ xpdrNetMaps.get(i).getLogicalConnectionPoint())).getBytes(Charset.forName("UTF-8"))).toString());
Name onedName = new NameBuilder()
- .setValueName("iNodeEdgePoint_N")
- .setValue(String.join("+", nodeId, I_ODU, xpdrNetMaps.get(i).getLogicalConnectionPoint()))
- .build();
+ .setValueName("iNodeEdgePoint_N")
+ .setValue(String.join("+", nodeId, TapiStringConstants.I_ODU,
+ xpdrNetMaps.get(i).getLogicalConnectionPoint()))
+ .build();
OwnedNodeEdgePoint onep = createNep(nepUuid, xpdrNetMaps.get(i).getLogicalConnectionPoint(),
Map.of(onedName.key(), onedName),
LayerProtocolName.ODU, LayerProtocolName.DSR, false,
- String.join("+", nodeId, I_ODU), xpdrNetMaps.get(i).getSupportedInterfaceCapability(),
+ String.join("+", nodeId, TapiStringConstants.I_ODU),
+ xpdrNetMaps.get(i).getSupportedInterfaceCapability(),
transformOperState(xpdrNetMaps.get(i).getPortOperState()),
transformAdminState(xpdrNetMaps.get(i).getPortAdminState()));
onepl.put(onep.key(), onep);
}
// network nep creation on E_ODU node
for (int i = 0; i < xpdrNetMaps.size(); i++) {
- LOG.info("eODU NEP = {}", String.join("+", nodeId, E_ODU,
+ LOG.info("eODU NEP = {}", String.join("+", nodeId, TapiStringConstants.E_ODU,
xpdrNetMaps.get(i).getLogicalConnectionPoint()));
Uuid nepUuid = new Uuid(UUID.nameUUIDFromBytes(
- (String.join("+", nodeId, E_ODU, xpdrNetMaps.get(i).getLogicalConnectionPoint()))
- .getBytes(Charset.forName("UTF-8"))).toString());
+ (String.join("+", nodeId, TapiStringConstants.E_ODU,
+ xpdrNetMaps.get(i).getLogicalConnectionPoint())).getBytes(Charset.forName("UTF-8"))).toString());
Name onedName = new NameBuilder()
- .setValueName("eNodeEdgePoint_N")
- .setValue(String.join("+", nodeId, E_ODU, xpdrNetMaps.get(i).getLogicalConnectionPoint()))
- .build();
+ .setValueName("eNodeEdgePoint_N")
+ .setValue(String.join("+", nodeId, TapiStringConstants.E_ODU,
+ xpdrNetMaps.get(i).getLogicalConnectionPoint()))
+ .build();
OwnedNodeEdgePoint onep = createNep(nepUuid, xpdrNetMaps.get(i).getLogicalConnectionPoint(),
Map.of(onedName.key(), onedName),
LayerProtocolName.ODU, LayerProtocolName.DSR, true,
- String.join("+", nodeId, E_ODU), xpdrNetMaps.get(i).getSupportedInterfaceCapability(),
+ String.join("+", nodeId, TapiStringConstants.E_ODU),
+ xpdrNetMaps.get(i).getSupportedInterfaceCapability(),
transformOperState(xpdrNetMaps.get(i).getPortOperState()),
transformAdminState(xpdrNetMaps.get(i).getPortAdminState()));
onepl.put(onep.key(), onep);
AdministrativeState adminState) {
Map<OwnedNodeEdgePointKey, OwnedNodeEdgePoint> onepMap = new HashMap<>();
// PHOTONIC MEDIA nep
- Uuid nepUuid = new Uuid(UUID.nameUUIDFromBytes((String.join("+", orNodeId, PHTNC_MEDIA, tpId))
- .getBytes(Charset.forName("UTF-8")))
- .toString());
+ Uuid nepUuid = new Uuid(UUID.nameUUIDFromBytes((String.join("+", orNodeId,
+ TapiStringConstants.PHTNC_MEDIA, tpId)).getBytes(Charset.forName("UTF-8"))).toString());
Name nepName = new NameBuilder()
- .setValueName(PHTNC_MEDIA + "NodeEdgePoint")
- .setValue(String.join("+", orNodeId, PHTNC_MEDIA, tpId))
+ .setValueName(TapiStringConstants.PHTNC_MEDIA + "NodeEdgePoint")
+ .setValue(String.join("+", orNodeId, TapiStringConstants.PHTNC_MEDIA, tpId))
.build();
OwnedNodeEdgePoint onep = new OwnedNodeEdgePointBuilder()
.setUuid(nepUuid)
onepMap.put(onep.key(), onep);
// MC nep
- Uuid nepUuid1 = new Uuid(UUID.nameUUIDFromBytes((String.join("+", orNodeId, MC, tpId))
- .getBytes(Charset.forName("UTF-8")))
- .toString());
+ Uuid nepUuid1 = new Uuid(UUID.nameUUIDFromBytes((String.join("+", orNodeId,
+ TapiStringConstants.MC, tpId)).getBytes(Charset.forName("UTF-8"))).toString());
Name nepName1 = new NameBuilder()
- .setValueName(MC + "NodeEdgePoint")
- .setValue(String.join("+", orNodeId, MC, tpId))
+ .setValueName(TapiStringConstants.MC + "NodeEdgePoint")
+ .setValue(String.join("+", orNodeId, TapiStringConstants.MC, tpId))
.build();
OwnedNodeEdgePointBuilder onepBldr1 = new OwnedNodeEdgePointBuilder()
.setUuid(nepUuid1)
.setTerminationState(TerminationState.TERMINATEDBIDIRECTIONAL);
if (withSip) {
onepBldr1.setMappedServiceInterfacePoint(createMSIP(1, LayerProtocolName.PHOTONICMEDIA,
- tpId, String.join("+", orNodeId, MC), null, operState, adminState));
+ tpId, String.join("+", orNodeId, TapiStringConstants.MC), null,
+ operState, adminState));
}
OwnedNodeEdgePoint onep1 = onepBldr1.build();
onepMap.put(onep1.key(), onep1);
// OTSiMC nep
- Uuid nepUuid2 = new Uuid(UUID.nameUUIDFromBytes((String.join("+", orNodeId, OTSI_MC, tpId))
- .getBytes(Charset.forName("UTF-8")))
- .toString());
+ Uuid nepUuid2 = new Uuid(UUID.nameUUIDFromBytes((String.join("+", orNodeId, TapiStringConstants.OTSI_MC,
+ tpId)).getBytes(Charset.forName("UTF-8"))).toString());
Name nepName2 = new NameBuilder()
- .setValueName(OTSI_MC + "NodeEdgePoint")
- .setValue(String.join("+", orNodeId, OTSI_MC, tpId))
+ .setValueName(TapiStringConstants.OTSI_MC + "NodeEdgePoint")
+ .setValue(String.join("+", orNodeId, TapiStringConstants.OTSI_MC, tpId))
.build();
OwnedNodeEdgePoint onep2 = new OwnedNodeEdgePointBuilder()
createRoadmTapiNode(String orNodeId, Map<OwnedNodeEdgePointKey, OwnedNodeEdgePoint> oneplist) {
// UUID
Uuid nodeUuid = new Uuid(UUID.nameUUIDFromBytes((String.join("+", orNodeId,
- PHTNC_MEDIA)).getBytes(Charset.forName("UTF-8"))).toString());
+ TapiStringConstants.PHTNC_MEDIA)).getBytes(Charset.forName("UTF-8"))).toString());
// Names
Name nodeNames = new NameBuilder().setValueName("roadm node name")
- .setValue(String.join("+", orNodeId, PHTNC_MEDIA)).build();
+ .setValue(String.join("+", orNodeId, TapiStringConstants.PHTNC_MEDIA)).build();
// Protocol Layer
List<LayerProtocolName> layerProtocols = Arrays.asList(LayerProtocolName.PHOTONICMEDIA);
// Empty random creation of mandatory fields for avoiding errors....
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)
+ .setTopologyUuid(this.tapiTopoUuid)
.setNodeUuid(nodeUuid)
.setNodeEdgePointUuid(onep.key().getUuid())
.build();
Uuid nodeUuidOtsi) {
Map<LinkKey, Link> linkMap = new HashMap<>();
for (Mapping mapping : xpdrNetMaps) {
- Map<NodeEdgePointKey, NodeEdgePoint> nepList = new HashMap<>();
- String sourceKey = String.join("+", nodeId, I_ODU, mapping.getLogicalConnectionPoint());
- Uuid sourceUuidTp = new Uuid(UUID.nameUUIDFromBytes(
- (String.join("+", nodeId, I_ODU, mapping.getLogicalConnectionPoint()))
- .getBytes(Charset.forName("UTF-8"))).toString());
- String destKey = String.join("+", nodeId, I_OTSI, mapping.getLogicalConnectionPoint());
- Uuid destUuidTp = new Uuid(UUID.nameUUIDFromBytes(
- (String.join("+", nodeId, I_OTSI, mapping.getLogicalConnectionPoint()))
- .getBytes(Charset.forName("UTF-8"))).toString());
- NodeEdgePoint sourceNep = new NodeEdgePointBuilder()
- .setTopologyUuid(this.tapiTopoUuid)
- .setNodeUuid(nodeUuidDsr)
- .setNodeEdgePointUuid(sourceUuidTp)
- .build();
- nepList.put(sourceNep.key(), sourceNep);
- NodeEdgePoint destNep = new NodeEdgePointBuilder()
- .setTopologyUuid(this.tapiTopoUuid)
- .setNodeUuid(nodeUuidOtsi)
- .setNodeEdgePointUuid(destUuidTp)
- .build();
- nepList.put(destNep.key(), destNep);
- Name linkName = new NameBuilder().setValueName("transitional link name")
- .setValue(String.join("--",nodeId, sourceKey, destKey))
- .build();
- CostCharacteristic costCharacteristic = new CostCharacteristicBuilder()
- .setCostAlgorithm("Restricted Shortest Path - RSP")
- .setCostName("HOP_COUNT")
- .setCostValue("12345678")
- .build();
- LatencyCharacteristic latencyCharacteristic = new LatencyCharacteristicBuilder()
- .setFixedLatencyCharacteristic("12345678")
- .setQueingLatencyCharacteristic("12345678")
- .setJitterCharacteristic("12345678")
- .setWanderCharacteristic("12345678")
- .setTrafficPropertyName("FIXED_LATENCY")
- .build();
- RiskCharacteristic riskCharacteristic = new RiskCharacteristicBuilder()
- .setRiskCharacteristicName("risk characteristic")
- .setRiskIdentifierList(List.of("risk identifier1", "risk identifier2"))
- .build();
- ValidationMechanism validationMechanism = new ValidationMechanismBuilder()
- .setValidationMechanism("validation mechanism")
- .setValidationRobustness("validation robustness")
- .setLayerProtocolAdjacencyValidated("layer protocol adjacency")
- .build();
- Link transiLink = new LinkBuilder()
- .setUuid(new Uuid(
- UUID.nameUUIDFromBytes((String.join("--", nodeId, sourceKey, destKey))
- .getBytes(Charset.forName("UTF-8")))
- .toString()))
- .setName(Map.of(linkName.key(), linkName))
- .setTransitionedLayerProtocolName(Arrays.asList(LayerProtocolName.ODU.getName(),
- LayerProtocolName.PHOTONICMEDIA.getName()))
- .setNodeEdgePoint(nepList)
- .setLayerProtocolName(Arrays.asList(LayerProtocolName.PHOTONICMEDIA, LayerProtocolName.ODU))
- .setDirection(ForwardingDirection.BIDIRECTIONAL)
- .setAvailableCapacity(new AvailableCapacityBuilder().setTotalSize(
- new TotalSizeBuilder().setUnit(CapacityUnit.GBPS).setValue(Uint64.valueOf(100)).build())
- .build())
- .setResilienceType(new ResilienceTypeBuilder().setProtectionType(ProtectionType.NOPROTECTON)
- .setRestorationPolicy(RestorationPolicy.NA)
- .build())
- .setAdministrativeState(transformAdminState(mapping.getPortAdminState()))
- .setOperationalState(transformOperState(mapping.getPortOperState()))
- .setLifecycleState(LifecycleState.INSTALLED)
- .setTotalPotentialCapacity(new TotalPotentialCapacityBuilder().setTotalSize(
- new TotalSizeBuilder().setUnit(CapacityUnit.GBPS).setValue(Uint64.valueOf(100)).build())
- .build())
- .setCostCharacteristic(Map.of(costCharacteristic.key(), costCharacteristic))
- .setLatencyCharacteristic(Map.of(latencyCharacteristic.key(), latencyCharacteristic))
- .setRiskCharacteristic(Map.of(riskCharacteristic.key(), riskCharacteristic))
- .setErrorCharacteristic("error")
- .setLossCharacteristic("loss")
- .setRepeatDeliveryCharacteristic("repeat delivery")
- .setDeliveryOrderCharacteristic("delivery order")
- .setUnavailableTimeCharacteristic("unavailable time")
- .setServerIntegrityProcessCharacteristic("server integrity process")
- .setValidationMechanism(Map.of(validationMechanism.key(), validationMechanism))
- .build();
+ Link transiLink = tapiLink.createTapiLink(nodeId, mapping.getLogicalConnectionPoint(), nodeId,
+ mapping.getLogicalConnectionPoint(), TapiStringConstants.TRANSITIONAL_LINK, TapiStringConstants.DSR,
+ TapiStringConstants.OTSI, TapiStringConstants.I_ODU, TapiStringConstants.I_OTSI,
+ "inService", "inService", Arrays.asList(LayerProtocolName.ODU,
+ LayerProtocolName.PHOTONICMEDIA),
+ Arrays.asList(LayerProtocolName.ODU.getName(), LayerProtocolName.PHOTONICMEDIA.getName()),
+ this.tapiTopoUuid);
linkMap.put(transiLink.key(), transiLink);
}
// return a map of links and then we can do merge the corresponding link map into the topology context
List<TpId> tpl = new ArrayList<>();
TpId tpId = null;
for (int i = 1; i <= xpdrClMaps.size(); i++) {
- tpId = new TpId("XPDR" + xpdrNb + CLIENT + i);
+ tpId = new TpId("XPDR" + xpdrNb + TapiStringConstants.CLIENT + i);
tpl.add(tpId);
}
for (int i = 1; i <= xpdrNetMaps.size(); i++) {
- tpId = new TpId("XPDR" + xpdrNb + NETWORK + i);
+ tpId = new TpId("XPDR" + xpdrNb + TapiStringConstants.NETWORK + i);
tpl.add(tpId);
}
Map<NonBlockingListKey, NonBlockingList> nbMap = new HashMap<>();
Map<NonBlockingListKey, NonBlockingList> nbMap = new HashMap<>();
for (int i = 1; i <= xpdrClMaps.size(); i++) {
List<TpId> tpList = new ArrayList<>();
- TpId tpId = new TpId("XPDR" + xpdrNb + CLIENT + i);
+ TpId tpId = new TpId("XPDR" + xpdrNb + TapiStringConstants.CLIENT + i);
tpList.add(tpId);
tpId = new TpId("XPDR" + xpdrNb + "-NETWORK1");
tpList.add(tpId);
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(new Uuid(UUID.nameUUIDFromBytes(
- (String.join("+", nodeId, OTSI)).getBytes(Charset.forName("UTF-8")))
- .toString()))
- .setNodeEdgePointUuid(new Uuid(UUID.nameUUIDFromBytes(
- (String.join("+", nodeId, I_OTSI, tpMapping.getLogicalConnectionPoint()))
- .getBytes(Charset.forName("UTF-8"))).toString()))
+ .setTopologyUuid(this.tapiTopoUuid)
+ .setNodeUuid(new Uuid(UUID.nameUUIDFromBytes((String.join("+", nodeId,
+ TapiStringConstants.OTSI)).getBytes(Charset.forName("UTF-8")))
+ .toString()))
+ .setNodeEdgePointUuid(new Uuid(UUID.nameUUIDFromBytes((String.join("+", nodeId,
+ TapiStringConstants.I_OTSI, tpMapping.getLogicalConnectionPoint()))
+ .getBytes(Charset.forName("UTF-8"))).toString()))
.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(new Uuid(UUID.nameUUIDFromBytes(
- (String.join("+", nodeId, OTSI)).getBytes(Charset.forName("UTF-8")))
- .toString()))
+ .setTopologyUuid(this.tapiTopoUuid)
+ .setNodeUuid(new Uuid(UUID.nameUUIDFromBytes((String.join("+", nodeId,
+ TapiStringConstants.OTSI)).getBytes(Charset.forName("UTF-8"))).toString()))
.setNodeEdgePointUuid(new Uuid(UUID.nameUUIDFromBytes(
- (String.join("+", nodeId, E_OTSI, tpMapping.getLogicalConnectionPoint()))
- .getBytes(Charset.forName("UTF-8"))).toString()))
+ (String.join("+", nodeId, TapiStringConstants.E_OTSI,
+ tpMapping.getLogicalConnectionPoint())).getBytes(Charset.forName("UTF-8"))).toString()))
.build();
nepList.put(inep.key(), inep);
nepList.put(enep.key(), enep);
org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.node.rule.group.NodeEdgePoint>
nepList = new HashMap<>();
for (TpId tp : nbl.getTpList()) {
- LOG.info("EDOU TP = {}", String.join("+", nodeId, E_ODU, tp.getValue()));
- LOG.info("DSR TP = {}", String.join("+", nodeId, DSR, tp.getValue()));
- Uuid tpUuid = new Uuid(UUID.nameUUIDFromBytes(
- (String.join("+", nodeId, E_ODU, tp.getValue())).getBytes(Charset.forName("UTF-8")))
- .toString());
- Uuid tp1Uuid = new Uuid(UUID.nameUUIDFromBytes(
- (String.join("+", nodeId, DSR, tp.getValue())).getBytes(Charset.forName("UTF-8")))
- .toString());
+ LOG.info("EDOU TP = {}", String.join("+", nodeId, TapiStringConstants.E_ODU, tp.getValue()));
+ LOG.info("DSR TP = {}", String.join("+", nodeId, TapiStringConstants.DSR, tp.getValue()));
+ Uuid tpUuid = new Uuid(UUID.nameUUIDFromBytes((String.join("+", nodeId,
+ TapiStringConstants.E_ODU, tp.getValue())).getBytes(Charset.forName("UTF-8"))).toString());
+ Uuid tp1Uuid = new Uuid(UUID.nameUUIDFromBytes((String.join("+", nodeId,
+ TapiStringConstants.DSR, tp.getValue())).getBytes(Charset.forName("UTF-8"))).toString());
if (onepl.containsKey(new OwnedNodeEdgePointKey(tpUuid))
|| onepl.containsKey(new OwnedNodeEdgePointKey(tp1Uuid))) {
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)
+ .setTopologyUuid(this.tapiTopoUuid)
.setNodeUuid(new Uuid(UUID.nameUUIDFromBytes(
- (String.join("+", nodeId, DSR)).getBytes(Charset.forName("UTF-8")))
- .toString()))
+ (String.join("+", nodeId,TapiStringConstants. DSR))
+ .getBytes(Charset.forName("UTF-8"))).toString()))
.setNodeEdgePointUuid((tp.getValue().contains("CLIENT")) ? tp1Uuid : tpUuid)
.build();
nepList.put(nep.key(), nep);
InstanceIdentifier<Topology> topoIID = InstanceIdentifier.builder(Context.class)
.augmentation(org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.Context1.class)
.child(org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.context.TopologyContext.class)
- .child(Topology.class, new TopologyKey(tapiTopoUuid))
+ .child(Topology.class, new TopologyKey(this.tapiTopoUuid))
.build();
- Topology topology = new TopologyBuilder().setUuid(tapiTopoUuid).setNode(nodeMap).build();
+ Topology topology = new TopologyBuilder().setUuid(this.tapiTopoUuid).setNode(nodeMap).build();
// merge in datastore
this.networkTransactionService.merge(LogicalDatastoreType.OPERATIONAL, topoIID,
.augmentation(org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.Context1.class)
.child(org.opendaylight.yang.gen.v1.urn
.onf.otcc.yang.tapi.topology.rev181210.context.TopologyContext.class)
- .child(Topology.class, new TopologyKey(tapiTopoUuid))
+ .child(Topology.class, new TopologyKey(this.tapiTopoUuid))
.build();
- Topology topology = new TopologyBuilder().setUuid(tapiTopoUuid).setLink(linkMap).build();
+ Topology topology = new TopologyBuilder().setUuid(this.tapiTopoUuid).setLink(linkMap).build();
// merge in datastore
this.networkTransactionService.merge(LogicalDatastoreType.OPERATIONAL, topoIID,
try {
InstanceIdentifier<Link> linkIID = InstanceIdentifier.builder(Context.class)
.augmentation(Context1.class).child(TopologyContext.class).child(Topology.class,
- new TopologyKey(tapiTopoUuid)).child(Link.class, new LinkKey(linkUuid)).build();
+ new TopologyKey(this.tapiTopoUuid)).child(Link.class, new LinkKey(linkUuid)).build();
this.networkTransactionService.delete(LogicalDatastoreType.OPERATIONAL, linkIID);
this.networkTransactionService.commit().get();
LOG.info("TAPI link deleted successfully.");
try {
InstanceIdentifier<Node> nodeIDD = InstanceIdentifier.builder(Context.class)
.augmentation(Context1.class).child(TopologyContext.class).child(Topology.class,
- new TopologyKey(tapiTopoUuid)).child(Node.class, new NodeKey(nodeUuid)).build();
+ new TopologyKey(this.tapiTopoUuid)).child(Node.class, new NodeKey(nodeUuid)).build();
this.networkTransactionService.delete(LogicalDatastoreType.OPERATIONAL, nodeIDD);
this.networkTransactionService.commit().get();
LOG.info("TAPI Node deleted successfully.");
import com.google.common.util.concurrent.ListenableFuture;
import java.nio.charset.Charset;
-import java.util.ArrayList;
-import java.util.HashMap;
import java.util.List;
import java.util.Map;
-import java.util.Optional;
import java.util.UUID;
import java.util.concurrent.ExecutionException;
import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
import org.opendaylight.transportpce.common.network.NetworkTransactionService;
+import org.opendaylight.transportpce.tapi.TapiStringConstants;
+import org.opendaylight.transportpce.tapi.utils.TapiLink;
import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.tapinetworkutils.rev210408.DeleteTapiLinkInput;
import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.tapinetworkutils.rev210408.DeleteTapiLinkOutput;
import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.tapinetworkutils.rev210408.DeleteTapiLinkOutputBuilder;
import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.tapinetworkutils.rev210408.InitXpdrRdmTapiLinkOutput;
import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.tapinetworkutils.rev210408.InitXpdrRdmTapiLinkOutputBuilder;
import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.tapinetworkutils.rev210408.TransportpceTapinetworkutilsService;
-import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev181210.AdministrativeState;
-import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev181210.CapacityUnit;
import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev181210.Context;
-import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev181210.ForwardingDirection;
import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev181210.LayerProtocolName;
-import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev181210.LifecycleState;
-import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev181210.OperationalState;
import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev181210.Uuid;
-import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev181210.capacity.TotalSizeBuilder;
-import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev181210.capacity.pac.AvailableCapacityBuilder;
-import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev181210.capacity.pac.TotalPotentialCapacityBuilder;
-import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev181210.global._class.Name;
-import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev181210.global._class.NameBuilder;
import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.Context1;
-import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.ProtectionType;
-import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.RestorationPolicy;
import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.context.TopologyContext;
-import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.link.NodeEdgePoint;
-import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.link.NodeEdgePointBuilder;
-import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.link.NodeEdgePointKey;
-import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.link.ResilienceTypeBuilder;
-import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.node.OwnedNodeEdgePoint;
-import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.node.OwnedNodeEdgePointKey;
-import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.risk.parameter.pac.RiskCharacteristic;
-import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.risk.parameter.pac.RiskCharacteristicBuilder;
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.LinkKey;
-import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.topology.Node;
-import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.topology.NodeKey;
import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.topology.context.Topology;
import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.topology.context.TopologyBuilder;
import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.topology.context.TopologyKey;
-import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.transfer.cost.pac.CostCharacteristic;
-import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.transfer.cost.pac.CostCharacteristicBuilder;
-import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.transfer.timing.pac.LatencyCharacteristic;
-import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.transfer.timing.pac.LatencyCharacteristicBuilder;
-import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.validation.pac.ValidationMechanism;
-import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.validation.pac.ValidationMechanismBuilder;
import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
import org.opendaylight.yangtools.yang.common.RpcError;
import org.opendaylight.yangtools.yang.common.RpcResult;
import org.opendaylight.yangtools.yang.common.RpcResultBuilder;
-import org.opendaylight.yangtools.yang.common.Uint64;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class TapiNetworkUtilsImpl implements TransportpceTapinetworkutilsService {
private static final Logger LOG = LoggerFactory.getLogger(TapiNetworkUtilsImpl.class);
- private static final String PHTNC_MEDIA = "PHOTONIC_MEDIA";
- private static final String OTSI = "OTSi";
- private final Uuid tapiTopoUuid = new Uuid(UUID.nameUUIDFromBytes(TopologyUtils.T0_FULL_MULTILAYER
+ private final Uuid tapiTopoUuid = new Uuid(UUID.nameUUIDFromBytes(TapiStringConstants.T0_FULL_MULTILAYER
.getBytes(Charset.forName("UTF-8"))).toString());
private final NetworkTransactionService networkTransactionService;
+ private final TapiLink tapiLink;
- public TapiNetworkUtilsImpl(NetworkTransactionService networkTransactionService) {
+ public TapiNetworkUtilsImpl(NetworkTransactionService networkTransactionService, TapiLink tapiLink) {
this.networkTransactionService = networkTransactionService;
+ this.tapiLink = tapiLink;
}
@Override
String sourceTp = input.getDegATp();
String destNode = input.getRdmZNode();
String destTp = input.getDegZTp();
- String linkId = String.join("-", sourceNode, sourceTp.split("-")[0], sourceTp)
- + "to" + String.join("-", destNode, destTp.split("-")[0], destTp);
- Link link = createTapiLink(sourceNode, sourceTp, destNode, destTp, linkId, "OMS link name", PHTNC_MEDIA);
+ Link link = this.tapiLink.createTapiLink(sourceNode, sourceTp, destNode, destTp,
+ TapiStringConstants.OMS_RDM_RDM_LINK, TapiStringConstants.PHTNC_MEDIA, TapiStringConstants.PHTNC_MEDIA,
+ TapiStringConstants.PHTNC_MEDIA, TapiStringConstants.PHTNC_MEDIA,
+ this.tapiLink.getAdminState(sourceNode, sourceTp, destNode, destTp),
+ this.tapiLink.getOperState(sourceNode, sourceTp, destNode, destTp),
+ List.of(LayerProtocolName.PHOTONICMEDIA), List.of(LayerProtocolName.PHOTONICMEDIA.getName()), tapiTopoUuid);
InitRoadmRoadmTapiLinkOutputBuilder output = new InitRoadmRoadmTapiLinkOutputBuilder();
if (link == null) {
LOG.error("Error creating link object");
String destTp = input.getAddDropTp();
String sourceNode = input.getXpdrNode();
String sourceTp = input.getNetworkTp();
- String linkId = String.join("-", sourceNode, sourceTp)
- + "to" + String.join("-", destNode, destTp.split("-")[0], destTp);
- Link link = createTapiLink(sourceNode, sourceTp, destNode, destTp, linkId, "XPDR-RDM link name", OTSI);
+ Link link = this.tapiLink.createTapiLink(sourceNode, sourceTp, destNode, destTp,
+ TapiStringConstants.OMS_XPDR_RDM_LINK, TapiStringConstants.OTSI, TapiStringConstants.PHTNC_MEDIA,
+ TapiStringConstants.PHTNC_MEDIA, TapiStringConstants.PHTNC_MEDIA,
+ this.tapiLink.getAdminState(sourceNode, sourceTp, destNode, destTp),
+ this.tapiLink.getOperState(sourceNode, sourceTp, destNode, destTp),
+ List.of(LayerProtocolName.PHOTONICMEDIA), List.of(LayerProtocolName.PHOTONICMEDIA.getName()), tapiTopoUuid);
InitXpdrRdmTapiLinkOutputBuilder output = new InitXpdrRdmTapiLinkOutputBuilder();
if (link == null) {
LOG.error("Error creating link object");
}
}
- private Link createTapiLink(String sourceNode, String sourceTp, String destNode, String destTp, String linkId,
- String valueName, String sourceNodeQual) {
- Map<NodeEdgePointKey, NodeEdgePoint> nepList = new HashMap<>();
- Uuid sourceUuidNode = new Uuid(UUID.nameUUIDFromBytes((String.join("+", sourceNode,
- sourceNodeQual)).getBytes(Charset.forName("UTF-8"))).toString());
- Uuid sourceUuidTp = new Uuid(UUID.nameUUIDFromBytes((String.join("+", sourceNode, PHTNC_MEDIA,
- sourceTp)).getBytes(Charset.forName("UTF-8"))).toString());
- Uuid destUuidNode = new Uuid(UUID.nameUUIDFromBytes((String.join("+", destNode,
- PHTNC_MEDIA)).getBytes(Charset.forName("UTF-8"))).toString());
- Uuid destUuidTp = new Uuid(UUID.nameUUIDFromBytes((String.join("+", destNode, PHTNC_MEDIA,
- destTp)).getBytes(Charset.forName("UTF-8"))).toString());
- if (!(nodeExists(sourceUuidNode) && nodeExists(destUuidNode)
- && nepExists(sourceUuidTp, sourceUuidNode) && nepExists(destUuidTp, destUuidNode))) {
- LOG.error("Verify the input data. No link can be created, "
- + "as either the node or the tp doesnt exist in the TAPI topology");
- return null;
- }
-
- NodeEdgePoint sourceNep = new NodeEdgePointBuilder()
- .setTopologyUuid(this.tapiTopoUuid)
- .setNodeUuid(sourceUuidNode)
- .setNodeEdgePointUuid(sourceUuidTp)
- .build();
- nepList.put(sourceNep.key(), sourceNep);
- NodeEdgePoint destNep = new NodeEdgePointBuilder()
- .setTopologyUuid(this.tapiTopoUuid)
- .setNodeUuid(destUuidNode)
- .setNodeEdgePointUuid(destUuidTp)
- .build();
- nepList.put(destNep.key(), destNep);
- OperationalState sourceOperState = getOperState(sourceUuidTp, sourceUuidNode);
- OperationalState destOperState = getOperState(destUuidTp, destUuidNode);
- if (sourceOperState == null || destOperState == null) {
- LOG.error("No link can be created, as the operational state was not found in the TAPI topology");
- return null;
- }
- AdministrativeState sourceAdminState = getAdminState(sourceUuidTp, sourceUuidNode);
- AdministrativeState destAdminState = getAdminState(destUuidTp, destUuidNode);
- if (sourceAdminState == null || destAdminState == null) {
- LOG.error("No link can be created, as the administrative state was not found in the TAPI topology");
- return null;
- }
- OperationalState operState = (OperationalState.ENABLED.equals(sourceOperState)
- && OperationalState.ENABLED.equals(destOperState))
- ? OperationalState.ENABLED : OperationalState.DISABLED;
- AdministrativeState adminState = (AdministrativeState.UNLOCKED.equals(sourceAdminState)
- && AdministrativeState.UNLOCKED.equals(destAdminState))
- ? AdministrativeState.UNLOCKED : AdministrativeState.LOCKED;
- Name linkName = new NameBuilder().setValueName(valueName)
- .setValue(linkId)
- .build();
- CostCharacteristic costCharacteristic = new CostCharacteristicBuilder()
- .setCostAlgorithm("Restricted Shortest Path - RSP")
- .setCostName("HOP_COUNT")
- .setCostValue("12345678")
- .build();
- LatencyCharacteristic latencyCharacteristic = new LatencyCharacteristicBuilder()
- .setFixedLatencyCharacteristic("12345678")
- .setQueingLatencyCharacteristic("12345678")
- .setJitterCharacteristic("12345678")
- .setWanderCharacteristic("12345678")
- .setTrafficPropertyName("FIXED_LATENCY")
- .build();
- RiskCharacteristic riskCharacteristic = new RiskCharacteristicBuilder()
- .setRiskCharacteristicName("risk characteristic")
- .setRiskIdentifierList(List.of("risk identifier1", "risk identifier2"))
- .build();
- ValidationMechanism validationMechanism = new ValidationMechanismBuilder()
- .setValidationMechanism("validation mechanism")
- .setValidationRobustness("validation robustness")
- .setLayerProtocolAdjacencyValidated("layer protocol adjacency")
- .build();
- return new LinkBuilder()
- .setUuid(new Uuid(
- UUID.nameUUIDFromBytes(linkId.getBytes(Charset.forName("UTF-8")))
- .toString()))
- .setName(Map.of(linkName.key(), linkName))
- .setLayerProtocolName(List.of(LayerProtocolName.PHOTONICMEDIA))
- .setNodeEdgePoint(nepList)
- .setDirection(ForwardingDirection.BIDIRECTIONAL)
- .setTransitionedLayerProtocolName(new ArrayList<>())
- .setResilienceType(new ResilienceTypeBuilder().setProtectionType(ProtectionType.NOPROTECTON)
- .setRestorationPolicy(RestorationPolicy.NA)
- .build())
- .setAdministrativeState(adminState)
- .setOperationalState(operState)
- .setLifecycleState(LifecycleState.INSTALLED)
- .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(100)).build())
- .build())
- .setCostCharacteristic(Map.of(costCharacteristic.key(), costCharacteristic))
- .setLatencyCharacteristic(Map.of(latencyCharacteristic.key(), latencyCharacteristic))
- .setRiskCharacteristic(Map.of(riskCharacteristic.key(), riskCharacteristic))
- .setErrorCharacteristic("error")
- .setLossCharacteristic("loss")
- .setRepeatDeliveryCharacteristic("repeat delivery")
- .setDeliveryOrderCharacteristic("delivery order")
- .setUnavailableTimeCharacteristic("unavailable time")
- .setServerIntegrityProcessCharacteristic("server integrity process")
- .setValidationMechanism(Map.of(validationMechanism.key(), validationMechanism))
- .build();
- }
-
- private boolean nepExists(Uuid nepUuid, Uuid nodeUuid) {
- LOG.info("Checking if nep with uuid {} existis in tapi topology", nepUuid);
- try {
- InstanceIdentifier<OwnedNodeEdgePoint> onepIID = InstanceIdentifier.builder(Context.class)
- .augmentation(Context1.class).child(TopologyContext.class)
- .child(Topology.class, new TopologyKey(tapiTopoUuid)).child(Node.class, new NodeKey(nodeUuid))
- .child(OwnedNodeEdgePoint.class, new OwnedNodeEdgePointKey(nepUuid))
- .build();
- Optional<OwnedNodeEdgePoint> optionalOnep = this.networkTransactionService.read(
- LogicalDatastoreType.OPERATIONAL, onepIID).get();
- if (!optionalOnep.isPresent()) {
- LOG.error("ONEP is not present in datastore");
- return false;
- }
- return true;
- } catch (InterruptedException | ExecutionException e) {
- LOG.error("Couldnt retrieve nep from datastore");
- return false;
- }
- }
-
- private boolean nodeExists(Uuid nodeUuid) {
- LOG.info("Checking if node with uuid {} existis in tapi topology", nodeUuid);
- try {
- InstanceIdentifier<Node> nodeIID = InstanceIdentifier.builder(Context.class)
- .augmentation(Context1.class).child(TopologyContext.class)
- .child(Topology.class, new TopologyKey(tapiTopoUuid)).child(Node.class, new NodeKey(nodeUuid))
- .build();
- Optional<Node> optionalNode = this.networkTransactionService.read(
- LogicalDatastoreType.OPERATIONAL, nodeIID).get();
- if (!optionalNode.isPresent()) {
- LOG.error("Node is not present in datastore");
- return false;
- }
- return true;
- } catch (InterruptedException | ExecutionException e) {
- LOG.error("Couldnt retrieve nep from datastore");
- return false;
- }
- }
-
- private OperationalState getOperState(Uuid nepUuid, Uuid nodeUuid) {
- try {
- InstanceIdentifier<OwnedNodeEdgePoint> onepIID = InstanceIdentifier.builder(Context.class)
- .augmentation(Context1.class).child(TopologyContext.class)
- .child(Topology.class, new TopologyKey(tapiTopoUuid)).child(Node.class, new NodeKey(nodeUuid))
- .child(OwnedNodeEdgePoint.class, new OwnedNodeEdgePointKey(nepUuid))
- .build();
- Optional<OwnedNodeEdgePoint> optionalOnep = this.networkTransactionService.read(
- LogicalDatastoreType.OPERATIONAL, onepIID).get();
- if (optionalOnep.isPresent()) {
- return optionalOnep.get().getOperationalState();
- }
- return null;
- } catch (InterruptedException | ExecutionException e) {
- LOG.error("Couldnt retrieve nep from datastore");
- return null;
- }
- }
-
- private AdministrativeState getAdminState(Uuid nepUuid, Uuid nodeUuid) {
- try {
- InstanceIdentifier<OwnedNodeEdgePoint> onepIID = InstanceIdentifier.builder(Context.class)
- .augmentation(Context1.class).child(TopologyContext.class)
- .child(Topology.class, new TopologyKey(tapiTopoUuid)).child(Node.class, new NodeKey(nodeUuid))
- .child(OwnedNodeEdgePoint.class, new OwnedNodeEdgePointKey(nepUuid))
- .build();
- Optional<OwnedNodeEdgePoint> optionalOnep = this.networkTransactionService.read(
- LogicalDatastoreType.OPERATIONAL, onepIID).get();
- if (optionalOnep.isPresent()) {
- return optionalOnep.get().getAdministrativeState();
- }
- return null;
- } catch (InterruptedException | ExecutionException e) {
- LOG.error("Couldnt retrieve nep from datastore");
- return null;
- }
- }
-
- private boolean putLinkInTopology(Link tapiLink) {
+ private boolean putLinkInTopology(Link tapLink) {
// TODO is this merge correct? Should we just merge topology by changing the nodes map??
// TODO: verify this is correct. Should we identify the context IID with the context UUID??
LOG.info("Creating tapi node in TAPI topology context");
.build();
Topology topology = new TopologyBuilder().setUuid(tapiTopoUuid)
- .setLink(Map.of(tapiLink.key(), tapiLink)).build();
+ .setLink(Map.of(tapLink.key(), tapLink)).build();
// merge in datastore
this.networkTransactionService.merge(LogicalDatastoreType.OPERATIONAL, topoIID,
import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
import org.opendaylight.transportpce.common.InstanceIdentifiers;
import org.opendaylight.transportpce.common.NetworkUtils;
+import org.opendaylight.transportpce.tapi.TapiStringConstants;
import org.opendaylight.transportpce.tapi.utils.TapiContext;
+import org.opendaylight.transportpce.tapi.utils.TapiLink;
import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210426.mapping.Mapping;
import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210426.mapping.MappingKey;
import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210426.network.Nodes;
private final DataBroker dataBroker;
private final TapiContext tapiContext;
private final TopologyUtils topologyUtils;
+ private final TapiLink tapiLink;
- public TapiTopologyImpl(DataBroker dataBroker, TapiContext tapiContext, TopologyUtils topologyUtils) {
+ public TapiTopologyImpl(DataBroker dataBroker, TapiContext tapiContext, TopologyUtils topologyUtils,
+ TapiLink tapiLink) {
this.dataBroker = dataBroker;
this.tapiContext = tapiContext;
this.topologyUtils = topologyUtils;
+ this.tapiLink = tapiLink;
}
@Override
@Override
public ListenableFuture<RpcResult<GetTopologyDetailsOutput>> getTopologyDetails(GetTopologyDetailsInput input) {
// TODO -> Add check for Full T0 Multilayer
- if (!TopologyUtils.T0_MULTILAYER.equals(input.getTopologyIdOrName())
- && !TopologyUtils.TPDR_100G.equals(input.getTopologyIdOrName())) {
- if (TopologyUtils.T0_FULL_MULTILAYER.equals(input.getTopologyIdOrName())) {
+ if (!TapiStringConstants.T0_MULTILAYER.equals(input.getTopologyIdOrName())
+ && !TapiStringConstants.TPDR_100G.equals(input.getTopologyIdOrName())) {
+ if (TapiStringConstants.T0_FULL_MULTILAYER.equals(input.getTopologyIdOrName())) {
Uuid topoUuid = new Uuid(UUID.nameUUIDFromBytes(input.getTopologyIdOrName()
.getBytes(Charset.forName("UTF-8"))).toString());
Context context = this.tapiContext.getTapiContext();
try {
LOG.info("Building TAPI Topology abstraction for {}", input.getTopologyIdOrName());
Topology topology = createAbstractedOtnTopology();
- if (TopologyUtils.TPDR_100G.equals(input.getTopologyIdOrName())) {
+ if (TapiStringConstants.TPDR_100G.equals(input.getTopologyIdOrName())) {
topology = createAbstracted100GTpdrTopology(topology);
}
return RpcResultBuilder.success(new GetTopologyDetailsOutputBuilder().setTopology(topology).build())
.filter(nep -> nep.getName().containsKey(new NameKey("100G-tpdr"))).collect(Collectors.toList());
nep100GTpdrList.addAll(nepList);
}
- Name topoName = new NameBuilder().setValue(TopologyUtils.TPDR_100G).setValueName("TAPI Topology Name").build();
- Uuid topoUuid = new Uuid(UUID.nameUUIDFromBytes(TopologyUtils.TPDR_100G.getBytes(Charset.forName("UTF-8")))
- .toString());
+ Name topoName = new NameBuilder().setValue(TapiStringConstants.TPDR_100G)
+ .setValueName("TAPI Topology Name").build();
+ Uuid topoUuid = new Uuid(UUID.nameUUIDFromBytes(
+ TapiStringConstants.TPDR_100G.getBytes(Charset.forName("UTF-8"))).toString());
org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.topology.Node node =
createTapiNode(nep100GTpdrList, topoUuid);
return new TopologyBuilder()
tapiNodeList = new HashMap<>();
Map<LinkKey, org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.topology.Link>
tapiLinkList = new HashMap<>();
- Uuid topoUuid = new Uuid(UUID.nameUUIDFromBytes(TopologyUtils.T0_MULTILAYER.getBytes(Charset.forName("UTF-8")))
- .toString());
- ConvertORTopoToTapiTopo tapiFactory = new ConvertORTopoToTapiTopo(topoUuid);
+ Uuid topoUuid = new Uuid(UUID.nameUUIDFromBytes(TapiStringConstants.T0_MULTILAYER
+ .getBytes(Charset.forName("UTF-8"))).toString());
+ ConvertORTopoToTapiTopo tapiFactory = new ConvertORTopoToTapiTopo(topoUuid, this.tapiLink);
Iterator<Entry<String, List<String>>> it = networkPortMap.entrySet().iterator();
while (it.hasNext()) {
String nodeId = it.next().getKey();
}
if (openroadmTopo.nonnullNode().values().stream().filter(nt ->
nt.augmentation(org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.Node1.class)
- .getNodeType().equals(OpenroadmNodeType.SRG)).count() > 0) {
+ .getNodeType().equals(OpenroadmNodeType.SRG)).count() > 0) {
tapiFactory.convertRoadmInfrastructure();
tapiNodeList.putAll(tapiFactory.getTapiNodes());
tapiLinkList.putAll(tapiFactory.getTapiLinks());
tapiFactory.convertLinks(otnLinkMap);
tapiLinkList.putAll(tapiFactory.getTapiLinks());
}
- Name name = new NameBuilder().setValue(TopologyUtils.T0_MULTILAYER).setValueName("TAPI Topology Name").build();
+ Name name = new NameBuilder()
+ .setValue(TapiStringConstants.T0_MULTILAYER)
+ .setValueName("TAPI Topology Name")
+ .build();
return new TopologyBuilder()
.setName(Map.of(name.key(), name))
.setUuid(topoUuid)
import org.opendaylight.transportpce.common.InstanceIdentifiers;
import org.opendaylight.transportpce.common.NetworkUtils;
import org.opendaylight.transportpce.common.network.NetworkTransactionService;
+import org.opendaylight.transportpce.tapi.TapiStringConstants;
+import org.opendaylight.transportpce.tapi.utils.TapiLink;
import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210426.mapping.Mapping;
import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210426.mapping.MappingKey;
import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210426.network.Nodes;
private final NetworkTransactionService networkTransactionService;
private final DataBroker dataBroker;
private static final Logger LOG = LoggerFactory.getLogger(TopologyUtils.class);
- public static final String T0_MULTILAYER = "T0 - Multi-layer topology";
- public static final String T0_FULL_MULTILAYER = "T0 - Full Multi-layer topology";
- public static final String TPDR_100G = "Transponder 100GE";
private Map<ServiceInterfacePointKey, ServiceInterfacePoint> tapiSips;
+ private final TapiLink tapiLink;
- public TopologyUtils(NetworkTransactionService networkTransactionService, DataBroker dataBroker) {
+ public TopologyUtils(NetworkTransactionService networkTransactionService, DataBroker dataBroker,
+ TapiLink tapiLink) {
this.networkTransactionService = networkTransactionService;
this.dataBroker = dataBroker;
this.tapiSips = new HashMap<>();
+ this.tapiLink = tapiLink;
}
public Network readTopology(InstanceIdentifier<Network> networkIID) throws TapiTopologyException {
public Topology createFullOtnTopology() throws TapiTopologyException {
// read openroadm-topology
Network openroadmTopo = readTopology(InstanceIdentifiers.OVERLAY_NETWORK_II);
- Uuid topoUuid = new Uuid(UUID.nameUUIDFromBytes(TopologyUtils.T0_FULL_MULTILAYER
+ Uuid topoUuid = new Uuid(UUID.nameUUIDFromBytes(TapiStringConstants.T0_FULL_MULTILAYER
.getBytes(Charset.forName("UTF-8"))).toString());
- Name name = new NameBuilder().setValue(TopologyUtils.T0_FULL_MULTILAYER).setValueName("TAPI Topology Name")
+ Name name = new NameBuilder()
+ .setValue(TapiStringConstants.T0_FULL_MULTILAYER)
+ .setValueName("TAPI Topology Name")
.build();
if (openroadmTopo != null) {
List<Link> linkList = new ArrayList<>();
tapiNodeList = new HashMap<>();
Map<LinkKey, org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.topology.Link>
tapiLinkList = new HashMap<>();
- ConvertORTopoToTapiFullTopo tapiFactory = new ConvertORTopoToTapiFullTopo(topoUuid);
+ ConvertORTopoToTapiFullTopo tapiFactory = new ConvertORTopoToTapiFullTopo(topoUuid, this.tapiLink);
Iterator<Map.Entry<String, List<String>>> it = networkPortMap.entrySet().iterator();
while (it.hasNext()) {
String nodeId = it.next().getKey();
--- /dev/null
+/*
+ * Copyright © 2021 Nokia. All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+package org.opendaylight.transportpce.tapi.utils;
+
+import java.nio.charset.Charset;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Optional;
+import java.util.UUID;
+import java.util.concurrent.ExecutionException;
+import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
+import org.opendaylight.transportpce.common.network.NetworkTransactionService;
+import org.opendaylight.transportpce.tapi.TapiStringConstants;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.common.state.types.rev191129.State;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.equipment.states.types.rev191129.AdminStates;
+import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev181210.AdministrativeState;
+import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev181210.CapacityUnit;
+import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev181210.Context;
+import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev181210.ForwardingDirection;
+import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev181210.LayerProtocolName;
+import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev181210.LifecycleState;
+import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev181210.OperationalState;
+import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev181210.Uuid;
+import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev181210.capacity.TotalSizeBuilder;
+import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev181210.capacity.pac.AvailableCapacityBuilder;
+import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev181210.capacity.pac.TotalPotentialCapacityBuilder;
+import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev181210.global._class.NameBuilder;
+import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.Context1;
+import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.ProtectionType;
+import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.RestorationPolicy;
+import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.context.TopologyContext;
+import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.link.NodeEdgePoint;
+import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.link.NodeEdgePointBuilder;
+import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.link.NodeEdgePointKey;
+import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.link.ResilienceTypeBuilder;
+import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.node.OwnedNodeEdgePoint;
+import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.node.OwnedNodeEdgePointKey;
+import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.risk.parameter.pac.RiskCharacteristic;
+import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.risk.parameter.pac.RiskCharacteristicBuilder;
+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.Node;
+import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.topology.NodeKey;
+import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.topology.context.Topology;
+import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.topology.context.TopologyKey;
+import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.transfer.cost.pac.CostCharacteristic;
+import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.transfer.cost.pac.CostCharacteristicBuilder;
+import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.transfer.timing.pac.LatencyCharacteristic;
+import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.transfer.timing.pac.LatencyCharacteristicBuilder;
+import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.validation.pac.ValidationMechanism;
+import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.validation.pac.ValidationMechanismBuilder;
+import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+import org.opendaylight.yangtools.yang.common.Uint64;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class TapiLink {
+
+ private static final Logger LOG = LoggerFactory.getLogger(TapiLink.class);
+ private final NetworkTransactionService networkTransactionService;
+
+ public TapiLink(NetworkTransactionService networkTransactionService) {
+ this.networkTransactionService = networkTransactionService;
+ }
+
+ public Link createTapiLink(String srcNodeid, String srcTpId, String dstNodeId, String dstTpId, String linkType,
+ String srcNodeQual, String dstNodeQual, String srcTpQual, String dstTpQual,
+ String adminState, String operState, List<LayerProtocolName> layerProtoNameList,
+ List<String> transLayerNameList, Uuid tapiTopoUuid) {
+ Map<NodeEdgePointKey, NodeEdgePoint> nepList = new HashMap<>();
+ String sourceNodeKey = String.join("+", srcNodeid, srcNodeQual);
+ String sourceNepKey = String.join("+", srcNodeid, srcTpQual, srcTpId);
+ Uuid sourceUuidNode = new Uuid(UUID.nameUUIDFromBytes(sourceNodeKey.getBytes(Charset.forName("UTF-8")))
+ .toString());
+ Uuid sourceUuidTp = new Uuid(UUID.nameUUIDFromBytes(sourceNepKey.getBytes(Charset.forName("UTF-8")))
+ .toString());
+ String destNodeKey = String.join("+", dstNodeId, dstNodeQual);
+ String destNepKey = String.join("+", dstNodeId, dstTpQual, dstTpId);
+ String linkKey = String.join("to", sourceNepKey, destNepKey);
+ Uuid destUuidNode = new Uuid(UUID.nameUUIDFromBytes(destNodeKey.getBytes(Charset.forName("UTF-8"))).toString());
+ Uuid destUuidTp = new Uuid(UUID.nameUUIDFromBytes(destNepKey.getBytes(Charset.forName("UTF-8"))).toString());
+ NodeEdgePoint sourceNep = new NodeEdgePointBuilder()
+ .setTopologyUuid(tapiTopoUuid)
+ .setNodeUuid(sourceUuidNode)
+ .setNodeEdgePointUuid(sourceUuidTp)
+ .build();
+ nepList.put(sourceNep.key(), sourceNep);
+ NodeEdgePoint destNep = new NodeEdgePointBuilder()
+ .setTopologyUuid(tapiTopoUuid)
+ .setNodeUuid(destUuidNode)
+ .setNodeEdgePointUuid(destUuidTp)
+ .build();
+ nepList.put(destNep.key(), destNep);
+ NameBuilder linkName = new NameBuilder();
+ // TODO: variables for each type
+ switch (linkType) {
+ case TapiStringConstants.OMS_RDM_RDM_LINK:
+ LOG.info("Roadm to roadm link");
+ linkName
+ .setValueName("OMS link name")
+ .setValue(linkKey);
+ break;
+ case TapiStringConstants.TRANSITIONAL_LINK:
+ LOG.info("Transitional link");
+ linkName
+ .setValueName("transitional link name")
+ .setValue(linkKey);
+ break;
+ case TapiStringConstants.OMS_XPDR_RDM_LINK:
+ LOG.info("Xpdr to roadm link");
+ linkName
+ .setValueName("XPDR-RDM link name")
+ .setValue(linkKey);
+ break;
+ case TapiStringConstants.OTN_XPDR_XPDR_LINK:
+ LOG.info("OTN Xpdr to roadm link");
+ linkName
+ .setValueName("otn link name")
+ .setValue(linkKey);
+ break;
+ default:
+ LOG.warn("Type {} not recognized", linkType);
+ return null;
+ }
+ // Todo: common aspects of links and set all attributes
+ CostCharacteristic costCharacteristic = new CostCharacteristicBuilder()
+ .setCostAlgorithm("Restricted Shortest Path - RSP")
+ .setCostName("HOP_COUNT")
+ .setCostValue("12345678")
+ .build();
+ LatencyCharacteristic latencyCharacteristic = new LatencyCharacteristicBuilder()
+ .setFixedLatencyCharacteristic("12345678")
+ .setQueingLatencyCharacteristic("12345678")
+ .setJitterCharacteristic("12345678")
+ .setWanderCharacteristic("12345678")
+ .setTrafficPropertyName("FIXED_LATENCY")
+ .build();
+ RiskCharacteristic riskCharacteristic = new RiskCharacteristicBuilder()
+ .setRiskCharacteristicName("risk characteristic")
+ .setRiskIdentifierList(List.of("risk identifier1", "risk identifier2"))
+ .build();
+ ValidationMechanism validationMechanism = new ValidationMechanismBuilder()
+ .setValidationMechanism("validation mechanism")
+ .setValidationRobustness("validation robustness")
+ .setLayerProtocolAdjacencyValidated("layer protocol adjacency")
+ .build();
+ return new LinkBuilder()
+ .setUuid(new Uuid(
+ UUID.nameUUIDFromBytes(linkKey.getBytes(Charset.forName("UTF-8"))).toString()))
+ .setName(Map.of(linkName.build().key(), linkName.build()))
+ .setTransitionedLayerProtocolName(transLayerNameList)
+ .setLayerProtocolName(layerProtoNameList)
+ .setNodeEdgePoint(nepList)
+ .setDirection(ForwardingDirection.BIDIRECTIONAL)
+ .setAvailableCapacity(new AvailableCapacityBuilder().setTotalSize(
+ new TotalSizeBuilder().setUnit(CapacityUnit.GBPS).setValue(Uint64.valueOf(100)).build())
+ .build())
+ .setResilienceType(new ResilienceTypeBuilder().setProtectionType(ProtectionType.NOPROTECTON)
+ .setRestorationPolicy(RestorationPolicy.NA)
+ .build())
+ .setAdministrativeState(setTapiAdminState(adminState))
+ .setOperationalState(setTapiOperationalState(operState))
+ .setLifecycleState(LifecycleState.INSTALLED)
+ .setTotalPotentialCapacity(new TotalPotentialCapacityBuilder().setTotalSize(
+ new TotalSizeBuilder().setUnit(CapacityUnit.GBPS).setValue(Uint64.valueOf(100)).build())
+ .build())
+ .setCostCharacteristic(Map.of(costCharacteristic.key(), costCharacteristic))
+ .setLatencyCharacteristic(Map.of(latencyCharacteristic.key(), latencyCharacteristic))
+ .setRiskCharacteristic(Map.of(riskCharacteristic.key(), riskCharacteristic))
+ .setErrorCharacteristic("error")
+ .setLossCharacteristic("loss")
+ .setRepeatDeliveryCharacteristic("repeat delivery")
+ .setDeliveryOrderCharacteristic("delivery order")
+ .setUnavailableTimeCharacteristic("unavailable time")
+ .setServerIntegrityProcessCharacteristic("server integrity process")
+ .setValidationMechanism(Map.of(validationMechanism.key(), validationMechanism))
+ .build();
+ }
+
+ public AdministrativeState setTapiAdminState(String adminState) {
+ if (adminState == null) {
+ return null;
+ }
+ return adminState.equals(AdminStates.InService.getName())
+ || adminState.equals(AdministrativeState.UNLOCKED.getName()) ? AdministrativeState.UNLOCKED
+ : AdministrativeState.LOCKED;
+ }
+
+ public AdministrativeState setTapiAdminState(AdminStates adminState1, AdminStates adminState2) {
+ if (adminState1 == null || adminState2 == null) {
+ return null;
+ }
+ LOG.info("Admin state 1 = {}, andmin state 2 = {}", adminState1.getName(), adminState2.getName());
+ return AdminStates.InService.equals(adminState1) && AdminStates.InService.equals(adminState2)
+ ? AdministrativeState.UNLOCKED : AdministrativeState.LOCKED;
+ }
+
+ public OperationalState setTapiOperationalState(String operState) {
+ if (operState == null) {
+ return null;
+ }
+ return operState.equals("inService") || operState.equals(OperationalState.ENABLED.getName())
+ ? OperationalState.ENABLED : OperationalState.DISABLED;
+ }
+
+ public OperationalState setTapiOperationalState(State operState1, State operState2) {
+ if (operState1 == null || operState2 == null) {
+ return null;
+ }
+ return State.InService.equals(operState1) && State.InService.equals(operState2)
+ ? OperationalState.ENABLED : OperationalState.DISABLED;
+ }
+
+ public String getOperState(String srcNodeId, String destNodeId, String sourceTpId, String destTpId) {
+ Uuid tapiTopoUuid = new Uuid(UUID.nameUUIDFromBytes(TapiStringConstants.T0_FULL_MULTILAYER
+ .getBytes(Charset.forName("UTF-8"))).toString());
+ Uuid nodeUuid = new Uuid(UUID.nameUUIDFromBytes(String.join("+", srcNodeId,
+ TapiStringConstants.PHTNC_MEDIA).getBytes(Charset.forName("UTF-8"))).toString());
+ Uuid nepUuid = new Uuid(UUID.nameUUIDFromBytes(String.join("+", srcNodeId,
+ TapiStringConstants.PHTNC_MEDIA, sourceTpId).getBytes(Charset.forName("UTF-8"))).toString());
+ InstanceIdentifier<OwnedNodeEdgePoint> onepIID = InstanceIdentifier.builder(Context.class)
+ .augmentation(Context1.class).child(TopologyContext.class)
+ .child(Topology.class, new TopologyKey(tapiTopoUuid)).child(Node.class, new NodeKey(nodeUuid))
+ .child(OwnedNodeEdgePoint.class, new OwnedNodeEdgePointKey(nepUuid))
+ .build();
+ Uuid node1Uuid = new Uuid(UUID.nameUUIDFromBytes(String.join("+", destNodeId,
+ TapiStringConstants.PHTNC_MEDIA).getBytes(Charset.forName("UTF-8"))).toString());
+ Uuid nep1Uuid = new Uuid(UUID.nameUUIDFromBytes(String.join("+", destNodeId,
+ TapiStringConstants.PHTNC_MEDIA, destTpId).getBytes(Charset.forName("UTF-8"))).toString());
+ InstanceIdentifier<OwnedNodeEdgePoint> onep1IID = InstanceIdentifier.builder(Context.class)
+ .augmentation(Context1.class).child(TopologyContext.class)
+ .child(Topology.class, new TopologyKey(tapiTopoUuid)).child(Node.class, new NodeKey(node1Uuid))
+ .child(OwnedNodeEdgePoint.class, new OwnedNodeEdgePointKey(nep1Uuid))
+ .build();
+ try {
+ Optional<OwnedNodeEdgePoint> optionalOnep = this.networkTransactionService.read(
+ LogicalDatastoreType.OPERATIONAL, onepIID).get();
+ Optional<OwnedNodeEdgePoint> optionalOnep1 = this.networkTransactionService.read(
+ LogicalDatastoreType.OPERATIONAL, onep1IID).get();
+ if (!optionalOnep.isPresent() || !optionalOnep1.isPresent()) {
+ LOG.error("One of the 2 neps doesnt exist in the datastore: {} OR {}", nepUuid, nep1Uuid);
+ return null;
+ }
+ return optionalOnep.get().getOperationalState().equals(optionalOnep1.get().getOperationalState())
+ ? optionalOnep.get().getOperationalState().getName() : OperationalState.DISABLED.getName();
+ } catch (InterruptedException | ExecutionException e) {
+ LOG.error("Failed getting Mapping data from portMapping",e);
+ return null;
+ }
+ }
+
+ public String getAdminState(String srcNodeId, String destNodeId, String sourceTpId, String destTpId) {
+ Uuid tapiTopoUuid = new Uuid(UUID.nameUUIDFromBytes(TapiStringConstants.T0_FULL_MULTILAYER
+ .getBytes(Charset.forName("UTF-8"))).toString());
+ Uuid nodeUuid = new Uuid(UUID.nameUUIDFromBytes(String.join("+", srcNodeId,
+ TapiStringConstants.PHTNC_MEDIA).getBytes(Charset.forName("UTF-8"))).toString());
+ Uuid nepUuid = new Uuid(UUID.nameUUIDFromBytes(String.join("+", srcNodeId,
+ TapiStringConstants.PHTNC_MEDIA, sourceTpId).getBytes(Charset.forName("UTF-8"))).toString());
+ InstanceIdentifier<OwnedNodeEdgePoint> onepIID = InstanceIdentifier.builder(Context.class)
+ .augmentation(Context1.class).child(TopologyContext.class)
+ .child(Topology.class, new TopologyKey(tapiTopoUuid)).child(Node.class, new NodeKey(nodeUuid))
+ .child(OwnedNodeEdgePoint.class, new OwnedNodeEdgePointKey(nepUuid))
+ .build();
+ Uuid node1Uuid = new Uuid(UUID.nameUUIDFromBytes(String.join("+", destNodeId,
+ TapiStringConstants.PHTNC_MEDIA).getBytes(Charset.forName("UTF-8"))).toString());
+ Uuid nep1Uuid = new Uuid(UUID.nameUUIDFromBytes(String.join("+", destNodeId,
+ TapiStringConstants.PHTNC_MEDIA, destTpId).getBytes(Charset.forName("UTF-8"))).toString());
+ InstanceIdentifier<OwnedNodeEdgePoint> onep1IID = InstanceIdentifier.builder(Context.class)
+ .augmentation(Context1.class).child(TopologyContext.class)
+ .child(Topology.class, new TopologyKey(tapiTopoUuid)).child(Node.class, new NodeKey(node1Uuid))
+ .child(OwnedNodeEdgePoint.class, new OwnedNodeEdgePointKey(nep1Uuid))
+ .build();
+ try {
+ Optional<OwnedNodeEdgePoint> optionalOnep = this.networkTransactionService.read(
+ LogicalDatastoreType.OPERATIONAL, onepIID).get();
+ Optional<OwnedNodeEdgePoint> optionalOnep1 = this.networkTransactionService.read(
+ LogicalDatastoreType.OPERATIONAL, onep1IID).get();
+ if (!optionalOnep.isPresent() || !optionalOnep1.isPresent()) {
+ LOG.error("One of the 2 neps doesnt exist in the datastore: {} OR {}", nepUuid, nep1Uuid);
+ return null;
+ }
+ return optionalOnep.get().getAdministrativeState().equals(optionalOnep1.get().getAdministrativeState())
+ ? optionalOnep.get().getAdministrativeState().getName() : AdministrativeState.UNLOCKED.getName();
+ } catch (InterruptedException | ExecutionException e) {
+ LOG.error("Failed getting Mapping data from portMapping",e);
+ return null;
+ }
+ }
+}
class="org.opendaylight.transportpce.tapi.utils.TapiListener">
</bean>
+ <bean id="tapiLink"
+ class="org.opendaylight.transportpce.tapi.utils.TapiLink">
+ <argument ref="networkTransactionImpl" />
+ </bean>
+
<bean id="tapiPceListener" class="org.opendaylight.transportpce.tapi.listeners.TapiPceListenerImpl">
<argument ref="dataBroker" />
</bean>
<bean id="tapiNetworkModelService" class="org.opendaylight.transportpce.tapi.topology.TapiNetworkModelServiceImpl">
<argument ref="tapilinkDiscoveryImpl" />
<argument ref="networkTransactionImpl" />
+ <argument ref="tapiLink" />
</bean>
<bean id="tapiNetconfTopologyListener" class="org.opendaylight.transportpce.tapi.topology.TapiNetconfTopologyListener">
<bean id="tapiNetworkUtilsImpl" class="org.opendaylight.transportpce.tapi.topology.TapiNetworkUtilsImpl">
<argument ref="networkTransactionImpl" />
+ <argument ref="tapiLink" />
</bean>
<bean id="tapiProvider"
<bean id="tapilinkDiscoveryImpl" class="org.opendaylight.transportpce.tapi.R2RTapiLinkDiscovery">
<argument ref="networkTransactionImpl" />
<argument ref="deviceTransactionManager" />
+ <argument ref="tapiLink" />
</bean>
<service ref="tapiNetworkModelService" interface="org.opendaylight.transportpce.tapi.topology.TapiNetworkModelService" />
import org.opendaylight.transportpce.tapi.utils.TapiConnectivityDataUtils;
import org.opendaylight.transportpce.tapi.utils.TapiContext;
import org.opendaylight.transportpce.tapi.utils.TapiInitialORMapping;
+import org.opendaylight.transportpce.tapi.utils.TapiLink;
import org.opendaylight.transportpce.tapi.utils.TapiTopologyDataUtils;
import org.opendaylight.transportpce.test.AbstractTest;
import org.opendaylight.transportpce.test.utils.TopologyDataUtils;
public static ConnectivityUtils connectivityUtils;
public static TapiInitialORMapping tapiInitialORMapping;
public static NetworkTransactionService networkTransactionService;
+ public static TapiLink tapilink;
private ListeningExecutorService executorService;
private CountDownLatch endSignal;
private static final int NUM_THREADS = 5;
networkTransactionService = new NetworkTransactionImpl(
new RequestProcessor(getDataStoreContextUtil().getDataBroker()));
+ tapilink = new TapiLink(networkTransactionService);
serviceDataStoreOperations = new ServiceDataStoreOperationsImpl(getDataStoreContextUtil().getDataBroker());
tapiContext = new TapiContext(networkTransactionService);
- topologyUtils = new TopologyUtils(networkTransactionService, getDataStoreContextUtil().getDataBroker());
+ topologyUtils = new TopologyUtils(networkTransactionService, getDataStoreContextUtil().getDataBroker(),
+ tapilink);
connectivityUtils = new ConnectivityUtils(serviceDataStoreOperations, new HashMap<>(), tapiContext);
tapiInitialORMapping = new TapiInitialORMapping(topologyUtils, connectivityUtils,
tapiContext, serviceDataStoreOperations);
import org.opendaylight.mdsal.binding.api.DataBroker;
import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
import org.opendaylight.transportpce.common.InstanceIdentifiers;
+import org.opendaylight.transportpce.common.network.NetworkTransactionImpl;
+import org.opendaylight.transportpce.common.network.NetworkTransactionService;
+import org.opendaylight.transportpce.common.network.RequestProcessor;
+import org.opendaylight.transportpce.tapi.TapiStringConstants;
+import org.opendaylight.transportpce.tapi.utils.TapiLink;
import org.opendaylight.transportpce.tapi.utils.TapiTopologyDataUtils;
import org.opendaylight.transportpce.test.AbstractTest;
import org.opendaylight.transportpce.test.utils.TopologyDataUtils;
private static Map<LinkKey, org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226
.networks.network.Link> ortopoLinks;
private static Uuid topologyUuid;
+ private static NetworkTransactionService networkTransactionService;
+ private static TapiLink tapiLink;
private static DataBroker dataBroker = getDataBroker();
@BeforeClass
.read(LogicalDatastoreType.CONFIGURATION, ortopo1IID);
openroadmNet = ortopoFuture.get().get();
- topologyUuid = new Uuid(UUID.nameUUIDFromBytes(TopologyUtils.T0_FULL_MULTILAYER.getBytes(
+ topologyUuid = new Uuid(UUID.nameUUIDFromBytes(TapiStringConstants.T0_FULL_MULTILAYER.getBytes(
Charset.forName("UTF-8"))).toString());
+ networkTransactionService = new NetworkTransactionImpl(
+ new RequestProcessor(getDataStoreContextUtil().getDataBroker()));
+ tapiLink = new TapiLink(networkTransactionService);
LOG.info("TEST SETUP READY");
}
networkPortList.add(tp.getTpId().getValue());
}
}
- ConvertORTopoToTapiFullTopo tapiFactory = new ConvertORTopoToTapiFullTopo(topologyUuid);
+ ConvertORTopoToTapiFullTopo tapiFactory = new ConvertORTopoToTapiFullTopo(topologyUuid, tapiLink);
tapiFactory.convertNode(tpdr, networkPortList);
Uuid dsrNodeUuid = new Uuid(UUID.nameUUIDFromBytes("XPDR-A1-XPDR1+DSR".getBytes(Charset.forName("UTF-8")))
networkPortList.add(tp.getTpId().getValue());
}
}
- ConvertORTopoToTapiFullTopo tapiFactory = new ConvertORTopoToTapiFullTopo(topologyUuid);
+ ConvertORTopoToTapiFullTopo tapiFactory = new ConvertORTopoToTapiFullTopo(topologyUuid, tapiLink);
tapiFactory.convertNode(tpdr, networkPortList);
Uuid dsrNodeUuid = new Uuid(UUID.nameUUIDFromBytes("XPDR-A1-XPDR1+DSR".getBytes(Charset.forName("UTF-8")))
networkPortList.add(tp.getTpId().getValue());
}
}
- ConvertORTopoToTapiFullTopo tapiFactory = new ConvertORTopoToTapiFullTopo(topologyUuid);
+ ConvertORTopoToTapiFullTopo tapiFactory = new ConvertORTopoToTapiFullTopo(topologyUuid, tapiLink);
tapiFactory.convertNode(tpdr, networkPortList);
Uuid dsrNodeUuid = new Uuid(UUID.nameUUIDFromBytes("XPDR-A1-XPDR1+DSR".getBytes(Charset.forName("UTF-8")))
new LinkId("ODTU4-SPDR-SA1-XPDR1-XPDR1-NETWORK1toSPDR-SC1-XPDR1-XPDR1-NETWORK1"))), null, null);
otnLinksAlt.replace(link.key(), link);
- ConvertORTopoToTapiFullTopo tapiFactory = new ConvertORTopoToTapiFullTopo(topologyUuid);
+ ConvertORTopoToTapiFullTopo tapiFactory = new ConvertORTopoToTapiFullTopo(topologyUuid, tapiLink);
List<String> networkPortListA = new ArrayList<>();
for (TerminationPoint tp : otnMuxA.augmentation(Node1.class).getTerminationPoint().values()) {
if (tp.augmentation(TerminationPoint1.class).getTpType().equals(OpenroadmTpType.XPONDERNETWORK)) {
= tapiFactory.getTapiLinks().values().stream()
.sorted((l1, l2) -> l1.getUuid().getValue().compareTo(l2.getUuid().getValue()))
.collect(Collectors.toList());
- assertNull("Administrative State should not be present", tapiLinks.get(0).getAdministrativeState());
+ assertNull("Administrative State should not be present", tapiLinks.get(3).getAdministrativeState());
assertEquals("Administrative state should be UNLOCKED",
- AdministrativeState.UNLOCKED, tapiLinks.get(2).getAdministrativeState());
- assertNull("Operational State should not be present", tapiLinks.get(0).getOperationalState());
+ AdministrativeState.UNLOCKED, tapiLinks.get(0).getAdministrativeState());
+ assertNull("Operational State should not be present", tapiLinks.get(3).getOperationalState());
assertEquals("Operational state should be ENABLED",
- OperationalState.ENABLED, tapiLinks.get(2).getOperationalState());
+ OperationalState.ENABLED, tapiLinks.get(0).getOperationalState());
}
@Test
new LinkId("ODTU4-SPDR-SC1-XPDR1-XPDR1-NETWORK1toSPDR-SA1-XPDR1-XPDR1-NETWORK1"))), null, null);
otnLinksAlt.replace(link.key(), link);
- ConvertORTopoToTapiFullTopo tapiFactory = new ConvertORTopoToTapiFullTopo(topologyUuid);
+ ConvertORTopoToTapiFullTopo tapiFactory = new ConvertORTopoToTapiFullTopo(topologyUuid, tapiLink);
List<String> networkPortListA = new ArrayList<>();
for (TerminationPoint tp : otnMuxA.augmentation(Node1.class).getTerminationPoint().values()) {
if (tp.augmentation(TerminationPoint1.class).getTpType().equals(OpenroadmTpType.XPONDERNETWORK)) {
= tapiFactory.getTapiLinks().values().stream()
.sorted((l1, l2) -> l1.getUuid().getValue().compareTo(l2.getUuid().getValue()))
.collect(Collectors.toList());
- assertNull("Administrative State should not be present", tapiLinks.get(0).getAdministrativeState());
+ assertNull("Administrative State should not be present", tapiLinks.get(3).getAdministrativeState());
assertEquals("Administrative state should be UNLOCKED",
- AdministrativeState.UNLOCKED, tapiLinks.get(2).getAdministrativeState());
- assertNull("Operational State should not be present", tapiLinks.get(0).getOperationalState());
+ AdministrativeState.UNLOCKED, tapiLinks.get(0).getAdministrativeState());
+ assertNull("Operational State should not be present", tapiLinks.get(3).getOperationalState());
assertEquals("Operational state should be ENABLED",
- OperationalState.ENABLED, tapiLinks.get(2).getOperationalState());
+ OperationalState.ENABLED, tapiLinks.get(0).getOperationalState());
}
@Test
AdminStates.OutOfService, State.OutOfService);
otnLinksAlt.replace(link.key(), link);
- ConvertORTopoToTapiFullTopo tapiFactory = new ConvertORTopoToTapiFullTopo(topologyUuid);
+ ConvertORTopoToTapiFullTopo tapiFactory = new ConvertORTopoToTapiFullTopo(topologyUuid, tapiLink);
List<String> networkPortListA = new ArrayList<>();
for (TerminationPoint tp : otnMuxA.augmentation(Node1.class).getTerminationPoint().values()) {
if (tp.augmentation(TerminationPoint1.class).getTpType().equals(OpenroadmTpType.XPONDERNETWORK)) {
.sorted((l1, l2) -> l1.getUuid().getValue().compareTo(l2.getUuid().getValue()))
.collect(Collectors.toList());
assertEquals("Administrative state should be LOCKED",
- AdministrativeState.LOCKED, tapiLinks.get(0).getAdministrativeState());
+ AdministrativeState.LOCKED, tapiLinks.get(3).getAdministrativeState());
assertEquals("Administrative state should be UNLOCKED",
- AdministrativeState.UNLOCKED, tapiLinks.get(2).getAdministrativeState());
+ AdministrativeState.UNLOCKED, tapiLinks.get(0).getAdministrativeState());
assertEquals("Operational state should be DISABLED",
- OperationalState.DISABLED, tapiLinks.get(0).getOperationalState());
+ OperationalState.DISABLED, tapiLinks.get(3).getOperationalState());
assertEquals("Operational state should be ENABLED",
- OperationalState.ENABLED, tapiLinks.get(2).getOperationalState());
+ OperationalState.ENABLED, tapiLinks.get(0).getOperationalState());
}
@Test
AdminStates.Maintenance, State.Degraded);
otnLinksAlt.replace(link.key(), link);
- ConvertORTopoToTapiFullTopo tapiFactory = new ConvertORTopoToTapiFullTopo(topologyUuid);
+ ConvertORTopoToTapiFullTopo tapiFactory = new ConvertORTopoToTapiFullTopo(topologyUuid, tapiLink);
List<String> networkPortListA = new ArrayList<>();
for (TerminationPoint tp : otnMuxA.augmentation(Node1.class).getTerminationPoint().values()) {
if (tp.augmentation(TerminationPoint1.class).getTpType().equals(OpenroadmTpType.XPONDERNETWORK)) {
.sorted((l1, l2) -> l1.getUuid().getValue().compareTo(l2.getUuid().getValue()))
.collect(Collectors.toList());
assertEquals("Administrative state should be LOCKED",
- AdministrativeState.LOCKED, tapiLinks.get(0).getAdministrativeState());
+ AdministrativeState.LOCKED, tapiLinks.get(3).getAdministrativeState());
assertEquals("Administrative state should be UNLOCKED",
- AdministrativeState.UNLOCKED, tapiLinks.get(2).getAdministrativeState());
+ AdministrativeState.UNLOCKED, tapiLinks.get(0).getAdministrativeState());
assertEquals("Operational state should be DISABLED",
- OperationalState.DISABLED, tapiLinks.get(0).getOperationalState());
+ OperationalState.DISABLED, tapiLinks.get(3).getOperationalState());
assertEquals("Operational state should be ENABLED",
- OperationalState.ENABLED, tapiLinks.get(2).getOperationalState());
+ OperationalState.ENABLED, tapiLinks.get(0).getOperationalState());
}
@Test
AdminStates.OutOfService, State.OutOfService);
otnLinksAlt.replace(link.key(), link);
- ConvertORTopoToTapiFullTopo tapiFactory = new ConvertORTopoToTapiFullTopo(topologyUuid);
+ ConvertORTopoToTapiFullTopo tapiFactory = new ConvertORTopoToTapiFullTopo(topologyUuid, tapiLink);
List<String> networkPortListA = new ArrayList<>();
for (TerminationPoint tp : otnMuxA.augmentation(Node1.class).getTerminationPoint().values()) {
if (tp.augmentation(TerminationPoint1.class).getTpType().equals(OpenroadmTpType.XPONDERNETWORK)) {
.sorted((l1, l2) -> l1.getUuid().getValue().compareTo(l2.getUuid().getValue()))
.collect(Collectors.toList());
assertEquals("Administrative state should be LOCKED",
- AdministrativeState.LOCKED, tapiLinks.get(0).getAdministrativeState());
+ AdministrativeState.LOCKED, tapiLinks.get(3).getAdministrativeState());
assertEquals("Administrative state should be UNLOCKED",
- AdministrativeState.UNLOCKED, tapiLinks.get(2).getAdministrativeState());
+ AdministrativeState.UNLOCKED, tapiLinks.get(0).getAdministrativeState());
assertEquals("Operational state should be DISABLED",
- OperationalState.DISABLED, tapiLinks.get(0).getOperationalState());
+ OperationalState.DISABLED, tapiLinks.get(3).getOperationalState());
assertEquals("Operational state should be ENABLED",
- OperationalState.ENABLED, tapiLinks.get(2).getOperationalState());
+ OperationalState.ENABLED, tapiLinks.get(0).getOperationalState());
}
@Test
public void convertNodeForTransponder100G() {
- ConvertORTopoToTapiFullTopo tapiFactory = new ConvertORTopoToTapiFullTopo(topologyUuid);
+ ConvertORTopoToTapiFullTopo tapiFactory = new ConvertORTopoToTapiFullTopo(topologyUuid, tapiLink);
List<String> networkPortList = new ArrayList<>();
for (TerminationPoint tp : tpdr100G.augmentation(Node1.class).getTerminationPoint().values()) {
if (tp.augmentation(TerminationPoint1.class).getTpType().equals(OpenroadmTpType.XPONDERNETWORK)) {
@Test
public void convertNodeForOtnMuxponder() {
- ConvertORTopoToTapiFullTopo tapiFactory = new ConvertORTopoToTapiFullTopo(topologyUuid);
+ ConvertORTopoToTapiFullTopo tapiFactory = new ConvertORTopoToTapiFullTopo(topologyUuid, tapiLink);
List<String> networkPortList = new ArrayList<>();
for (TerminationPoint tp : otnMuxA.augmentation(Node1.class).getTerminationPoint().values()) {
if (tp.augmentation(TerminationPoint1.class).getTpType().equals(OpenroadmTpType.XPONDERNETWORK)) {
@Test
public void convertNodeForOtnSwitch() {
- ConvertORTopoToTapiFullTopo tapiFactory = new ConvertORTopoToTapiFullTopo(topologyUuid);
+ ConvertORTopoToTapiFullTopo tapiFactory = new ConvertORTopoToTapiFullTopo(topologyUuid, tapiLink);
List<String> networkPortList = new ArrayList<>();
for (TerminationPoint tp : otnSwitch.augmentation(Node1.class).getTerminationPoint().values()) {
if (tp.augmentation(TerminationPoint1.class).getTpType().equals(OpenroadmTpType.XPONDERNETWORK)) {
= tapiFactory.getTapiLinks().values().stream()
.sorted((l1, l2) -> l1.getUuid().getValue().compareTo(l2.getUuid().getValue()))
.collect(Collectors.toList());
- checkTransitionalLink(tapiLinks.get(1), dsrNodeUuid, otsiNodeUuid,
+ checkTransitionalLink(tapiLinks.get(2), dsrNodeUuid, otsiNodeUuid,
"SPDR-SA1-XPDR2+iODU+XPDR2-NETWORK4", "SPDR-SA1-XPDR2+iOTSi+XPDR2-NETWORK4", "SPDR-SA1-XPDR2");
}
@Test
public void convertOtnLink() {
- ConvertORTopoToTapiFullTopo tapiFactory = new ConvertORTopoToTapiFullTopo(topologyUuid);
+ ConvertORTopoToTapiFullTopo tapiFactory = new ConvertORTopoToTapiFullTopo(topologyUuid, tapiLink);
List<String> networkPortListA = new ArrayList<>();
for (TerminationPoint tp : otnMuxA.augmentation(Node1.class).getTerminationPoint().values()) {
if (tp.augmentation(TerminationPoint1.class).getTpType().equals(OpenroadmTpType.XPONDERNETWORK)) {
Uuid tp4Uuid = new Uuid(UUID.nameUUIDFromBytes("SPDR-SC1-XPDR1+iOTSi+XPDR1-NETWORK1"
.getBytes(Charset.forName("UTF-8"))).toString());
Uuid link1Uuid =
- new Uuid(UUID.nameUUIDFromBytes("ODTU4-SPDR-SA1-XPDR1-XPDR1-NETWORK1toSPDR-SC1-XPDR1-XPDR1-NETWORK1"
+ new Uuid(UUID.nameUUIDFromBytes("SPDR-SA1-XPDR1+eODU+XPDR1-NETWORK1toSPDR-SC1-XPDR1+eODU+XPDR1-NETWORK1"
.getBytes(Charset.forName("UTF-8"))).toString());
Uuid link2Uuid =
- new Uuid(UUID.nameUUIDFromBytes("OTU4-SPDR-SA1-XPDR1-XPDR1-NETWORK1toSPDR-SC1-XPDR1-XPDR1-NETWORK1"
+ new Uuid(UUID.nameUUIDFromBytes("SPDR-SA1-XPDR1+iOTSi+XPDR1-NETWORK1toSPDR-SC1-XPDR1+iOTSi+XPDR1-NETWORK1"
.getBytes(Charset.forName("UTF-8"))).toString());
List<org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.topology.Link> links
= tapiFactory.getTapiLinks().values().stream()
.sorted((l1, l2) -> l1.getUuid().getValue().compareTo(l2.getUuid().getValue()))
.collect(Collectors.toList());
- checkOtnLink(links.get(0), node1Uuid, node2Uuid, tp1Uuid, tp2Uuid, link1Uuid,
- "ODTU4-SPDR-SA1-XPDR1-XPDR1-NETWORK1toSPDR-SC1-XPDR1-XPDR1-NETWORK1");
- checkOtnLink(links.get(3), node3Uuid, node4Uuid, tp3Uuid, tp4Uuid, link2Uuid,
- "OTU4-SPDR-SA1-XPDR1-XPDR1-NETWORK1toSPDR-SC1-XPDR1-XPDR1-NETWORK1");
+ checkOtnLink(links.get(3), node1Uuid, node2Uuid, tp1Uuid, tp2Uuid, link1Uuid,
+ "SPDR-SA1-XPDR1+eODU+XPDR1-NETWORK1toSPDR-SC1-XPDR1+eODU+XPDR1-NETWORK1");
+ checkOtnLink(links.get(2), node3Uuid, node4Uuid, tp3Uuid, tp4Uuid, link2Uuid,
+ "SPDR-SA1-XPDR1+iOTSi+XPDR1-NETWORK1toSPDR-SC1-XPDR1+iOTSi+XPDR1-NETWORK1");
}
@Test
public void convertNodeForRoadmWhenNoOtnMuxAttached() {
- ConvertORTopoToTapiFullTopo tapiFactory = new ConvertORTopoToTapiFullTopo(topologyUuid);
+ ConvertORTopoToTapiFullTopo tapiFactory = new ConvertORTopoToTapiFullTopo(topologyUuid, tapiLink);
tapiFactory.convertRoadmNode(roadmA, openroadmNet);
assertEquals("Node list size should be 1", 1, tapiFactory.getTapiNodes().size());
@Test
public void convertNodeForRoadmWhenRoadmNeighborAttached() {
- ConvertORTopoToTapiFullTopo tapiFactory = new ConvertORTopoToTapiFullTopo(topologyUuid);
+ ConvertORTopoToTapiFullTopo tapiFactory = new ConvertORTopoToTapiFullTopo(topologyUuid, tapiLink);
tapiFactory.convertRoadmNode(roadmA, openroadmNet);
tapiFactory.convertRoadmNode(roadmC, openroadmNet);
Uuid tp2Uuid = new Uuid(UUID.nameUUIDFromBytes(("ROADM-C1+PHOTONIC_MEDIA+DEG1-TTP-TXRX")
.getBytes(Charset.forName("UTF-8"))).toString());
Uuid linkUuid =
- new Uuid(UUID.nameUUIDFromBytes("ROADM-C1-DEG1-DEG1-TTP-TXRXtoROADM-A1-DEG2-DEG2-TTP-TXRX"
- .getBytes(Charset.forName("UTF-8"))).toString());
+ new Uuid(UUID.nameUUIDFromBytes(
+ "ROADM-C1+PHOTONIC_MEDIA+DEG1-TTP-TXRXtoROADM-A1+PHOTONIC_MEDIA+DEG2-TTP-TXRX"
+ .getBytes(Charset.forName("UTF-8"))).toString());
checkOmsLink(links.get(0), node1Uuid, node2Uuid, tp1Uuid, tp2Uuid, linkUuid,
- "ROADM-C1-DEG1-DEG1-TTP-TXRXtoROADM-A1-DEG2-DEG2-TTP-TXRX");
+ "ROADM-C1+PHOTONIC_MEDIA+DEG1-TTP-TXRXtoROADM-A1+PHOTONIC_MEDIA+DEG2-TTP-TXRX");
}
@Test
public void convertNodeForRoadmWhenOtnMuxAttached() {
- ConvertORTopoToTapiFullTopo tapiFactory = new ConvertORTopoToTapiFullTopo(topologyUuid);
+ ConvertORTopoToTapiFullTopo tapiFactory = new ConvertORTopoToTapiFullTopo(topologyUuid, tapiLink);
List<String> networkPortListA = new ArrayList<>();
for (TerminationPoint tp : otnMuxA.augmentation(Node1.class).getTerminationPoint().values()) {
if (tp.augmentation(TerminationPoint1.class).getTpType().equals(OpenroadmTpType.XPONDERNETWORK)) {
Uuid tp2Uuid = new Uuid(UUID.nameUUIDFromBytes(("ROADM-A1+PHOTONIC_MEDIA+SRG1-PP2-TXRX")
.getBytes(Charset.forName("UTF-8"))).toString());
Uuid linkUuid =
- new Uuid(UUID.nameUUIDFromBytes("ROADM-A1-SRG1-SRG1-PP2-TXRXtoSPDR-SA1-XPDR1-XPDR1-NETWORK1"
- .getBytes(Charset.forName("UTF-8"))).toString());
- checkXpdrRdmLink(links.get(0), node1Uuid, node2Uuid, tp1Uuid, tp2Uuid, linkUuid,
- "ROADM-A1-SRG1-SRG1-PP2-TXRXtoSPDR-SA1-XPDR1-XPDR1-NETWORK1");
+ new Uuid(UUID.nameUUIDFromBytes(
+ "ROADM-A1+PHOTONIC_MEDIA+SRG1-PP2-TXRXtoSPDR-SA1-XPDR1+PHOTONIC_MEDIA+XPDR1-NETWORK1"
+ .getBytes(Charset.forName("UTF-8"))).toString());
+ checkXpdrRdmLink(links.get(1), node1Uuid, node2Uuid, tp1Uuid, tp2Uuid, linkUuid,
+ "ROADM-A1+PHOTONIC_MEDIA+SRG1-PP2-TXRXtoSPDR-SA1-XPDR1+PHOTONIC_MEDIA+XPDR1-NETWORK1");
}
private void checkDsrNode(org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.topology.Node node,
private void checkTransitionalLink(org.opendaylight.yang.gen.v1
.urn.onf.otcc.yang.tapi.topology.rev181210.topology.Link link,
Uuid node1Uuid, Uuid node2Uuid, String tp1, String tp2, String ietfNodeId) {
- Uuid linkUuid = new Uuid(UUID.nameUUIDFromBytes((ietfNodeId + "--" + tp1 + "--" + tp2)
+ Uuid linkUuid = new Uuid(UUID.nameUUIDFromBytes((tp1 + "to" + tp2)
.getBytes(Charset.forName("UTF-8"))).toString());
assertEquals("bad uuid for link between DSR node " + tp1 + " and iOTSI port " + tp2, linkUuid, link.getUuid());
assertEquals("Available capacity unit should be GBPS",
new NameKey("otn link name")).getValue());
assertEquals("bad uuid for link", linkUuid, link.getUuid());
assertEquals("Available capacity unit should be MBPS",
- CapacityUnit.MBPS, link.getAvailableCapacity().getTotalSize().getUnit());
+ CapacityUnit.GBPS, link.getAvailableCapacity().getTotalSize().getUnit());
String prefix = linkName.split("-")[0];
if ("OTU4".equals(prefix)) {
assertEquals("Available capacity -total size value should be 0",
import org.opendaylight.mdsal.binding.api.DataBroker;
import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
import org.opendaylight.transportpce.common.InstanceIdentifiers;
+import org.opendaylight.transportpce.common.network.NetworkTransactionImpl;
+import org.opendaylight.transportpce.common.network.NetworkTransactionService;
+import org.opendaylight.transportpce.common.network.RequestProcessor;
+import org.opendaylight.transportpce.tapi.TapiStringConstants;
+import org.opendaylight.transportpce.tapi.utils.TapiLink;
import org.opendaylight.transportpce.tapi.utils.TapiTopologyDataUtils;
import org.opendaylight.transportpce.test.AbstractTest;
import org.opendaylight.transportpce.test.utils.TopologyDataUtils;
private static Map<LinkKey,org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226
.networks.network.Link> otnLinks;
private static Uuid topologyUuid;
+ private static NetworkTransactionService networkTransactionService;
+ private static TapiLink tapiLink;
private static DataBroker dataBroker = getDataBroker();
- private static final String E_OTSI = "eOTSi";
- private static final String I_OTSI = "iOTSi";
- private static final String DSR = "DSR";
@BeforeClass
public static void setUp() throws InterruptedException, ExecutionException {
.read(LogicalDatastoreType.CONFIGURATION, linksIID);
otnLinks = linksFuture.get().get().getLink();
- topologyUuid = new Uuid(UUID.nameUUIDFromBytes(TopologyUtils.T0_MULTILAYER.getBytes(Charset.forName("UTF-8")))
- .toString());
+ topologyUuid = new Uuid(UUID.nameUUIDFromBytes(TapiStringConstants.T0_MULTILAYER.getBytes(
+ Charset.forName("UTF-8"))).toString());
+ networkTransactionService = new NetworkTransactionImpl(
+ new RequestProcessor(getDataStoreContextUtil().getDataBroker()));
+ tapiLink = new TapiLink(networkTransactionService);
LOG.info("TEST SETUP READY");
}
networkPortList.add(tp.getTpId().getValue());
}
}
- ConvertORTopoToTapiTopo tapiFactory = new ConvertORTopoToTapiTopo(topologyUuid);
+ ConvertORTopoToTapiTopo tapiFactory = new ConvertORTopoToTapiTopo(topologyUuid, tapiLink);
tapiFactory.convertNode(tpdr, networkPortList);
Uuid dsrNodeUuid = new Uuid(UUID.nameUUIDFromBytes("XPDR-A1-XPDR1+DSR".getBytes(Charset.forName("UTF-8")))
networkPortList.add(tp.getTpId().getValue());
}
}
- ConvertORTopoToTapiTopo tapiFactory = new ConvertORTopoToTapiTopo(topologyUuid);
+ ConvertORTopoToTapiTopo tapiFactory = new ConvertORTopoToTapiTopo(topologyUuid, tapiLink);
tapiFactory.convertNode(tpdr, networkPortList);
Uuid dsrNodeUuid = new Uuid(UUID.nameUUIDFromBytes("XPDR-A1-XPDR1+DSR".getBytes(Charset.forName("UTF-8")))
networkPortList.add(tp.getTpId().getValue());
}
}
- ConvertORTopoToTapiTopo tapiFactory = new ConvertORTopoToTapiTopo(topologyUuid);
+ ConvertORTopoToTapiTopo tapiFactory = new ConvertORTopoToTapiTopo(topologyUuid, tapiLink);
tapiFactory.convertNode(tpdr, networkPortList);
Uuid dsrNodeUuid = new Uuid(UUID.nameUUIDFromBytes("XPDR-A1-XPDR1+DSR".getBytes(Charset.forName("UTF-8")))
new LinkId("ODTU4-SPDR-SA1-XPDR1-XPDR1-NETWORK1toSPDR-SC1-XPDR1-XPDR1-NETWORK1"))), null, null);
otnLinksAlt.replace(link.key(), link);
- ConvertORTopoToTapiTopo tapiFactory = new ConvertORTopoToTapiTopo(topologyUuid);
+ ConvertORTopoToTapiTopo tapiFactory = new ConvertORTopoToTapiTopo(topologyUuid, tapiLink);
List<String> networkPortListA = new ArrayList<>();
for (TerminationPoint tp : otnMuxA.augmentation(Node1.class).getTerminationPoint().values()) {
if (tp.augmentation(TerminationPoint1.class).getTpType().equals(OpenroadmTpType.XPONDERNETWORK)) {
List<Link> tapiLinks = tapiFactory.getTapiLinks().values().stream()
.sorted((l1, l2) -> l1.getUuid().getValue().compareTo(l2.getUuid().getValue()))
.collect(Collectors.toList());
- assertNull("Administrative State should not be present", tapiLinks.get(0).getAdministrativeState());
+ assertNull("Administrative State should not be present", tapiLinks.get(3).getAdministrativeState());
assertEquals("Administrative state should be UNLOCKED",
- AdministrativeState.UNLOCKED, tapiLinks.get(2).getAdministrativeState());
- assertNull("Operational State should not be present", tapiLinks.get(0).getOperationalState());
+ AdministrativeState.UNLOCKED, tapiLinks.get(0).getAdministrativeState());
+ assertNull("Operational State should not be present", tapiLinks.get(3).getOperationalState());
assertEquals("Operational state should be ENABLED",
- OperationalState.ENABLED, tapiLinks.get(2).getOperationalState());
+ OperationalState.ENABLED, tapiLinks.get(0).getOperationalState());
}
@Test
new LinkId("ODTU4-SPDR-SC1-XPDR1-XPDR1-NETWORK1toSPDR-SA1-XPDR1-XPDR1-NETWORK1"))), null, null);
otnLinksAlt.replace(link.key(), link);
- ConvertORTopoToTapiTopo tapiFactory = new ConvertORTopoToTapiTopo(topologyUuid);
+ ConvertORTopoToTapiTopo tapiFactory = new ConvertORTopoToTapiTopo(topologyUuid, tapiLink);
List<String> networkPortListA = new ArrayList<>();
for (TerminationPoint tp : otnMuxA.augmentation(Node1.class).getTerminationPoint().values()) {
if (tp.augmentation(TerminationPoint1.class).getTpType().equals(OpenroadmTpType.XPONDERNETWORK)) {
List<Link> tapiLinks = tapiFactory.getTapiLinks().values().stream()
.sorted((l1, l2) -> l1.getUuid().getValue().compareTo(l2.getUuid().getValue()))
.collect(Collectors.toList());
- assertNull("Administrative State should not be present", tapiLinks.get(0).getAdministrativeState());
+ assertNull("Administrative State should not be present", tapiLinks.get(3).getAdministrativeState());
assertEquals("Administrative state should be UNLOCKED",
- AdministrativeState.UNLOCKED, tapiLinks.get(2).getAdministrativeState());
- assertNull("Operational State should not be present", tapiLinks.get(0).getOperationalState());
+ AdministrativeState.UNLOCKED, tapiLinks.get(0).getAdministrativeState());
+ assertNull("Operational State should not be present", tapiLinks.get(3).getOperationalState());
assertEquals("Operational state should be ENABLED",
- OperationalState.ENABLED, tapiLinks.get(2).getOperationalState());
+ OperationalState.ENABLED, tapiLinks.get(0).getOperationalState());
}
@Test
AdminStates.OutOfService, State.OutOfService);
otnLinksAlt.replace(link.key(), link);
- ConvertORTopoToTapiTopo tapiFactory = new ConvertORTopoToTapiTopo(topologyUuid);
+ ConvertORTopoToTapiTopo tapiFactory = new ConvertORTopoToTapiTopo(topologyUuid, tapiLink);
List<String> networkPortListA = new ArrayList<>();
for (TerminationPoint tp : otnMuxA.augmentation(Node1.class).getTerminationPoint().values()) {
if (tp.augmentation(TerminationPoint1.class).getTpType().equals(OpenroadmTpType.XPONDERNETWORK)) {
.sorted((l1, l2) -> l1.getUuid().getValue().compareTo(l2.getUuid().getValue()))
.collect(Collectors.toList());
assertEquals("Administrative state should be LOCKED",
- AdministrativeState.LOCKED, tapiLinks.get(0).getAdministrativeState());
+ AdministrativeState.LOCKED, tapiLinks.get(3).getAdministrativeState());
assertEquals("Administrative state should be UNLOCKED",
- AdministrativeState.UNLOCKED, tapiLinks.get(2).getAdministrativeState());
+ AdministrativeState.UNLOCKED, tapiLinks.get(0).getAdministrativeState());
assertEquals("Operational state should be DISABLED",
- OperationalState.DISABLED, tapiLinks.get(0).getOperationalState());
+ OperationalState.DISABLED, tapiLinks.get(3).getOperationalState());
assertEquals("Operational state should be ENABLED",
- OperationalState.ENABLED, tapiLinks.get(2).getOperationalState());
+ OperationalState.ENABLED, tapiLinks.get(0).getOperationalState());
}
@Test
AdminStates.Maintenance, State.Degraded);
otnLinksAlt.replace(link.key(), link);
- ConvertORTopoToTapiTopo tapiFactory = new ConvertORTopoToTapiTopo(topologyUuid);
+ ConvertORTopoToTapiTopo tapiFactory = new ConvertORTopoToTapiTopo(topologyUuid, tapiLink);
List<String> networkPortListA = new ArrayList<>();
for (TerminationPoint tp : otnMuxA.augmentation(Node1.class).getTerminationPoint().values()) {
if (tp.augmentation(TerminationPoint1.class).getTpType().equals(OpenroadmTpType.XPONDERNETWORK)) {
.sorted((l1, l2) -> l1.getUuid().getValue().compareTo(l2.getUuid().getValue()))
.collect(Collectors.toList());
assertEquals("Administrative state should be LOCKED",
- AdministrativeState.LOCKED, tapiLinks.get(0).getAdministrativeState());
+ AdministrativeState.LOCKED, tapiLinks.get(3).getAdministrativeState());
assertEquals("Administrative state should be UNLOCKED",
- AdministrativeState.UNLOCKED, tapiLinks.get(2).getAdministrativeState());
+ AdministrativeState.UNLOCKED, tapiLinks.get(0).getAdministrativeState());
assertEquals("Operational state should be DISABLED",
- OperationalState.DISABLED, tapiLinks.get(0).getOperationalState());
+ OperationalState.DISABLED, tapiLinks.get(3).getOperationalState());
assertEquals("Operational state should be ENABLED",
- OperationalState.ENABLED, tapiLinks.get(2).getOperationalState());
+ OperationalState.ENABLED, tapiLinks.get(0).getOperationalState());
}
@Test
AdminStates.OutOfService, State.OutOfService);
otnLinksAlt.replace(link.key(), link);
- ConvertORTopoToTapiTopo tapiFactory = new ConvertORTopoToTapiTopo(topologyUuid);
+ ConvertORTopoToTapiTopo tapiFactory = new ConvertORTopoToTapiTopo(topologyUuid, tapiLink);
List<String> networkPortListA = new ArrayList<>();
for (TerminationPoint tp : otnMuxA.augmentation(Node1.class).getTerminationPoint().values()) {
if (tp.augmentation(TerminationPoint1.class).getTpType().equals(OpenroadmTpType.XPONDERNETWORK)) {
.sorted((l1, l2) -> l1.getUuid().getValue().compareTo(l2.getUuid().getValue()))
.collect(Collectors.toList());
assertEquals("Administrative state should be LOCKED",
- AdministrativeState.LOCKED, tapiLinks.get(0).getAdministrativeState());
+ AdministrativeState.LOCKED, tapiLinks.get(3).getAdministrativeState());
assertEquals("Administrative state should be UNLOCKED",
- AdministrativeState.UNLOCKED, tapiLinks.get(2).getAdministrativeState());
+ AdministrativeState.UNLOCKED, tapiLinks.get(0).getAdministrativeState());
assertEquals("Operational state should be DISABLED",
- OperationalState.DISABLED, tapiLinks.get(0).getOperationalState());
+ OperationalState.DISABLED, tapiLinks.get(3).getOperationalState());
assertEquals("Operational state should be ENABLED",
- OperationalState.ENABLED, tapiLinks.get(2).getOperationalState());
+ OperationalState.ENABLED, tapiLinks.get(0).getOperationalState());
}
@Test
public void convertNodeForTransponder100G() {
- ConvertORTopoToTapiTopo tapiFactory = new ConvertORTopoToTapiTopo(topologyUuid);
+ ConvertORTopoToTapiTopo tapiFactory = new ConvertORTopoToTapiTopo(topologyUuid, tapiLink);
List<String> networkPortList = new ArrayList<>();
for (TerminationPoint tp : tpdr100G.augmentation(Node1.class).getTerminationPoint().values()) {
if (tp.augmentation(TerminationPoint1.class).getTpType().equals(OpenroadmTpType.XPONDERNETWORK)) {
List<Link> tapiLinks = tapiFactory.getTapiLinks().values().stream()
.sorted((l1, l2) -> l1.getUuid().getValue().compareTo(l2.getUuid().getValue()))
.collect(Collectors.toList());
- checkTransitionalLink(tapiLinks.get(1), dsrNodeUuid, otsiNodeUuid,
+ checkTransitionalLink(tapiLinks.get(0), dsrNodeUuid, otsiNodeUuid,
"XPDR-A1-XPDR1+DSR+XPDR1-NETWORK1", "XPDR-A1-XPDR1+iOTSi+XPDR1-NETWORK1", "XPDR-A1-XPDR1");
}
@Test
public void convertNodeForOtnMuxponder() {
- ConvertORTopoToTapiTopo tapiFactory = new ConvertORTopoToTapiTopo(topologyUuid);
+ ConvertORTopoToTapiTopo tapiFactory = new ConvertORTopoToTapiTopo(topologyUuid, tapiLink);
List<String> networkPortList = new ArrayList<>();
for (TerminationPoint tp : otnMuxA.augmentation(Node1.class).getTerminationPoint().values()) {
if (tp.augmentation(TerminationPoint1.class).getTpType().equals(OpenroadmTpType.XPONDERNETWORK)) {
@Test
public void convertNodeForOtnSwitch() {
- ConvertORTopoToTapiTopo tapiFactory = new ConvertORTopoToTapiTopo(topologyUuid);
+ ConvertORTopoToTapiTopo tapiFactory = new ConvertORTopoToTapiTopo(topologyUuid, tapiLink);
List<String> networkPortList = new ArrayList<>();
for (TerminationPoint tp : otnSwitch.augmentation(Node1.class).getTerminationPoint().values()) {
if (tp.augmentation(TerminationPoint1.class).getTpType().equals(OpenroadmTpType.XPONDERNETWORK)) {
List<Link> tapiLinks = tapiFactory.getTapiLinks().values().stream()
.sorted((l1, l2) -> l1.getUuid().getValue().compareTo(l2.getUuid().getValue()))
.collect(Collectors.toList());
- checkTransitionalLink(tapiLinks.get(0), dsrNodeUuid, otsiNodeUuid,
+ checkTransitionalLink(tapiLinks.get(3), dsrNodeUuid, otsiNodeUuid,
"SPDR-SA1-XPDR2+DSR+XPDR2-NETWORK4", "SPDR-SA1-XPDR2+iOTSi+XPDR2-NETWORK4", "SPDR-SA1-XPDR2");
}
@Test
public void convertOtnLink() {
- ConvertORTopoToTapiTopo tapiFactory = new ConvertORTopoToTapiTopo(topologyUuid);
+ ConvertORTopoToTapiTopo tapiFactory = new ConvertORTopoToTapiTopo(topologyUuid, tapiLink);
List<String> networkPortListA = new ArrayList<>();
for (TerminationPoint tp : otnMuxA.augmentation(Node1.class).getTerminationPoint().values()) {
if (tp.augmentation(TerminationPoint1.class).getTpType().equals(OpenroadmTpType.XPONDERNETWORK)) {
.toString());
Uuid node4Uuid = new Uuid(UUID.nameUUIDFromBytes("SPDR-SC1-XPDR1+OTSi".getBytes(Charset.forName("UTF-8")))
.toString());
- Uuid tp1Uuid = new Uuid(UUID.nameUUIDFromBytes("SPDR-SA1-XPDR1+DSR+XPDR1-NETWORK1"
+ Uuid tp1Uuid = new Uuid(UUID.nameUUIDFromBytes("SPDR-SA1-XPDR1+eODU+XPDR1-NETWORK1"
.getBytes(Charset.forName("UTF-8"))).toString());
- Uuid tp2Uuid = new Uuid(UUID.nameUUIDFromBytes("SPDR-SC1-XPDR1+DSR+XPDR1-NETWORK1"
+ Uuid tp2Uuid = new Uuid(UUID.nameUUIDFromBytes("SPDR-SC1-XPDR1+eODU+XPDR1-NETWORK1"
.getBytes(Charset.forName("UTF-8"))).toString());
Uuid tp3Uuid = new Uuid(UUID.nameUUIDFromBytes("SPDR-SA1-XPDR1+iOTSi+XPDR1-NETWORK1"
.getBytes(Charset.forName("UTF-8"))).toString());
Uuid tp4Uuid = new Uuid(UUID.nameUUIDFromBytes("SPDR-SC1-XPDR1+iOTSi+XPDR1-NETWORK1"
.getBytes(Charset.forName("UTF-8"))).toString());
Uuid link1Uuid =
- new Uuid(UUID.nameUUIDFromBytes("ODTU4-SPDR-SA1-XPDR1-XPDR1-NETWORK1toSPDR-SC1-XPDR1-XPDR1-NETWORK1"
+ new Uuid(UUID.nameUUIDFromBytes("SPDR-SA1-XPDR1+eODU+XPDR1-NETWORK1toSPDR-SC1-XPDR1+eODU+XPDR1-NETWORK1"
.getBytes(Charset.forName("UTF-8"))).toString());
Uuid link2Uuid =
- new Uuid(UUID.nameUUIDFromBytes("OTU4-SPDR-SA1-XPDR1-XPDR1-NETWORK1toSPDR-SC1-XPDR1-XPDR1-NETWORK1"
+ new Uuid(UUID.nameUUIDFromBytes("SPDR-SA1-XPDR1+iOTSi+XPDR1-NETWORK1toSPDR-SC1-XPDR1+iOTSi+XPDR1-NETWORK1"
.getBytes(Charset.forName("UTF-8"))).toString());
List<Link> links = tapiFactory.getTapiLinks().values().stream()
.sorted((l1, l2) -> l1.getUuid().getValue().compareTo(l2.getUuid().getValue()))
.collect(Collectors.toList());
- checkOtnLink(links.get(0), node1Uuid, node2Uuid, tp1Uuid, tp2Uuid, link1Uuid,
- "ODTU4-SPDR-SA1-XPDR1-XPDR1-NETWORK1toSPDR-SC1-XPDR1-XPDR1-NETWORK1");
+ checkOtnLink(links.get(3), node1Uuid, node2Uuid, tp1Uuid, tp2Uuid, link1Uuid,
+ "SPDR-SA1-XPDR1+eODU+XPDR1-NETWORK1toSPDR-SC1-XPDR1+eODU+XPDR1-NETWORK1");
checkOtnLink(links.get(2), node3Uuid, node4Uuid, tp3Uuid, tp4Uuid, link2Uuid,
- "OTU4-SPDR-SA1-XPDR1-XPDR1-NETWORK1toSPDR-SC1-XPDR1-XPDR1-NETWORK1");
+ "SPDR-SA1-XPDR1+iOTSi+XPDR1-NETWORK1toSPDR-SC1-XPDR1+iOTSi+XPDR1-NETWORK1");
}
@Test
public void convertRoadmInfrastructureWhenNoXponderAttached() {
- ConvertORTopoToTapiTopo tapiFactory = new ConvertORTopoToTapiTopo(topologyUuid);
+ ConvertORTopoToTapiTopo tapiFactory = new ConvertORTopoToTapiTopo(topologyUuid, tapiLink);
tapiFactory.convertRoadmInfrastructure();
assertEquals("Node list size should be 1", 1, tapiFactory.getTapiNodes().size());
@Test
public void convertRoadmInfrastructureWhenOtnMuxAttached() {
- ConvertORTopoToTapiTopo tapiFactory = new ConvertORTopoToTapiTopo(topologyUuid);
+ ConvertORTopoToTapiTopo tapiFactory = new ConvertORTopoToTapiTopo(topologyUuid, tapiLink);
List<String> networkPortListA = new ArrayList<>();
for (TerminationPoint tp : otnMuxA.augmentation(Node1.class).getTerminationPoint().values()) {
if (tp.augmentation(TerminationPoint1.class).getTpType().equals(OpenroadmTpType.XPONDERNETWORK)) {
UUID.nameUUIDFromBytes((nodeId + "+DSR+XPDR2-CLIENT4").getBytes(Charset.forName("UTF-8")))
.toString());
checkNepClient100GSwitch(nep1, client4NepUuid, "XPDR2-CLIENT4", "NodeEdgePoint_C",
- otnSwitch.getNodeId().getValue(), DSR);
+ otnSwitch.getNodeId().getValue(), TapiStringConstants.DSR);
OwnedNodeEdgePoint nep2 = nepsN.get(1);
Uuid networkNepUuid = new Uuid(
UUID.nameUUIDFromBytes((nodeId + "+DSR+XPDR2-NETWORK1").getBytes(Charset.forName("UTF-8")))
.toString());
checkNepNetworkODU4(nep2, networkNepUuid, "XPDR2-NETWORK1", "NodeEdgePoint_N",
- otnSwitch.getNodeId().getValue(), DSR);
+ otnSwitch.getNodeId().getValue(), TapiStringConstants.DSR);
List<NodeRuleGroup> nrgList = node.nonnullNodeRuleGroup().values().stream()
.sorted((nrg1, nrg2) -> nrg1.getUuid().getValue().compareTo(nrg2.getUuid().getValue()))
.collect(Collectors.toList());
UUID.nameUUIDFromBytes((nodeId + "+DSR+XPDR1-CLIENT3").getBytes(Charset.forName("UTF-8")))
.toString());
checkNepClient10G(nep3, client3NepUuid, "XPDR1-CLIENT3", "NodeEdgePoint_C",
- otnMuxA.getNodeId().getValue(), DSR);
+ otnMuxA.getNodeId().getValue(), TapiStringConstants.DSR);
OwnedNodeEdgePoint nep4 = nepsN.get(0);
Uuid networkNepUuid2 = new Uuid(
UUID.nameUUIDFromBytes((nodeId + "+DSR+XPDR1-NETWORK1").getBytes(Charset.forName("UTF-8")))
.toString());
checkNepNetworkODU4(nep4, networkNepUuid2, "XPDR1-NETWORK1", "NodeEdgePoint_N",
- otnMuxA.getNodeId().getValue(), DSR);
+ otnMuxA.getNodeId().getValue(), TapiStringConstants.DSR);
List<NodeRuleGroup> nrgList2 = node.nonnullNodeRuleGroup().values().stream()
.sorted((nrg1, nrg2) -> nrg1.getUuid().getValue().compareTo(nrg2.getUuid().getValue()))
.collect(Collectors.toList());
UUID.nameUUIDFromBytes((nodeId + "+DSR+XPDR1-CLIENT1").getBytes(Charset.forName("UTF-8")))
.toString());
checkNepClient100GTpdr(nep5, client1NepUuid, "XPDR1-CLIENT1", "100G-tpdr",
- tpdr100G.getNodeId().getValue(), DSR);
+ tpdr100G.getNodeId().getValue(), TapiStringConstants.DSR);
OwnedNodeEdgePoint nep6 = nepsN.get(0);
Uuid networkNepUuid3 = new Uuid(
UUID.nameUUIDFromBytes((nodeId + "+DSR+XPDR1-NETWORK1").getBytes(Charset.forName("UTF-8")))
.toString());
checkNepNetworkODU4(nep6, networkNepUuid3, "XPDR1-NETWORK1", "NodeEdgePoint_N",
- tpdr100G.getNodeId().getValue(), DSR);
+ tpdr100G.getNodeId().getValue(), TapiStringConstants.DSR);
List<NodeRuleGroup> nrgList3 = node.nonnullNodeRuleGroup().values().stream()
.sorted((nrg1, nrg2) -> nrg1.getUuid().getValue().compareTo(nrg2.getUuid().getValue()))
.collect(Collectors.toList());
UUID.nameUUIDFromBytes((nodeId + "+iOTSi+XPDR2-NETWORK2").getBytes(Charset.forName("UTF-8")))
.toString());
checkNepOtsiNode(nep1, inepUuid, "XPDR2-NETWORK2", "iNodeEdgePoint", otnSwitch.getNodeId().getValue(),
- I_OTSI);
+ TapiStringConstants.I_OTSI);
OwnedNodeEdgePoint nep2 = nepsE.get(0);
Uuid enepUuid = new Uuid(
UUID.nameUUIDFromBytes((nodeId + "+eOTSi+XPDR2-NETWORK2").getBytes(Charset.forName("UTF-8")))
.toString());
checkNepOtsiNode(nep2, enepUuid, "XPDR2-NETWORK2", "eNodeEdgePoint", otnSwitch.getNodeId().getValue(),
- E_OTSI);
+ TapiStringConstants.E_OTSI);
List<NodeRuleGroup> nrgList = node.nonnullNodeRuleGroup().values().stream()
.sorted((nrg1, nrg2) -> nrg1.getUuid().getValue().compareTo(nrg2.getUuid().getValue()))
.collect(Collectors.toList());
UUID.nameUUIDFromBytes((nodeId + "+eOTSi+XPDR1-NETWORK1").getBytes(Charset.forName("UTF-8")))
.toString());
checkNepOtsiNode(nep3, enepUuid2, "XPDR1-NETWORK1", "eNodeEdgePoint", otnMuxA.getNodeId().getValue(),
- E_OTSI);
+ TapiStringConstants.E_OTSI);
OwnedNodeEdgePoint nep4 = nepsI.get(0);
Uuid inepUuid2 = new Uuid(
UUID.nameUUIDFromBytes((nodeId + "+iOTSi+XPDR1-NETWORK1").getBytes(Charset.forName("UTF-8")))
.toString());
checkNepOtsiNode(nep4, inepUuid2, "XPDR1-NETWORK1", "iNodeEdgePoint", otnMuxA.getNodeId().getValue(),
- I_OTSI);
+ TapiStringConstants.I_OTSI);
List<NodeRuleGroup> nrgList2 = node.nonnullNodeRuleGroup().values().stream()
.sorted((nrg1, nrg2) -> nrg1.getUuid().getValue().compareTo(nrg2.getUuid().getValue()))
.collect(Collectors.toList());
UUID.nameUUIDFromBytes((nodeId + "+eOTSi+XPDR1-NETWORK1").getBytes(Charset.forName("UTF-8")))
.toString());
checkNepOtsiNode(nep5, enepUuid3, "XPDR1-NETWORK1", "eNodeEdgePoint", tpdr100G.getNodeId().getValue(),
- E_OTSI);
+ TapiStringConstants.E_OTSI);
OwnedNodeEdgePoint nep6 = nepsI.get(0);
Uuid inepUuid3 = new Uuid(
UUID.nameUUIDFromBytes((nodeId + "+iOTSi+XPDR1-NETWORK1").getBytes(Charset.forName("UTF-8")))
.toString());
checkNepOtsiNode(nep6, inepUuid3, "XPDR1-NETWORK1", "iNodeEdgePoint", tpdr100G.getNodeId().getValue(),
- I_OTSI);
+ TapiStringConstants.I_OTSI);
List<NodeRuleGroup> nrgList3 = node.nonnullNodeRuleGroup().values().stream()
.sorted((nrg1, nrg2) -> nrg1.getUuid().getValue().compareTo(nrg2.getUuid().getValue()))
.collect(Collectors.toList());
}
private void checkTransitionalLink(Link link, Uuid node1Uuid, Uuid node2Uuid, String tp1, String tp2,
- String ietfNodeId) {
- Uuid linkUuid = new Uuid(UUID.nameUUIDFromBytes((ietfNodeId + "--" + tp1 + "--" + tp2)
+ String ietfNodeId) {
+ Uuid linkUuid = new Uuid(UUID.nameUUIDFromBytes((tp1 + "to" + tp2)
.getBytes(Charset.forName("UTF-8"))).toString());
assertEquals("bad uuid for link between DSR node " + tp1 + " and iOTSI port " + tp2, linkUuid, link.getUuid());
assertEquals("Available capacity unit should be GBPS",
}
private void checkOtnLink(Link link, Uuid node1Uuid, Uuid node2Uuid, Uuid tp1Uuid, Uuid tp2Uuid, Uuid linkUuid,
- String linkName) {
+ String linkName) {
assertEquals("bad name for the link", linkName, link.getName().get(new NameKey("otn link name")).getValue());
assertEquals("bad uuid for link", linkUuid, link.getUuid());
assertEquals("Available capacity unit should be MBPS",
- CapacityUnit.MBPS, link.getAvailableCapacity().getTotalSize().getUnit());
+ CapacityUnit.GBPS, link.getAvailableCapacity().getTotalSize().getUnit());
String prefix = linkName.split("-")[0];
if ("OTU4".equals(prefix)) {
assertEquals("Available capacity -total size value should be 0",
import org.opendaylight.mdsal.common.api.CommitInfo;
import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
import org.opendaylight.transportpce.common.network.NetworkTransactionService;
+import org.opendaylight.transportpce.tapi.TapiStringConstants;
import org.opendaylight.transportpce.tapi.utils.TapiContext;
+import org.opendaylight.transportpce.tapi.utils.TapiLink;
import org.opendaylight.transportpce.tapi.utils.TapiTopologyDataUtils;
import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.GetTopologyDetailsInput;
import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.GetTopologyDetailsOutput;
TapiContext tapiContext;
@Mock
TopologyUtils topologyUtils;
+ @Mock
+ TapiLink tapiLink;
@Test
public void getTopologyDetailsWithExceptionTest() throws InterruptedException, ExecutionException {
};
when(networkTransactionService.commit()).then(answer);
tapiContext = new TapiContext(networkTransactionService);
+ tapiLink = new TapiLink(networkTransactionService);
- GetTopologyDetailsInput input = TapiTopologyDataUtils.buildGetTopologyDetailsInput(TopologyUtils.T0_MULTILAYER);
- TapiTopologyImpl tapiTopoImpl = new TapiTopologyImpl(dataBroker, tapiContext, topologyUtils);
+ GetTopologyDetailsInput input = TapiTopologyDataUtils.buildGetTopologyDetailsInput(
+ TapiStringConstants.T0_MULTILAYER);
+ TapiTopologyImpl tapiTopoImpl = new TapiTopologyImpl(dataBroker, tapiContext, topologyUtils, tapiLink);
ListenableFuture<RpcResult<GetTopologyDetailsOutput>> result = tapiTopoImpl.getTopologyDetails(input);
RpcResult<GetTopologyDetailsOutput> rpcResult = result.get();
if (rpcResult.isSuccessful()) {
import org.opendaylight.transportpce.common.network.RequestProcessor;
import org.opendaylight.transportpce.servicehandler.service.ServiceDataStoreOperations;
import org.opendaylight.transportpce.servicehandler.service.ServiceDataStoreOperationsImpl;
+import org.opendaylight.transportpce.tapi.TapiStringConstants;
import org.opendaylight.transportpce.tapi.connectivity.ConnectivityUtils;
import org.opendaylight.transportpce.tapi.utils.TapiContext;
import org.opendaylight.transportpce.tapi.utils.TapiInitialORMapping;
+import org.opendaylight.transportpce.tapi.utils.TapiLink;
import org.opendaylight.transportpce.tapi.utils.TapiTopologyDataUtils;
import org.opendaylight.transportpce.test.AbstractTest;
import org.opendaylight.transportpce.test.utils.TopologyDataUtils;
public static ConnectivityUtils connectivityUtils;
public static ServiceDataStoreOperations serviceDataStoreOperations;
public static TapiInitialORMapping tapiInitialORMapping;
+ public static TapiLink tapiLink;
@BeforeClass
public static void setUp() throws InterruptedException, ExecutionException {
TapiTopologyDataUtils.PORTMAPPING_FILE);
networkTransactionService = new NetworkTransactionImpl(
new RequestProcessor(getDataStoreContextUtil().getDataBroker()));
+ tapiLink = new TapiLink(networkTransactionService);
serviceDataStoreOperations = new ServiceDataStoreOperationsImpl(getDataStoreContextUtil().getDataBroker());
tapiContext = new TapiContext(networkTransactionService);
- topologyUtils = new TopologyUtils(networkTransactionService, getDataStoreContextUtil().getDataBroker());
+ topologyUtils = new TopologyUtils(networkTransactionService, getDataStoreContextUtil().getDataBroker(),
+ tapiLink);
connectivityUtils = new ConnectivityUtils(serviceDataStoreOperations, new HashMap<>(), tapiContext);
tapiInitialORMapping = new TapiInitialORMapping(topologyUtils, connectivityUtils,
tapiContext, serviceDataStoreOperations);
@Test
public void getTopologyDetailsForTransponder100GTopologyWhenSuccessful()
throws ExecutionException, InterruptedException {
- GetTopologyDetailsInput input = TapiTopologyDataUtils.buildGetTopologyDetailsInput(TopologyUtils.TPDR_100G);
- TapiTopologyImpl tapiTopoImpl = new TapiTopologyImpl(getDataBroker(), tapiContext, topologyUtils);
+ GetTopologyDetailsInput input = TapiTopologyDataUtils.buildGetTopologyDetailsInput(
+ TapiStringConstants.TPDR_100G);
+ TapiTopologyImpl tapiTopoImpl = new TapiTopologyImpl(getDataBroker(), tapiContext, topologyUtils, tapiLink);
ListenableFuture<RpcResult<GetTopologyDetailsOutput>> result = tapiTopoImpl.getTopologyDetails(input);
result.addListener(new Runnable() {
@Override
@Nullable
Topology topology = rpcResult.getResult().getTopology();
assertNotNull("Topology should not be null", topology);
- Uuid topoUuid = new Uuid(UUID.nameUUIDFromBytes(TopologyUtils.TPDR_100G.getBytes(StandardCharsets.UTF_8))
+ Uuid topoUuid = new Uuid(UUID.nameUUIDFromBytes(TapiStringConstants.TPDR_100G.getBytes(StandardCharsets.UTF_8))
.toString());
assertEquals("incorrect topology uuid", topoUuid, topology.getUuid());
assertEquals("Node list size should be 1", 1, topology.getNode().size());
@Test
public void getTopologyDetailsForOtnTopologyWithOtnLinksWhenSuccessful()
throws ExecutionException, InterruptedException {
- GetTopologyDetailsInput input = TapiTopologyDataUtils.buildGetTopologyDetailsInput(TopologyUtils.T0_MULTILAYER);
- TapiTopologyImpl tapiTopoImpl = new TapiTopologyImpl(getDataBroker(), tapiContext, topologyUtils);
+ GetTopologyDetailsInput input = TapiTopologyDataUtils.buildGetTopologyDetailsInput(
+ TapiStringConstants.T0_MULTILAYER);
+ TapiTopologyImpl tapiTopoImpl = new TapiTopologyImpl(getDataBroker(), tapiContext, topologyUtils, tapiLink);
ListenableFuture<RpcResult<GetTopologyDetailsOutput>> result = tapiTopoImpl.getTopologyDetails(input);
result.addListener(new Runnable() {
@Override
.toString());
Uuid node4Uuid = new Uuid(UUID.nameUUIDFromBytes("SPDR-SC1-XPDR1+OTSi".getBytes(StandardCharsets.UTF_8))
.toString());
- Uuid tp1Uuid = new Uuid(UUID.nameUUIDFromBytes("SPDR-SA1-XPDR1+DSR+XPDR1-NETWORK1"
+ Uuid tp1Uuid = new Uuid(UUID.nameUUIDFromBytes("SPDR-SA1-XPDR1+eODU+XPDR1-NETWORK1"
.getBytes(StandardCharsets.UTF_8)).toString());
- Uuid tp2Uuid = new Uuid(UUID.nameUUIDFromBytes("SPDR-SC1-XPDR1+DSR+XPDR1-NETWORK1"
+ Uuid tp2Uuid = new Uuid(UUID.nameUUIDFromBytes("SPDR-SC1-XPDR1+eODU+XPDR1-NETWORK1"
.getBytes(StandardCharsets.UTF_8)).toString());
Uuid tp3Uuid = new Uuid(UUID.nameUUIDFromBytes("SPDR-SA1-XPDR1+iOTSi+XPDR1-NETWORK1"
.getBytes(StandardCharsets.UTF_8)).toString());
Uuid tp4Uuid = new Uuid(UUID.nameUUIDFromBytes("SPDR-SC1-XPDR1+iOTSi+XPDR1-NETWORK1"
.getBytes(StandardCharsets.UTF_8)).toString());
Uuid link1Uuid =
- new Uuid(UUID.nameUUIDFromBytes("ODTU4-SPDR-SA1-XPDR1-XPDR1-NETWORK1toSPDR-SC1-XPDR1-XPDR1-NETWORK1"
+ new Uuid(UUID.nameUUIDFromBytes("SPDR-SA1-XPDR1+iOTSi+XPDR1-NETWORK1toSPDR-SC1-XPDR1+iOTSi+XPDR1-NETWORK1"
.getBytes(StandardCharsets.UTF_8)).toString());
Uuid link2Uuid =
- new Uuid(UUID.nameUUIDFromBytes("OTU4-SPDR-SA1-XPDR1-XPDR1-NETWORK1toSPDR-SC1-XPDR1-XPDR1-NETWORK1"
+ new Uuid(UUID.nameUUIDFromBytes("SPDR-SA1-XPDR1+eODU+XPDR1-NETWORK1toSPDR-SC1-XPDR1+eODU+XPDR1-NETWORK1"
.getBytes(StandardCharsets.UTF_8)).toString());
List<Link> links = topology.nonnullLink().values().stream()
.filter(l -> l.getName().containsKey(new NameKey("otn link name")))
.sorted((l1, l2) -> l1.getUuid().getValue().compareTo(l2.getUuid().getValue()))
.collect(Collectors.toList());
- checkOtnLink(links.get(0), topoUuid, node1Uuid, node2Uuid, tp1Uuid, tp2Uuid, link1Uuid,
- "ODTU4-SPDR-SA1-XPDR1-XPDR1-NETWORK1toSPDR-SC1-XPDR1-XPDR1-NETWORK1");
- checkOtnLink(links.get(1), topoUuid, node3Uuid, node4Uuid, tp3Uuid, tp4Uuid, link2Uuid,
- "OTU4-SPDR-SA1-XPDR1-XPDR1-NETWORK1toSPDR-SC1-XPDR1-XPDR1-NETWORK1");
+ checkOtnLink(links.get(0), topoUuid, node3Uuid, node4Uuid, tp3Uuid, tp4Uuid, link1Uuid,
+ "SPDR-SA1-XPDR1+iOTSi+XPDR1-NETWORK1toSPDR-SC1-XPDR1+iOTSi+XPDR1-NETWORK1");
+ checkOtnLink(links.get(1), topoUuid, node1Uuid, node2Uuid, tp1Uuid, tp2Uuid, link2Uuid,
+ "SPDR-SA1-XPDR1+eODU+XPDR1-NETWORK1toSPDR-SC1-XPDR1+eODU+XPDR1-NETWORK1");
}
@Test
public void getTopologyDetailsForFullTapiTopologyWithLinksWhenSuccessful()
throws ExecutionException, InterruptedException {
GetTopologyDetailsInput input = TapiTopologyDataUtils.buildGetTopologyDetailsInput(
- TopologyUtils.T0_FULL_MULTILAYER);
- TapiTopologyImpl tapiTopoImpl = new TapiTopologyImpl(getDataBroker(), tapiContext, topologyUtils);
+ TapiStringConstants.T0_FULL_MULTILAYER);
+ TapiTopologyImpl tapiTopoImpl = new TapiTopologyImpl(getDataBroker(), tapiContext, topologyUtils, tapiLink);
ListenableFuture<RpcResult<GetTopologyDetailsOutput>> result = tapiTopoImpl.getTopologyDetails(input);
result.addListener(new Runnable() {
@Override
Uuid tp4Uuid = new Uuid(UUID.nameUUIDFromBytes("SPDR-SC1-XPDR1+iOTSi+XPDR1-NETWORK1"
.getBytes(StandardCharsets.UTF_8)).toString());
Uuid link1Uuid =
- new Uuid(UUID.nameUUIDFromBytes("ODTU4-SPDR-SA1-XPDR1-XPDR1-NETWORK1toSPDR-SC1-XPDR1-XPDR1-NETWORK1"
+ new Uuid(UUID.nameUUIDFromBytes("SPDR-SA1-XPDR1+iOTSi+XPDR1-NETWORK1toSPDR-SC1-XPDR1+iOTSi+XPDR1-NETWORK1"
.getBytes(StandardCharsets.UTF_8)).toString());
Uuid link2Uuid =
- new Uuid(UUID.nameUUIDFromBytes("OTU4-SPDR-SA1-XPDR1-XPDR1-NETWORK1toSPDR-SC1-XPDR1-XPDR1-NETWORK1"
+ new Uuid(UUID.nameUUIDFromBytes("SPDR-SA1-XPDR1+eODU+XPDR1-NETWORK1toSPDR-SC1-XPDR1+eODU+XPDR1-NETWORK1"
.getBytes(StandardCharsets.UTF_8)).toString());
List<Link> links = topology.nonnullLink().values().stream()
.filter(l -> l.getName().containsKey(new NameKey("otn link name")))
.sorted((l1, l2) -> l1.getUuid().getValue().compareTo(l2.getUuid().getValue()))
.collect(Collectors.toList());
- checkOtnLink(links.get(0), topoUuid, node1Uuid, node2Uuid, tp1Uuid, tp2Uuid, link1Uuid,
- "ODTU4-SPDR-SA1-XPDR1-XPDR1-NETWORK1toSPDR-SC1-XPDR1-XPDR1-NETWORK1");
- checkOtnLink(links.get(1), topoUuid, node3Uuid, node4Uuid, tp3Uuid, tp4Uuid, link2Uuid,
- "OTU4-SPDR-SA1-XPDR1-XPDR1-NETWORK1toSPDR-SC1-XPDR1-XPDR1-NETWORK1");
+ checkOtnLink(links.get(0), topoUuid, node3Uuid, node4Uuid, tp3Uuid, tp4Uuid, link1Uuid,
+ "SPDR-SA1-XPDR1+iOTSi+XPDR1-NETWORK1toSPDR-SC1-XPDR1+iOTSi+XPDR1-NETWORK1");
+ checkOtnLink(links.get(1), topoUuid, node1Uuid, node2Uuid, tp1Uuid, tp2Uuid, link2Uuid,
+ "SPDR-SA1-XPDR1+eODU+XPDR1-NETWORK1toSPDR-SC1-XPDR1+eODU+XPDR1-NETWORK1");
}
@Test
public void getNodeAndNepsDetailsWhenSuccessful()
throws ExecutionException, InterruptedException {
GetTopologyDetailsInput input = TapiTopologyDataUtils.buildGetTopologyDetailsInput(
- TopologyUtils.T0_FULL_MULTILAYER);
- TapiTopologyImpl tapiTopoImpl = new TapiTopologyImpl(getDataBroker(), tapiContext, topologyUtils);
+ TapiStringConstants.T0_FULL_MULTILAYER);
+ TapiTopologyImpl tapiTopoImpl = new TapiTopologyImpl(getDataBroker(), tapiContext, topologyUtils, tapiLink);
ListenableFuture<RpcResult<GetTopologyDetailsOutput>> result = tapiTopoImpl.getTopologyDetails(input);
result.addListener(new Runnable() {
@Override
for (Node node:topology.getNode().values()) {
String nodeName = node.getName().values().stream().findFirst().get().getValue();
GetNodeDetailsInput input1 = TapiTopologyDataUtils.buildGetNodeDetailsInput(
- TopologyUtils.T0_FULL_MULTILAYER, nodeName);
+ TapiStringConstants.T0_FULL_MULTILAYER, nodeName);
ListenableFuture<RpcResult<GetNodeDetailsOutput>> result1 = tapiTopoImpl.getNodeDetails(input1);
result.addListener(new Runnable() {
@Override
for (OwnedNodeEdgePoint onep:node1.getOwnedNodeEdgePoint().values()) {
String onepName = onep.getName().values().stream().findFirst().get().getValue();
GetNodeEdgePointDetailsInput input2 = TapiTopologyDataUtils.buildGetNodeEdgePointDetailsInput(
- TopologyUtils.T0_FULL_MULTILAYER, nodeName, onepName);
+ TapiStringConstants.T0_FULL_MULTILAYER, nodeName, onepName);
ListenableFuture<RpcResult<GetNodeEdgePointDetailsOutput>> result2
= tapiTopoImpl.getNodeEdgePointDetails(input2);
result.addListener(new Runnable() {
public void getLinkDetailsWhenSuccessful()
throws ExecutionException, InterruptedException {
GetTopologyDetailsInput input = TapiTopologyDataUtils.buildGetTopologyDetailsInput(
- TopologyUtils.T0_FULL_MULTILAYER);
- TapiTopologyImpl tapiTopoImpl = new TapiTopologyImpl(getDataBroker(), tapiContext, topologyUtils);
+ TapiStringConstants.T0_FULL_MULTILAYER);
+ TapiTopologyImpl tapiTopoImpl = new TapiTopologyImpl(getDataBroker(), tapiContext, topologyUtils, tapiLink);
ListenableFuture<RpcResult<GetTopologyDetailsOutput>> result = tapiTopoImpl.getTopologyDetails(input);
result.addListener(new Runnable() {
@Override
for (Link link:topology.getLink().values()) {
String linkName = link.getName().values().stream().findFirst().get().getValue();
GetLinkDetailsInput input1 = TapiTopologyDataUtils.buildGetLinkDetailsInput(
- TopologyUtils.T0_FULL_MULTILAYER, linkName);
+ TapiStringConstants.T0_FULL_MULTILAYER, linkName);
ListenableFuture<RpcResult<GetLinkDetailsOutput>> result1 = tapiTopoImpl.getLinkDetails(input1);
result.addListener(new Runnable() {
@Override
public void getSipDetailsWhenSuccessful()
throws ExecutionException, InterruptedException {
GetServiceInterfacePointListInput input = TapiTopologyDataUtils.buildServiceInterfacePointListInput();
- TapiTopologyImpl tapiTopoImpl = new TapiTopologyImpl(getDataBroker(), tapiContext, topologyUtils);
+ TapiTopologyImpl tapiTopoImpl = new TapiTopologyImpl(getDataBroker(), tapiContext, topologyUtils, tapiLink);
ListenableFuture<RpcResult<GetServiceInterfacePointListOutput>> result = tapiTopoImpl
.getServiceInterfacePointList(input);
result.addListener(new Runnable() {
assertEquals("bad name for the link", linkName, link.getName().get(new NameKey("otn link name")).getValue());
assertEquals("bad uuid for link", linkUuid, link.getUuid());
assertEquals("Available capacity unit should be MBPS",
- CapacityUnit.MBPS, link.getAvailableCapacity().getTotalSize().getUnit());
+ CapacityUnit.GBPS, link.getAvailableCapacity().getTotalSize().getUnit());
String prefix = linkName.split("-")[0];
if ("OTU4".equals(prefix)) {
assertEquals("Available capacity -total size value should be 0",