From fe8a24380dc8c4fa3b28e7297f6024de0db795c7 Mon Sep 17 00:00:00 2001 From: "Vachhani, Shweta (sv111y)" Date: Fri, 14 May 2021 14:05:27 -0400 Subject: [PATCH] Distinguish available SRG for uni/bi-direction - 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) Change-Id: Ia0b5e82e2182d6445238e8df0a540683ad2ade7c (cherry picked from commit 5fbe564fe5828bb7eee0d73eaf3d3225855c1b90) --- .../transportpce/common/StringConstants.java | 3 +++ .../pce/networkanalyzer/PceCalculation.java | 6 ++++-- .../transportpce/pce/networkanalyzer/PceNode.java | 2 +- .../pce/networkanalyzer/PceOpticalNode.java | 13 +++++++++++-- .../pce/networkanalyzer/PceOtnNode.java | 2 +- .../pce/networkanalyzer/PceOpticalNodeTest.java | 10 +++++----- 6 files changed, 25 insertions(+), 11 deletions(-) diff --git a/common/src/main/java/org/opendaylight/transportpce/common/StringConstants.java b/common/src/main/java/org/opendaylight/transportpce/common/StringConstants.java index 40595ef67..d88754ad8 100644 --- a/common/src/main/java/org/opendaylight/transportpce/common/StringConstants.java +++ b/common/src/main/java/org/opendaylight/transportpce/common/StringConstants.java @@ -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 } diff --git a/pce/src/main/java/org/opendaylight/transportpce/pce/networkanalyzer/PceCalculation.java b/pce/src/main/java/org/opendaylight/transportpce/pce/networkanalyzer/PceCalculation.java index d2f3305f1..9eb660ff8 100644 --- a/pce/src/main/java/org/opendaylight/transportpce/pce/networkanalyzer/PceCalculation.java +++ b/pce/src/main/java/org/opendaylight/transportpce/pce/networkanalyzer/PceCalculation.java @@ -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; diff --git a/pce/src/main/java/org/opendaylight/transportpce/pce/networkanalyzer/PceNode.java b/pce/src/main/java/org/opendaylight/transportpce/pce/networkanalyzer/PceNode.java index 5e89108ff..aa0e3306b 100644 --- a/pce/src/main/java/org/opendaylight/transportpce/pce/networkanalyzer/PceNode.java +++ b/pce/src/main/java/org/opendaylight/transportpce/pce/networkanalyzer/PceNode.java @@ -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); diff --git a/pce/src/main/java/org/opendaylight/transportpce/pce/networkanalyzer/PceOpticalNode.java b/pce/src/main/java/org/opendaylight/transportpce/pce/networkanalyzer/PceOpticalNode.java index c2254c401..62afca641 100644 --- a/pce/src/main/java/org/opendaylight/transportpce/pce/networkanalyzer/PceOpticalNode.java +++ b/pce/src/main/java/org/opendaylight/transportpce/pce/networkanalyzer/PceOpticalNode.java @@ -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 ..."); diff --git a/pce/src/main/java/org/opendaylight/transportpce/pce/networkanalyzer/PceOtnNode.java b/pce/src/main/java/org/opendaylight/transportpce/pce/networkanalyzer/PceOtnNode.java index 35276d5e0..4d019fad9 100644 --- a/pce/src/main/java/org/opendaylight/transportpce/pce/networkanalyzer/PceOtnNode.java +++ b/pce/src/main/java/org/opendaylight/transportpce/pce/networkanalyzer/PceOtnNode.java @@ -557,7 +557,7 @@ public class PceOtnNode implements PceNode { } @Override - public String getRdmSrgClient(String tp) { + public String getRdmSrgClient(String tp, String direction) { return null; } diff --git a/pce/src/test/java/org/opendaylight/transportpce/pce/networkanalyzer/PceOpticalNodeTest.java b/pce/src/test/java/org/opendaylight/transportpce/pce/networkanalyzer/PceOpticalNodeTest.java index b4dc96553..0b01a1b7c 100644 --- a/pce/src/test/java/org/opendaylight/transportpce/pce/networkanalyzer/PceOpticalNodeTest.java +++ b/pce/src/test/java/org/opendaylight/transportpce/pce/networkanalyzer/PceOpticalNodeTest.java @@ -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")); -- 2.36.6