blob: e16dd2025d014e4e4ad8c28500738efdf98fcd84 [file] [log] [blame]
Naoki Shiotaaea88582013-11-12 17:58:34 -08001package net.onrc.onos.ofcontroller.flowprogrammer;
Naoki Shiota8ee48d52013-11-11 15:51:17 -08002
3import net.floodlightcontroller.core.IOFSwitch;
4import net.floodlightcontroller.core.module.IFloodlightService;
Brian O'Connor8c166a72013-11-14 18:41:48 -08005import net.onrc.onos.ofcontroller.core.INetMapTopologyObjects.IFlowEntry;
6import net.onrc.onos.ofcontroller.core.INetMapTopologyObjects.IFlowPath;
7import net.onrc.onos.ofcontroller.util.FlowEntry;
8import net.onrc.onos.ofcontroller.util.FlowPath;
Naoki Shiota8ee48d52013-11-11 15:51:17 -08009
10import org.openflow.protocol.OFMessage;
11
12public interface IFlowPusherService extends IFloodlightService {
13 /**
14 * Add a message to the queue of a switch.
15 * @param sw
16 * @param msg
17 * @return
18 */
Brian O'Connor8c166a72013-11-14 18:41:48 -080019 boolean add(IOFSwitch sw, OFMessage msg);
20 boolean add(IOFSwitch sw, FlowPath flowPath, FlowEntry flowEntry);
21 boolean add(IOFSwitch sw, IFlowPath flowObj, IFlowEntry flowEntryObj);
Naoki Shiota8ee48d52013-11-11 15:51:17 -080022
23 /**
24 * Suspend pushing message to a switch.
25 * @param sw
26 * @return true if success
27 */
Brian O'Connor8c166a72013-11-14 18:41:48 -080028 boolean suspend(IOFSwitch sw);
Naoki Shiota8ee48d52013-11-11 15:51:17 -080029
30 /**
31 * Resume pushing message to a switch.
32 * @param sw
33 * @return true if success
34 */
Brian O'Connor8c166a72013-11-14 18:41:48 -080035 boolean resume(IOFSwitch sw);
Naoki Shiota8ee48d52013-11-11 15:51:17 -080036
37 /**
38 * Get whether pushing of message is suspended or not.
39 * @param sw
40 * @return true if suspended
41 */
Brian O'Connor8c166a72013-11-14 18:41:48 -080042 boolean isSuspended(IOFSwitch sw);
Naoki Shiota8ee48d52013-11-11 15:51:17 -080043}