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.rev210425.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.rev210927.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;
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;
}
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));
.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
// 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.getSupportingOtuc4() != null) {
+ listSupportingOtucnInterface.add(mapping.getSupportingOtuc4());
+ }
+
+ 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);
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(
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()
.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<>();
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) {
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()
.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<>();
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();
}
.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<>();
.setDegmIntervals(Uint8.valueOf(2))
.setDegthrPercentage(Uint16.valueOf(100))
.setOpu(opuBuilder.build())
- .setMaintTestsignal(maintTestsignal.build())
.setParentOduAllocation(parentOduAllocationBuilder.build());
InterfaceBuilder oduflexInterfaceBuilder = createGenericInterfaceBuilder(portMap, OtnOdu.class,
// 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