Initial opendaylight infrastructure commit!!
[controller.git] / opendaylight / sal / api / src / main / java / org / opendaylight / controller / sal / reader / IReadService.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.reader;
11
12 import java.util.List;
13
14 import org.opendaylight.controller.sal.core.Node;
15 import org.opendaylight.controller.sal.core.NodeConnector;
16 import org.opendaylight.controller.sal.flowprogrammer.Flow;
17
18 /**
19  * Interface for retrieving the network node's flow/port/queue hardware view
20  *
21  *
22  *
23  */
24 public interface IReadService {
25     /**
26      * Get the hardware view for the specified flow on the specified network node
27      *
28      * @param node
29      * @param flow
30      */
31     FlowOnNode readFlow(Node node, Flow flow);
32
33     /**
34      * Get the hardware view for the specified flow on the specified network node
35      * This call results in a direct polling of the information from the node
36      * Caller will be blocked until node replies or request times out
37      *
38      * @param node
39      * @param flow
40      */
41     FlowOnNode nonCachedReadFlow(Node node, Flow flow);
42
43     /**
44      * Get the hardware view for all the flows installed on the network node
45      *
46      * @param node
47      * @return
48      */
49     List<FlowOnNode> readAllFlows(Node node);
50
51     /**
52      * Get the hardware view for all the flows installed on the network node
53      * This call results in a direct polling of the information from the node
54      * Caller will be blocked until node replies or request times out
55      *
56      * @param node
57      * @param flow
58      */
59     List<FlowOnNode> nonCachedReadAllFlows(Node node);
60
61     /**
62      * Get the description information for the network node
63      * @param node
64      * @return
65      */
66     NodeDescription readDescription(Node node);
67
68     /**
69      * Get the description information for the network node
70      * This call results in a direct polling of the information from the node
71      * Caller will be blocked until node replies or request times out
72      *
73      * @param node
74      * @return
75      */
76     NodeDescription nonCachedReadDescription(Node node);
77
78     /**
79      * Get the hardware view for the specified node connector
80      * @param connector
81      */
82     NodeConnectorStatistics readNodeConnector(NodeConnector connector);
83
84     /**
85      * Get the hardware view for all the node connectors
86      * present on the specified network node
87      * @param connector
88      */
89     List<NodeConnectorStatistics> readNodeConnectors(Node node);
90
91     /**
92      * Get the node connectors statistics information for the network node
93      * This call results in a direct polling of the information from the node
94      * Caller will be blocked until node replies or request times out
95      *
96      * @param node
97      * @return
98      */
99     List<NodeConnectorStatistics> nonCachedReadNodeConnectors(Node node);
100
101     /**
102      * Get the node connectors statistics information for the network node
103      *
104      * @param node
105      * @return
106      */
107     NodeConnectorStatistics nonCachedReadNodeConnector(NodeConnector connector);
108
109     /**
110      * Get the transmit rate for the specified node connector
111      *
112      * @param connector
113      * @return tx rate [bps]
114      */
115     long getTransmitRate(NodeConnector connector);
116
117 }