1b950d7cf592df1a78fc775d3a4c390a274d4efa
[controller.git] / opendaylight / sal / api / src / main / java / org / opendaylight / controller / sal / reader / IPluginInReadService.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.core.NodeTable;
17 import org.opendaylight.controller.sal.flowprogrammer.Flow;
18
19 /**
20  * @file   IPluginInReadService.java
21  *
22  * @brief  Hardware view interface to be implemented by protocol plugins
23  *
24  *
25  *
26  */
27 public interface IPluginInReadService {
28
29     /**
30      * Returns the hardware image for the specified flow on the specified network node
31      * @param node
32      * @param flow
33      * @return
34      */
35     public FlowOnNode readFlow(Node node, Flow flow, boolean cached);
36
37     /**
38      * Returns the hardware view of all the flow installed on the specified network node
39      * @param node
40      * @return
41      */
42     public List<FlowOnNode> readAllFlow(Node node, boolean cached);
43
44     /**
45      * Returns the description of the network node as provided by the node itself
46      * @param node
47      * @return
48      */
49     public NodeDescription readDescription(Node node, boolean cached);
50
51     /**
52      * Returns the hardware view of the specified network node connector
53      * @param node
54      * @return
55      */
56     public NodeConnectorStatistics readNodeConnector(NodeConnector connector,
57             boolean cached);
58
59     /**
60      * Returns the hardware info for all the node connectors on the specified network node
61      * @param node
62      * @return
63      */
64     public List<NodeConnectorStatistics> readAllNodeConnector(Node node,
65             boolean cached);
66
67     /**
68      * Returns the table statistics for the node
69      * @param node
70      * @return
71      */
72     public NodeTableStatistics readNodeTable(NodeTable table, boolean cached);
73
74     /**
75      * Returns all the table statistics for the node
76      * @param node
77      * @return
78      */
79     public List<NodeTableStatistics> readAllNodeTable(Node node, boolean cached);
80
81     /**
82      * Returns the averaged transmit rate for the specified node connector
83      * @param connector
84      * @return tx rate [bps]
85      */
86     public long getTransmitRate(NodeConnector connector);
87
88 }