package org.opendaylight.transportpce.common.service;
+import java.util.Map;
import org.opendaylight.transportpce.common.StringConstants;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210426.mapping.Mapping;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev220922.mapping.Mapping;
import org.opendaylight.yang.gen.v1.http.org.openroadm.device.types.rev191129.PortQual;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.device.types.rev191129.XpdrNodeTypes;
import org.opendaylight.yangtools.yang.common.Uint32;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
}
public static String getServiceType(String serviceFormat, Uint32 serviceRate, Mapping mapping) {
- String serviceType = null;
- if ("Ethernet".equals(serviceFormat)) {
- switch (serviceRate.intValue()) {
- case 1:
- serviceType = StringConstants.SERVICE_TYPE_1GE;
- break;
- case 10:
- serviceType = StringConstants.SERVICE_TYPE_10GE;
- break;
- case 100:
- serviceType = StringConstants.SERVICE_TYPE_100GE_T;
- if (mapping != null && PortQual.SwitchClient.getName().equals(mapping.getPortQual())) {
- serviceType = StringConstants.SERVICE_TYPE_100GE_M;
+
+ switch (serviceFormat) {
+ case "OC":
+ if (Uint32.valueOf(100).equals(serviceRate)) {
+ return StringConstants.SERVICE_TYPE_100GE_T;
+ }
+ LOG.warn("Invalid service-rate {}", serviceRate);
+ return null;
+
+ case "Ethernet":
+ if (Uint32.valueOf(400).equals(serviceRate)) {
+ return StringConstants.SERVICE_TYPE_400GE;
+ }
+ if (Uint32.valueOf(100).equals(serviceRate)) {
+ if (mapping == null || !PortQual.SwitchClient.getName().equals(mapping.getPortQual())) {
+ return StringConstants.SERVICE_TYPE_100GE_T;
}
- break;
- case 400:
- serviceType = StringConstants.SERVICE_TYPE_400GE;
- break;
- default:
- LOG.warn("Invalid service-rate {}", serviceRate);
- break;
- }
- }
- if ("OC".equals(serviceFormat) && Uint32.valueOf(100).equals(serviceRate)) {
- serviceType = StringConstants.SERVICE_TYPE_100GE_T;
- }
- if ("OTU".equals(serviceFormat)) {
- switch (serviceRate.intValue()) {
- case 100:
- serviceType = StringConstants.SERVICE_TYPE_OTU4;
- break;
- case 400:
- serviceType = StringConstants.SERVICE_TYPE_OTUC4;
- break;
- default:
- LOG.warn("Invalid service-rate {}", serviceRate);
- break;
- }
- }
- if ("ODU".equals(serviceFormat)) {
- switch (serviceRate.intValue()) {
- case 100:
- serviceType = StringConstants.SERVICE_TYPE_ODU4;
- break;
- case 400:
- serviceType = StringConstants.SERVICE_TYPE_ODUC4;
- break;
- default:
- LOG.warn("Invalid service-rate {}", serviceRate);
- break;
- }
+ if (XpdrNodeTypes.Switch.equals(mapping.getXpdrType())) {
+ return StringConstants.SERVICE_TYPE_100GE_S;
+ }
+ }
+ return getOtnServiceType(serviceFormat, serviceRate);
+
+ //case "ODU":
+ //case "OTU":
+ default:
+ return getOtnServiceType(serviceFormat, serviceRate);
}
- return serviceType;
}
public static String getOtnServiceType(String serviceFormat, Uint32 serviceRate) {
- String serviceType = null;
- if ("Ethernet".equals(serviceFormat)) {
- switch (serviceRate.intValue()) {
- case 1:
- serviceType = StringConstants.SERVICE_TYPE_1GE;
- break;
- case 10:
- serviceType = StringConstants.SERVICE_TYPE_10GE;
- break;
- case 100:
- serviceType = StringConstants.SERVICE_TYPE_100GE_M;
- break;
- default:
- LOG.warn("Invalid service-rate {}", serviceRate);
- break;
- }
- }
- if ("OTU".equals(serviceFormat)) {
- switch (serviceRate.intValue()) {
- case 100:
- serviceType = StringConstants.SERVICE_TYPE_OTU4;
- break;
- case 400:
- serviceType = StringConstants.SERVICE_TYPE_OTUC4;
- break;
- default:
- LOG.warn("Invalid service-rate {}", serviceRate);
- break;
- }
+ Map<String, Map<Uint32, String>> otnMap = Map.of(
+ "Ethernet", Map.of(
+ Uint32.valueOf(1), StringConstants.SERVICE_TYPE_1GE,
+ Uint32.valueOf(10), StringConstants.SERVICE_TYPE_10GE,
+ Uint32.valueOf(100), StringConstants.SERVICE_TYPE_100GE_M),
+ "OTU", Map.of(
+ Uint32.valueOf(100), StringConstants.SERVICE_TYPE_OTU4,
+ Uint32.valueOf(200), StringConstants.SERVICE_TYPE_OTUC2,
+ Uint32.valueOf(300), StringConstants.SERVICE_TYPE_OTUC3,
+ Uint32.valueOf(400), StringConstants.SERVICE_TYPE_OTUC4),
+ "ODU", Map.of(
+ Uint32.valueOf(100), StringConstants.SERVICE_TYPE_ODU4,
+ Uint32.valueOf(200), StringConstants.SERVICE_TYPE_ODUC2,
+ Uint32.valueOf(300), StringConstants.SERVICE_TYPE_ODUC3,
+ Uint32.valueOf(400), StringConstants.SERVICE_TYPE_ODUC4));
+
+ if (!otnMap.containsKey(serviceFormat)) {
+ LOG.warn("Invalid service-format {}", serviceFormat);
+ return null;
}
- if ("ODU".equals(serviceFormat)) {
- switch (serviceRate.intValue()) {
- case 100:
- serviceType = StringConstants.SERVICE_TYPE_ODU4;
- break;
- case 400:
- serviceType = StringConstants.SERVICE_TYPE_ODUC4;
- break;
- default:
- LOG.warn("Invalid service-rate {}", serviceRate);
- break;
- }
+
+ if (!otnMap.get(serviceFormat).containsKey(serviceRate)) {
+ LOG.warn("Invalid service-rate {}", serviceRate);
+ return null;
}
- return serviceType;
+
+ return otnMap.get(serviceFormat).get(serviceRate);
+
}
}