blob: 66f116ad07a0eeccbb464d521755e4f39261b439 [file] [log] [blame]
Toshio Koidea03915e2014-07-01 18:39:52 -07001package net.onrc.onos.api.flowmanager;
2
3import net.onrc.onos.api.batchoperation.IBatchOperationTarget;
4import net.onrc.onos.core.matchaction.MatchActionPlan;
5import net.onrc.onos.core.matchaction.match.IMatch;
6
7/**
8 * An interface class to define flow object which is managed by
9 * FlowManagerModule.
10 * <p>
11 * The flow objects (eg. path, tree, disjoint-paths, etc.) must implement this
12 * interface.
13 */
14public interface IFlow extends IBatchOperationTarget {
15 /**
16 * Gets ID for this flow object.
17 *
18 * @return ID for this object.
19 */
20 @Override
21 public String getId();
22
23 /**
24 * Gets traffic filter for this flow object.
25 *
26 * @return a traffic filter for this flow object.
27 */
28 public IMatch getMatch();
29
30 /**
31 * Compiles this object to MatchAction plan.
32 * <p>
33 * This method is called by FlowManagerModule to create MatchAction plans.
34 *
35 * @return a MatchAction plan of this flow object.
36 */
37 public MatchActionPlan compile();
38}