aboutsummaryrefslogtreecommitdiffstats
path: root/framework/src/onos/core/api/src/main/java/org/onosproject/net/topology/TopologyService.java
diff options
context:
space:
mode:
Diffstat (limited to 'framework/src/onos/core/api/src/main/java/org/onosproject/net/topology/TopologyService.java')
-rw-r--r--framework/src/onos/core/api/src/main/java/org/onosproject/net/topology/TopologyService.java63
1 files changed, 58 insertions, 5 deletions
diff --git a/framework/src/onos/core/api/src/main/java/org/onosproject/net/topology/TopologyService.java b/framework/src/onos/core/api/src/main/java/org/onosproject/net/topology/TopologyService.java
index 41eac2c4..466e4f9b 100644
--- a/framework/src/onos/core/api/src/main/java/org/onosproject/net/topology/TopologyService.java
+++ b/framework/src/onos/core/api/src/main/java/org/onosproject/net/topology/TopologyService.java
@@ -18,16 +18,18 @@ package org.onosproject.net.topology;
import org.onosproject.event.ListenerService;
import org.onosproject.net.ConnectPoint;
import org.onosproject.net.DeviceId;
+import org.onosproject.net.DisjointPath;
import org.onosproject.net.Link;
import org.onosproject.net.Path;
+import java.util.Map;
import java.util.Set;
/**
* Service for providing network topology information.
*/
public interface TopologyService
- extends ListenerService<TopologyEvent, TopologyListener> {
+ extends ListenerService<TopologyEvent, TopologyListener> {
/**
* Returns the current topology descriptor.
@@ -72,8 +74,8 @@ public interface TopologyService
/**
* Returns the set of devices that belong to the specified cluster.
*
- * @param topology topology descriptor
- * @param cluster topology cluster
+ * @param topology topology descriptor
+ * @param cluster topology cluster
* @return set of cluster devices
*/
Set<DeviceId> getClusterDevices(Topology topology, TopologyCluster cluster);
@@ -81,8 +83,8 @@ public interface TopologyService
/**
* Returns the set of links that form the specified cluster.
*
- * @param topology topology descriptor
- * @param cluster topology cluster
+ * @param topology topology descriptor
+ * @param cluster topology cluster
* @return set of cluster links
*/
Set<Link> getClusterLinks(Topology topology, TopologyCluster cluster);
@@ -112,6 +114,57 @@ public interface TopologyService
LinkWeight weight);
/**
+ * Returns the set of all disjoint shortest path pairs, precomputed in terms of hop-count,
+ * between the specified source and destination devices.
+ *
+ * @param topology topology descriptor
+ * @param src source device
+ * @param dst destination device
+ * @return set of all shortest paths between the two devices
+ */
+ Set<DisjointPath> getDisjointPaths(Topology topology, DeviceId src, DeviceId dst);
+
+ /**
+ * Returns the set of all disjoint shortest path pairs, computed using the supplied
+ * edge-weight entity, between the specified source and destination devices.
+ *
+ * @param topology topology descriptor
+ * @param src source device
+ * @param dst destination device
+ * @param weight edge-weight entity
+ * @return set of all shortest paths between the two devices
+ */
+ Set<DisjointPath> getDisjointPaths(Topology topology, DeviceId src, DeviceId dst,
+ LinkWeight weight);
+
+ /**
+ * Returns the set of all disjoint shortest path pairs, precomputed in terms of hop-count,
+ * between the specified source and destination devices.
+ *
+ * @param topology topology descriptor
+ * @param src source device
+ * @param dst destination device
+ * @param riskProfile map of edges to risk profiles
+ * @return set of all shortest paths between the two devices
+ */
+ Set<DisjointPath> getDisjointPaths(Topology topology, DeviceId src, DeviceId dst,
+ Map<Link, Object> riskProfile);
+
+ /**
+ * Returns the set of all disjoint shortest path pairs, precomputed in terms of hop-count,
+ * between the specified source and destination devices.
+ *
+ * @param topology topology descriptor
+ * @param src source device
+ * @param dst destination device
+ * @param weight edge-weight entity
+ * @param riskProfile map of edges to risk profiles
+ * @return set of all shortest paths between the two devices
+ */
+ Set<DisjointPath> getDisjointPaths(Topology topology, DeviceId src, DeviceId dst,
+ LinkWeight weight, Map<Link, Object> riskProfile);
+
+ /**
* Indicates whether the specified connection point is part of the network
* infrastructure or part of network edge.
*