aboutsummaryrefslogtreecommitdiffstats
path: root/framework/src/onos/core/api/src/main/java/org/onosproject/net/topology/TopologyStore.java
diff options
context:
space:
mode:
Diffstat (limited to 'framework/src/onos/core/api/src/main/java/org/onosproject/net/topology/TopologyStore.java')
-rw-r--r--framework/src/onos/core/api/src/main/java/org/onosproject/net/topology/TopologyStore.java55
1 files changed, 55 insertions, 0 deletions
diff --git a/framework/src/onos/core/api/src/main/java/org/onosproject/net/topology/TopologyStore.java b/framework/src/onos/core/api/src/main/java/org/onosproject/net/topology/TopologyStore.java
index 983e616e..039a205c 100644
--- a/framework/src/onos/core/api/src/main/java/org/onosproject/net/topology/TopologyStore.java
+++ b/framework/src/onos/core/api/src/main/java/org/onosproject/net/topology/TopologyStore.java
@@ -20,11 +20,13 @@ import org.onosproject.net.ConnectPoint;
import org.onosproject.net.DeviceId;
import org.onosproject.net.Link;
import org.onosproject.net.Path;
+import org.onosproject.net.DisjointPath;
import org.onosproject.net.provider.ProviderId;
import org.onosproject.store.Store;
import java.util.List;
import java.util.Set;
+import java.util.Map;
/**
* Manages inventory of topology snapshots; not intended for direct use.
@@ -112,6 +114,59 @@ public interface TopologyStore extends Store<TopologyEvent, TopologyStoreDelegat
LinkWeight weight);
/**
+ * Computes and returns the set of disjoint shortest path pairs
+ * between src and dst.
+ *
+ * @param topology topology descriptor
+ * @param src source device
+ * @param dst destination device
+ * @param weight link weight function
+ * @return set of shortest paths
+ */
+ Set<DisjointPath> getDisjointPaths(Topology topology, DeviceId src, DeviceId dst,
+ LinkWeight weight);
+
+ /**
+ * Computes and returns the set of disjoint shortest path pairs
+ * between src and dst.
+ *
+ * @param topology topology descriptor
+ * @param src source device
+ * @param dst destination device
+ * @return set of shortest paths
+ */
+ Set<DisjointPath> getDisjointPaths(Topology topology, DeviceId src, DeviceId dst);
+
+ /**
+ * Computes and returns the set of SRLG disjoint shortest path pairs between source
+ * and dst, given a mapping of edges to SRLG risk groups.
+ *
+ * @param topology topology descriptor
+ * @param src source device
+ * @param dst destination device
+ * @param weight link weight function
+ * @param riskProfile map of edges to objects. Edges that map to the same object will
+ * be treated as if they were in the same risk group.
+ * @return set of shortest paths
+ */
+ Set<DisjointPath> getDisjointPaths(Topology topology, DeviceId src, DeviceId dst,
+ LinkWeight weight, Map<Link, Object> riskProfile);
+
+ /**
+ * Returns the set of pre-computed SRLG shortest paths between src and dest.
+ *
+ * @param topology topology descriptor
+ * @param src source device
+ * @param dst destination device
+ * @param riskProfile map of edges to objects. Edges that map to the same object will
+ * be treated as if they were in the same risk group.
+ * @return set of shortest paths
+ */
+ Set<DisjointPath> getDisjointPaths(Topology topology, DeviceId src, DeviceId dst,
+ Map<Link, Object> riskProfile);
+
+
+ /**
* Indicates whether the given connect point is part of the network fabric.
*
* @param topology topology descriptor