blob: 9d3163131a006b61ddceb69b322f0edc57fc111d [file] [log] [blame]
tom0eb04ca2014-08-25 14:34:51 -07001package org.onlab.onos.net.flow;
2
tom8bb16062014-09-12 14:47:46 -07003import org.onlab.onos.net.DeviceId;
tomc1a38d32014-08-25 23:01:32 -07004import org.onlab.onos.net.provider.Provider;
tom0eb04ca2014-08-25 14:34:51 -07005
6/**
7 * Abstraction of a flow rule provider.
8 */
9public interface FlowRuleProvider extends Provider {
tome33cc1a2014-08-25 21:59:41 -070010
tom8bb16062014-09-12 14:47:46 -070011 /**
12 * Instructs the provider to apply the specified flow rules to their
13 * respective devices.
14 * @param flowRules one or more flow rules
15 * throws SomeKindOfException that indicates which ones were applied and
16 * which ones failed
17 */
18 void applyFlowRule(FlowRule... flowRules);
19
20
21 /**
22 * Returns the collection of flow entries currently applied on the given
23 * device.
24 *
25 * @param deviceId device identifier
26 * @return collection of flow entries
27 */
28 Iterable<FlowEntry> getFlowMetrics(DeviceId deviceId);
tome33cc1a2014-08-25 21:59:41 -070029
tom0eb04ca2014-08-25 14:34:51 -070030}