X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=renderer%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Ftransportpce%2Frenderer%2Fprovisiondevice%2FOtnDeviceRendererServiceImpl.java;h=7e7bbd9550dcb1ca367f8fb2bdfee3b137fe2efb;hb=c9bab520323eb66d759c3a7b2f90daa61d021f6b;hp=0bb56cca7470a8ba9969631a00b10911a1ea132a;hpb=95e82b90f4afbbfc75b126236d0d011d0d015fb4;p=transportpce.git diff --git a/renderer/src/main/java/org/opendaylight/transportpce/renderer/provisiondevice/OtnDeviceRendererServiceImpl.java b/renderer/src/main/java/org/opendaylight/transportpce/renderer/provisiondevice/OtnDeviceRendererServiceImpl.java index 0bb56cca7..7e7bbd955 100644 --- a/renderer/src/main/java/org/opendaylight/transportpce/renderer/provisiondevice/OtnDeviceRendererServiceImpl.java +++ b/renderer/src/main/java/org/opendaylight/transportpce/renderer/provisiondevice/OtnDeviceRendererServiceImpl.java @@ -93,8 +93,12 @@ public class OtnDeviceRendererServiceImpl implements OtnDeviceRendererService { case StringConstants.SERVICE_TYPE_ODU4: createHighOrderInterfaces(input, nodeInterfaces, otnLinkTps); break; + // For all the intermediate rates, device renderer is generalized as + // ODUCnTTPinterface method + case StringConstants.SERVICE_TYPE_ODUC2: + case StringConstants.SERVICE_TYPE_ODUC3: case StringConstants.SERVICE_TYPE_ODUC4: - createOduc4TtpInterface(input, nodeInterfaces, otnLinkTps); + createOducnTtpInterface(input, nodeInterfaces, otnLinkTps); break; case StringConstants.SERVICE_TYPE_100GE_S: LOG.info("Calling Node interface for service-type {}", serviceType); @@ -183,10 +187,10 @@ public class OtnDeviceRendererServiceImpl implements OtnDeviceRendererService { String connectionNumber = ""; switch (serviceType) { case StringConstants.SERVICE_TYPE_100GE_S: - connectionNumber = getConnectionNumber(null, node, networkTp, "ODU4"); + connectionNumber = getConnectionNumber(node, networkTp, "ODU4"); break; case StringConstants.SERVICE_TYPE_100GE_M: - connectionNumber = getConnectionNumber(input.getServiceName(), node, networkTp, "ODU4"); + connectionNumber = getConnectionNumber(node, networkTp, "ODU4"); otnLinkTps.add(new LinkTpBuilder() .setNodeId(nodeId) .setTpId(networkTp) @@ -203,32 +207,35 @@ public class OtnDeviceRendererServiceImpl implements OtnDeviceRendererService { if (node.getClientTp() == null && node.getNetwork2Tp() != null) { interfacesToDelete.add(networkTp + "-ODU4"); interfacesToDelete.add(node.getNetwork2Tp() + "-ODU4"); - connectionNumber = getConnectionNumber(null, node, networkTp, "ODU4"); + connectionNumber = getConnectionNumber(node, networkTp, "ODU4"); } break; + case StringConstants.SERVICE_TYPE_ODUC2: + case StringConstants.SERVICE_TYPE_ODUC3: case StringConstants.SERVICE_TYPE_ODUC4: if (node.getClientTp() == null && node.getNetwork2Tp() == null) { - interfacesToDelete.add(networkTp + "-ODUC4"); + // Service-type can be ODUC2, ODUC3, ODUC4 + interfacesToDelete.add(networkTp + "-" + serviceType); otnLinkTps.add(new LinkTpBuilder() .setNodeId(nodeId) .setTpId(networkTp) .build()); } if (node.getClientTp() == null && node.getNetwork2Tp() != null) { - interfacesToDelete.add(networkTp + "-ODUC4"); - interfacesToDelete.add(node.getNetwork2Tp() + "-ODUC4"); - connectionNumber = getConnectionNumber(null, node, networkTp, "ODUC4"); + interfacesToDelete.add(networkTp + "-" + serviceType); + interfacesToDelete.add(node.getNetwork2Tp() + "-" + serviceType); + connectionNumber = getConnectionNumber(node, networkTp, serviceType); } break; case StringConstants.SERVICE_TYPE_10GE: - connectionNumber = getConnectionNumber(input.getServiceName(), node, networkTp, "ODU2e"); + connectionNumber = getConnectionNumber(node, networkTp, "ODU2e"); otnLinkTps.add(new LinkTpBuilder() .setNodeId(nodeId) .setTpId(networkTp) .build()); break; case StringConstants.SERVICE_TYPE_1GE: - connectionNumber = getConnectionNumber(input.getServiceName(), node, networkTp, "ODU0"); + connectionNumber = getConnectionNumber(node, networkTp, "ODU0"); otnLinkTps.add(new LinkTpBuilder() .setNodeId(nodeId) .setTpId(networkTp) @@ -250,7 +257,8 @@ public class OtnDeviceRendererServiceImpl implements OtnDeviceRendererService { if (supportedInterface == null) { continue; } - if ((input.getServiceRate().intValue() == 100 && !supportedInterface.contains("ODUC4")) + // Here ODUC can be ODUC2, ODUC3, ODUC4 + if ((input.getServiceRate().intValue() == 100 && !supportedInterface.contains("ODUC")) || (input.getServiceRate().intValue() != 100 && !supportedInterface.contains("ODU4"))) { interfacesToDelete.add(supportedInterface); } @@ -288,7 +296,7 @@ public class OtnDeviceRendererServiceImpl implements OtnDeviceRendererService { .build(); } - private String getConnectionNumber(String serviceName, Nodes node, String networkTp, String oduType) { + private String getConnectionNumber(Nodes node, String networkTp, String oduType) { List list1 = new ArrayList<>(); List list2 = new ArrayList<>(Arrays.asList("x")); if (node.getClientTp() != null) { @@ -300,10 +308,6 @@ public class OtnDeviceRendererServiceImpl implements OtnDeviceRendererService { } else { return ""; } - if (serviceName != null) { - list1.add(serviceName); - list2.add(serviceName); - } list1.addAll(list2); return String.join("-", list1); } @@ -364,13 +368,13 @@ public class OtnDeviceRendererServiceImpl implements OtnDeviceRendererService { createdOduInterfaces.add( // suppporting interface?, payload ? openRoadmInterfaceFactory.createOpenRoadmOdu2eInterface(node.getNodeId(), - node.getClientTp(), input.getServiceName(), false, input.getTribPortNumber(), + node.getClientTp(), false, input.getTribPortNumber(), input.getTribSlot(), apiInfoA, apiInfoZ, PT_03)); } createdOduInterfaces.add( // supporting interface? payload ? openRoadmInterfaceFactory.createOpenRoadmOdu2eInterface(node.getNodeId(), node.getNetworkTp(), - input.getServiceName(), true, input.getTribPortNumber(), input.getTribSlot(), null, + true, input.getTribPortNumber(), input.getTribSlot(), null, null, null)); linkTpList.add( new LinkTpBuilder().setNodeId(node.getNodeId()).setTpId(node.getNetworkTp()).build()); @@ -378,7 +382,7 @@ public class OtnDeviceRendererServiceImpl implements OtnDeviceRendererService { createdOduInterfaces.add( // supporting interface? payload ? openRoadmInterfaceFactory.createOpenRoadmOdu2eInterface(node.getNodeId(), - node.getNetwork2Tp(), input.getServiceName(), true, input.getTribPortNumber(), + node.getNetwork2Tp(), true, input.getTribPortNumber(), input.getTribSlot(), null, null, null)); linkTpList.add( new LinkTpBuilder().setNodeId(node.getNodeId()).setTpId(node.getNetworkTp()).build()); @@ -505,15 +509,39 @@ public class OtnDeviceRendererServiceImpl implements OtnDeviceRendererService { } } - private void createOduc4TtpInterface(OtnServicePathInput input, List nodeInterfaces, + private void createOducnTtpInterface(OtnServicePathInput input, List nodeInterfaces, CopyOnWriteArrayList linkTpList) throws OpenRoadmInterfaceException { if (input.getNodes() == null) { return; } - LOG.info("Creation of ODUC4 TTP interface in OTN service path {}", input); + if (input.getServiceRate() == null) { + LOG.error("Missing service rate for ODUCn interface"); + return; + } + LOG.info("Creation of ODUCn TTP interface in OTN service path {}", input); for (int i = 0; i < input.getNodes().size(); i++) { Nodes node = input.getNodes().get(i); - String supportingOtuInterface = node.getNetworkTp() + "-OTUC4"; + // Based on the service rate, we will know if it is a OTUC4, OTUC3 or OTUC2 + String supportingOtuInterface = node.getNetworkTp(); + boolean serviceRateNotSupp = false; + + switch (input.getServiceRate().intValue()) { + case 200: + supportingOtuInterface += "-OTUC2"; + break; + case 300: + supportingOtuInterface += "-OTUC3"; + break; + case 400: + supportingOtuInterface += "-OTUC4"; + break; + default: + serviceRateNotSupp = true; + break; + } + if (serviceRateNotSupp) { + LOG.error("Service rate {} is not supported", input.getServiceRate()); + } Nodes tgtNode = i + 1 == input.getNodes().size() @@ -525,8 +553,8 @@ public class OtnDeviceRendererServiceImpl implements OtnDeviceRendererService { .withKey(new NodeInterfaceKey(node.getNodeId())) .setNodeId(node.getNodeId()) .setOduInterfaceId(List.of( - // though this is odu, actually it has ODUC4 interfaces - openRoadmInterfaceFactory.createOpenRoadmOtnOduc4Interface(node.getNodeId(), + // though this is odu, actually it has ODUCn interfaces + openRoadmInterfaceFactory.createOpenRoadmOtnOducnInterface(node.getNodeId(), node.getNetworkTp(), supportingOtuInterface, tgtNode.getNodeId(), tgtNode.getNetworkTp()))) .build()); linkTpList.add(new LinkTpBuilder().setNodeId(node.getNodeId()).setTpId(node.getNetworkTp()).build());