Fixed bug in RPC and Generics mapping
[controller.git] / opendaylight / protocol_plugins / openflow / src / main / java / org / opendaylight / controller / protocol_plugin / openflow / IReadServiceFilter.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.protocol_plugin.openflow;
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 import org.opendaylight.controller.sal.reader.FlowOnNode;
19 import org.opendaylight.controller.sal.reader.NodeConnectorStatistics;
20 import org.opendaylight.controller.sal.reader.NodeDescription;
21 import org.opendaylight.controller.sal.reader.NodeTableStatistics;
22
23 /**
24  * Interface to serve the hardware information requests coming from SAL
25  * It is implemented by the respective OF1.0 plugin component
26  *
27  */
28 public interface IReadServiceFilter {
29     /**
30      * Returns the hardware image for the specified flow
31      * on the specified network node for the passed container
32      *
33      * @param container
34      * @param node
35      * @param flow
36      * @param cached
37      * @return
38      */
39     public FlowOnNode readFlow(String container, Node node, Flow flow,
40             boolean cached);
41
42     /**
43      * Returns the hardware view of all the flow installed
44      * on the specified network node for the passed container
45      *
46      * @param container
47      * @param node
48      * @param cached
49      * @return
50      */
51     public List<FlowOnNode> readAllFlow(String container, Node node,
52             boolean cached);
53
54     /**
55      * Returns the description of the network node as provided by the node itself
56      *
57      * @param node
58      * @param cached
59      * @return
60      */
61     public NodeDescription readDescription(Node node, boolean cached);
62
63     /**
64      * Returns the hardware view of the specified network node connector
65      * for the given container
66      * @param node
67      * @return
68      */
69     public NodeConnectorStatistics readNodeConnector(String container,
70             NodeConnector nodeConnector, boolean cached);
71
72     /**
73      * Returns the hardware info for all the node connectors on the
74      * specified network node for the given container
75      *
76      * @param node
77      * @return
78      */
79     public List<NodeConnectorStatistics> readAllNodeConnector(String container,
80             Node node, boolean cached);
81
82     /**
83      * Returns the table statistics of the node as specified by the given container
84      * @param node
85      * @param cached
86      * @return
87      */
88     public NodeTableStatistics readNodeTable(String container,
89             NodeTable nodeTable, boolean cached);
90
91     /**
92      * Returns the table statistics of all the tables for the specified node
93      *
94      * @param node
95      * @return
96      */
97     public List<NodeTableStatistics> readAllNodeTable(String containerName,
98             Node node, boolean cached);
99
100     /**
101      * Returns the average transmit rate for the specified node conenctor on
102      * the given container. If the node connector does not belong to the passed
103      * container a zero value is returned
104      *
105      * @param container
106      * @param nodeConnector
107      * @return tx rate [bps]
108      */
109     public long getTransmitRate(String container, NodeConnector nodeConnector);
110 }