blob: c1d664b4aafcd570e7f04c3b54dc9eac8116969d [file] [log] [blame]
package org.onlab.onos.net.path;
import org.onlab.onos.net.DeviceId;
import org.onlab.onos.net.HostId;
import org.onlab.onos.net.Path;
import org.onlab.onos.net.topology.LinkWeight;
import java.util.Set;
/**
* Service for obtaining pre-computed paths or for requesting computation of
* paths using the current topology snapshot.
*/
public interface PathService {
/**
* Returns the set of all shortest paths, precomputed in terms of hop-count,
* between the specified source and destination devices.
*
* @param src source device
* @param dst destination device
* @return set of all shortest paths between the two devices
*/
Set<Path> getPaths(DeviceId src, DeviceId dst);
/**
* Returns the set of all shortest paths, computed using the supplied
* edge-weight entity, between the specified source and destination devices.
*
* @param src source device
* @param dst destination device
* @return set of all shortest paths between the two devices
*/
Set<Path> getPaths(DeviceId src, DeviceId dst,
LinkWeight weight);
/**
* Returns the set of all shortest paths, precomputed in terms of hop-count,
* between the specified source and destination end-stations.
*
* @param src source device
* @param dst destination device
* @return set of all shortest paths between the two end-stations hosts
*/
Set<Path> getPaths(HostId src, HostId dst);
/**
* Returns the set of all shortest paths, computed using the supplied
* edge-weight entity, between the specified source and end-stations.
*
* @param src source host
* @param dst destination host
* @return set of all shortest paths between the two end-station hosts
*/
Set<Path> getPaths(HostId src, HostId dst, LinkWeight weight);
}