Distinguish available SRG for uni/bi-direction 12/99612/1
authorVachhani, Shweta (sv111y) <sv111y@att.com>
Fri, 14 May 2021 18:05:27 +0000 (14:05 -0400)
committerChristophe BETOULE <christophe.betoule@orange.com>
Mon, 14 Feb 2022 14:54:44 +0000 (14:54 +0000)
- Currently CP-type is assigned TXRX irrespective of unidirectional
  or bidirectional. Since CP-type is used to assign respective SRG-type,
  it could be misleading.
- Fix the code to have correct SRG-type.

JIRA: TRNSPRTPCE-445
Signed-off-by: Vachhani, Shweta (sv111y) <sv111y@att.com>
Change-Id: Ia0b5e82e2182d6445238e8df0a540683ad2ade7c
(cherry picked from commit 5fbe564fe5828bb7eee0d73eaf3d3225855c1b90)

common/src/main/java/org/opendaylight/transportpce/common/StringConstants.java
pce/src/main/java/org/opendaylight/transportpce/pce/networkanalyzer/PceCalculation.java
pce/src/main/java/org/opendaylight/transportpce/pce/networkanalyzer/PceNode.java
pce/src/main/java/org/opendaylight/transportpce/pce/networkanalyzer/PceOpticalNode.java
pce/src/main/java/org/opendaylight/transportpce/pce/networkanalyzer/PceOtnNode.java
pce/src/test/java/org/opendaylight/transportpce/pce/networkanalyzer/PceOpticalNodeTest.java

