X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=renderer%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Ftransportpce%2Frenderer%2Fopenroadminterface%2FOpenRoadmInterface221.java;h=9a2c95ff32414053e7c6fde081b6cec74896452f;hb=refs%2Fchanges%2F46%2F100646%2F27;hp=488ccd121b0503fb050d0df35e99b4d223701d96;hpb=e50901c4b06c82b91f136dac09bacce01258d7b2;p=transportpce.git diff --git a/renderer/src/main/java/org/opendaylight/transportpce/renderer/openroadminterface/OpenRoadmInterface221.java b/renderer/src/main/java/org/opendaylight/transportpce/renderer/openroadminterface/OpenRoadmInterface221.java index 488ccd121..9a2c95ff3 100644 --- a/renderer/src/main/java/org/opendaylight/transportpce/renderer/openroadminterface/OpenRoadmInterface221.java +++ b/renderer/src/main/java/org/opendaylight/transportpce/renderer/openroadminterface/OpenRoadmInterface221.java @@ -8,7 +8,6 @@ package org.opendaylight.transportpce.renderer.openroadminterface; -import java.math.BigDecimal; import java.util.ArrayList; import java.util.List; import java.util.Optional; @@ -23,12 +22,13 @@ import org.opendaylight.transportpce.common.openroadminterfaces.OpenRoadmInterfa import org.opendaylight.transportpce.common.openroadminterfaces.OpenRoadmInterfaces; 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.rev210927.mapping.Mapping; +import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev220316.mapping.Mapping; import org.opendaylight.yang.gen.v1.http.org.openroadm.common.types.rev181019.FrequencyGHz; import org.opendaylight.yang.gen.v1.http.org.openroadm.common.types.rev181019.FrequencyTHz; import org.opendaylight.yang.gen.v1.http.org.openroadm.common.types.rev181019.ModulationFormat; import org.opendaylight.yang.gen.v1.http.org.openroadm.common.types.rev181019.PowerDBm; import org.opendaylight.yang.gen.v1.http.org.openroadm.common.types.rev181019.R100G; +import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev181019.OrgOpenroadmDeviceData; import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev181019.interfaces.grp.InterfaceBuilder; import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev181019.interfaces.grp.InterfaceKey; import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev181019.org.openroadm.device.container.OrgOpenroadmDevice; @@ -36,6 +36,7 @@ import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev181019.org.open import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev181019.org.openroadm.device.container.org.openroadm.device.OduConnectionKey; import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev181019.org.openroadm.device.container.org.openroadm.device.RoadmConnections; import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev181019.org.openroadm.device.container.org.openroadm.device.RoadmConnectionsKey; +import org.opendaylight.yang.gen.v1.http.org.openroadm.device.types.rev191129.XpdrNodeTypes; import org.opendaylight.yang.gen.v1.http.org.openroadm.equipment.states.types.rev171215.AdminStates; import org.opendaylight.yang.gen.v1.http.org.openroadm.ethernet.interfaces.rev181019.EthAttributes; import org.opendaylight.yang.gen.v1.http.org.openroadm.ethernet.interfaces.rev181019.Interface1Builder; @@ -57,6 +58,7 @@ import org.opendaylight.yang.gen.v1.http.org.openroadm.optical.transport.interfa import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.common.types.rev171215.ODU4; import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.common.types.rev171215.ODUCTP; import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.common.types.rev171215.ODUTTP; +import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.common.types.rev171215.ODUTTPCTP; import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.common.types.rev171215.OTU4; import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.common.types.rev171215.OduFunctionIdentity; import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.common.types.rev171215.PayloadTypeDef; @@ -68,6 +70,7 @@ import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.odu.interfaces.rev181 import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.otu.interfaces.rev181019.OtuAttributes; import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.otu.interfaces.rev181019.otu.container.OtuBuilder; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; +import org.opendaylight.yangtools.yang.common.Decimal64; import org.opendaylight.yangtools.yang.common.Uint32; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -150,10 +153,9 @@ public class OpenRoadmInterface221 { MediaChannelTrailTerminationPoint.class, spectrumInformation.getIdentifierFromParams(logicalConnPoint, "mc")) .setSupportingInterface(portMap.getSupportingOms()); - McTtpBuilder mcTtpBuilder = new McTtpBuilder() - .setMinFreq(new FrequencyTHz(spectrumInformation.getMinFrequency())) - .setMaxFreq(new FrequencyTHz(spectrumInformation.getMaxFrequency())); + .setMinFreq(new FrequencyTHz(Decimal64.valueOf(spectrumInformation.getMinFrequency()))) + .setMaxFreq(new FrequencyTHz(Decimal64.valueOf(spectrumInformation.getMaxFrequency()))); // Create Interface1 type object required for adding as augmentation org.opendaylight.yang.gen.v1.http.org.openroadm.media.channel.interfaces.rev181019.Interface1Builder @@ -188,8 +190,8 @@ public class OpenRoadmInterface221 { } NmcCtpBuilder nmcCtpIfBuilder = new NmcCtpBuilder() - .setFrequency(new FrequencyTHz(spectrumInformation.getCenterFrequency())) - .setWidth(new FrequencyGHz(spectrumInformation.getWidth())); + .setFrequency(new FrequencyTHz(Decimal64.valueOf(spectrumInformation.getCenterFrequency()))) + .setWidth(new FrequencyGHz(Decimal64.valueOf(spectrumInformation.getWidth()))); // Create Interface1 type object required for adding as augmentation org.opendaylight.yang.gen.v1.http.org.openroadm.network.media.channel.interfaces.rev181019.Interface1Builder @@ -214,9 +216,9 @@ public class OpenRoadmInterface221 { } // OCH interface specific data OchBuilder ocIfBuilder = new OchBuilder() - .setFrequency(new FrequencyTHz(spectrumInformation.getCenterFrequency())) + .setFrequency(new FrequencyTHz(Decimal64.valueOf(spectrumInformation.getCenterFrequency()))) .setRate(R100G.class) - .setTransmitPower(new PowerDBm(new BigDecimal("-5"))) + .setTransmitPower(new PowerDBm(Decimal64.valueOf("-5"))) .setModulationFormat(modulationFormat); Mapping portMap = portMapping.getMapping(nodeId, logicalConnPoint); if (portMap == null) { @@ -252,6 +254,7 @@ public class OpenRoadmInterface221 { throw new OpenRoadmInterfaceException( String.format(MAPPING_ERROR_EXCEPTION_MESSAGE, nodeId, logicalConnPoint)); } + InterfaceBuilder oduInterfaceBldr = createGenericInterfaceBuilder(mapping, OtnOdu.class, logicalConnPoint + "-ODU4"); if (mapping.getSupportingOtu4() != null) { @@ -268,7 +271,13 @@ public class OpenRoadmInterface221 { oduFunction = ODUCTP.class; monitoringMode = MonitoringMode.Monitored; } else { - oduFunction = ODUTTP.class; + // For TPDR it can be both CTP and TTP + if (mapping.getXponderType() == XpdrNodeTypes.Tpdr) { + oduFunction = ODUTTPCTP.class; + // For switch-ponder we still use TTP + } else { + oduFunction = ODUTTP.class; + } monitoringMode = MonitoringMode.Terminated; opu = new OpuBuilder() .setPayloadType(PayloadTypeDef.getDefaultInstance(payloadType)) @@ -487,8 +496,10 @@ public class OpenRoadmInterface221 { public boolean isUsedByXc(String nodeId, String interfaceName, String xc, DeviceTransactionManager deviceTransactionManager) { - InstanceIdentifier xciid = InstanceIdentifier.create(OrgOpenroadmDevice.class) - .child(RoadmConnections.class, new RoadmConnectionsKey(xc)); + InstanceIdentifier xciid = InstanceIdentifier + .builderOfInherited(OrgOpenroadmDeviceData.class, OrgOpenroadmDevice.class) + .child(RoadmConnections.class, new RoadmConnectionsKey(xc)) + .build(); LOG.info("reading xc {} in node {}", xc, nodeId); Optional crossconnection = deviceTransactionManager.getDataFromDevice(nodeId, LogicalDatastoreType.CONFIGURATION, xciid, Timeouts.DEVICE_READ_TIMEOUT, Timeouts.DEVICE_READ_TIMEOUT_UNIT); @@ -513,8 +524,10 @@ public class OpenRoadmInterface221 { public boolean isUsedByOtnXc(String nodeId, String interfaceName, String xc, DeviceTransactionManager deviceTransactionManager) { - InstanceIdentifier xciid = InstanceIdentifier.create(OrgOpenroadmDevice.class) - .child(OduConnection.class, new OduConnectionKey(xc)); + InstanceIdentifier xciid = InstanceIdentifier + .builderOfInherited(OrgOpenroadmDeviceData.class, OrgOpenroadmDevice.class) + .child(OduConnection.class, new OduConnectionKey(xc)) + .build(); LOG.info("reading xc {} in node {}", xc, nodeId); Optional oduConnectionOpt = deviceTransactionManager.getDataFromDevice(nodeId, LogicalDatastoreType.CONFIGURATION, xciid, Timeouts.DEVICE_READ_TIMEOUT, Timeouts.DEVICE_READ_TIMEOUT_UNIT);