org.opendaylight.snmp4sdn.IOFStatisticsManager Maven / Gradle / Ivy
The newest version!
/*
* Copyright (c) 2013 Industrial Technology Research Institute of Taiwan and others. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v1.0 which accompanies this distribution,
* and is available at http://www.eclipse.org/legal/epl-v10.html
*/
/*
This code reused the code base of OpenFlow plugin contributed by Cisco Systems, Inc. Their efforts are appreciated.
*/
package org.opendaylight.snmp4sdn;
import java.util.List;
import org.openflow.protocol.OFMatch;
import org.openflow.protocol.statistics.OFStatistics;
import org.openflow.protocol.statistics.OFStatisticsType;
/**
* Interface to expose the openflow statistics collected on the switches
*/
public interface IOFStatisticsManager {
/**
* Return all the statistics for all the flows present on the specified switch
*
* @param switchId the openflow datapath id
* @return the list of openflow statistics
*/
List getOFFlowStatistics(Long switchId);
/**
* Return all the statistics for all the flows present on the specified switch
*
* @param switchId the openflow datapath id
* @param ofMatch the openflow match to query. If null, the query is intended for all the flows
* @return the list of openflow statistics
*/
List getOFFlowStatistics(Long switchId, OFMatch ofMatch);
/**
* Return the description statistics for the specified switch.
*
* @param switchId the openflow datapath id
* @return the list of openflow statistics
*/
List getOFDescStatistics(Long switchId);
/**
* Returns the statistics for all the ports on the specified switch
*
* @param switchId the openflow datapath id
* @return the list of openflow statistics
*/
List getOFPortStatistics(Long switchId);
/**
* Returns the statistics for the specified switch port
*
* @param switchId the openflow datapath id
* @param portId the openflow switch port id
* @return the list of openflow statistics
*/
List getOFPortStatistics(Long switchId, short portId);
/**
* Returns the number of flows installed on the switch
*
* @param switchId the openflow datapath id
* @return the number of flows installed on the switch
*/
int getFlowsNumber(long switchId);
/**
* Send a statistics request message to the specified switch and returns
* the switch response. It blocks the caller until the response has arrived
* from the switch or the request has timed out
*
* @param switchId the openflow datapath id of the target switch
* @param statType the openflow statistics type
* @param target the target object. For flow statistics it is the OFMatch.
* For port statistics, it is the port id. If null the query
* will be performed for all the targets for the specified
* statistics type.
*
* @param timeout the timeout in milliseconds the system will wait for a response
* from the switch, before declaring failure
* @return the list of openflow statistics
*/
List queryStatistics(Long switchId,
OFStatisticsType statType, Object target);
/**
* Returns the averaged transmit rate for the passed switch port
*
* @param switchId the openflow datapath id of the target switch
* @param portId the openflow switch port id
* @return the median transmit rate in bits per second
*/
long getTransmitRate(Long switchId, Short port);
/**
* Returns the statistics for the specified switch table
*
* @param switchId the openflow datapath id
* @param tableId the openflow switch table id
* @return the list of openflow statistics
*/
List getOFTableStatistics(Long switchId, Byte tableId);
/**
* Returns all the table statistics for the node specified
*
* @param switchId the openflow datapath id
* @return the list of openflow statistics
*/
List getOFTableStatistics(Long switchId);
}