3 * Copyright (c) 2013 Cisco Systems, Inc. and others. All rights reserved.
5 * This program and the accompanying materials are made available under the
6 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
7 * and is available at http://www.eclipse.org/legal/epl-v10.html
10 package org.opendaylight.controller.sal.routing;
14 import org.opendaylight.controller.sal.core.Edge;
15 import org.opendaylight.controller.sal.core.Node;
16 import org.opendaylight.controller.sal.core.Path;
19 * This interface provides APIs to manage and query the routing information
22 public interface IRouting {
25 * Returns a Path leading from the source to the destination
28 * source {@link org.opendaylight.controller.sal.core.Node}
32 * {@link org.opendaylight.controller.sal.core.Node}
33 * @return: the {@link org.opendaylight.controller.sal.core.Path}
35 public Path getRoute(Node src, Node dst);
38 * Returns a Max ThroughPut Path leading from the source to the destination
41 * source {@link org.opendaylight.controller.sal.core.Node}
45 * {@link org.opendaylight.controller.sal.core.Node}
46 * @return: the max throughput {@link org.opendaylight.controller.sal.core.Path}
48 public Path getMaxThroughputRoute(Node src, Node dst);
51 * Returns a Path leading from the source to the destination that meets the
55 * source {@link org.opendaylight.controller.sal.core.Node}
58 * destination {@link org.opendaylight.controller.sal.core.Node}
61 * @return: the {@link org.opendaylight.controller.sal.core.Path}
63 public Path getRoute(Node src, Node dst, Short Bw);
66 * Remove all routes and reset all state. USE CAREFULLY!
71 * Remove all Max Throughput Routes and reset all state. USE CAREFULLY!
73 public void clearMaxThroughput();
76 * Initialization For Max Throughput
78 * @param EdgeWeightMap
80 * {@link org.opendaylight.controller.sal.core.Edge} and
81 * Corresponding Weight. Optional Param - if null, implementation
82 * specific weight calculation will be used.
84 public void initMaxThroughput(Map<Edge, Number> EdgeWeightMap);