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.reader;
12 import java.util.List;
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;
20 * Interface for retrieving the network node's flow/port/queue hardware view
25 public interface IReadService {
27 * Get the hardware view for the specified flow on the specified network node
32 FlowOnNode readFlow(Node node, Flow flow);
35 * Get the hardware view for the specified flow on the specified network node
36 * This call results in a direct polling of the information from the node
37 * Caller will be blocked until node replies or request times out
42 FlowOnNode nonCachedReadFlow(Node node, Flow flow);
45 * Get the hardware view for all the flows installed on the network node
50 List<FlowOnNode> readAllFlows(Node node);
53 * Get the hardware view for all the flows installed on the network node
54 * This call results in a direct polling of the information from the node
55 * Caller will be blocked until node replies or request times out
60 List<FlowOnNode> nonCachedReadAllFlows(Node node);
63 * Get the description information for the network node
67 NodeDescription readDescription(Node node);
70 * Get the description information for the network node
71 * This call results in a direct polling of the information from the node
72 * Caller will be blocked until node replies or request times out
77 NodeDescription nonCachedReadDescription(Node node);
80 * Get the hardware view for the specified node connector
83 NodeConnectorStatistics readNodeConnector(NodeConnector connector);
86 * Get the hardware view for all the node connectors
87 * present on the specified network node
90 List<NodeConnectorStatistics> readNodeConnectors(Node node);
93 * Read the Table statistics for the given node table
96 NodeTableStatistics readNodeTable(NodeTable table);
99 * Read the Table statistics for the given node
100 * This is not used. Querying all tables on a node is not currently a feature.
103 List<NodeTableStatistics> readNodeTable(Node node);
106 * Get the table statistics for the given node table
107 * This call results in a direct polling of the information from the node
108 * Caller will be blocked until the node replies or request times out
112 NodeTableStatistics nonCachedReadNodeTable(NodeTable table);
115 * Get the node connectors statistics information for the network node
116 * This call results in a direct polling of the information from the node
117 * Caller will be blocked until node replies or request times out
122 List<NodeConnectorStatistics> nonCachedReadNodeConnectors(Node node);
125 * Get the node connectors statistics information for the network node
130 NodeConnectorStatistics nonCachedReadNodeConnector(NodeConnector connector);
133 * Get the transmit rate for the specified node connector
136 * @return tx rate [bps]
138 long getTransmitRate(NodeConnector connector);