index 40595ef6731e3808c83d89a55024a8986cda051c..d88754ad82b72a07642d8c5c56d59e3f85ca2b2f 100644 (file)
@@ -46,6 +46,9 @@ public final class StringConstants {
     public static final String SERVICE_TYPE_ODUC4 = "ODUC4";
 
 
+    public static final String SERVICE_DIRECTION_AZ = "aToz";
+    public static final String SERVICE_DIRECTION_ZA = "zToa";
+
     private StringConstants() {
         // hiding the default constructor
     }
index d2f3305f1c321ff37bf23f323d9cc78dfee70329..9eb660ff84d702fc66b1a6c94f779e1cc8c23e1f 100644 (file)
@@ -606,12 +606,14 @@ public class PceCalculation {
                     pcelink.getlinkType(), pcelink);
                 break;
             case ADDLINK:
-                pcelink.setClient(source.getRdmSrgClient(pcelink.getSourceTP().getValue()));
+                pcelink.setClient(
+                    source.getRdmSrgClient(pcelink.getSourceTP().getValue(), StringConstants.SERVICE_DIRECTION_AZ));
                 addLinks.add(pcelink);
                 LOG.debug("validateLink: ADD-LINK saved  {}", pcelink);
                 break;
             case DROPLINK:
-                pcelink.setClient(dest.getRdmSrgClient(pcelink.getDestTP().getValue()));
+                pcelink.setClient(
+                    dest.getRdmSrgClient(pcelink.getDestTP().getValue(), StringConstants.SERVICE_DIRECTION_ZA));
                 dropLinks.add(pcelink);
                 LOG.debug("validateLink: DROP-LINK saved  {}", pcelink);
                 break;
index 5e89108ffd6dc163bd427b3316ff39c018219b6a..aa0e3306ba9c65ac35db4cdbe8a19ce3c1e784a6 100644 (file)
@@ -26,7 +26,7 @@ public interface PceNode {
 
     void addOutgoingLink(PceLink outLink);
 
-    String getRdmSrgClient(String tp);
+    String getRdmSrgClient(String tp, String direction);
 
     String getXpdrClient(String tp);
 
index c2254c40147aed10467a5a019336eb9b9e35ce83..62afca641ba609ffb59fef53f633bcc58ff53d10 100644 (file)
@@ -311,7 +311,7 @@ public class PceOpticalNode implements PceNode {
     }
 
     @Override
-    public String getRdmSrgClient(String tp) {
+    public String getRdmSrgClient(String tp, String direction) {
         LOG.info("getRdmSrgClient: Getting PP client for tp '{}' on node : {}", tp, this.nodeId);
         OpenroadmTpType srgType = null;
         OpenroadmTpType cpType = this.availableSrgCp.get(tp);
@@ -322,7 +322,16 @@ public class PceOpticalNode implements PceNode {
         switch (cpType) {
             case SRGTXRXCP:
                 LOG.info("getRdmSrgClient: Getting BI Directional PP port ...");
-                srgType = OpenroadmTpType.SRGTXRXPP;
+                // Take the first-element in the available PP key set
+                if (availableSrgPp.entrySet().iterator().next().getKey()
+                        // and check if the port is bidirectional
+                        .contains("TXRX")) {
+                    srgType = OpenroadmTpType.SRGTXRXPP;
+                } else if (direction.equalsIgnoreCase("aToz")) {
+                    srgType = OpenroadmTpType.SRGRXPP;
+                } else {
+                    srgType = OpenroadmTpType.SRGTXPP;
+                }
                 break;
             case SRGTXCP:
                 LOG.info("getRdmSrgClient: Getting UNI Rx PP port ...");
index 35276d5e0c2b4e86e60f0c00e2a1e3162817170f..4d019fad91bfd14d7eddd50b2fc45e87e1f4109d 100644 (file)
@@ -557,7 +557,7 @@ public class PceOtnNode implements PceNode {
     }
 
     @Override
-    public String getRdmSrgClient(String tp) {
+    public String getRdmSrgClient(String tp, String direction) {
         return null;
     }
 
index b4dc9655336d8264aa09cb33d3d8dc572f7acbc0..0b01a1b7cba8059aca84bdafeb728a748a9e4d48 100644 (file)
@@ -159,7 +159,7 @@ public class PceOpticalNodeTest extends AbstractTest {
                 OpenroadmNodeType.ROADM, StringConstants.OPENROADM_DEVICE_VERSION_2_2_1,
                 GridConstant.SLOT_WIDTH_50, GridConstant.SLOT_WIDTH_50);
         pceOpticalNode.initSrgTps();
-        Assert.assertNull(pceOpticalNode.getRdmSrgClient("7"));
+        Assert.assertNull(pceOpticalNode.getRdmSrgClient("7", StringConstants.SERVICE_DIRECTION_AZ));
         Assert.assertFalse(pceOpticalNode.isValid());
         Assert.assertNull(pceOpticalNode.getBitSetData());
         Assert.assertTrue(pceOpticalNode.checkTP("testTP"));
@@ -175,7 +175,7 @@ public class PceOpticalNodeTest extends AbstractTest {
         pceOpticalNode.initSrgTps();
         pceOpticalNode.initFrequenciesBitSet();
         pceOpticalNode.initXndrTps(ServiceFormat.OMS);
-        Assert.assertNull(pceOpticalNode.getRdmSrgClient("7"));
+        Assert.assertNull(pceOpticalNode.getRdmSrgClient("7" ,StringConstants.SERVICE_DIRECTION_AZ));
         Assert.assertFalse(pceOpticalNode.isValid());
         Assert.assertNull(pceOpticalNode.getBitSetData());
         Assert.assertTrue(pceOpticalNode.checkTP("testTP"));
@@ -187,7 +187,7 @@ public class PceOpticalNodeTest extends AbstractTest {
                 OpenroadmNodeType.DEGREE, StringConstants.OPENROADM_DEVICE_VERSION_2_2_1,
                 GridConstant.SLOT_WIDTH_50, GridConstant.SLOT_WIDTH_50);
         pceOpticalNode.initSrgTps();
-        Assert.assertNull(pceOpticalNode.getRdmSrgClient("7"));
+        Assert.assertNull(pceOpticalNode.getRdmSrgClient("7" ,StringConstants.SERVICE_DIRECTION_AZ));
         Assert.assertFalse(pceOpticalNode.isValid());
         Assert.assertNull(pceOpticalNode.getBitSetData());
         Assert.assertTrue(pceOpticalNode.checkTP("testTP"));
@@ -204,7 +204,7 @@ public class PceOpticalNodeTest extends AbstractTest {
         Assert.assertFalse(pceOpticalNode.isValid());
         Assert.assertNull(pceOpticalNode.getBitSetData());
         Assert.assertTrue(pceOpticalNode.checkTP("testTP"));
-        Assert.assertNull(pceOpticalNode.getRdmSrgClient("5"));
+        Assert.assertNull(pceOpticalNode.getRdmSrgClient("5", StringConstants.SERVICE_DIRECTION_AZ));
     }
 
     @Test
@@ -215,7 +215,7 @@ public class PceOpticalNodeTest extends AbstractTest {
                 OpenroadmNodeType.ROADM, StringConstants.OPENROADM_DEVICE_VERSION_2_2_1,
                 GridConstant.SLOT_WIDTH_50, GridConstant.SLOT_WIDTH_50);
         pceOpticalNode.initSrgTps();
-        Assert.assertNull(pceOpticalNode.getRdmSrgClient("2"));
+        Assert.assertNull(pceOpticalNode.getRdmSrgClient("2" ,StringConstants.SERVICE_DIRECTION_AZ));
         Assert.assertFalse(pceOpticalNode.isValid());
         Assert.assertNull(pceOpticalNode.getBitSetData());
         Assert.assertTrue(pceOpticalNode.checkTP("testTP"));