tom | 0eb04ca | 2014-08-25 14:34:51 -0700 | [diff] [blame] | 1 | package org.onlab.onos.net.flow; |
2 | |||||
alshabib | a7f7ca8 | 2014-09-22 11:41:23 -0700 | [diff] [blame^] | 3 | import org.onlab.onos.net.DeviceId; |
tom | c1a38d3 | 2014-08-25 23:01:32 -0700 | [diff] [blame] | 4 | import org.onlab.onos.net.provider.ProviderService; |
tom | 0eb04ca | 2014-08-25 14:34:51 -0700 | [diff] [blame] | 5 | |
6 | /** | ||||
tom | 8bb1606 | 2014-09-12 14:47:46 -0700 | [diff] [blame] | 7 | * Service through which flow rule providers can inject information into |
tom | 0eb04ca | 2014-08-25 14:34:51 -0700 | [diff] [blame] | 8 | * the core. |
9 | */ | ||||
tom | d735672 | 2014-08-26 01:07:39 -0700 | [diff] [blame] | 10 | public interface FlowRuleProviderService extends ProviderService<FlowRuleProvider> { |
tom | 0eb04ca | 2014-08-25 14:34:51 -0700 | [diff] [blame] | 11 | |
12 | /** | ||||
tom | 8bb1606 | 2014-09-12 14:47:46 -0700 | [diff] [blame] | 13 | * Signals that a flow rule that was previously installed has been removed. |
tom | 0eb04ca | 2014-08-25 14:34:51 -0700 | [diff] [blame] | 14 | * |
tom | 8bb1606 | 2014-09-12 14:47:46 -0700 | [diff] [blame] | 15 | * @param flowRule information about the removed flow |
tom | 0eb04ca | 2014-08-25 14:34:51 -0700 | [diff] [blame] | 16 | */ |
tom | 8bb1606 | 2014-09-12 14:47:46 -0700 | [diff] [blame] | 17 | void flowRemoved(FlowRule flowRule); |
tom | 0eb04ca | 2014-08-25 14:34:51 -0700 | [diff] [blame] | 18 | |
19 | /** | ||||
tom | 8bb1606 | 2014-09-12 14:47:46 -0700 | [diff] [blame] | 20 | * Signals that a flow rule is missing for some network traffic. |
tom | 0eb04ca | 2014-08-25 14:34:51 -0700 | [diff] [blame] | 21 | * |
tom | 8bb1606 | 2014-09-12 14:47:46 -0700 | [diff] [blame] | 22 | * @param flowRule information about traffic in need of flow rule(s) |
tom | 0eb04ca | 2014-08-25 14:34:51 -0700 | [diff] [blame] | 23 | */ |
tom | 8bb1606 | 2014-09-12 14:47:46 -0700 | [diff] [blame] | 24 | void flowMissing(FlowRule flowRule); |
tom | 0eb04ca | 2014-08-25 14:34:51 -0700 | [diff] [blame] | 25 | |
alshabib | 369d294 | 2014-09-12 17:59:35 -0700 | [diff] [blame] | 26 | /** |
27 | * Signals that a flow rule was indeed added. | ||||
28 | * | ||||
29 | * @param flowRule the added flow rule | ||||
30 | */ | ||||
31 | void flowAdded(FlowRule flowRule); | ||||
32 | |||||
alshabib | 5c370ff | 2014-09-18 10:12:14 -0700 | [diff] [blame] | 33 | /** |
34 | * Pushes the collection of flow entries currently applied on the given | ||||
35 | * device. | ||||
36 | * | ||||
tom | c104d28 | 2014-09-19 10:57:55 -0700 | [diff] [blame] | 37 | * @param flowRules collection of flow rules |
alshabib | 5c370ff | 2014-09-18 10:12:14 -0700 | [diff] [blame] | 38 | */ |
alshabib | a7f7ca8 | 2014-09-22 11:41:23 -0700 | [diff] [blame^] | 39 | void pushFlowMetrics(DeviceId deviceId, Iterable<FlowRule> flowRules); |
alshabib | 5c370ff | 2014-09-18 10:12:14 -0700 | [diff] [blame] | 40 | |
tom | 0eb04ca | 2014-08-25 14:34:51 -0700 | [diff] [blame] | 41 | } |