package org.opendaylight.transportpce.renderer.openroadminterface;
-import java.math.BigDecimal;
+import java.util.List;
+import org.opendaylight.transportpce.common.StringConstants;
+import org.opendaylight.transportpce.common.device.DeviceTransactionManager;
+import org.opendaylight.transportpce.common.fixedflex.GridConstant;
+import org.opendaylight.transportpce.common.fixedflex.SpectrumInformation;
+import org.opendaylight.transportpce.common.mapping.MappingUtils;
import org.opendaylight.transportpce.common.mapping.PortMapping;
import org.opendaylight.transportpce.common.openroadminterfaces.OpenRoadmInterfaceException;
import org.opendaylight.transportpce.common.openroadminterfaces.OpenRoadmInterfaces;
-import org.opendaylight.transportpce.common.openroadminterfaces.OpenRoadmInterfacesImpl;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.common.types.rev161014.PowerDBm;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.interfaces.grp.InterfaceBuilder;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.interfaces.grp.InterfaceKey;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.equipment.states.types.rev161014.AdminStates;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.ethernet.interfaces.rev161014.EthAttributes;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.ethernet.interfaces.rev161014.Interface1;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.ethernet.interfaces.rev161014.Interface1Builder;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.ethernet.interfaces.rev161014.ethernet.container.EthernetBuilder;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.interfaces.rev161014.EthernetCsmacd;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.interfaces.rev161014.InterfaceType;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.interfaces.rev161014.OpenROADMOpticalMultiplex;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.interfaces.rev161014.OpticalChannel;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.interfaces.rev161014.OpticalTransport;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.interfaces.rev161014.OtnOdu;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.interfaces.rev161014.OtnOtu;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.optical.channel.interfaces.rev161014.OchAttributes;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.optical.channel.interfaces.rev161014.RateIdentity;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.optical.channel.interfaces.rev161014.och.container.OchBuilder;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.optical.transport.interfaces.rev161014.OtsAttributes.FiberType;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.optical.transport.interfaces.rev161014.ots.container.OtsBuilder;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.odu.interfaces.rev161014.ODU4;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.odu.interfaces.rev161014.OduAttributes;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.odu.interfaces.rev161014.odu.container.OduBuilder;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.odu.interfaces.rev161014.opu.OpuBuilder;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.otu.interfaces.rev161014.OTU4;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.otu.interfaces.rev161014.OtuAttributes;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.otu.interfaces.rev161014.otu.container.OtuBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.portmapping.rev170228.network.nodes.Mapping;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev211004.az.api.info.AEndApiInfo;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev211004.az.api.info.ZEndApiInfo;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev220922.mapping.Mapping;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.common.types.rev210924.OpucnTribSlotDef;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
public class OpenRoadmInterfaceFactory {
- private final PortMapping portMapping;
- private final OpenRoadmInterfaces openRoadmInterfaces;
- public OpenRoadmInterfaceFactory(PortMapping portMapping, OpenRoadmInterfaces openRoadmInterfaces) {
- this.portMapping = portMapping;
- this.openRoadmInterfaces = openRoadmInterfaces;
+ private static final String OTN_FUNTIONS_ARE_NOT_SUPPORTED_BY_OPENROADM_MODELS_1_2_1_MSG =
+ "OTN functions are not supported by Openroadm models 1.2.1";
+ private static final String OTN_FUNTIONS_ARE_NOT_SUPPORTED_BY_OPENROADM_MODELS_2_2_1_MSG =
+ "OTN functions are not supported by Openroadm models 2.2.1";
+ private static final Logger LOG = LoggerFactory.getLogger(OpenRoadmInterfaceFactory.class);
+ private final MappingUtils mappingUtils;
+ private final OpenRoadmInterface121 openRoadmInterface121;
+ private final OpenRoadmInterface221 openRoadmInterface221;
+ private final OpenRoadmInterface710 openRoadmInterface710;
+ private final OpenRoadmOtnInterface221 openRoadmOtnInterface221;
+ private final OpenRoadmOtnInterface710 openRoadmOtnInterface710;
+
+ public OpenRoadmInterfaceFactory(MappingUtils mappingUtils, PortMapping portMapping,
+ OpenRoadmInterfaces openRoadmInterfaces) {
+ this.mappingUtils = mappingUtils;
+ this.openRoadmInterface121 = new OpenRoadmInterface121(portMapping, openRoadmInterfaces);
+ this.openRoadmInterface221 = new OpenRoadmInterface221(portMapping, openRoadmInterfaces);
+ this.openRoadmInterface710 = new OpenRoadmInterface710(portMapping, openRoadmInterfaces);
+ this.openRoadmOtnInterface221 = new OpenRoadmOtnInterface221(portMapping, openRoadmInterfaces);
+ this.openRoadmOtnInterface710 = new OpenRoadmOtnInterface710(portMapping, openRoadmInterfaces);
}
public String createOpenRoadmEthInterface(String nodeId, String logicalConnPoint)
- throws OpenRoadmInterfaceException {
- Mapping portMap = this.portMapping.getMapping(nodeId, logicalConnPoint);
- if (portMap == null) {
- throw new OpenRoadmInterfaceException(String.format("Unable to get mapping from PortMapping for node % and"
- + " logical connection port %s", nodeId, logicalConnPoint));
+ throws OpenRoadmInterfaceException {
+
+ switch (mappingUtils.getOpenRoadmVersion(nodeId)) {
+ case StringConstants.OPENROADM_DEVICE_VERSION_1_2_1:
+ return openRoadmInterface121.createOpenRoadmEthInterface(nodeId, logicalConnPoint);
+ case StringConstants.OPENROADM_DEVICE_VERSION_2_2_1:
+ return openRoadmInterface221.createOpenRoadmEthInterface(nodeId, logicalConnPoint);
+ case StringConstants.OPENROADM_DEVICE_VERSION_7_1:
+ // Below method differenciates 100G vs 400G based on supported-if-cap type
+ return openRoadmInterface710.createOpenRoadmEthInterface(nodeId, logicalConnPoint);
+ default:
+ return null;
}
+ }
- // Ethernet interface specific data
- EthernetBuilder ethIfBuilder = new EthernetBuilder();
- ethIfBuilder.setAutoNegotiation(EthAttributes.AutoNegotiation.Enabled);
- ethIfBuilder.setDuplex(EthAttributes.Duplex.Full);
- ethIfBuilder.setFec(EthAttributes.Fec.Off);
- ethIfBuilder.setSpeed(100000L);
- ethIfBuilder.setMtu(9000L);
+ public List<String> createOpenRoadmOchInterfaces(String nodeId, String logicalConnPoint,
+ SpectrumInformation spectrumInformation)
+ throws OpenRoadmInterfaceException {
+ switch (mappingUtils.getOpenRoadmVersion(nodeId)) {
+ case StringConstants.OPENROADM_DEVICE_VERSION_1_2_1:
+ return openRoadmInterface121.createOpenRoadmOchInterfaces(nodeId, logicalConnPoint,
+ spectrumInformation);
+ case StringConstants.OPENROADM_DEVICE_VERSION_2_2_1:
+ return openRoadmInterface221.createFlexOCH(nodeId, logicalConnPoint, spectrumInformation);
+ default:
+ return null;
+ }
+ }
- InterfaceBuilder ethInterfaceBldr = createGenericInterfaceBuilder(portMap, EthernetCsmacd.class,
- logicalConnPoint + "-ETHERNET");
- // Create Interface1 type object required for adding as augmentation
- Interface1Builder ethIf1Builder = new Interface1Builder();
- ethInterfaceBldr.addAugmentation(Interface1.class, ethIf1Builder.setEthernet(ethIfBuilder.build()).build());
+ /**
+ * This methods creates an OCH interface on the given termination point on Roadm.
+ *
+ * @param nodeId node ID
+ * @param logicalConnPoint logical connection point
+ * @param spectrumInformation spectrum information.
+ * @return Name of the interface if successful, otherwise return null.
+ * @throws OpenRoadmInterfaceException OpenRoadm interface exception
+ */
+ public String createOpenRoadmOchInterface(String nodeId, String logicalConnPoint,
+ SpectrumInformation spectrumInformation) throws OpenRoadmInterfaceException {
+ switch (mappingUtils.getOpenRoadmVersion(nodeId)) {
+ case StringConstants.OPENROADM_DEVICE_VERSION_1_2_1:
+ return openRoadmInterface121.createOpenRoadmOchInterface(nodeId, logicalConnPoint,
+ spectrumInformation);
+ case StringConstants.OPENROADM_DEVICE_VERSION_2_2_1:
+ return openRoadmInterface221.createOpenRoadmOchInterface(nodeId, logicalConnPoint,
+ spectrumInformation);
+ case StringConstants.OPENROADM_DEVICE_VERSION_7_1:
+ return openRoadmInterface710.createOpenRoadmOchOtsiOtsigroupInterface(nodeId, logicalConnPoint,
+ spectrumInformation);
+ default:
+ return null;
+ }
+ }
+
+ /**
+ * This methods creates an ODU interface on the given termination point.
+ *
+ * @param nodeId node ID
+ * @param logicalConnPoint logical connection point
+ * @param isCTP to distinguish with a TTP odu interface
+ * @param apiInfoA sapi and dapi for A end of the service
+ * @param apiInfoZ sapi and dapi for Z end of the service
+ * @param payloadType payload type of the opu when terminated
+ * @return Name of the interface if successful, otherwise return null.
+ * @throws OpenRoadmInterfaceException OpenRoadm interface exception
+ */
- // Post interface on the device
- this.openRoadmInterfaces.postInterface(nodeId, ethInterfaceBldr);
+ public String createOpenRoadmOdu4HOInterface(String nodeId, String logicalConnPoint, boolean isCTP,
+ AEndApiInfo apiInfoA, ZEndApiInfo apiInfoZ, String payloadType)
+ throws OpenRoadmInterfaceException {
+
+ switch (mappingUtils.getOpenRoadmVersion(nodeId)) {
+ case StringConstants.OPENROADM_DEVICE_VERSION_1_2_1:
+ return openRoadmInterface121.createOpenRoadmOdu4Interface(nodeId, logicalConnPoint);
+ case StringConstants.OPENROADM_DEVICE_VERSION_2_2_1:
+ return openRoadmInterface221.createOpenRoadmOdu4HOInterface(nodeId, logicalConnPoint, isCTP,
+ apiInfoA, apiInfoZ, payloadType);
+ case StringConstants.OPENROADM_DEVICE_VERSION_7_1:
+ return openRoadmInterface710.createOpenRoadmOdu4OducnOduflex(nodeId, logicalConnPoint,
+ apiInfoA, apiInfoZ);
+ default:
+ return null;
+ }
+ }
- // Post the equipment-state change on the device circuit-pack
- this.openRoadmInterfaces.postEquipmentState(nodeId, portMap.getSupportingCircuitPackName(), true);
+ public String createOpenRoadmOducn(String nodeId, String logicalConnPoint)
+ throws OpenRoadmInterfaceException {
- return ethInterfaceBldr.getName();
+ switch (mappingUtils.getOpenRoadmVersion(nodeId)) {
+ case StringConstants.OPENROADM_DEVICE_VERSION_7_1:
+ return openRoadmInterface710.createOpenRoadmOducnInterface(nodeId, logicalConnPoint);
+ default:
+ return null;
+ }
}
/**
- * This methods creates an OCH interface on the given termination point on
- * Roadm.
- *
- * @param waveNumber
- * wavelength number of the OCH interface.
+ * This methods creates an OTU interface on the given termination point.
*
+ * @param nodeId node ID
+ * @param logicalConnPoint logical connection point
+ * @param supportOchInterface supporting OCH interface
+ * @param apiInfoA sapi and dapi for A end of the service
+ * @param apiInfoZ sapi and dapi for Z end of the service
* @return Name of the interface if successful, otherwise return null.
+ * @throws OpenRoadmInterfaceException OpenRoadm interface exception
*/
- public String createOpenRoadmOchInterface(String nodeId, String logicalConnPoint, Long waveNumber)
- throws OpenRoadmInterfaceException {
- Mapping portMap = this.portMapping.getMapping(nodeId, logicalConnPoint);
- if (portMap == null) {
- throw new OpenRoadmInterfaceException(String.format("Unable to get mapping from PortMapping for node %s and"
- + " logical connection port %s", nodeId, logicalConnPoint));
+ public String createOpenRoadmOtu4Interface(String nodeId, String logicalConnPoint, String supportOchInterface,
+ AEndApiInfo apiInfoA, ZEndApiInfo apiInfoZ)
+ throws OpenRoadmInterfaceException {
+
+ switch (mappingUtils.getOpenRoadmVersion(nodeId)) {
+ case StringConstants.OPENROADM_DEVICE_VERSION_1_2_1:
+ return openRoadmInterface121
+ .createOpenRoadmOtu4Interface(nodeId, logicalConnPoint, supportOchInterface);
+ case StringConstants.OPENROADM_DEVICE_VERSION_2_2_1:
+ return openRoadmInterface221.createOpenRoadmOtu4Interface(nodeId, logicalConnPoint, supportOchInterface,
+ apiInfoA, apiInfoZ);
+ case StringConstants.OPENROADM_DEVICE_VERSION_7_1:
+ return openRoadmInterface710.createOpenRoadmOtu4OtucnInterface(nodeId, logicalConnPoint,
+ supportOchInterface, apiInfoA, apiInfoZ);
+ default:
+ return null;
}
- // Create generic interface
- InterfaceBuilder ochInterfaceBldr = createGenericInterfaceBuilder(portMap, OpticalChannel.class,
- createOpenRoadmOchInterfaceName(logicalConnPoint, waveNumber));
+ }
- // OCH interface specific data
- OchBuilder ocIfBuilder = new OchBuilder();
- ocIfBuilder.setWavelengthNumber(waveNumber);
- // Add supporting OMS interface
- if (portMap.getSupportingOms() != null) {
- ochInterfaceBldr.setSupportingInterface(portMap.getSupportingOms());
+ public String createOpenRoadmOchInterfaceName(String logicalConnectionPoint, String spectralSlotNumber) {
+ return String.join(GridConstant.NAME_PARAMETERS_SEPARATOR,logicalConnectionPoint, spectralSlotNumber);
+ }
+
+ public String createOpenRoadmOmsInterface(String nodeId, Mapping mapping) throws OpenRoadmInterfaceException {
+ switch (mappingUtils.getOpenRoadmVersion(nodeId)) {
+ case StringConstants.OPENROADM_DEVICE_VERSION_1_2_1:
+ return openRoadmInterface121.createOpenRoadmOmsInterface(nodeId, mapping);
+ case StringConstants.OPENROADM_DEVICE_VERSION_2_2_1:
+ return openRoadmInterface221.createOpenRoadmOmsInterface(nodeId, mapping);
+ default:
+ return null;
}
- // Create Interface1 type object required for adding as augmentation
- // TODO look at imports of different versions of class
- org.opendaylight.yang.gen.v1.http.org.openroadm.optical.channel.interfaces.rev161014
- .Interface1Builder ochIf1Builder = new org.opendaylight.yang.gen.v1.http.org.openroadm.optical.channel
- .interfaces.rev161014.Interface1Builder();
- ochInterfaceBldr.addAugmentation(
- org.opendaylight.yang.gen.v1.http.org.openroadm.optical.channel.interfaces.rev161014.Interface1.class,
- ochIf1Builder.setOch(ocIfBuilder.build()).build());
-
- // Post interface on the device
- this.openRoadmInterfaces.postInterface(nodeId, ochInterfaceBldr);
-
- // Post the equipment-state change on the device circuit-pack if xpdr node
- if (portMap.getLogicalConnectionPoint().contains(OpenRoadmInterfacesImpl.NETWORK_TOKEN)) {
- this.openRoadmInterfaces.postEquipmentState(nodeId, portMap.getSupportingCircuitPackName(), true);
+ }
+
+ public String createOpenRoadmOtsInterface(String nodeId, Mapping mapping) throws OpenRoadmInterfaceException {
+ switch (mappingUtils.getOpenRoadmVersion(nodeId)) {
+ case StringConstants.OPENROADM_DEVICE_VERSION_1_2_1:
+ return openRoadmInterface121.createOpenRoadmOtsInterface(nodeId, mapping);
+ case StringConstants.OPENROADM_DEVICE_VERSION_2_2_1:
+ return openRoadmInterface221.createOpenRoadmOtsInterface(nodeId, mapping);
+ default:
+ return null;
}
- return ochInterfaceBldr.getName();
}
- public String createOpenRoadmOchInterface(String nodeId, String logicalConnPoint, Long waveNumber, Class<
- ? extends RateIdentity> rate, OchAttributes.ModulationFormat format) throws OpenRoadmInterfaceException {
- Mapping portMap = this.portMapping.getMapping(nodeId, logicalConnPoint);
- if (portMap == null) {
- throw new OpenRoadmInterfaceException(String.format("Unable to get mapping from PortMapping for node %s and"
- + " logical connection port %s", nodeId, logicalConnPoint));
+ public boolean isUsedByXc(String nodeId, String interfaceName, String xc,
+ DeviceTransactionManager deviceTransactionManager) {
+ switch (mappingUtils.getOpenRoadmVersion(nodeId)) {
+ case StringConstants.OPENROADM_DEVICE_VERSION_1_2_1:
+ return openRoadmInterface121.isUsedByXc(nodeId, interfaceName, xc, deviceTransactionManager);
+ case StringConstants.OPENROADM_DEVICE_VERSION_2_2_1:
+ return openRoadmInterface221.isUsedByXc(nodeId, interfaceName, xc, deviceTransactionManager);
+ default:
+ return false;
}
+ }
- // OCH interface specific data
- OchBuilder ocIfBuilder = new OchBuilder();
- ocIfBuilder.setWavelengthNumber(waveNumber);
- ocIfBuilder.setModulationFormat(format);
- ocIfBuilder.setRate(rate);
- ocIfBuilder.setTransmitPower(new PowerDBm(new BigDecimal("-5")));
-
- // Create Interface1 type object required for adding as augmentation
- // TODO look at imports of different versions of class
- org.opendaylight.yang.gen.v1.http.org.openroadm.optical.channel.interfaces.rev161014
- .Interface1Builder ochIf1Builder = new org.opendaylight.yang.gen.v1.http.org.openroadm.optical.channel
- .interfaces.rev161014.Interface1Builder();
- // Create generic interface
- InterfaceBuilder ochInterfaceBldr = createGenericInterfaceBuilder(portMap, OpticalChannel.class,
- createOpenRoadmOchInterfaceName(logicalConnPoint, waveNumber));
- ochInterfaceBldr.addAugmentation(
- org.opendaylight.yang.gen.v1.http.org.openroadm.optical.channel.interfaces.rev161014.Interface1.class,
- ochIf1Builder.setOch(ocIfBuilder.build()).build());
-
- // Post interface on the device
- this.openRoadmInterfaces.postInterface(nodeId, ochInterfaceBldr);
-
- // Post the equipment-state change on the device circuit-pack if xpdr node
- if (portMap.getLogicalConnectionPoint().contains(OpenRoadmInterfacesImpl.NETWORK_TOKEN)) {
- this.openRoadmInterfaces.postEquipmentState(nodeId, portMap.getSupportingCircuitPackName(), true);
+ public boolean isUsedByOtnXc(String nodeId, String interfaceName, String xc,
+ DeviceTransactionManager deviceTransactionManager) {
+ switch (mappingUtils.getOpenRoadmVersion(nodeId)) {
+ case StringConstants.OPENROADM_DEVICE_VERSION_1_2_1:
+ LOG.error(OTN_FUNTIONS_ARE_NOT_SUPPORTED_BY_OPENROADM_MODELS_1_2_1_MSG);
+ return false;
+ case StringConstants.OPENROADM_DEVICE_VERSION_2_2_1:
+ return openRoadmInterface221.isUsedByOtnXc(nodeId, interfaceName, xc, deviceTransactionManager);
+ default:
+ return false;
}
- return ochInterfaceBldr.getName();
}
- public String createOpenRoadmOchInterfaceName(String logicalConnectionPoint, Long waveNumber) {
- return logicalConnectionPoint + "-" + waveNumber;
+ public String createOpenRoadmEth1GInterface(String nodeId,String logicalConnPoint)
+ throws OpenRoadmInterfaceException {
+
+ switch (mappingUtils.getOpenRoadmVersion(nodeId)) {
+ case StringConstants.OPENROADM_DEVICE_VERSION_1_2_1:
+ LOG.error(OTN_FUNTIONS_ARE_NOT_SUPPORTED_BY_OPENROADM_MODELS_1_2_1_MSG);
+ return null;
+ case StringConstants.OPENROADM_DEVICE_VERSION_2_2_1:
+ return openRoadmOtnInterface221.createOpenRoadmEth1GInterface(nodeId, logicalConnPoint);
+ default:
+ return null;
+ }
}
- /**
- * This methods creates an ODU interface on the given termination point.
- *
- *
- * @return Name of the interface if successful, otherwise return null.
- */
+ public String createOpenRoadmEth10GInterface(String nodeId, String logicalConnPoint)
+ throws OpenRoadmInterfaceException {
+
+ switch (mappingUtils.getOpenRoadmVersion(nodeId)) {
+ case StringConstants.OPENROADM_DEVICE_VERSION_1_2_1:
+ LOG.error(OTN_FUNTIONS_ARE_NOT_SUPPORTED_BY_OPENROADM_MODELS_1_2_1_MSG);
+ return null;
+ case StringConstants.OPENROADM_DEVICE_VERSION_2_2_1:
+ return openRoadmOtnInterface221.createOpenRoadmEth10GInterface(nodeId, logicalConnPoint);
+ default:
+ return null;
+ }
+ }
- public String createOpenRoadmOdu4Interface(String nodeId, String logicalConnPoint, String supportingOtuInterface)
- throws OpenRoadmInterfaceException {
- Mapping portMap = this.portMapping.getMapping(nodeId, logicalConnPoint);
- if (portMap == null) {
- throw new OpenRoadmInterfaceException(String.format("Unable to get mapping from PortMapping for node % and"
- + " logical connection port %s", nodeId, logicalConnPoint));
+ public String createOpenRoadmEth100GInterface(String nodeId, String logicalConnPoint)
+ throws OpenRoadmInterfaceException {
+
+ switch (mappingUtils.getOpenRoadmVersion(nodeId)) {
+ case StringConstants.OPENROADM_DEVICE_VERSION_1_2_1:
+ LOG.error(OTN_FUNTIONS_ARE_NOT_SUPPORTED_BY_OPENROADM_MODELS_1_2_1_MSG);
+ return null;
+ case StringConstants.OPENROADM_DEVICE_VERSION_2_2_1:
+ LOG.warn("Use Ethernet interface creation for 2.2.1, instead this method of Ether 100G");
+ return openRoadmInterface221.createOpenRoadmEthInterface(nodeId, logicalConnPoint);
+ case StringConstants.OPENROADM_DEVICE_VERSION_7_1:
+ return openRoadmOtnInterface710.createOpenRoadmEth100GInterface(nodeId, logicalConnPoint);
+ default:
+ return null;
}
- InterfaceBuilder oduInterfaceBldr = createGenericInterfaceBuilder(portMap, OtnOdu.class, logicalConnPoint
- + "-ODU");
- oduInterfaceBldr.setSupportingInterface(supportingOtuInterface);
-
- // ODU interface specific data
- OduBuilder oduIfBuilder = new OduBuilder();
- oduIfBuilder.setRate(ODU4.class);
- oduIfBuilder.setMonitoringMode(OduAttributes.MonitoringMode.Terminated);
-
- // Set Opu attributes
- OpuBuilder opuBldr = new OpuBuilder();
- opuBldr.setPayloadType("07");
- opuBldr.setExpPayloadType("07");
- oduIfBuilder.setOpu(opuBldr.build());
-
- // Create Interface1 type object required for adding as augmentation
- // TODO look at imports of different versions of class
- org.opendaylight.yang.gen.v1.http.org.openroadm.otn.odu.interfaces.rev161014.Interface1Builder oduIf1Builder =
- new org.opendaylight.yang.gen.v1.http.org.openroadm.otn.odu.interfaces.rev161014.Interface1Builder();
- oduInterfaceBldr.addAugmentation(
- org.opendaylight.yang.gen.v1.http.org.openroadm.otn.odu.interfaces.rev161014.Interface1.class, oduIf1Builder
- .setOdu(oduIfBuilder.build()).build());
-
- // Post interface on the device
- this.openRoadmInterfaces.postInterface(nodeId, oduInterfaceBldr);
- return oduInterfaceBldr.getName();
}
- /**
- * This methods creates an OTU interface on the given termination point.
- *
- *
- * @return Name of the interface if successful, otherwise return null.
- * @throws OpenRoadmInterfaceException OpenRoadmInterfaceException
- */
+ public String createOpenRoadmOdu0Interface(String nodeId, String logicalConnPoint, String servicename,
+ boolean isCTP, int tribPortNumber, int tribSlotIndex, AEndApiInfo apiInfoA, ZEndApiInfo apiInfoZ,
+ String payLoadType)
+ throws OpenRoadmInterfaceException {
+
+ switch (mappingUtils.getOpenRoadmVersion(nodeId)) {
+ case StringConstants.OPENROADM_DEVICE_VERSION_1_2_1:
+ LOG.error(OTN_FUNTIONS_ARE_NOT_SUPPORTED_BY_OPENROADM_MODELS_1_2_1_MSG);
+ return null;
+ case StringConstants.OPENROADM_DEVICE_VERSION_2_2_1:
+ return openRoadmOtnInterface221.createOpenRoadmOdu0Interface(nodeId, logicalConnPoint, servicename,
+ isCTP, tribPortNumber, tribSlotIndex, apiInfoA, apiInfoZ, payLoadType);
+ default:
+ return null;
+ }
+ }
+
+ public String createOpenRoadmOdu2Interface(String nodeId, String logicalConnPoint, String servicename,
+ boolean isCTP, int tribPortNumber, int tribSlotIndex, AEndApiInfo apiInfoA, ZEndApiInfo apiInfoZ,
+ String payLoadType)
+ throws OpenRoadmInterfaceException {
+ switch (mappingUtils.getOpenRoadmVersion(nodeId)) {
+ case StringConstants.OPENROADM_DEVICE_VERSION_1_2_1:
+ LOG.error(OTN_FUNTIONS_ARE_NOT_SUPPORTED_BY_OPENROADM_MODELS_1_2_1_MSG);
+ return null;
+ case StringConstants.OPENROADM_DEVICE_VERSION_2_2_1:
+ return openRoadmOtnInterface221.createOpenRoadmOdu2Interface(nodeId, logicalConnPoint, servicename,
+ isCTP, tribPortNumber, tribSlotIndex, apiInfoA, apiInfoZ, payLoadType);
+ default:
+ return null;
+ }
+ }
+
+ public String createOpenRoadmOdu2eInterface(String nodeId, String logicalConnPoint, String servicename,
+ boolean isCTP, int tribPortNumber, int tribSlotIndex, AEndApiInfo apiInfoA, ZEndApiInfo apiInfoZ,
+ String payLoadType)
+ throws OpenRoadmInterfaceException {
+
+ switch (mappingUtils.getOpenRoadmVersion(nodeId)) {
+ case StringConstants.OPENROADM_DEVICE_VERSION_1_2_1:
+ LOG.error(OTN_FUNTIONS_ARE_NOT_SUPPORTED_BY_OPENROADM_MODELS_1_2_1_MSG);
+ return null;
+ case StringConstants.OPENROADM_DEVICE_VERSION_2_2_1:
+ return openRoadmOtnInterface221.createOpenRoadmOdu2eInterface(nodeId, logicalConnPoint, servicename,
+ isCTP, tribPortNumber, tribSlotIndex, apiInfoA, apiInfoZ, payLoadType);
+ default:
+ return null;
+ }
+ }
- public String createOpenRoadmOtu4Interface(String nodeId, String logicalConnPoint, String supportOchInterface)
+ public String createOpenRoadmOtnOdu4LoInterface(String nodeId, String logicalConnPoint, String serviceName,
+ String payLoad, boolean isNetworkPort, OpucnTribSlotDef minTribSlotNumber,
+ OpucnTribSlotDef maxTribSlotNumber)
throws OpenRoadmInterfaceException {
- Mapping portMap = this.portMapping.getMapping(nodeId, logicalConnPoint);
- if (portMap == null) {
- throw new OpenRoadmInterfaceException(String.format("Unable to get mapping from PortMapping for node % and"
- + " logical connection port %s", nodeId, logicalConnPoint));
+
+ switch (mappingUtils.getOpenRoadmVersion(nodeId)) {
+ case StringConstants.OPENROADM_DEVICE_VERSION_1_2_1:
+ LOG.error(OTN_FUNTIONS_ARE_NOT_SUPPORTED_BY_OPENROADM_MODELS_1_2_1_MSG);
+ return null;
+ case StringConstants.OPENROADM_DEVICE_VERSION_2_2_1:
+ LOG.error(OTN_FUNTIONS_ARE_NOT_SUPPORTED_BY_OPENROADM_MODELS_2_2_1_MSG);
+ return null;
+ case StringConstants.OPENROADM_DEVICE_VERSION_7_1:
+ return openRoadmOtnInterface710.createOpenRoadmOdu4Interface(nodeId, logicalConnPoint, serviceName,
+ payLoad, isNetworkPort, minTribSlotNumber, maxTribSlotNumber);
+ default:
+ return null;
}
- // Create generic interface
- InterfaceBuilder otuInterfaceBldr = createGenericInterfaceBuilder(portMap, OtnOtu.class, logicalConnPoint
- + "-OTU");
- otuInterfaceBldr.setSupportingInterface(supportOchInterface);
-
- // OTU interface specific data
- OtuBuilder otuIfBuilder = new OtuBuilder();
- otuIfBuilder.setFec(OtuAttributes.Fec.Scfec);
- otuIfBuilder.setRate(OTU4.class);
-
- // Create Interface1 type object required for adding as augmentation
- // TODO look at imports of different versions of class
- org.opendaylight.yang.gen.v1.http.org.openroadm.otn.otu.interfaces.rev161014.Interface1Builder otuIf1Builder =
- new org.opendaylight.yang.gen.v1.http.org.openroadm.otn.otu.interfaces.rev161014.Interface1Builder();
- otuInterfaceBldr.addAugmentation(
- org.opendaylight.yang.gen.v1.http.org.openroadm.otn.otu.interfaces.rev161014.Interface1.class, otuIf1Builder
- .setOtu(otuIfBuilder.build()).build());
-
- // Post interface on the device
- this.openRoadmInterfaces.postInterface(nodeId, otuInterfaceBldr);
- return otuInterfaceBldr.getName();
}
- public String createOpenRoadmOtsInterface(String nodeId, Mapping mapping) throws OpenRoadmInterfaceException {
- if (mapping.getSupportingOts() == null) {
- // Create generic interface
- InterfaceBuilder otsInterfaceBldr = createGenericInterfaceBuilder(mapping, OpticalTransport.class, "OTS-"
- + mapping.getLogicalConnectionPoint());
- // OTS interface augmentation specific data
- OtsBuilder otsIfBuilder = new OtsBuilder();
- otsIfBuilder.setFiberType(FiberType.Smf);
-
- // Create Interface1 type object required for adding as
- // augmentation
- org.opendaylight.yang.gen.v1.http.org.openroadm.optical.transport.interfaces.rev161014
- .Interface1Builder otsIf1Builder = new org.opendaylight.yang.gen.v1.http.org.openroadm.optical.transport
- .interfaces.rev161014.Interface1Builder();
- otsInterfaceBldr.addAugmentation(
- org.opendaylight.yang.gen.v1.http.org.openroadm.optical.transport.interfaces.rev161014.Interface1.class,
- otsIf1Builder.setOts(otsIfBuilder.build()).build());
- this.openRoadmInterfaces.postInterface(nodeId, otsInterfaceBldr);
- this.portMapping.updateMapping(nodeId, mapping);
- return otsInterfaceBldr.build().getName();
- } else {
- return mapping.getSupportingOts();
+
+ public String createOpenRoadmOtnOdu4Interface(String anodeId, String alogicalConnPoint,
+ String asupportingOtuInterface, String znodeId, String zlogicalConnPoint)
+ throws OpenRoadmInterfaceException {
+ switch (mappingUtils.getOpenRoadmVersion(anodeId)) {
+ case StringConstants.OPENROADM_DEVICE_VERSION_2_2_1:
+ return openRoadmInterface221
+ .createOpenRoadmOtnOdu4Interface(anodeId, alogicalConnPoint, asupportingOtuInterface,
+ znodeId, zlogicalConnPoint);
+ default:
+ return null;
}
}
- public String createOpenRoadmOmsInterface(String nodeId, Mapping mapping) throws OpenRoadmInterfaceException {
- if (mapping.getSupportingOms() == null) {
- // Create generic interface
- InterfaceBuilder omsInterfaceBldr = createGenericInterfaceBuilder(mapping, OpenROADMOpticalMultiplex.class,
- "OMS-" + mapping.getLogicalConnectionPoint());
- if (mapping.getSupportingOts() != null) {
- omsInterfaceBldr.setSupportingInterface(mapping.getSupportingOts());
- } else {
- throw new OpenRoadmInterfaceException(String.format("Unable to get ots interface from mapping % - %",
- nodeId, mapping.getLogicalConnectionPoint()));
- }
- this.openRoadmInterfaces.postInterface(nodeId, omsInterfaceBldr);
- this.portMapping.updateMapping(nodeId, mapping);
- return omsInterfaceBldr.build().getName();
- } else {
- return mapping.getSupportingOms();
+ public String createOpenRoadmOtnOduc4Interface(String nodeId, String logicalConnPoint,
+ String supportingOtuInterface)
+ throws OpenRoadmInterfaceException {
+ switch (mappingUtils.getOpenRoadmVersion(nodeId)) {
+ case StringConstants.OPENROADM_DEVICE_VERSION_7_1:
+ return openRoadmInterface710
+ .createOpenRoadmOtnOducnInterface(nodeId, logicalConnPoint, supportingOtuInterface);
+ default:
+ return null;
}
}
- private InterfaceBuilder createGenericInterfaceBuilder(Mapping portMap, Class<? extends InterfaceType> type,
- String key) {
- InterfaceBuilder interfaceBuilder = new InterfaceBuilder();
- interfaceBuilder.setDescription(" TBD ");
- interfaceBuilder.setCircuitId(" TBD ");
- interfaceBuilder.setSupportingCircuitPackName(portMap.getSupportingCircuitPackName());
- interfaceBuilder.setSupportingPort(portMap.getSupportingPort());
- interfaceBuilder.setAdministrativeState(AdminStates.InService);
- interfaceBuilder.setType(type);
- interfaceBuilder.setName(key);
- interfaceBuilder.withKey(new InterfaceKey(key));
- return interfaceBuilder;
+ public String createOpenRoadmOtnOducnInterface(String anodeId, String alogicalConnPoint,
+ String asupportingOtuInterface, String znodeId, String zlogicalConnPoint)
+ throws OpenRoadmInterfaceException {
+ switch (mappingUtils.getOpenRoadmVersion(anodeId)) {
+ case StringConstants.OPENROADM_DEVICE_VERSION_7_1:
+ return openRoadmInterface710
+ .createOpenRoadmOtnOducnInterface(anodeId, alogicalConnPoint, asupportingOtuInterface,
+ znodeId, zlogicalConnPoint);
+ default:
+ return null;
+ }
}
}