X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=renderer%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Ftransportpce%2Frenderer%2Fopenroadminterface%2FOpenRoadmInterface710.java;h=cd72a036fb08ea37d42d5677cceb72b1a46eac4d;hb=6a0209f13ac0bb62053128e4a2281871caba91de;hp=38897a4dba5cea500d383c258d2d15c700a7ae51;hpb=0332192c76317e005a52f9c5fe6f42328f92f001;p=transportpce.git diff --git a/renderer/src/main/java/org/opendaylight/transportpce/renderer/openroadminterface/OpenRoadmInterface710.java b/renderer/src/main/java/org/opendaylight/transportpce/renderer/openroadminterface/OpenRoadmInterface710.java index 38897a4db..cd72a036f 100644 --- a/renderer/src/main/java/org/opendaylight/transportpce/renderer/openroadminterface/OpenRoadmInterface710.java +++ b/renderer/src/main/java/org/opendaylight/transportpce/renderer/openroadminterface/OpenRoadmInterface710.java @@ -20,7 +20,9 @@ import org.opendaylight.transportpce.common.fixedflex.SpectrumInformation; import org.opendaylight.transportpce.common.mapping.PortMapping; import org.opendaylight.transportpce.common.openroadminterfaces.OpenRoadmInterfaceException; import org.opendaylight.transportpce.common.openroadminterfaces.OpenRoadmInterfaces; -import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev201012.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.rev220114.mapping.Mapping; import org.opendaylight.yang.gen.v1.http.org.openroadm.common.attributes.rev200327.TrailTraceOther.TimDetectMode; import org.opendaylight.yang.gen.v1.http.org.openroadm.common.attributes.rev200327.parent.odu.allocation.ParentOduAllocationBuilder; import org.opendaylight.yang.gen.v1.http.org.openroadm.common.attributes.rev200327.parent.odu.allocation.parent.odu.allocation.trib.slots.choice.OpucnBuilder; @@ -44,6 +46,7 @@ import org.opendaylight.yang.gen.v1.http.org.openroadm.interfaces.rev191129.OtnO import org.opendaylight.yang.gen.v1.http.org.openroadm.interfaces.rev191129.Otsi; import org.opendaylight.yang.gen.v1.http.org.openroadm.interfaces.rev191129.OtsiGroup; import org.opendaylight.yang.gen.v1.http.org.openroadm.maintenance.loopback.rev191129.maint.loopback.MaintLoopbackBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.maintenance.testsignal.rev200529.maint.testsignal.MaintTestsignal.TestPattern; import org.opendaylight.yang.gen.v1.http.org.openroadm.maintenance.testsignal.rev200529.maint.testsignal.MaintTestsignalBuilder; import org.opendaylight.yang.gen.v1.http.org.openroadm.optical.channel.tributary.signal.interfaces.rev200529.otsi.attributes.FlexoBuilder; import org.opendaylight.yang.gen.v1.http.org.openroadm.optical.channel.tributary.signal.interfaces.rev200529.otsi.container.OtsiBuilder; @@ -68,6 +71,7 @@ import org.opendaylight.yangtools.yang.common.Uint8; public class OpenRoadmInterface710 { private static final String MAPPING_ERROR_EXCEPTION_MESSAGE = "Unable to get mapping from PortMapping for node % and logical connection port %s"; + private static final String ODUC4 = "-ODUC4"; private final PortMapping portMapping; private final OpenRoadmInterfaces openRoadmInterfaces; @@ -177,7 +181,7 @@ public class OpenRoadmInterface710 { // Create generic interface InterfaceBuilder otsiGroupInterfaceBldr = createGenericInterfaceBuilder(portMap, OtsiGroup.class, - logicalConnPoint + "-OTSI-GROUP"); + logicalConnPoint + String.join("-","", "OTSIGROUP", "400G")); // Create a list List listSupportingOtsiInterface = new ArrayList<>(); @@ -201,10 +205,10 @@ public class OpenRoadmInterface710 { } public String createOpenRoadmOtucnInterface(String nodeId, String logicalConnPoint, - String supportingOtsiGroupInterface) + String supportingOtsiGroupInterface, AEndApiInfo apiInfoA, ZEndApiInfo apiInfoZ) throws OpenRoadmInterfaceException { - Mapping portMap = portMapping.getMapping(nodeId, logicalConnPoint); - if (portMap == null) { + Mapping mapping = portMapping.getMapping(nodeId, logicalConnPoint); + if (mapping == null) { throw new OpenRoadmInterfaceException( String.format(MAPPING_ERROR_EXCEPTION_MESSAGE, nodeId, logicalConnPoint)); @@ -220,8 +224,20 @@ public class OpenRoadmInterface710 { .setDegmIntervals(Uint8.valueOf(2)) .setDegthrPercentage(Uint16.valueOf(100)) .setMaintLoopback(maintLoopbackBuilder.build()); + if (apiInfoA != null) { + otuBuilder.setTxSapi(apiInfoA.getSapi()) + .setTxDapi(apiInfoA.getDapi()) + .setExpectedSapi(apiInfoA.getExpectedSapi()) + .setExpectedDapi(apiInfoA.getExpectedDapi()); + } + if (apiInfoZ != null) { + otuBuilder.setTxSapi(apiInfoZ.getSapi()) + .setTxDapi(apiInfoZ.getDapi()) + .setExpectedSapi(apiInfoZ.getExpectedSapi()) + .setExpectedDapi(apiInfoZ.getExpectedDapi()); + } - InterfaceBuilder otuInterfaceBuilder = createGenericInterfaceBuilder(portMap, OtnOtu.class, + InterfaceBuilder otuInterfaceBuilder = createGenericInterfaceBuilder(mapping, OtnOtu.class, logicalConnPoint + "-OTUC4"); // Create a list @@ -236,19 +252,70 @@ public class OpenRoadmInterface710 { // Post interface on the device openRoadmInterfaces.postInterface(nodeId, otuInterfaceBuilder); - // Post the equipment-state change on the device circuit-pack if xpdr node - if (portMap.getLogicalConnectionPoint().contains(StringConstants.NETWORK_TOKEN)) { - this.openRoadmInterfaces.postEquipmentState(nodeId, portMap.getSupportingCircuitPackName(), true); + if (mapping.getLogicalConnectionPoint().contains(StringConstants.NETWORK_TOKEN)) { + this.openRoadmInterfaces.postEquipmentState(nodeId, mapping.getSupportingCircuitPackName(), true); } - + this.portMapping.updateMapping(nodeId, mapping); return otuInterfaceBuilder.getName(); + } + public String createOpenRoadmOducnInterface(String nodeId, String logicalConnPoint) + throws OpenRoadmInterfaceException { + Mapping mapping = portMapping.getMapping(nodeId, logicalConnPoint); + if (mapping == null) { + throw new OpenRoadmInterfaceException( + String.format(MAPPING_ERROR_EXCEPTION_MESSAGE, + nodeId, logicalConnPoint)); + } + // Create ODUcn object + // Start with OPU object + // OPU payload + OpuBuilder opuBuilder = new OpuBuilder() + .setExpPayloadType(PayloadTypeDef.getDefaultInstance("22")) + .setPayloadType(PayloadTypeDef.getDefaultInstance("22")); + + // Create an ODUC4 object + OduBuilder oduBuilder = new OduBuilder() + .setRate(ODUCn.class) + .setOducnNRate(Uint16.valueOf(4)) + .setOduFunction(ODUTTP.class) + .setMonitoringMode(MonitoringMode.Terminated) + .setTimActEnabled(false) + .setTimDetectMode(TimDetectMode.Disabled) + .setDegmIntervals(Uint8.valueOf(2)) + .setDegthrPercentage(Uint16.valueOf(100)) + .setOpu(opuBuilder.build()); + + InterfaceBuilder oduInterfaceBuilder = createGenericInterfaceBuilder(mapping, OtnOdu.class, + logicalConnPoint + "-ODUC4"); + + // Create a list + List listSupportingOtucnInterface = new ArrayList<>(); + if (mapping.getSupportingOtucn() != null) { + listSupportingOtucnInterface.add(mapping.getSupportingOtucn()); + } + + oduInterfaceBuilder.setSupportingInterfaceList(listSupportingOtucnInterface); + org.opendaylight.yang.gen.v1.http.org.openroadm.otn.odu.interfaces.rev200529.Interface1Builder oduIf1Builder = + new org.opendaylight.yang.gen.v1.http.org.openroadm.otn.odu.interfaces.rev200529.Interface1Builder(); + + oduInterfaceBuilder.addAugmentation(oduIf1Builder.setOdu(oduBuilder.build()).build()); + + // Post interface on the device + openRoadmInterfaces.postInterface(nodeId, oduInterfaceBuilder); + + // Post the equipment-state change on the device circuit-pack if xpdr node + if (mapping.getLogicalConnectionPoint().contains(StringConstants.NETWORK_TOKEN)) { + this.openRoadmInterfaces.postEquipmentState(nodeId, mapping.getSupportingCircuitPackName(), true); + } + + return oduInterfaceBuilder.getName(); } - // Adding method to have SAPI/DAPI information for the OTUCn - public String createOpenRoadmOtucnInterface(String anodeId, String alogicalConnPoint, - String supportingOtsiGroupInterface, String znodeId, String zlogicalConnPoint) + // With SAPI and DAPI information + public String createOpenRoadmOducnInterface(String anodeId, String alogicalConnPoint, + String supportingOtucn, String znodeId, String zlogicalConnPoint) throws OpenRoadmInterfaceException { Mapping portMapA = portMapping.getMapping(anodeId, alogicalConnPoint); Mapping portMapZ = portMapping.getMapping(znodeId, zlogicalConnPoint); @@ -264,51 +331,56 @@ public class OpenRoadmInterface710 { znodeId, zlogicalConnPoint)); } - // Create an OTUCn object - MaintLoopbackBuilder maintLoopbackBuilder = new MaintLoopbackBuilder(); - maintLoopbackBuilder.setEnabled(false); - OtuBuilder otuBuilder = new OtuBuilder() - .setRate(OTUCn.class) - .setOtucnNRate(Uint16.valueOf(4)) + // Create ODUcn object + // Start with OPU object + // OPU payload + OpuBuilder opuBuilder = new OpuBuilder() + .setExpPayloadType(PayloadTypeDef.getDefaultInstance("22")) + .setPayloadType(PayloadTypeDef.getDefaultInstance("22")); + + // Create an ODUC4 object + OduBuilder oduBuilder = new OduBuilder() + .setRate(ODUCn.class) + .setOducnNRate(Uint16.valueOf(4)) + .setOduFunction(ODUTTP.class) + .setMonitoringMode(MonitoringMode.Terminated) .setTimActEnabled(false) .setTimDetectMode(TimDetectMode.Disabled) .setDegmIntervals(Uint8.valueOf(2)) .setDegthrPercentage(Uint16.valueOf(100)) - .setMaintLoopback(maintLoopbackBuilder.build()) + .setOpu(opuBuilder.build()) .setTxSapi(portMapA.getLcpHashVal()) .setTxDapi(portMapZ.getLcpHashVal()) - // setting expected SAPI and DAPI values - .setExpectedDapi(portMapA.getLcpHashVal()) - .setExpectedSapi(portMapZ.getLcpHashVal()); + .setExpectedSapi(portMapZ.getLcpHashVal()) + .setExpectedDapi(portMapZ.getLcpHashVal()); - InterfaceBuilder otuInterfaceBuilder = createGenericInterfaceBuilder(portMapA, OtnOtu.class, - alogicalConnPoint + "-OTUC4"); + InterfaceBuilder oduInterfaceBuilder = createGenericInterfaceBuilder(portMapA, OtnOdu.class, + alogicalConnPoint + ODUC4); // Create a list - List listSupportingOtsiGroupInterface = new ArrayList<>(); - listSupportingOtsiGroupInterface.add(supportingOtsiGroupInterface); + List listSupportingOtucnInterface = new ArrayList<>(); + listSupportingOtucnInterface.add(supportingOtucn); - otuInterfaceBuilder.setSupportingInterfaceList(listSupportingOtsiGroupInterface); - org.opendaylight.yang.gen.v1.http.org.openroadm.otn.otu.interfaces.rev200529.Interface1Builder otuIf1Builder = - new org.opendaylight.yang.gen.v1.http.org.openroadm.otn.otu.interfaces.rev200529.Interface1Builder(); + oduInterfaceBuilder.setSupportingInterfaceList(listSupportingOtucnInterface); + org.opendaylight.yang.gen.v1.http.org.openroadm.otn.odu.interfaces.rev200529.Interface1Builder oduIf1Builder = + new org.opendaylight.yang.gen.v1.http.org.openroadm.otn.odu.interfaces.rev200529.Interface1Builder(); - otuInterfaceBuilder.addAugmentation(otuIf1Builder.setOtu(otuBuilder.build()).build()); + oduInterfaceBuilder.addAugmentation(oduIf1Builder.setOdu(oduBuilder.build()).build()); // Post interface on the device - openRoadmInterfaces.postInterface(anodeId, otuInterfaceBuilder); + openRoadmInterfaces.postInterface(anodeId, oduInterfaceBuilder); // Post the equipment-state change on the device circuit-pack if xpdr node if (portMapA.getLogicalConnectionPoint().contains(StringConstants.NETWORK_TOKEN)) { this.openRoadmInterfaces.postEquipmentState(anodeId, portMapA.getSupportingCircuitPackName(), true); } - return otuInterfaceBuilder.getName(); - + return oduInterfaceBuilder.getName(); } - public String createOpenRoadmOducnInterface(String nodeId, String logicalConnPoint, - String supportingOtucn) - throws OpenRoadmInterfaceException { + public String createOpenRoadmOtnOducnInterface(String nodeId, String logicalConnPoint, + String supportingOtucn) + throws OpenRoadmInterfaceException { Mapping portMap = portMapping.getMapping(nodeId, logicalConnPoint); if (portMap == null) { throw new OpenRoadmInterfaceException( @@ -321,9 +393,6 @@ public class OpenRoadmInterface710 { OpuBuilder opuBuilder = new OpuBuilder() .setExpPayloadType(PayloadTypeDef.getDefaultInstance("22")) .setPayloadType(PayloadTypeDef.getDefaultInstance("22")); - // Maint test signal - MaintTestsignalBuilder maintTestsignal = new MaintTestsignalBuilder() - .setEnabled(false); // Create an ODUC4 object OduBuilder oduBuilder = new OduBuilder() @@ -335,11 +404,10 @@ public class OpenRoadmInterface710 { .setTimDetectMode(TimDetectMode.Disabled) .setDegmIntervals(Uint8.valueOf(2)) .setDegthrPercentage(Uint16.valueOf(100)) - .setOpu(opuBuilder.build()) - .setMaintTestsignal(maintTestsignal.build()); + .setOpu(opuBuilder.build()); InterfaceBuilder oduInterfaceBuilder = createGenericInterfaceBuilder(portMap, OtnOdu.class, - logicalConnPoint + "-ODUC4"); + logicalConnPoint + ODUC4); // Create a list List listSupportingOtucnInterface = new ArrayList<>(); @@ -358,14 +426,16 @@ public class OpenRoadmInterface710 { if (portMap.getLogicalConnectionPoint().contains(StringConstants.NETWORK_TOKEN)) { this.openRoadmInterfaces.postEquipmentState(nodeId, portMap.getSupportingCircuitPackName(), true); } - + // Update the port-mapping with the interface information + this.portMapping.updateMapping(nodeId, portMap); return oduInterfaceBuilder.getName(); } + // With SAPI and DAPI information - public String createOpenRoadmOducnInterface(String anodeId, String alogicalConnPoint, - String supportingOtucn, String znodeId, String zlogicalConnPoint) - throws OpenRoadmInterfaceException { + public String createOpenRoadmOtnOducnInterface(String anodeId, String alogicalConnPoint, + String supportingOtucn, String znodeId, String zlogicalConnPoint) + throws OpenRoadmInterfaceException { Mapping portMapA = portMapping.getMapping(anodeId, alogicalConnPoint); Mapping portMapZ = portMapping.getMapping(znodeId, zlogicalConnPoint); if (portMapA == null) { @@ -386,9 +456,6 @@ public class OpenRoadmInterface710 { OpuBuilder opuBuilder = new OpuBuilder() .setExpPayloadType(PayloadTypeDef.getDefaultInstance("22")) .setPayloadType(PayloadTypeDef.getDefaultInstance("22")); - // Maint test signal - MaintTestsignalBuilder maintTestsignal = new MaintTestsignalBuilder() - .setEnabled(false); // Create an ODUC4 object OduBuilder oduBuilder = new OduBuilder() @@ -404,11 +471,10 @@ public class OpenRoadmInterface710 { .setTxSapi(portMapA.getLcpHashVal()) .setTxDapi(portMapZ.getLcpHashVal()) .setExpectedSapi(portMapZ.getLcpHashVal()) - .setExpectedDapi(portMapZ.getLcpHashVal()) - .setMaintTestsignal(maintTestsignal.build()); + .setExpectedDapi(portMapZ.getLcpHashVal()); InterfaceBuilder oduInterfaceBuilder = createGenericInterfaceBuilder(portMapA, OtnOdu.class, - alogicalConnPoint + "-ODUC4"); + alogicalConnPoint + ODUC4); // Create a list List listSupportingOtucnInterface = new ArrayList<>(); @@ -427,7 +493,8 @@ public class OpenRoadmInterface710 { if (portMapA.getLogicalConnectionPoint().contains(StringConstants.NETWORK_TOKEN)) { this.openRoadmInterfaces.postEquipmentState(anodeId, portMapA.getSupportingCircuitPackName(), true); } - + // Update the port-mapping with the interface information + this.portMapping.updateMapping(anodeId, portMapA); return oduInterfaceBuilder.getName(); } @@ -446,10 +513,6 @@ public class OpenRoadmInterface710 { .setExpPayloadType(PayloadTypeDef.getDefaultInstance("32")) .setPayloadType(PayloadTypeDef.getDefaultInstance("32")); - // Maint test signal - MaintTestsignalBuilder maintTestsignal = new MaintTestsignalBuilder() - .setEnabled(false); - // Parent Odu-allocation // Set the trib-slot array List tribslots = new ArrayList<>(); @@ -471,7 +534,6 @@ public class OpenRoadmInterface710 { .setDegmIntervals(Uint8.valueOf(2)) .setDegthrPercentage(Uint16.valueOf(100)) .setOpu(opuBuilder.build()) - .setMaintTestsignal(maintTestsignal.build()) .setParentOduAllocation(parentOduAllocationBuilder.build()); InterfaceBuilder oduflexInterfaceBuilder = createGenericInterfaceBuilder(portMap, OtnOdu.class, @@ -525,6 +587,8 @@ public class OpenRoadmInterface710 { // Maint test signal MaintTestsignalBuilder maintTestsignal = new MaintTestsignalBuilder() + // PRBS value should be PRBS31 if enabled is true + .setTestPattern(TestPattern.PRBS31) .setEnabled(false); // Parent Odu-allocation