blob: da6448c08167a18a743d5db0671ca7522b8321bc [file] [log] [blame]
Pankaj Berded0ae0ff2013-03-26 15:37:12 -07001package net.onrc.onos.flow;
2
3import net.floodlightcontroller.core.INetMapTopologyObjects.IPortObject;
4import net.floodlightcontroller.util.FlowEntry;
5import net.floodlightcontroller.util.FlowPath;
6
7public interface IFlowManager {
8
9 /*
10 * Generic create Flow from port to port
11 */
12 public void createFlow(IPortObject src_port, IPortObject dest_port);
13 /*
14 * get Flows matching a src_port & dest_port
15 */
16 public Iterable<FlowPath> getFlows(IPortObject src_port, IPortObject dest_port);
17 /*
18 * get all Flows going out from port
19 */
20 public Iterable<FlowPath> getFlows(IPortObject port);
21 /*
22 * Reconcile all flows on inactive port (src port of link which might be broken)
23 */
24 public void reconcileFlows(IPortObject src_port);
25 /*
26 * Reconcile flow based on flow
27 */
28 public void reconcileFlow(IPortObject src_port, IPortObject dest_port);
29 /*
30 * compute a flow path using src/dest port
31 */
32 public FlowPath computeFlowPath(IPortObject src_port, IPortObject dest_port);
33 /*
34 * Get all FlowEntries of a Flow
35 */
36 public Iterable<FlowEntry> getFlowEntries(FlowPath flow);
37 /*
38 * install a flow entry on switch
39 */
40 public void installFlowEntry(FlowEntry entry);
41 /*
42 * remove a flowEntry from switch
43 */
44 public void removeFlowEntry(FlowEntry entry);
45 /*
46 * install flow entry on remote controller
47 */
48 public void installFlowEntry(String ctrlId, FlowEntry entry);
49 /*
50 * remove flow entry on remote controller
51 */
52 public void removeFlowEntry(String ctrlId, FlowEntry entry);
53}