blob: 0622be61bceb3421c9dd9c7440f11db44713807b [file] [log] [blame]
Toshio Koidea03915e2014-07-01 18:39:52 -07001package net.onrc.onos.api.flowmanager;
2
Toshio Koidefad1cd52014-08-07 17:10:07 -07003import net.onrc.onos.api.batchoperation.BatchOperationTarget;
Ray Milkey42ae1b52014-08-15 16:37:06 -07004import net.onrc.onos.core.matchaction.MatchActionOperations;
Toshio Koided8b077a2014-08-13 10:47:21 -07005import net.onrc.onos.core.matchaction.match.Match;
Toshio Koidea03915e2014-07-01 18:39:52 -07006
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 */
Toshio Koidefad1cd52014-08-07 17:10:07 -070014public interface Flow extends BatchOperationTarget {
Toshio Koidea03915e2014-07-01 18:39:52 -070015 /**
16 * Gets ID for this flow object.
17 *
18 * @return ID for this object.
19 */
Toshio Koide025a9152014-07-21 11:00:34 -070020 public FlowId getId();
Toshio Koidea03915e2014-07-01 18:39:52 -070021
22 /**
23 * Gets traffic filter for this flow object.
24 *
25 * @return a traffic filter for this flow object.
26 */
Toshio Koided8b077a2014-08-13 10:47:21 -070027 public Match getMatch();
Toshio Koidea03915e2014-07-01 18:39:52 -070028
29 /**
30 * Compiles this object to MatchAction plan.
31 * <p>
Ray Milkey42ae1b52014-08-15 16:37:06 -070032 * This method is called by FlowManagerModule to create MatchAction operations.
Toshio Koidea03915e2014-07-01 18:39:52 -070033 *
34 * @return a MatchAction plan of this flow object.
35 */
Ray Milkey42ae1b52014-08-15 16:37:06 -070036 public MatchActionOperations compile();
Toshio Koidea03915e2014-07-01 18:39:52 -070037}