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