Power control support for 87.5GHz spectrum width 93/96193/16
authorVachhani, Shweta (sv111y) <sv111y@att.com>
Fri, 14 May 2021 21:29:29 +0000 (17:29 -0400)
committerGuillaume Lambert <guillaume.lambert@orange.com>
Wed, 15 Dec 2021 14:19:35 +0000 (14:19 +0000)
Update OLM PowerMgmtImpl to support power calculation based on Media
Channel with 87.5GHz slot width.
- Modify optical-renderer-input to have nmc and mc width
  Renderer will use nmc-width while olm will use mc-width.
- Adapt renderer UT

JIRA: TRNSPRTPCE-461
Signed-off-by: Vachhani, Shweta (sv111y) <sv111y@att.com>
Change-Id: I290e1437ec38dd11a01f1a07b1b91613792c9143

32 files changed:
api/src/main/yang/service_path/transportpce-common-types@2021-09-30.yang [moved from api/src/main/yang/service_path/transportpce-common-types@2021-06-18.yang with 98% similarity]
common/src/main/java/org/opendaylight/transportpce/common/crossconnect/CrossConnect.java
common/src/main/java/org/opendaylight/transportpce/common/crossconnect/CrossConnectImpl.java
common/src/main/java/org/opendaylight/transportpce/common/crossconnect/CrossConnectImpl221.java
common/src/main/java/org/opendaylight/transportpce/common/crossconnect/CrossConnectImpl710.java
common/src/main/java/org/opendaylight/transportpce/common/fixedflex/GridUtils.java
common/src/test/java/org/opendaylight/transportpce/common/crossconnect/CrossConnectImpl221Test.java
common/src/test/java/org/opendaylight/transportpce/common/fixedflex/GridUtilsTest.java
networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/service/NetworkModelServiceImpl.java
olm/src/main/java/org/opendaylight/transportpce/olm/power/PowerMgmtImpl.java
olm/src/main/java/org/opendaylight/transportpce/olm/service/OlmPowerServiceImpl.java
olm/src/main/java/org/opendaylight/transportpce/olm/util/OlmUtils121.java
olm/src/main/java/org/opendaylight/transportpce/olm/util/OlmUtils221.java
olm/src/main/java/org/opendaylight/transportpce/olm/util/OlmUtils710.java
olm/src/test/java/org/opendaylight/transportpce/olm/util/OlmPowerServiceRpcImplUtil.java
ordmodels/common/src/main/yang/org-openroadm-common-types@2020-05-29.yang
renderer/src/main/java/org/opendaylight/transportpce/renderer/ModelMappingUtils.java
renderer/src/main/java/org/opendaylight/transportpce/renderer/NodeLists.java
renderer/src/main/java/org/opendaylight/transportpce/renderer/provisiondevice/DeviceRendererServiceImpl.java
renderer/src/main/java/org/opendaylight/transportpce/renderer/provisiondevice/DeviceRenderingResult.java
renderer/src/main/java/org/opendaylight/transportpce/renderer/provisiondevice/OtnDeviceRendererServiceImpl.java
renderer/src/main/java/org/opendaylight/transportpce/renderer/provisiondevice/OtnDeviceRenderingResult.java
renderer/src/main/java/org/opendaylight/transportpce/renderer/provisiondevice/RendererServiceOperationsImpl.java
renderer/src/main/java/org/opendaylight/transportpce/renderer/provisiondevice/tasks/DeviceRenderingRollbackTask.java
renderer/src/main/java/org/opendaylight/transportpce/renderer/provisiondevice/tasks/DeviceRenderingTask.java
renderer/src/test/java/org/opendaylight/transportpce/renderer/provisiondevice/RendererServiceOperationsImplDeleteTest.java
renderer/src/test/java/org/opendaylight/transportpce/renderer/provisiondevice/RendererServiceOperationsImplTest.java
renderer/src/test/java/org/opendaylight/transportpce/renderer/utils/ServiceDataUtils.java
renderer/src/test/java/org/opendaylight/transportpce/renderer/utils/ServiceDeleteDataUtils.java
tests/transportpce_tests/1.2.1/test05_olm.py
tests/transportpce_tests/2.2.1/test05_flex_grid.py
tests/transportpce_tests/common/test_utils.py

similarity index 98%
rename from api/src/main/yang/service_path/transportpce-common-types@2021-06-18.yang
rename to api/src/main/yang/service_path/transportpce-common-types@2021-09-30.yang
index 33494b8ecf425d492c82e5694b64b82132a65a29..ccaa6f41f58c0424f6f18f6c9f6b6c94ed0d0b8c 100644 (file)
@@ -15,6 +15,10 @@ module transportpce-common-types {
     revision-date 2018-10-19;
   }
 
