package org.opendaylight.openflowplugin.api.openflow.device;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeId;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.GetFeaturesOutput;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.PortGrouping;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
/**
- * Created by Martin Bobak <mbobak@cisco.com> on 25.2.2015.
+ * Holder of device's structure
*/
public interface DeviceState {
/**
- * @return id of encapsulated node
- */
- NodeId getNodeId();
-
- /**
- * @return the features of corresponding switch
- */
- GetFeaturesOutput getFeatures();
-
- /**
- * @return true if this session is valid
+ * Return true if we have relevant meter information
+ * from device
+ *
+ * @return
*/
- boolean isValid();
+ boolean isMetersAvailable();
/**
- * @param valid the valid to set
+ * Set information about meter statistics availability.
*/
- void setValid(boolean valid);
+ void setMeterAvailable(boolean available);
/**
- * Returns a map containing all OFPhysicalPorts of this switch.
+ * Return true if we have relevant group information
+ * from device
*
- * @return The Map of OFPhysicalPort
+ * @return
*/
- Map<Long, PortGrouping> getPhysicalPorts();
+ boolean isGroupAvailable();
/**
- * Returns a map containing all bandwidths for all OFPorts of this switch.
- *
- * @return The Map of bandwidths for all OFPorts
+ * Set information about group statistics availability.
*/
- Map<Long, Long> getPortsBandwidth();
+ void setGroupAvailable(boolean available);
/**
- * Returns a Set containing all port IDs of this switch.
+ * Method returns true, if device capabilities provides flow statistics.
*
- * @return The Set of port ID
+ * @return
*/
- Set<Long> getPorts();
+ boolean isFlowStatisticsAvailable();
- /**
- * Returns OFPhysicalPort of the specified portNumber of this switch.
- *
- * @param portNumber The port ID
- * @return OFPhysicalPort for the specified PortNumber
- */
- PortGrouping getPhysicalPort(Long portNumber);
+ void setFlowStatisticsAvailable(boolean available);
/**
- * Returns the bandwidth of the specified portNumber of this switch.
+ * Method returns true, if device capabilities provides table statistics.
*
- * @param portNumber the port ID
- * @return bandwidth
+ * @return
*/
- Long getPortBandwidth(Long portNumber);
+ boolean isTableStatisticsAvailable();
- /**
- * Returns True if the port is enabled,
- *
- * @param portNumber
- * @return True if the port is enabled
- */
- boolean isPortEnabled(long portNumber);
+ void setTableStatisticsAvailable(boolean available);
/**
- * Returns True if the port is enabled.
+ * Method returns true, if device capabilities provides flow statistics.
*
- * @param port
- * @return True if the port is enabled
+ * @return
*/
- boolean isPortEnabled(PortGrouping port);
+ boolean isPortStatisticsAvailable();
- /**
- * Returns a list containing all enabled ports of this switch.
- *
- * @return List containing all enabled ports of this switch
- */
- List<PortGrouping> getEnabledPorts();
+ void setPortStatisticsAvailable(boolean available);
/**
- * @return seed value for random operations
+ * Method returns true, if device capabilities provides queue statistics.
+ *
+ * @return
*/
- int getSeed();
+ boolean isQueueStatisticsAvailable();
+ void setQueueStatisticsAvailable(boolean available);
}