blob: 81645797318d3718d2a5095f2378bad46b1dff52 [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 */
alshabib1c319ff2014-10-04 20:29:09 -070017 void flowRemoved(FlowEntry flowEntry);
tom0eb04ca2014-08-25 14:34:51 -070018
19 /**
alshabib5c370ff2014-09-18 10:12:14 -070020 * Pushes the collection of flow entries currently applied on the given
21 * device.
22 *
tomc104d282014-09-19 10:57:55 -070023 * @param flowRules collection of flow rules
alshabib5c370ff2014-09-18 10:12:14 -070024 */
alshabib1c319ff2014-10-04 20:29:09 -070025 void pushFlowMetrics(DeviceId deviceId, Iterable<FlowEntry> flowEntries);
alshabib5c370ff2014-09-18 10:12:14 -070026
alshabib219ebaa2014-09-22 15:41:24 -070027
28
tom0eb04ca2014-08-25 14:34:51 -070029}