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.statisticsmanager;
12 import java.util.List;
15 import org.opendaylight.controller.forwardingrulesmanager.FlowEntry;
16 import org.opendaylight.controller.sal.core.Node;
17 import org.opendaylight.controller.sal.core.NodeConnector;
18 import org.opendaylight.controller.sal.core.NodeTable;
19 import org.opendaylight.controller.sal.reader.FlowOnNode;
20 import org.opendaylight.controller.sal.reader.NodeConnectorStatistics;
21 import org.opendaylight.controller.sal.reader.NodeDescription;
22 import org.opendaylight.controller.sal.reader.NodeTableStatistics;
25 * Interface which defines the available methods for retrieving
26 * the network nodes statistics.
28 public interface IStatisticsManager {
30 * Return all the statistics for all the flows present on the specified node in the current container context.
31 * If the context is the default container, the returned statistics are for all the flows installed on the node,
32 * regardless of the container they belong to
34 * @param node the network node
35 * @return the list of flows installed on the network node
37 List<FlowOnNode> getFlows(Node node);
40 * Returns the statistics for the flows specified in the list
43 * @return the list of flows installed on the network node
45 Map<Node, List<FlowOnNode>> getFlowStatisticsForFlowList(
46 List<FlowEntry> flows);
49 * Returns the number of flows installed on the switch in the current container context
50 * If the context is the default container, the returned value is the number of all the
51 * flows installed on the switch regardless of the container they belong to
56 int getFlowsNumber(Node node);
59 * Returns the node description for the specified node retrieved and cached by the
60 * protocol plugin component which collects the node statistics
65 NodeDescription getNodeDescription(Node node);
68 * Returns the statistics for the specified node connector as it was retrieved
69 * and cached by the protocol plugin component which collects the node connector statistics
74 NodeConnectorStatistics getNodeConnectorStatistics(
75 NodeConnector nodeConnector);
78 * Returns the statistics for all the node connector present on the specified network node
83 List<NodeConnectorStatistics> getNodeConnectorStatistics(Node node);
86 * Returns the statistics for the specified table of the node
91 NodeTableStatistics getNodeTableStatistics(NodeTable nodeTable);
94 * Returns the statistics for all the tables of the node
99 List <NodeTableStatistics> getNodeTableStatistics(Node node);