Merge "BUG-2329 Add test for anyxmls inside rpc resonse for netcfon-connector"
[controller.git] / opendaylight / sal / api / src / main / java / org / opendaylight / controller / sal / routing / IRouting.java
1
2 /*
3  * Copyright (c) 2013 Cisco Systems, Inc. and others.  All rights reserved.
4  *
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
8  */
9
10 package org.opendaylight.controller.sal.routing;
11
12 import java.util.Map;
13
14 import org.opendaylight.controller.sal.core.Edge;
15 import org.opendaylight.controller.sal.core.Node;
16 import org.opendaylight.controller.sal.core.Path;
17
18 /**
19  * This interface provides APIs to manage and query the routing information
20  *
21  */
22 public interface IRouting {
23
24     /**
25      * Returns a Path leading from the source to the destination
26      *
27      * @param src
28      *            source {@link org.opendaylight.controller.sal.core.Node}
29      *
30      * @param dst
31      *            destination
32      *            {@link org.opendaylight.controller.sal.core.Node}
33      * @return: the {@link org.opendaylight.controller.sal.core.Path}
34      */
35     public Path getRoute(Node src, Node dst);
36
37     /**
38      * Returns a Max ThroughPut Path leading from the source to the destination
39      *
40      * @param src
41      *            source {@link org.opendaylight.controller.sal.core.Node}
42      *
43      * @param dst
44      *            destination
45      *            {@link org.opendaylight.controller.sal.core.Node}
46      * @return: the max throughput {@link org.opendaylight.controller.sal.core.Path}
47      */
48     public Path getMaxThroughputRoute(Node src, Node dst);
49
50     /**
51      * Returns a Path leading from the source to the destination that meets the
52      * specified bandwidth
53      *
54      * @param src
55      *            source {@link org.opendaylight.controller.sal.core.Node}
56      *
57      * @param dst
58      *            destination {@link org.opendaylight.controller.sal.core.Node}
59      * @param Bw
60      *            the bandwidth
61      * @return: the {@link org.opendaylight.controller.sal.core.Path}
62      */
63     public Path getRoute(Node src, Node dst, Short Bw);
64
65     /**
66      * Remove all routes and reset all state. USE CAREFULLY!
67      */
68     public void clear();
69
70     /**
71      * Remove all Max Throughput Routes and reset all state. USE CAREFULLY!
72      */
73     public void clearMaxThroughput();
74
75     /**
76      * Initialization For Max Throughput
77      *
78      * @param EdgeWeightMap
79      *            Map containing
80      *            {@link org.opendaylight.controller.sal.core.Edge} and
81      *            Corresponding Weight. Optional Param - if null, implementation
82      *            specific weight calculation will be used.
83      */
84     public void initMaxThroughput(Map<Edge, Number> EdgeWeightMap);
85
86 }