X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=renderer%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Ftransportpce%2Frenderer%2Fopenroadminterface%2FOpenRoadmOchInterface.java;h=3743d125114bd988429bb03589255d44ff93d456;hb=74d11927047a7b6ace072a208ee7b1d9a3769d9d;hp=eae5b81cc693c388b5c3d896b9668dc02c747d87;hpb=5a4ddc3dc00dbb33d383c8464411d76e6380f682;p=transportpce.git diff --git a/renderer/src/main/java/org/opendaylight/transportpce/renderer/openroadminterface/OpenRoadmOchInterface.java b/renderer/src/main/java/org/opendaylight/transportpce/renderer/openroadminterface/OpenRoadmOchInterface.java index eae5b81cc..3743d1251 100644 --- a/renderer/src/main/java/org/opendaylight/transportpce/renderer/openroadminterface/OpenRoadmOchInterface.java +++ b/renderer/src/main/java/org/opendaylight/transportpce/renderer/openroadminterface/OpenRoadmOchInterface.java @@ -8,23 +8,29 @@ package org.opendaylight.transportpce.renderer.openroadminterface; +import java.math.BigDecimal; import org.opendaylight.controller.md.sal.binding.api.DataBroker; import org.opendaylight.controller.md.sal.binding.api.MountPointService; +import org.opendaylight.yang.gen.v1.http.org.openroadm.common.types.rev161014.PowerDBm; import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.interfaces.grp.InterfaceBuilder; import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.interfaces.grp.InterfaceKey; import org.opendaylight.yang.gen.v1.http.org.openroadm.interfaces.rev161014.OpticalChannel; import org.opendaylight.yang.gen.v1.http.org.openroadm.optical.channel.interfaces.rev161014.Interface1; import org.opendaylight.yang.gen.v1.http.org.openroadm.optical.channel.interfaces.rev161014.Interface1Builder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.optical.channel.interfaces.rev161014.OchAttributes.ModulationFormat; +import org.opendaylight.yang.gen.v1.http.org.openroadm.optical.channel.interfaces.rev161014.RateIdentity; import org.opendaylight.yang.gen.v1.http.org.openroadm.optical.channel.interfaces.rev161014.och.container.OchBuilder; public class OpenRoadmOchInterface extends OpenRoadmInterfaces { - public OpenRoadmOchInterface(DataBroker db, MountPointService mps, String nodeId, String logicalConnPoint) { - super(db, mps, nodeId, logicalConnPoint); + public OpenRoadmOchInterface(DataBroker db, MountPointService mps, String nodeId, String logicalConnPoint, + String serviceName) { + super(db, mps, nodeId, logicalConnPoint, serviceName); } /** - * This methods creates an OCH interface on the given termination point. + * This methods creates an OCH interface on the given termination point on + * Roadm. * * @param waveNumber * wavelength number of the OCH interface. @@ -44,8 +50,36 @@ public class OpenRoadmOchInterface extends OpenRoadmInterfaces { OchBuilder ocIfBuilder = new OchBuilder(); ocIfBuilder.setWavelengthNumber(waveNumber); - //Add supporting OMS interface - ochInterfaceBldr.setSupportingInterface(portMap.getSupportingOms()); + // Add supporting OMS interface + if (portMap.getSupportingOms() != null) { + ochInterfaceBldr.setSupportingInterface(portMap.getSupportingOms()); + } + // Create Interface1 type object required for adding as augmentation + Interface1Builder ochIf1Builder = new Interface1Builder(); + ochInterfaceBldr.addAugmentation(Interface1.class, ochIf1Builder.setOch(ocIfBuilder.build()).build()); + + // Post interface on the device + if (postInterface(ochInterfaceBldr)) { + return ochInterfaceBldr.getName(); + } else { + return null; + } + } + + public String createInterface(Long waveNumber, Class rate, ModulationFormat format) { + + // Create generic interface + InterfaceBuilder ochInterfaceBldr = getIntfBuilder(portMap); + ochInterfaceBldr.setType(OpticalChannel.class); + ochInterfaceBldr.setName(logicalConnPoint + "-" + waveNumber); + ochInterfaceBldr.setKey(new InterfaceKey(logicalConnPoint + "-" + waveNumber)); + + // OCH interface specific data + OchBuilder ocIfBuilder = new OchBuilder(); + ocIfBuilder.setWavelengthNumber(waveNumber); + ocIfBuilder.setModulationFormat(format); + ocIfBuilder.setRate(rate); + ocIfBuilder.setTransmitPower(new PowerDBm(new BigDecimal("-5"))); // Create Interface1 type object required for adding as augmentation Interface1Builder ochIf1Builder = new Interface1Builder(); @@ -58,4 +92,5 @@ public class OpenRoadmOchInterface extends OpenRoadmInterfaces { return null; } } + }