blob: df988fef503a809f771d41e49dd630cce11893d1 [file] [log] [blame]
tom0eb04ca2014-08-25 14:34:51 -07001package org.onlab.onos.net.flow;
2
alshabiba7f7ca82014-09-22 11:41:23 -07003import org.onlab.onos.net.DeviceId;
tomc1a38d32014-08-25 23:01:32 -07004import org.onlab.onos.net.provider.ProviderService;
tom0eb04ca2014-08-25 14:34:51 -07005
6/**
tom8bb16062014-09-12 14:47:46 -07007 * Service through which flow rule providers can inject information into
tom0eb04ca2014-08-25 14:34:51 -07008 * the core.
9 */
tomd7356722014-08-26 01:07:39 -070010public interface FlowRuleProviderService extends ProviderService<FlowRuleProvider> {
tom0eb04ca2014-08-25 14:34:51 -070011
12 /**
tom8bb16062014-09-12 14:47:46 -070013 * Signals that a flow rule that was previously installed has been removed.
tom0eb04ca2014-08-25 14:34:51 -070014 *
tom8bb16062014-09-12 14:47:46 -070015 * @param flowRule information about the removed flow
tom0eb04ca2014-08-25 14:34:51 -070016 */
tom8bb16062014-09-12 14:47:46 -070017 void flowRemoved(FlowRule flowRule);
tom0eb04ca2014-08-25 14:34:51 -070018
19 /**
tom8bb16062014-09-12 14:47:46 -070020 * Signals that a flow rule is missing for some network traffic.
tom0eb04ca2014-08-25 14:34:51 -070021 *
tom8bb16062014-09-12 14:47:46 -070022 * @param flowRule information about traffic in need of flow rule(s)
tom0eb04ca2014-08-25 14:34:51 -070023 */
tom8bb16062014-09-12 14:47:46 -070024 void flowMissing(FlowRule flowRule);
tom0eb04ca2014-08-25 14:34:51 -070025
alshabib369d2942014-09-12 17:59:35 -070026 /**
27 * Signals that a flow rule was indeed added.
28 *
29 * @param flowRule the added flow rule
30 */
31 void flowAdded(FlowRule flowRule);
32
alshabib5c370ff2014-09-18 10:12:14 -070033 /**
34 * Pushes the collection of flow entries currently applied on the given
35 * device.
36 *
tomc104d282014-09-19 10:57:55 -070037 * @param flowRules collection of flow rules
alshabib5c370ff2014-09-18 10:12:14 -070038 */
alshabiba7f7ca82014-09-22 11:41:23 -070039 void pushFlowMetrics(DeviceId deviceId, Iterable<FlowRule> flowRules);
alshabib5c370ff2014-09-18 10:12:14 -070040
tom0eb04ca2014-08-25 14:34:51 -070041}