diff options
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.java | 63 |
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. * |