Fix renderer for 100GE on intermediate OTN Switch
[transportpce.git] / renderer / src / main / java / org / opendaylight / transportpce / renderer / ModelMappingUtils.java
index baa88b3569959ea50abb0d91b281d5ca5f0c530a..c349a300b0a5741ed87848956cbbb25353b23801 100644 (file)
@@ -35,6 +35,7 @@ import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev1
 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.otn.common.types.rev181130.OpucnTribSlotDef;
 import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.ServiceDeleteInput;
 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev210705.PathDescription;
 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev210705.path.description.AToZDirection;
@@ -228,12 +229,15 @@ public final class ModelMappingUtils {
             : getNodesListZtoA(pathDescription.getZToADirection().nonnullZToA().values().iterator());
         LOG.info("These are node-lists {}, {}", nodeLists.getRendererNodeList(), nodeLists.getOlmNodeList());
         for (Nodes node: nodeLists.getRendererNodeList()) {
-            nodes.add(new org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev210618.otn.renderer.nodes
-                .NodesBuilder()
-                            .setNodeId(node.getNodeId())
-                            .setClientTp(node.getSrcTp())
-                            .setNetworkTp(node.getDestTp())
-                            .build());
+            org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev210618.otn.renderer.nodes.NodesBuilder nb
+                = new org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev210618.otn.renderer.nodes
+                    .NodesBuilder().setNodeId(node.getNodeId()).setNetworkTp(node.getDestTp());
+            if (node.getSrcTp() != null && node.getSrcTp().contains("NETWORK")) {
+                nb.setNetwork2Tp(node.getSrcTp());
+            } else {
+                nb.setClientTp(node.getSrcTp());
+            }
+            nodes.add(nb.build());
         }
         OtnServicePathInputBuilder otnServicePathInputBuilder = new OtnServicePathInputBuilder()
             .setServiceName(serviceName)
@@ -252,6 +256,12 @@ public final class ModelMappingUtils {
                 .setTribPortNumber(tribPort)
                 .setTribSlot(minTribSlot);
         }
+        if (serviceRate.intValue() == 100) {
+            List<OpucnTribSlotDef> opucnTribSlotDefList = new ArrayList<>();
+            opucnTribSlotDefList.add(pathDescription.getAToZDirection().getMinTribSlot());
+            opucnTribSlotDefList.add(pathDescription.getAToZDirection().getMaxTribSlot());
+            otnServicePathInputBuilder.setOpucnTribSlots(opucnTribSlotDefList);
+        }
         return otnServicePathInputBuilder.build();
     }