+ public String createOpenRoadmOdu4HOInterface(String nodeId, String logicalConnPoint, boolean isNetworkPort,
+ String supportingInterface) throws OpenRoadmInterfaceException {
+ Mapping mapping = portMapping.getMapping(nodeId, logicalConnPoint);
+ if (mapping == null) {
+ throw new OpenRoadmInterfaceException(
+ String.format(MAPPING_ERROR_EXCEPTION_MESSAGE, nodeId, logicalConnPoint));
+ }
+ InterfaceBuilder oduInterfaceBldr = createGenericInterfaceBuilder(mapping, OtnOdu.class,
+ logicalConnPoint + "-ODU4");
+ if (supportingInterface != null) {
+ oduInterfaceBldr.setSupportingInterface(supportingInterface);
+ }
+
+ // ODU interface specific data
+ Class<? extends OduFunctionIdentity> oduFunction;
+ MonitoringMode monitoringMode;
+ if (isNetworkPort) {
+ oduFunction = ODUCTP.class;
+ monitoringMode = MonitoringMode.Monitored;
+ } else {
+ oduFunction = ODUTTPCTP.class;
+ monitoringMode = MonitoringMode.Terminated;
+ }
+ // Create Interface1 type object required for adding as augmentation
+ // TODO look at imports of different versions of class
+ oduInterfaceBldr.addAugmentation(
+ new org.opendaylight.yang.gen.v1.http.org.openroadm.otn.odu.interfaces.rev181019.Interface1Builder()
+ .setOdu(new OduBuilder()
+ .setRate(ODU4.class)
+ .setOduFunction(oduFunction)
+ .setMonitoringMode(monitoringMode)
+ .setOpu(
+ new OpuBuilder()
+ .setPayloadType(PayloadTypeDef.getDefaultInstance("07"))
+ .setExpPayloadType(PayloadTypeDef.getDefaultInstance("07")).build()).build())
+ .build());
+
+ // Post interface on the device
+ openRoadmInterfaces.postInterface(nodeId, oduInterfaceBldr);
+ return oduInterfaceBldr.getName();
+ }
+