All Downloads are FREE. Search and download functionalities are using the official Maven repository.

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);

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy