Change in interface naming convention (B100G)
[transportpce.git] / renderer / src / main / java / org / opendaylight / transportpce / renderer / openroadminterface / OpenRoadmInterface710.java
index c671de082bde7ab67cf756b76ac73851ccc42fa5..cd72a036fb08ea37d42d5677cceb72b1a46eac4d 100644 (file)
@@ -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.rev210315.mapping.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;
@@ -69,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;
 
@@ -178,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<String> listSupportingOtsiInterface = new ArrayList<>();
@@ -202,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));
@@ -221,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
@@ -237,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<String> 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);
@@ -265,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<String> listSupportingOtsiGroupInterface = new ArrayList<>();
-        listSupportingOtsiGroupInterface.add(supportingOtsiGroupInterface);
+        List<String> 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(
@@ -322,10 +393,6 @@ public class OpenRoadmInterface710 {
         OpuBuilder opuBuilder = new OpuBuilder()
             .setExpPayloadType(PayloadTypeDef.getDefaultInstance("22"))
             .setPayloadType(PayloadTypeDef.getDefaultInstance("22"));
-        // Maint test signal
-        MaintTestsignalBuilder maintTestsignal = new MaintTestsignalBuilder()
-            .setTestPattern(TestPattern.PRBS23)
-            .setEnabled(false);
 
         // Create an ODUC4 object
         OduBuilder oduBuilder = new OduBuilder()
@@ -337,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<String> listSupportingOtucnInterface = new ArrayList<>();
@@ -360,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) {
@@ -388,10 +456,6 @@ public class OpenRoadmInterface710 {
         OpuBuilder opuBuilder = new OpuBuilder()
             .setExpPayloadType(PayloadTypeDef.getDefaultInstance("22"))
             .setPayloadType(PayloadTypeDef.getDefaultInstance("22"));
-        // Maint test signal
-        MaintTestsignalBuilder maintTestsignal = new MaintTestsignalBuilder()
-            .setTestPattern(TestPattern.PRBS23)
-            .setEnabled(false);
 
         // Create an ODUC4 object
         OduBuilder oduBuilder = new OduBuilder()
@@ -407,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<String> listSupportingOtucnInterface = new ArrayList<>();
@@ -430,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();
     }
 
@@ -449,11 +513,6 @@ public class OpenRoadmInterface710 {
             .setExpPayloadType(PayloadTypeDef.getDefaultInstance("32"))
             .setPayloadType(PayloadTypeDef.getDefaultInstance("32"));
 
-        // Maint test signal
-        MaintTestsignalBuilder maintTestsignal = new MaintTestsignalBuilder()
-            .setTestPattern(TestPattern.PRBS23)
-            .setEnabled(false);
-
         // Parent Odu-allocation
         // Set the trib-slot array
         List<OpucnTribSlotDef> tribslots = new ArrayList<>();
@@ -475,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,
@@ -529,7 +587,8 @@ public class OpenRoadmInterface710 {
 
         // Maint test signal
         MaintTestsignalBuilder maintTestsignal = new MaintTestsignalBuilder()
-            .setTestPattern(TestPattern.PRBS23)
+            // PRBS value should be PRBS31 if enabled is true
+            .setTestPattern(TestPattern.PRBS31)
             .setEnabled(false);
 
         // Parent Odu-allocation