| package org.onlab.onos.net.flow; |
| |
| import org.onlab.onos.net.DeviceId; |
| import org.onlab.onos.net.provider.ProviderService; |
| |
| /** |
| * Service through which flow rule providers can inject information into |
| * the core. |
| */ |
| public interface FlowRuleProviderService extends ProviderService<FlowRuleProvider> { |
| |
| /** |
| * Signals that a flow rule that was previously installed has been removed. |
| * |
| * @param flowRule information about the removed flow |
| */ |
| void flowRemoved(FlowRule flowRule); |
| |
| /** |
| * Signals that a flow rule is missing for some network traffic. |
| * |
| * @param flowRule information about traffic in need of flow rule(s) |
| */ |
| void flowMissing(FlowRule flowRule); |
| |
| /** |
| * Signals that a flow rule is on the switch but not in the store. |
| * |
| * @param flowRule the extra flow rule |
| */ |
| void extraneousFlow(FlowRule flowRule); |
| |
| /** |
| * Signals that a flow rule was indeed added. |
| * |
| * @param flowRule the added flow rule |
| */ |
| void flowAdded(FlowRule flowRule); |
| |
| /** |
| * Pushes the collection of flow entries currently applied on the given |
| * device. |
| * |
| * @param flowRules collection of flow rules |
| */ |
| void pushFlowMetrics(DeviceId deviceId, Iterable<FlowRule> flowRules); |
| |
| |
| |
| } |