summaryrefslogtreecommitdiffstats
path: root/core/sliPluginUtils/provider/src/main
diff options
context:
space:
mode:
authordecheng zhang <decheng.zhang@huawei.com>2022-07-21 17:16:58 -0400
committerdecheng zhang <decheng.zhang@huawei.com>2022-07-21 17:16:58 -0400
commit812cf9a5f6ae7140be475342f19833a2e213c1ae (patch)
tree5245d6d9061b76b3e11e784a3b09f4dae4ba1b41 /core/sliPluginUtils/provider/src/main
parent80eadcf431c89268222ac6c1e256cd5180d4aa65 (diff)
[sli/core/sliPlutinUtils] Adding Extra Constraint Filtering on ShortestPathCompute
Issue-ID: CCSDK-3730 Signed-off-by: decheng zhang <decheng.zhang@huawei.com> Change-Id: I9a9899b235903c5a306edfdc155dd730a580e11d
Diffstat (limited to 'core/sliPluginUtils/provider/src/main')
-rw-r--r--core/sliPluginUtils/provider/src/main/java/org/onap/ccsdk/sli/core/slipluginutils/slitopologyutils/graph/DijkstraGraphSearch.java1
-rw-r--r--core/sliPluginUtils/provider/src/main/java/org/onap/ccsdk/sli/core/slipluginutils/slitopologyutils/graph/Edge.java6
-rw-r--r--core/sliPluginUtils/provider/src/main/java/org/onap/ccsdk/sli/core/slipluginutils/slitopologyutils/topology/Link.java6
-rw-r--r--core/sliPluginUtils/provider/src/main/java/org/onap/ccsdk/sli/core/slipluginutils/slitopologyutils/topology/LogicalLink.java9
-rw-r--r--core/sliPluginUtils/provider/src/main/java/org/onap/ccsdk/sli/core/slipluginutils/slitopologyutils/topology/OtnLink.java1
-rw-r--r--core/sliPluginUtils/provider/src/main/java/org/onap/ccsdk/sli/core/slipluginutils/slitopologyutils/topology/PInterface.java4
6 files changed, 27 insertions, 0 deletions
diff --git a/core/sliPluginUtils/provider/src/main/java/org/onap/ccsdk/sli/core/slipluginutils/slitopologyutils/graph/DijkstraGraphSearch.java b/core/sliPluginUtils/provider/src/main/java/org/onap/ccsdk/sli/core/slipluginutils/slitopologyutils/graph/DijkstraGraphSearch.java
index 11611346b..23b34f8d2 100644
--- a/core/sliPluginUtils/provider/src/main/java/org/onap/ccsdk/sli/core/slipluginutils/slitopologyutils/graph/DijkstraGraphSearch.java
+++ b/core/sliPluginUtils/provider/src/main/java/org/onap/ccsdk/sli/core/slipluginutils/slitopologyutils/graph/DijkstraGraphSearch.java
@@ -332,6 +332,7 @@ public class DijkstraGraphSearch<V extends Vertex, E extends Edge<V>> {
// If the vertex is reachable, relax all its egress edges.
for (E e : graph.getEdgesFrom(nearest)) {
+ if (!e.isPermitted(src, dst)) continue;
result.relaxEdge(e, cost, weigher, true);
}
}
diff --git a/core/sliPluginUtils/provider/src/main/java/org/onap/ccsdk/sli/core/slipluginutils/slitopologyutils/graph/Edge.java b/core/sliPluginUtils/provider/src/main/java/org/onap/ccsdk/sli/core/slipluginutils/slitopologyutils/graph/Edge.java
index b178072c2..cf96e7d0c 100644
--- a/core/sliPluginUtils/provider/src/main/java/org/onap/ccsdk/sli/core/slipluginutils/slitopologyutils/graph/Edge.java
+++ b/core/sliPluginUtils/provider/src/main/java/org/onap/ccsdk/sli/core/slipluginutils/slitopologyutils/graph/Edge.java
@@ -16,4 +16,10 @@ public interface Edge<V extends Vertex> {
*/
V dst();
+ /**
+ * Returns true if edge is permissable
+ */
+ default boolean isPermitted(V src, V dst){
+ return true;
+ }
}
diff --git a/core/sliPluginUtils/provider/src/main/java/org/onap/ccsdk/sli/core/slipluginutils/slitopologyutils/topology/Link.java b/core/sliPluginUtils/provider/src/main/java/org/onap/ccsdk/sli/core/slipluginutils/slitopologyutils/topology/Link.java
index fe6ec1c4f..0ace9de5d 100644
--- a/core/sliPluginUtils/provider/src/main/java/org/onap/ccsdk/sli/core/slipluginutils/slitopologyutils/topology/Link.java
+++ b/core/sliPluginUtils/provider/src/main/java/org/onap/ccsdk/sli/core/slipluginutils/slitopologyutils/topology/Link.java
@@ -6,4 +6,10 @@ public interface Link {
OTN,
ETH
}
+
+ PInterface src();
+
+ PInterface dst();
+
+ boolean isInnerDomain();
}
diff --git a/core/sliPluginUtils/provider/src/main/java/org/onap/ccsdk/sli/core/slipluginutils/slitopologyutils/topology/LogicalLink.java b/core/sliPluginUtils/provider/src/main/java/org/onap/ccsdk/sli/core/slipluginutils/slitopologyutils/topology/LogicalLink.java
index 47b43e849..9a9c95798 100644
--- a/core/sliPluginUtils/provider/src/main/java/org/onap/ccsdk/sli/core/slipluginutils/slitopologyutils/topology/LogicalLink.java
+++ b/core/sliPluginUtils/provider/src/main/java/org/onap/ccsdk/sli/core/slipluginutils/slitopologyutils/topology/LogicalLink.java
@@ -33,6 +33,15 @@ public class LogicalLink implements Edge<Pnf> {
}
@Override
+ public boolean isPermitted(Pnf src, Pnf dst) {
+ String curSrcName = src().toString();
+ String curDstName = dst().toString();
+ return link.isInnerDomain()
+ || !curSrcName.equals(src.toString()) && !curDstName.equals(dst.toString())
+ && !curSrcName.equals(dst.toString()) && !curDstName.equals(src.toString());
+ }
+
+ @Override
public int hashCode() {
return link.hashCode();
}
diff --git a/core/sliPluginUtils/provider/src/main/java/org/onap/ccsdk/sli/core/slipluginutils/slitopologyutils/topology/OtnLink.java b/core/sliPluginUtils/provider/src/main/java/org/onap/ccsdk/sli/core/slipluginutils/slitopologyutils/topology/OtnLink.java
index 553a9bd26..6a0fe3cee 100644
--- a/core/sliPluginUtils/provider/src/main/java/org/onap/ccsdk/sli/core/slipluginutils/slitopologyutils/topology/OtnLink.java
+++ b/core/sliPluginUtils/provider/src/main/java/org/onap/ccsdk/sli/core/slipluginutils/slitopologyutils/topology/OtnLink.java
@@ -29,6 +29,7 @@ public class OtnLink implements Link{
return linkName;
}
+ @Override
public boolean isInnerDomain(){
if (src != null && dst != null){
if (src.pInterfaceName() != null && dst.pInterfaceName() != null){
diff --git a/core/sliPluginUtils/provider/src/main/java/org/onap/ccsdk/sli/core/slipluginutils/slitopologyutils/topology/PInterface.java b/core/sliPluginUtils/provider/src/main/java/org/onap/ccsdk/sli/core/slipluginutils/slitopologyutils/topology/PInterface.java
index 6b111871d..20aee11a7 100644
--- a/core/sliPluginUtils/provider/src/main/java/org/onap/ccsdk/sli/core/slipluginutils/slitopologyutils/topology/PInterface.java
+++ b/core/sliPluginUtils/provider/src/main/java/org/onap/ccsdk/sli/core/slipluginutils/slitopologyutils/topology/PInterface.java
@@ -16,6 +16,10 @@ public class PInterface {
return pInterfaceName;
}
+ public String pnfName() {
+ return pnfName;
+ }
+
@Override
public int hashCode(){
return Objects.hash(pnfName, pInterfaceName);