+  revision 2021-09-30 {
+    description
+      "Replace leaf width in optical-renderer-input by mc-width and nmc-width";
+  }
   revision 2021-06-18 {
     description
       "Replace olm-renderer-input by optical-rendrer-input.
@@ -494,9 +498,14 @@ module transportpce-common-types {
     leaf center-freq {
       type org-openroadm-common-types:frequency-THz;
     }
-    leaf width {
+    leaf nmc-width {
+      description
+       " Width of network media channel nmc";
+      type org-openroadm-common-types:frequency-GHz;
+    }
+    leaf mc-width {
       description
-       " Width of nmc";
+       " Width of media channel (mc)";
       type org-openroadm-common-types:frequency-GHz;
     }
     leaf min-freq {
index 6f86799ad8a9266e09bb301f3591409f07c026ea..05ee1648b5c1b8f70db2da08d8d609eda163f96f 100644 (file)
@@ -13,7 +13,7 @@ import java.util.List;
 import java.util.Optional;
 import org.opendaylight.transportpce.common.fixedflex.SpectrumInformation;
 import org.opendaylight.transportpce.common.openroadminterfaces.OpenRoadmInterfaceException;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev210618.otn.renderer.nodes.Nodes;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev210930.otn.renderer.nodes.Nodes;
 
 public interface CrossConnect {
 
index db4afb6b37ece06a0942666cec58fda459c7b207..8ba0963435aef3225e715806540bcf742e18e15d 100644 (file)
@@ -20,7 +20,7 @@ import org.opendaylight.transportpce.common.fixedflex.SpectrumInformation;
 import org.opendaylight.transportpce.common.mapping.MappingUtils;
 import org.opendaylight.transportpce.common.openroadminterfaces.OpenRoadmInterfaceException;
 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.types.rev161014.OpticalControlMode;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev210618.otn.renderer.nodes.Nodes;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev210930.otn.renderer.nodes.Nodes;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
index f22c3eb9420979cd3b8549f5aa813fab4869c1d2..5dffcf234ea20492297eb116f4abee9d86cacf85 100644 (file)
@@ -41,7 +41,7 @@ import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev181019.org.open
 import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev181019.org.openroadm.device.container.org.openroadm.device.RoadmConnections;
 import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev181019.org.openroadm.device.container.org.openroadm.device.RoadmConnectionsBuilder;
 import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev181019.org.openroadm.device.container.org.openroadm.device.RoadmConnectionsKey;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev210618.otn.renderer.nodes.Nodes;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev210930.otn.renderer.nodes.Nodes;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 import org.opendaylight.yangtools.yang.common.RpcResult;
 import org.slf4j.Logger;
@@ -66,7 +66,7 @@ public class CrossConnectImpl221 {
     }
 
     public Optional<org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev181019.org.openroadm.device.container.org
-        .openroadm.device.OduConnection> getOtnCrossConnect(String deviceId, String connectionNumber) {
+            .openroadm.device.OduConnection> getOtnCrossConnect(String deviceId, String connectionNumber) {
         //TODO Change it to Operational later for real device
         return deviceTransactionManager.getDataFromDevice(deviceId, LogicalDatastoreType.CONFIGURATION,
                 generateOduConnectionIID(connectionNumber), Timeouts.DEVICE_READ_TIMEOUT,
@@ -74,7 +74,7 @@ public class CrossConnectImpl221 {
     }
 
     public Optional<String> postCrossConnect(String deviceId, String srcTp, String destTp,
-            SpectrumInformation spectrumInformation) {
+                                             SpectrumInformation spectrumInformation) {
         String connectionNumber = spectrumInformation.getIdentifierFromParams(srcTp, destTp);
         RoadmConnectionsBuilder rdmConnBldr = new RoadmConnectionsBuilder()
                 .setConnectionName(connectionNumber)
@@ -88,7 +88,7 @@ public class CrossConnectImpl221 {
 
         InstanceIdentifier<RoadmConnections> rdmConnectionIID =
                 InstanceIdentifier.create(OrgOpenroadmDevice.class)
-                    .child(RoadmConnections.class, new RoadmConnectionsKey(rdmConnBldr.getConnectionName()));
+                        .child(RoadmConnections.class, new RoadmConnectionsKey(rdmConnBldr.getConnectionName()));
 
         Future<Optional<DeviceTransaction>> deviceTxFuture = deviceTransactionManager.getDeviceTransaction(deviceId);
         DeviceTransaction deviceTx;
@@ -126,7 +126,7 @@ public class CrossConnectImpl221 {
         List<String> interfList = new ArrayList<>();
         Optional<RoadmConnections> xc = getCrossConnect(deviceId, connectionName);
         Optional<org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev181019.org.openroadm.device.container.org
-            .openroadm.device.OduConnection> otnXc = getOtnCrossConnect(deviceId, connectionName);
+                .openroadm.device.OduConnection> otnXc = getOtnCrossConnect(deviceId, connectionName);
         //Check if cross connect exists before delete
         if (xc.isPresent()) {
             interfList.add(xc.get().getSource().getSrcIf());
@@ -175,7 +175,7 @@ public class CrossConnectImpl221 {
 
 
     public List<Ports> getConnectionPortTrail(String nodeId, String srcTp, String destTp,
-            int lowerSpectralSlotNumber, int higherSpectralSlotNumber)
+                                              int lowerSpectralSlotNumber, int higherSpectralSlotNumber)
             throws OpenRoadmInterfaceException {
         String spectralSlotName = String.join(GridConstant.SPECTRAL_SLOT_SEPARATOR,
                 String.valueOf(lowerSpectralSlotNumber),
@@ -253,7 +253,7 @@ public class CrossConnectImpl221 {
                     .child(RoadmConnections.class, new RoadmConnectionsKey(ctName));
             deviceTx.merge(LogicalDatastoreType.CONFIGURATION, roadmConnIID, newRdmConn);
             FluentFuture<? extends @NonNull CommitInfo> commit =
-                deviceTx.commit(Timeouts.DEVICE_WRITE_TIMEOUT, Timeouts.DEVICE_WRITE_TIMEOUT_UNIT);
+                    deviceTx.commit(Timeouts.DEVICE_WRITE_TIMEOUT, Timeouts.DEVICE_WRITE_TIMEOUT_UNIT);
             try {
                 commit.get();
                 LOG.info("Roadm connection power level successfully set ");
@@ -274,10 +274,10 @@ public class CrossConnectImpl221 {
     }
 
     private InstanceIdentifier<org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev181019.org.openroadm.device
-        .container.org.openroadm.device.OduConnection> generateOduConnectionIID(String connectionNumber) {
+            .container.org.openroadm.device.OduConnection> generateOduConnectionIID(String connectionNumber) {
         return InstanceIdentifier.create(OrgOpenroadmDevice.class).child(org.opendaylight.yang.gen.v1.http.org
-            .openroadm.device.rev181019.org.openroadm.device.container.org.openroadm.device.OduConnection.class,
-            new OduConnectionKey(connectionNumber));
+                    .openroadm.device.rev181019.org.openroadm.device.container.org.openroadm.device.OduConnection.class,
+                new OduConnectionKey(connectionNumber));
     }
 
     private String generateConnectionName(String srcTp, String destTp, String spectralSlotName) {
@@ -289,20 +289,20 @@ public class CrossConnectImpl221 {
         String srcTp = createdOduInterfaces.get(0);
         String dstTp = createdOduInterfaces.get(1);
         OduConnectionBuilder oduConnectionBuilder = new OduConnectionBuilder()
-            .setConnectionName(srcTp + "-x-" + dstTp)
-            .setDestination(new org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev181019.odu.connection
-                .DestinationBuilder().setDstIf(dstTp).build())
-            .setSource(new org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev181019.odu.connection
-                .SourceBuilder().setSrcIf(srcTp).build())
-            .setDirection(Direction.Bidirectional);
+                .setConnectionName(srcTp + "-x-" + dstTp)
+                .setDestination(new org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev181019.odu.connection
+                        .DestinationBuilder().setDstIf(dstTp).build())
+                .setSource(new org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev181019.odu.connection
+                        .SourceBuilder().setSrcIf(srcTp).build())
+                .setDirection(Direction.Bidirectional);
 
         InstanceIdentifier<org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev181019.org.openroadm.device
                 .container.org.openroadm.device.OduConnection> oduConnectionIID =
-            InstanceIdentifier.create(OrgOpenroadmDevice.class)
-                .child(org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev181019.org.openroadm.device
-                        .container.org.openroadm.device.OduConnection.class,
-                    new OduConnectionKey(oduConnectionBuilder.getConnectionName())
-                );
+                InstanceIdentifier.create(OrgOpenroadmDevice.class)
+                        .child(org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev181019.org.openroadm.device
+                                        .container.org.openroadm.device.OduConnection.class,
+                                new OduConnectionKey(oduConnectionBuilder.getConnectionName())
+                        );
 
         Future<Optional<DeviceTransaction>> deviceTxFuture = deviceTransactionManager.getDeviceTransaction(deviceId);
         DeviceTransaction deviceTx;
@@ -332,4 +332,4 @@ public class CrossConnectImpl221 {
         }
         return Optional.empty();
     }
-}
+}
\ No newline at end of file
index fb5cd268c0ae555ce5e1173bc21dbbc8e1600d78..0b94fc12250c66ba385a1c9a9a5ed604869c3f26 100644 (file)
@@ -24,7 +24,7 @@ import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev200529.OduConne
 import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev200529.org.openroadm.device.container.OrgOpenroadmDevice;
 import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev200529.org.openroadm.device.container.org.openroadm.device.OduConnectionBuilder;
 import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev200529.org.openroadm.device.container.org.openroadm.device.OduConnectionKey;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev210618.otn.renderer.nodes.Nodes;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev210930.otn.renderer.nodes.Nodes;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
index b41f6ca63bf16d3d58c97a70e0114fdfe8a995f0..a38897eaac8e851e90998f285d88a7e380068f6e 100644 (file)
@@ -203,8 +203,8 @@ public final class GridUtils {
                     .getCentralFrequency(spectrumInformation.getMinFrequency(),
                             spectrumInformation.getMaxFrequency()).getValue());
         }
-        if (input.getWidth() != null) {
-            spectrumInformation.setWidth(input.getWidth().getValue());
+        if (input.getNmcWidth() != null) {
+            spectrumInformation.setWidth(input.getNmcWidth().getValue());
         }
         if (input.getModulationFormat() != null) {
             spectrumInformation.setModulationFormat(input.getModulationFormat());
index 34b9ecfe024f2b4a8af3f3795a5ccea952816df9..7f38d2c9c53bfdce6a136f7577aa172242c5a329 100644 (file)
@@ -37,7 +37,7 @@ import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev170206.degree.C
 import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev181019.org.openroadm.device.container.OrgOpenroadmDevice;
 import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev181019.org.openroadm.device.container.org.openroadm.device.RoadmConnections;
 import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev181019.org.openroadm.device.container.org.openroadm.device.RoadmConnectionsKey;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev210618.otn.renderer.nodes.Nodes;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev210930.otn.renderer.nodes.Nodes;
 import org.opendaylight.yangtools.util.concurrent.FluentFutures;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 import org.opendaylight.yangtools.yang.common.Uint32;
index 261f46200380b6155fbad567d5c1353d82b0546c..831a67c6509e8a623729accf55a77e8779fc9a1d 100644 (file)
@@ -130,7 +130,7 @@ public class GridUtilsTest {
                         .FrequencyTHz(BigDecimal.valueOf(196.125)))
                 .setMinFreq(new org.opendaylight.yang.gen.v1.http.org.openroadm.common.types.rev181019
                         .FrequencyTHz(BigDecimal.valueOf(196.075)))
-                .setWidth(new org.opendaylight.yang.gen.v1.http.org.openroadm.common.types.rev181019
+                .setNmcWidth(new org.opendaylight.yang.gen.v1.http.org.openroadm.common.types.rev181019
                         .FrequencyGHz(GridConstant.WIDTH_40))
                 .build();
         SpectrumInformation spectrumInformation = GridUtils.initSpectrumInformationFromServicePathInput(input);
@@ -156,7 +156,7 @@ public class GridUtilsTest {
                         .FrequencyTHz(BigDecimal.valueOf(196.125)))
                 .setMinFreq(new org.opendaylight.yang.gen.v1.http.org.openroadm.common.types.rev181019
                         .FrequencyTHz(BigDecimal.valueOf(196.075)))
-                .setWidth(new org.opendaylight.yang.gen.v1.http.org.openroadm.common.types.rev181019
+                .setNmcWidth(new org.opendaylight.yang.gen.v1.http.org.openroadm.common.types.rev181019
                         .FrequencyGHz(GridConstant.WIDTH_40))
                 .build();
         SpectrumInformation spectrumInformation = GridUtils.initSpectrumInformationFromServicePathInput(input);
@@ -178,7 +178,7 @@ public class GridUtilsTest {
                 .setWaveNumber(Uint32.valueOf(1))
                 .setHigherSpectralSlotNumber(Uint32.valueOf(768))
                 .setLowerSpectralSlotNumber(Uint32.valueOf(761))
-                .setWidth(new org.opendaylight.yang.gen.v1.http.org.openroadm.common.types.rev181019
+                .setNmcWidth(new org.opendaylight.yang.gen.v1.http.org.openroadm.common.types.rev181019
                         .FrequencyGHz(GridConstant.WIDTH_40))
                 .build();
         SpectrumInformation spectrumInformation = GridUtils.initSpectrumInformationFromServicePathInput(input);
index 6b067d2ae2a91731571fbaf1956bd962ce6849f9..77fc64e5c26dc1f38a0590b86859193e7546b0a3 100644 (file)
@@ -44,8 +44,8 @@ import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmappi
 import org.opendaylight.yang.gen.v1.http.org.openroadm.device.types.rev191129.NodeTypes;
 import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev200529.Link1;
 import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev200529.TerminationPoint1;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev210618.link.tp.LinkTp;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev210618.link.tp.LinkTpBuilder;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev210930.link.tp.LinkTp;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev210930.link.tp.LinkTpBuilder;
 import org.opendaylight.yang.gen.v1.http.transportpce.topology.rev210511.OtnLinkType;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.NetworkId;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.Networks;
index 9bd517d4f21ca5be519ebb28c4db37f31ef319b5..a000afb5e5373b68f5fa0b9ef83440b8fd6c69e2 100644 (file)
@@ -8,6 +8,8 @@
 
 package org.opendaylight.transportpce.olm.power;
 import java.math.BigDecimal;
+import java.math.MathContext;
+import java.math.RoundingMode;
 import java.util.HashMap;
 import java.util.Locale;
 import java.util.Map;
@@ -370,15 +372,17 @@ public class PowerMgmtImpl implements PowerMgmt {
         BigDecimal powerValue = spanLossTx.subtract(BigDecimal.valueOf(9)).min(BigDecimal.valueOf(2));
         // we work at constant power spectral density (50 GHz channel width @-20dBm=37.5GHz)
         // 87.5 GHz channel width @-20dBm=75GHz
-        if (input.getWidth() != null) {
-            BigDecimal gridSize = input.getWidth().getValue();
-            LOG.debug("Input Gridsize is {}",gridSize);
-            if (gridSize.equals(GridConstant.WIDTH_80)) {
+        if (input.getMcWidth() != null) {
+            LOG.debug("Input Gridsize is {}",input.getMcWidth().getValue());
+            if (input.getMcWidth().getValue().equals(GridConstant.WIDTH_80)) {
                 powerValue = powerValue.add(BigDecimal.valueOf(3));
+            } else if (input.getMcWidth().getValue().equals(GridConstant.SLOT_WIDTH_87_5)) {
+                BigDecimal logVal = GridConstant.SLOT_WIDTH_87_5.divide(new BigDecimal(50));
+                double pdsVal = 10 * Math.log10(logVal.doubleValue());
+                powerValue = powerValue.add(new BigDecimal(pdsVal, new MathContext(3, RoundingMode.HALF_EVEN)));
             }
-            // TODO no default or warning for unsupported grid sizes ?
         }
-        // FIXME compliancy with OpenROADM MSA and approximations used
+        // FIXME compliancy with OpenROADM MSA and approximations used -- should be addressed with powermask update
         // cf JIRA ticket https://jira.opendaylight.org/browse/TRNSPRTPCE-494
         LOG.info("Power Value is {}", powerValue);
         return powerValue;
index 3e4e5cdc2645cc75961fae378251df556e9dede0..cd96910b290bc9efec42e8f102c430a16cb4dd46 100644 (file)
@@ -75,8 +75,8 @@ import org.opendaylight.yang.gen.v1.http.org.openroadm.optical.transport.interfa
 import org.opendaylight.yang.gen.v1.http.org.openroadm.optical.transport.interfaces.rev161014.ots.container.OtsBuilder;
 import org.opendaylight.yang.gen.v1.http.org.openroadm.pm.types.rev161014.PmGranularity;
 import org.opendaylight.yang.gen.v1.http.org.openroadm.resource.types.rev161014.ResourceTypeEnum;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev210618.PmNamesEnum;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev210618.olm.get.pm.input.ResourceIdentifierBuilder;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev210930.PmNamesEnum;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev210930.olm.get.pm.input.ResourceIdentifierBuilder;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.NetworkId;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.Networks;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.NodeId;
index d6d5a94b04f352c1801331810231fcd9d4e7c8fd..31ed0423dedf5361a22c9d1fa96f0ce0b60bbde9 100644 (file)
@@ -36,7 +36,7 @@ import org.opendaylight.yang.gen.v1.http.org.openroadm.resource.rev161014.resour
 import org.opendaylight.yang.gen.v1.http.org.openroadm.resource.rev161014.resource.resource.resource.Shelf;
 import org.opendaylight.yang.gen.v1.http.org.openroadm.resource.rev161014.resource.resource.resource.Srg;
 import org.opendaylight.yang.gen.v1.http.org.openroadm.resource.types.rev161014.ResourceTypeEnum;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev210618.olm.get.pm.input.ResourceIdentifier;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev210930.olm.get.pm.input.ResourceIdentifier;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -72,8 +72,8 @@ final class OlmUtils121 {
                         Timeouts.DEVICE_READ_TIMEOUT, Timeouts.DEVICE_READ_TIMEOUT_UNIT);
         if (currentPmList.isPresent()) {
             String pmExtension = null;
-            org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev210618.Location location = null;
-            org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev210618.Direction direction = null;
+            org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev210930.Location location = null;
+            org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev210930.Direction direction = null;
             if (input.getPmExtension() != null) {
                 pmExtension = input.getPmExtension();
             }
@@ -128,8 +128,8 @@ final class OlmUtils121 {
         List<org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.olm.rev210618.get.pm.output.Measurements>
             extractWantedMeasurements(CurrentPmlist currentPmList, ResourceTypeEnum resourceTypeEnum,
             ResourceIdentifier wantedResourceIdentifier,PmGranularity pmGranularity, PmNamesEnum pmNamesEnum,
-            String extension, org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev210618.Location
-            location, org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev210618.Direction direction) {
+            String extension, org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev210930.Location
+            location, org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev210930.Direction direction) {
         List<org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.olm.rev210618.get.pm.output.Measurements>
             measurements = new ArrayList<>();
         for (CurrentPm pm : currentPmList.nonnullCurrentPm().values()) {
@@ -151,8 +151,8 @@ final class OlmUtils121 {
     private static
          List<org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.olm.rev210618.get.pm.output.Measurements>
             extractMeasurements(List<Measurements> measurementsFromDevice, PmNamesEnum pmNamesEnum, String extension,
-            org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev210618.Location location,
-            org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev210618.Direction direction) {
+            org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev210930.Location location,
+            org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev210930.Direction direction) {
         List<org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.olm.rev210618.get.pm.output.Measurements>
             extractedMeasurements = new ArrayList<>();
         List<Measurements> pmMeasurements = measurementsFromDevice;
index 45e0673a38eee7261783ccc0233de8497fa402e3..014a8c7fc4d68f4ff58a5e738e9bc1e82f4d346f 100644 (file)
@@ -47,10 +47,10 @@ import org.opendaylight.yang.gen.v1.http.org.openroadm.pm.rev181019.current.pm.l
 import org.opendaylight.yang.gen.v1.http.org.openroadm.pm.rev181019.current.pm.list.CurrentPmEntryKey;
 import org.opendaylight.yang.gen.v1.http.org.openroadm.pm.rev181019.current.pm.val.group.Measurement;
 import org.opendaylight.yang.gen.v1.http.org.openroadm.resource.types.rev161014.ResourceTypeEnum;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev210618.Direction;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev210618.Location;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev210618.PmNamesEnum;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev210618.olm.get.pm.input.ResourceIdentifier;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev210930.Direction;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev210930.Location;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev210930.PmNamesEnum;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev210930.olm.get.pm.input.ResourceIdentifier;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 import org.opendaylight.yangtools.yang.common.Uint16;
 import org.slf4j.Logger;
@@ -166,13 +166,13 @@ final class OlmUtils221 {
     }
 
     private static List<Measurements> extractWantedMeasurements(List<CurrentPm> currentPmList,
-            org.opendaylight.yang.gen.v1.http.org.openroadm.pm.types.rev161014.PmGranularity wantedGranularity) {
+        org.opendaylight.yang.gen.v1.http.org.openroadm.pm.types.rev161014.PmGranularity wantedGranularity) {
         List<Measurements> olmMeasurements = new ArrayList<>();
         for (CurrentPm pm : currentPmList) {
             for (Measurement measurements: pm.nonnullMeasurement().values()) {
                 if (measurements.getGranularity().getIntValue()
                         == org.opendaylight.yang.gen.v1.http.org.openroadm.pm.types.rev171215.PmGranularity.forValue(
-                                wantedGranularity.getIntValue()).getIntValue()) {
+                        wantedGranularity.getIntValue()).getIntValue()) {
                     MeasurementsBuilder pmMeasureBuilder = new MeasurementsBuilder();
                     pmMeasureBuilder.setPmparameterName(pm.getType().name());
                     pmMeasureBuilder.setPmparameterValue(measurements.getPmParameterValue().stringValue());
index c10ca1ad3a770c59ebecc71ee22faafcb692a31e..8bc563557c2614ca8e5d65be99f2f40761526141 100644 (file)
@@ -47,10 +47,10 @@ import org.opendaylight.yang.gen.v1.http.org.openroadm.pm.rev200529.current.pm.l
 import org.opendaylight.yang.gen.v1.http.org.openroadm.pm.rev200529.current.pm.list.CurrentPmEntryKey;
 import org.opendaylight.yang.gen.v1.http.org.openroadm.pm.rev200529.current.pm.val.group.Measurement;
 import org.opendaylight.yang.gen.v1.http.org.openroadm.resource.types.rev161014.ResourceTypeEnum;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev210618.Direction;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev210618.Location;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev210618.PmNamesEnum;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev210618.olm.get.pm.input.ResourceIdentifier;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev210930.Direction;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev210930.Location;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev210930.PmNamesEnum;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev210930.olm.get.pm.input.ResourceIdentifier;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 import org.opendaylight.yangtools.yang.common.Uint16;
 import org.slf4j.Logger;
index a2f5a118a6a2228ffcdf91a83a54b9c6b58656be..04687cec9b744f6d941523ebce4ad6b6a084aa33 100644 (file)
@@ -26,9 +26,9 @@ import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev20052
 import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.Link1Builder;
 import org.opendaylight.yang.gen.v1.http.org.openroadm.pm.types.rev161014.PmGranularity;
 import org.opendaylight.yang.gen.v1.http.org.openroadm.resource.types.rev161014.ResourceTypeEnum;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev210618.olm.get.pm.input.ResourceIdentifierBuilder;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev210618.optical.renderer.nodes.Nodes;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev210618.optical.renderer.nodes.NodesBuilder;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev210930.olm.get.pm.input.ResourceIdentifierBuilder;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev210930.optical.renderer.nodes.Nodes;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev210930.optical.renderer.nodes.NodesBuilder;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.LinkId;
 import org.opendaylight.yangtools.yang.common.Uint32;
 
index e35b4543fe5956d664e08e7318f2b9a1e4158daf..ac8565c1f48b415cbfa078e3586b33fd34c96935 100644 (file)
@@ -424,4 +424,4 @@ module org-openroadm-common-types {
     }
   }
 
-}
+}
\ No newline at end of file
index c1e37c02bf21843e2ad96d80393fbfe09234f868..1812fe2377dcb298af06361bb61eda3b6bcfb7ed 100644 (file)
@@ -51,9 +51,9 @@ import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdes
 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev210705.pce.resource.resource.Resource;
 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev210705.pce.resource.resource.resource.Link;
 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev210705.pce.resource.resource.resource.TerminationPoint;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev210618.optical.renderer.nodes.Nodes;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev210618.optical.renderer.nodes.NodesBuilder;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev210618.optical.renderer.nodes.NodesKey;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev210930.optical.renderer.nodes.Nodes;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev210930.optical.renderer.nodes.NodesBuilder;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev210930.optical.renderer.nodes.NodesKey;
 import org.opendaylight.yangtools.yang.common.RpcResult;
 import org.opendaylight.yangtools.yang.common.RpcResultBuilder;
 import org.opendaylight.yangtools.yang.common.Uint32;
@@ -130,7 +130,9 @@ public final class ModelMappingUtils {
             .setServiceName(serviceName)
             .setOperation(operation)
             .setNodes(nodeLists.getRendererNodeList())
-            .setWidth(new FrequencyGHz(GridConstant.WIDTH_40));
+            .setNmcWidth(new FrequencyGHz(GridConstant.WIDTH_40))
+            .setMcWidth(new FrequencyGHz(pathDescription.getAToZDirection().getAToZMaxFrequency().getValue()
+                       .subtract(pathDescription.getAToZDirection().getAToZMinFrequency().getValue())));
         if (atoZDirection.getAToZWavelengthNumber() != null) {
             servicePathInputBuilder
                 .setWaveNumber(atoZDirection.getAToZWavelengthNumber());
@@ -163,7 +165,7 @@ public final class ModelMappingUtils {
                     && GridConstant.FREQUENCY_WIDTH_TABLE
                     .contains(atoZDirection.getRate(), optionalModulationFormat.get())) {
                 servicePathInputBuilder
-                    .setWidth(FrequencyGHz
+                    .setNmcWidth(FrequencyGHz
                         .getDefaultInstance(GridConstant.FREQUENCY_WIDTH_TABLE.get(atoZDirection.getRate(),
                         optionalModulationFormat.get())));
             }
@@ -184,7 +186,9 @@ public final class ModelMappingUtils {
             .setOperation(operation)
             .setServiceName(serviceName)
             .setNodes(nodeLists.getRendererNodeList())
-            .setWidth(new FrequencyGHz(GridConstant.WIDTH_40));
+            .setNmcWidth(new FrequencyGHz(GridConstant.WIDTH_40))
+            .setMcWidth(new FrequencyGHz(pathDescription.getAToZDirection().getAToZMaxFrequency().getValue()
+                        .subtract(pathDescription.getAToZDirection().getAToZMinFrequency().getValue())));
         if (ztoADirection.getZToAWavelengthNumber() != null) {
             servicePathInputBuilder
                 .setWaveNumber(ztoADirection.getZToAWavelengthNumber());
@@ -216,7 +220,7 @@ public final class ModelMappingUtils {
             if (optionalModulationFormat.isPresent()
                     && GridConstant.FREQUENCY_WIDTH_TABLE
                     .contains(ztoADirection.getRate(), optionalModulationFormat.get())) {
-                servicePathInputBuilder.setWidth(FrequencyGHz
+                servicePathInputBuilder.setNmcWidth(FrequencyGHz
                         .getDefaultInstance(GridConstant.FREQUENCY_WIDTH_TABLE.get(ztoADirection.getRate(),
                                 optionalModulationFormat.get())));
             }
@@ -231,7 +235,7 @@ public final class ModelMappingUtils {
     public static OtnServicePathInput rendererCreateOtnServiceInput(String serviceName, Action operation,
         String serviceFormat, Uint32 serviceRate, PathDescription pathDescription, boolean asideToZside) {
         // If atoZ is set true use A-to-Z direction otherwise use Z-to-A
-        List<org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev210618.otn.renderer.nodes.Nodes> nodes =
+        List<org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev210930.otn.renderer.nodes.Nodes> nodes =
             new ArrayList<>();
         NodeLists nodeLists =
             (asideToZside)
@@ -239,8 +243,8 @@ public final class ModelMappingUtils {
             : getNodesListZtoA(pathDescription.getZToADirection().nonnullZToA().values().iterator());
         LOG.info("These are node-lists {}, {}", nodeLists.getRendererNodeList(), nodeLists.getOlmNodeList());
         for (Nodes node: nodeLists.getRendererNodeList()) {
-            org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev210618.otn.renderer.nodes.NodesBuilder nb
-                = new org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev210618.otn.renderer.nodes
+            org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev210930.otn.renderer.nodes.NodesBuilder nb
+                = new org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev210930.otn.renderer.nodes
                     .NodesBuilder().setNodeId(node.getNodeId()).setNetworkTp(node.getDestTp());
             if (node.getSrcTp() != null && node.getSrcTp().contains("NETWORK")) {
                 nb.setNetwork2Tp(node.getSrcTp());
index e429daef48b4376ecbbfab4f8258075a44b7b3b8..5fb0bd8f9f0cc4fb63b4d6416cfc0906cd72cebf 100644 (file)
@@ -8,7 +8,7 @@
 package org.opendaylight.transportpce.renderer;
 
 import java.util.List;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev210618.optical.renderer.nodes.Nodes;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev210930.optical.renderer.nodes.Nodes;
 
 public class NodeLists {
 
index fcd67d1cb2d4ba3803a8a66d3a80926e3a41dc68..e6594bce6906989b9f4a68073f6c0eee973d5c6d 100644 (file)
@@ -70,12 +70,12 @@ import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.Service
 import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.service.list.Services;
 import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.service.list.ServicesBuilder;
 import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.service.list.ServicesKey;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev210618.link.tp.LinkTp;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev210618.link.tp.LinkTpBuilder;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev210618.node.interfaces.NodeInterface;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev210618.node.interfaces.NodeInterfaceBuilder;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev210618.node.interfaces.NodeInterfaceKey;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev210618.optical.renderer.nodes.Nodes;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev210930.link.tp.LinkTp;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev210930.link.tp.LinkTpBuilder;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev210930.node.interfaces.NodeInterface;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev210930.node.interfaces.NodeInterfaceBuilder;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev210930.node.interfaces.NodeInterfaceKey;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev210930.optical.renderer.nodes.Nodes;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
index 121790a31dbd2612081b9eabe3cb6739ccfdef1e..1384a7b1fbb8d1710cd6a5f70079bc556f0848ac 100644 (file)
@@ -10,9 +10,9 @@ package org.opendaylight.transportpce.renderer.provisiondevice;
 import java.util.Collections;
 import java.util.List;
 import org.opendaylight.transportpce.common.OperationResult;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev210618.link.tp.LinkTp;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev210618.node.interfaces.NodeInterface;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev210618.optical.renderer.nodes.Nodes;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev210930.link.tp.LinkTp;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev210930.node.interfaces.NodeInterface;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev210930.optical.renderer.nodes.Nodes;
 
 public final class DeviceRenderingResult extends OperationResult {
 
index a7588b777a21bac7507b1097f41787607ab4d079..0bb56cca7470a8ba9969631a00b10911a1ea132a 100644 (file)
@@ -33,12 +33,12 @@ import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.re
 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.openroadm.otn.common.types.rev200327.OpucnTribSlotDef;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev210618.link.tp.LinkTp;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev210618.link.tp.LinkTpBuilder;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev210618.node.interfaces.NodeInterface;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev210618.node.interfaces.NodeInterfaceBuilder;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev210618.node.interfaces.NodeInterfaceKey;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev210618.otn.renderer.nodes.Nodes;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev210930.link.tp.LinkTp;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev210930.link.tp.LinkTpBuilder;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev210930.node.interfaces.NodeInterface;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev210930.node.interfaces.NodeInterfaceBuilder;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev210930.node.interfaces.NodeInterfaceKey;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev210930.otn.renderer.nodes.Nodes;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
index 9e47569dfb397e795728a745dba773cf9ae40938..9da2e9d1b4e388fc507cd9717ecb9aff611448bf 100644 (file)
@@ -11,8 +11,8 @@ package org.opendaylight.transportpce.renderer.provisiondevice;
 import java.util.Collections;
 import java.util.List;
 import org.opendaylight.transportpce.common.OperationResult;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev210618.link.tp.LinkTp;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev210618.node.interfaces.NodeInterface;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev210930.link.tp.LinkTp;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev210930.node.interfaces.NodeInterface;
 
 public final class OtnDeviceRenderingResult extends OperationResult {
     private final List<NodeInterface> renderedNodeInterfaces;
index 154c8fa0220e247e3cdec576337ce1608797305a..516ae4b422e291e7d942492df5d91f56057f6646 100644 (file)
@@ -71,9 +71,9 @@ import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service
 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.servicepath.rev171017.ServicePathList;
 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.servicepath.rev171017.service.path.list.ServicePaths;
 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.servicepath.rev171017.service.path.list.ServicePathsKey;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev210618.link.tp.LinkTp;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev210618.olm.get.pm.input.ResourceIdentifierBuilder;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev210618.optical.renderer.nodes.Nodes;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev210930.link.tp.LinkTp;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev210930.olm.get.pm.input.ResourceIdentifierBuilder;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev210930.optical.renderer.nodes.Nodes;
 import org.opendaylight.yang.gen.v1.http.transportpce.topology.rev210511.OtnLinkType;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 import org.opendaylight.yangtools.yang.binding.Notification;
index 9a2e606395f56d6ad1ac62313963cf7853de8a31..6954ea55b9ae359e56dd44147136acb3eb2ec14c 100644 (file)
@@ -17,8 +17,8 @@ import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.re
 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev211004.RendererRollbackInputBuilder;
 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev211004.RendererRollbackOutput;
 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev211004.renderer.rollback.output.FailedToRollback;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev210618.node.interfaces.NodeInterface;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev210618.node.interfaces.NodeInterfaceKey;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev210930.node.interfaces.NodeInterface;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev210930.node.interfaces.NodeInterfaceKey;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
index 9a6895f5d925d66a151fcf60bbe3671c163907be..f6f2bafea2014475a43d060feba67d9d600673d6 100644 (file)
@@ -15,7 +15,7 @@ import org.opendaylight.transportpce.renderer.provisiondevice.DeviceRendererServ
 import org.opendaylight.transportpce.renderer.provisiondevice.DeviceRenderingResult;
 import org.opendaylight.transportpce.renderer.provisiondevice.servicepath.ServicePathDirection;
 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev211004.ServicePathOutput;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev210618.optical.renderer.nodes.Nodes;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev210930.optical.renderer.nodes.Nodes;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
index d768e43704ded418b4579a39cafe30211d9d3f77..2cc20417a5445aa2a728bb5334aad55de871d3f7 100644 (file)
@@ -11,6 +11,7 @@ package org.opendaylight.transportpce.renderer.provisiondevice;
 import com.google.common.util.concurrent.ListenableFuture;
 import java.util.Collections;
 import java.util.concurrent.ExecutionException;
+import java.util.concurrent.TimeoutException;
 import org.junit.Assert;
 import org.junit.Before;
 import org.junit.Test;
@@ -18,6 +19,7 @@ import org.mockito.Mockito;
 import org.opendaylight.mdsal.binding.api.MountPoint;
 import org.opendaylight.mdsal.binding.api.MountPointService;
 import org.opendaylight.mdsal.binding.api.NotificationPublishService;
+import org.opendaylight.mdsal.binding.api.ReadTransaction;
 import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
 import org.opendaylight.transportpce.common.ResponseCodes;
 import org.opendaylight.transportpce.common.StringConstants;
@@ -63,6 +65,7 @@ public class RendererServiceOperationsImplDeleteTest extends AbstractTest {
     private final OtnDeviceRendererService otnDeviceRendererService = Mockito.mock(OtnDeviceRendererService.class);
     private final PortMapping portMapping = Mockito.mock(PortMapping.class);
     private final CrossConnect crossConnect = Mockito.mock(CrossConnect.class);
+    private final ReadTransaction readTransaction = Mockito.mock(ReadTransaction.class);
     private TransportpceOlmService olmService;
 
     private void setMountPoint(MountPoint mountPoint) {
@@ -82,7 +85,7 @@ public class RendererServiceOperationsImplDeleteTest extends AbstractTest {
 
 
     @Test
-    public void serviceDeleteOperationPp() throws ExecutionException, InterruptedException {
+    public void serviceDeleteOperationPp() throws ExecutionException, InterruptedException, TimeoutException {
         writePathDescription();
         ServiceDeleteInputBuilder serviceDeleteInputBuilder = new ServiceDeleteInputBuilder();
         serviceDeleteInputBuilder.setServiceName("service 1");
index c169ec5089f3875c829d288e04056a032259f00d..51d195a43a10bb63698f907cf6cc35dec28bf94b 100644 (file)
@@ -48,7 +48,7 @@ import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.renderer.
 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.renderer.rev210915.ServiceImplementationRequestOutput;
 import org.opendaylight.yang.gen.v1.http.org.openroadm.pm.types.rev161014.PmGranularity;
 import org.opendaylight.yang.gen.v1.http.org.openroadm.resource.types.rev161014.ResourceTypeEnum;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev210618.olm.get.pm.input.ResourceIdentifierBuilder;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev210930.olm.get.pm.input.ResourceIdentifierBuilder;
 import org.opendaylight.yangtools.yang.common.RpcResultBuilder;
 
 public class RendererServiceOperationsImplTest extends AbstractTest {
index db72f3bddb5327b33eb585e2865b03fbbb2a1a5c..23026431bdbf2e72470c9d081f456fbb42a3bd51 100644 (file)
@@ -23,6 +23,7 @@ import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.renderer.
 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.renderer.rev210915.service.implementation.request.input.PathDescriptionBuilder;
 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.renderer.rev210915.service.implementation.request.input.ServiceAEndBuilder;
 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.renderer.rev210915.service.implementation.request.input.ServiceZEndBuilder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.common.optical.channel.types.rev200529.FrequencyTHz;
 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev190531.ConnectionType;
 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev190531.service.port.PortBuilder;
 import org.opendaylight.yang.gen.v1.http.org.openroadm.service.format.rev190531.ServiceFormat;
@@ -46,9 +47,9 @@ import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdes
 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev200128.service.endpoint.sp.RxDirectionBuilder;
 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev200128.service.endpoint.sp.TxDirectionBuilder;
 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev200128.service.handler.header.ServiceHandlerHeaderBuilder;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev210618.optical.renderer.nodes.Nodes;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev210618.optical.renderer.nodes.NodesBuilder;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev210618.optical.renderer.nodes.NodesKey;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev210930.optical.renderer.nodes.Nodes;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev210930.optical.renderer.nodes.NodesBuilder;
+import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev210930.optical.renderer.nodes.NodesKey;
 import org.opendaylight.yangtools.yang.common.Uint32;
 
 
@@ -158,9 +159,12 @@ public final class ServiceDataUtils {
                 atoZMap.put(atoZ.key(),atoZ);
             }
         }
+        FrequencyTHz value;
         AToZDirection atozDirection = new AToZDirectionBuilder()
             .setRate(Uint32.valueOf(20))
             .setAToZWavelengthNumber(Uint32.valueOf(20))
+            .setAToZMinFrequency(FrequencyTHz.getDefaultInstance("196.125"))
+            .setAToZMaxFrequency(FrequencyTHz.getDefaultInstance("196.075"))
             .setAToZ(atoZMap)
             .build();
 
@@ -183,6 +187,8 @@ public final class ServiceDataUtils {
         ZToADirection ztoaDirection = new ZToADirectionBuilder()
             .setRate(Uint32.valueOf(20))
             .setZToAWavelengthNumber(Uint32.valueOf(20))
+            .setZToAMinFrequency(FrequencyTHz.getDefaultInstance("196.125"))
+            .setZToAMaxFrequency(FrequencyTHz.getDefaultInstance("196.075"))
             .setZToA(ztoAMap)
             .build();
         PathDescriptionBuilder builder = new PathDescriptionBuilder()
index d868df9ac63024ae74f6aa81221697a083b6ea56..bb42b4d87c6d384975aefa627bf1d0a7a8b45325 100644 (file)
@@ -10,6 +10,7 @@ package org.opendaylight.transportpce.renderer.utils;
 
 import java.util.HashMap;
 import java.util.Map;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.common.optical.channel.types.rev200529.FrequencyTHz;
 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev190531.service.port.PortBuilder;
 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.state.types.rev191129.State;
 import org.opendaylight.yang.gen.v1.http.org.openroadm.service.format.rev190531.ServiceFormat;
@@ -56,6 +57,8 @@ public final class ServiceDeleteDataUtils {
         AToZDirection atozDirection = new AToZDirectionBuilder()
                 .setRate(Uint32.valueOf(20))
                 .setAToZWavelengthNumber(Uint32.valueOf(20))
+                .setAToZMinFrequency(FrequencyTHz.getDefaultInstance("196.125"))
+                .setAToZMaxFrequency(FrequencyTHz.getDefaultInstance("196.075"))
                 .setAToZ(atoZMap)
                 .setModulationFormat("OC")
                 .build();
@@ -69,6 +72,8 @@ public final class ServiceDeleteDataUtils {
         ZToADirection ztoaDirection = new ZToADirectionBuilder()
                 .setRate(Uint32.valueOf(20))
                 .setZToAWavelengthNumber(Uint32.valueOf(20))
+                .setZToAMinFrequency(FrequencyTHz.getDefaultInstance("196.125"))
+                .setZToAMaxFrequency(FrequencyTHz.getDefaultInstance("196.075"))
                 .setZToA(ztoAMap)
                 .setModulationFormat("OC")
                 .build();
index 050609975f3d51e44e2691a54ca4aaf34a348ec1..f9e5d1b6fa610f06f10fe957f8905c9a0d57be20 100644 (file)
@@ -286,7 +286,7 @@ class TransportOlmTesting(unittest.TestCase):
                     }
                 ],
                 "center-freq": 196.1,
-                "width": 40,
+                "nmc-width": 40,
                 "min-freq": 196.075,
                 "max-freq": 196.125,
                 "lower-spectral-slot-number": 761,
@@ -351,7 +351,7 @@ class TransportOlmTesting(unittest.TestCase):
                     }
                 ],
                 "center-freq": 196.1,
-                "width": 40,
+                "nmc-width": 40,
                 "min-freq": 196.075,
                 "max-freq": 196.125,
                 "lower-spectral-slot-number": 761,
@@ -409,7 +409,7 @@ class TransportOlmTesting(unittest.TestCase):
                     }
                 ],
                 "center-freq": 196.1,
-                "width": 40,
+                "nmc-width": 40,
                 "min-freq": 196.075,
                 "max-freq": 196.125,
                 "lower-spectral-slot-number": 761,
index 73411e7952c95203ac6d45acd9b90d2da240a2c4..dc64616a5d02e405c24105afe3ac2562a47801de 100644 (file)
@@ -130,7 +130,7 @@ class TransportPCEPortMappingTesting(unittest.TestCase):
                 "transportpce-device-renderer:service-name": "testNMC-MC",
                 "transportpce-device-renderer:wave-number": "0",
                 "transportpce-device-renderer:center-freq": "196.05",
-                "transportpce-device-renderer:width": "80",
+                "transportpce-device-renderer:nmc-width": "80",
                 "transportpce-device-renderer:nodes": [
                     {
                         "transportpce-device-renderer:node-id": "ROADM-D1",
index ca3ef103f96ab7fa461f37657e08374792f5dfc2..b6eb71cae984a48e667c214325739246cd8ee19e 100644 (file)
@@ -441,7 +441,7 @@ def service_path_request(operation: str, servicename: str, wavenumber: str, node
         "renderer:operation": operation,
         "renderer:nodes": nodes,
         "renderer:center-freq": centerfreq,
-        "renderer:width": slotwidth,
+        "renderer:nmc-width": slotwidth,
         "renderer:min-freq": minfreq,
         "renderer:max-freq": maxfreq,
         "renderer:lower-spectral-slot-number": lowerslotnumber,