blob: 62edf70150443609776cf0dc4635ad12bd27f423 [file] [log] [blame]
Pavlin Radoslavov6b79f2b2013-10-26 21:31:10 -07001package net.onrc.onos.ofcontroller.flowmanager;
2
3import net.onrc.onos.ofcontroller.topology.TopologyElement;
Pavlin Radoslavovb7506842013-10-29 17:46:54 -07004import net.onrc.onos.ofcontroller.util.FlowEntry;
Pavlin Radoslavov2004fa02014-01-07 14:46:42 -08005import net.onrc.onos.ofcontroller.util.FlowId;
Pavlin Radoslavov6b79f2b2013-10-26 21:31:10 -07006import net.onrc.onos.ofcontroller.util.FlowPath;
7
8/**
Pavlin Radoslavov9a859022013-10-30 10:08:24 -07009 * Interface for providing Flow Event Handler Service to other modules.
Pavlin Radoslavov6b79f2b2013-10-26 21:31:10 -070010 */
Pavlin Radoslavov9a859022013-10-30 10:08:24 -070011public interface IFlowEventHandlerService {
Pavlin Radoslavov6b79f2b2013-10-26 21:31:10 -070012 /**
13 * Receive a notification that a Flow is added.
14 *
Pavlin Radoslavovb7506842013-10-29 17:46:54 -070015 * @param flowPath the Flow that is added.
Pavlin Radoslavov6b79f2b2013-10-26 21:31:10 -070016 */
17 void notificationRecvFlowAdded(FlowPath flowPath);
18
19 /**
20 * Receive a notification that a Flow is removed.
21 *
Pavlin Radoslavovb7506842013-10-29 17:46:54 -070022 * @param flowPath the Flow that is removed.
Pavlin Radoslavov6b79f2b2013-10-26 21:31:10 -070023 */
24 void notificationRecvFlowRemoved(FlowPath flowPath);
25
26 /**
27 * Receive a notification that a Flow is updated.
28 *
Pavlin Radoslavovb7506842013-10-29 17:46:54 -070029 * @param flowPath the Flow that is updated.
Pavlin Radoslavov6b79f2b2013-10-26 21:31:10 -070030 */
31 void notificationRecvFlowUpdated(FlowPath flowPath);
32
33 /**
Pavlin Radoslavovb7506842013-10-29 17:46:54 -070034 * Receive a notification that a FlowEntry is added.
35 *
36 * @param flowEntry the FlowEntry that is added.
37 */
38 void notificationRecvFlowEntryAdded(FlowEntry flowEntry);
39
40 /**
41 * Receive a notification that a FlowEntry is removed.
42 *
43 * @param flowEntry the FlowEntry that is removed.
44 */
45 void notificationRecvFlowEntryRemoved(FlowEntry flowEntry);
46
47 /**
48 * Receive a notification that a FlowEntry is updated.
49 *
50 * @param flowEntry the FlowEntry that is updated.
51 */
52 void notificationRecvFlowEntryUpdated(FlowEntry flowEntry);
53
54 /**
Pavlin Radoslavov2004fa02014-01-07 14:46:42 -080055 * Receive a notification that a FlowId is added.
56 *
57 * @param flowId the FlowId that is added.
58 */
59 void notificationRecvFlowIdAdded(FlowId flowId);
60
61 /**
62 * Receive a notification that a FlowId is removed.
63 *
64 * @param flowId the FlowId that is removed.
65 */
66 void notificationRecvFlowIdRemoved(FlowId flowId);
67
68 /**
69 * Receive a notification that a FlowId is updated.
70 *
71 * @param flowId the FlowId that is updated.
72 */
73 void notificationRecvFlowIdUpdated(FlowId flowId);
74
75 /**
Pavlin Radoslavov6b79f2b2013-10-26 21:31:10 -070076 * Receive a notification that a Topology Element is added.
77 *
78 * @param topologyElement the Topology Element that is added.
79 */
80 void notificationRecvTopologyElementAdded(TopologyElement topologyElement);
81
82 /**
83 * Receive a notification that a Topology Element is removed.
84 *
85 * @param topologyElement the Topology Element that is removed.
86 */
87 void notificationRecvTopologyElementRemoved(TopologyElement topologyElement);
88
89 /**
90 * Receive a notification that a Topology Element is updated.
91 *
92 * @param topologyElement the Topology Element that is updated.
93 */
94 void notificationRecvTopologyElementUpdated(TopologyElement topologyElement);
95}