blob: da6448c08167a18a743d5db0671ca7522b8321bc [file] [log] [blame]
package net.onrc.onos.flow;
import net.floodlightcontroller.core.INetMapTopologyObjects.IPortObject;
import net.floodlightcontroller.util.FlowEntry;
import net.floodlightcontroller.util.FlowPath;
public interface IFlowManager {
/*
* Generic create Flow from port to port
*/
public void createFlow(IPortObject src_port, IPortObject dest_port);
/*
* get Flows matching a src_port & dest_port
*/
public Iterable<FlowPath> getFlows(IPortObject src_port, IPortObject dest_port);
/*
* get all Flows going out from port
*/
public Iterable<FlowPath> getFlows(IPortObject port);
/*
* Reconcile all flows on inactive port (src port of link which might be broken)
*/
public void reconcileFlows(IPortObject src_port);
/*
* Reconcile flow based on flow
*/
public void reconcileFlow(IPortObject src_port, IPortObject dest_port);
/*
* compute a flow path using src/dest port
*/
public FlowPath computeFlowPath(IPortObject src_port, IPortObject dest_port);
/*
* Get all FlowEntries of a Flow
*/
public Iterable<FlowEntry> getFlowEntries(FlowPath flow);
/*
* install a flow entry on switch
*/
public void installFlowEntry(FlowEntry entry);
/*
* remove a flowEntry from switch
*/
public void removeFlowEntry(FlowEntry entry);
/*
* install flow entry on remote controller
*/
public void installFlowEntry(String ctrlId, FlowEntry entry);
/*
* remove flow entry on remote controller
*/
public void removeFlowEntry(String ctrlId, FlowEntry entry);
}