blob: 04f92bc05b672b402d0b1d0a13b716560b5d8769 [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 Radoslavov909da3c2014-01-09 04:04:33 -08004import net.onrc.onos.ofcontroller.util.Dpid;
Pavlin Radoslavovb7506842013-10-29 17:46:54 -07005import net.onrc.onos.ofcontroller.util.FlowEntry;
Pavlin Radoslavov909da3c2014-01-09 04:04:33 -08006import net.onrc.onos.ofcontroller.util.FlowEntryId;
Pavlin Radoslavov2004fa02014-01-07 14:46:42 -08007import net.onrc.onos.ofcontroller.util.FlowId;
Pavlin Radoslavov6b79f2b2013-10-26 21:31:10 -07008import net.onrc.onos.ofcontroller.util.FlowPath;
9
10/**
Pavlin Radoslavov9a859022013-10-30 10:08:24 -070011 * Interface for providing Flow Event Handler Service to other modules.
Pavlin Radoslavov6b79f2b2013-10-26 21:31:10 -070012 */
Pavlin Radoslavov9a859022013-10-30 10:08:24 -070013public interface IFlowEventHandlerService {
Pavlin Radoslavov6b79f2b2013-10-26 21:31:10 -070014 /**
15 * Receive a notification that a Flow is added.
16 *
Pavlin Radoslavovb7506842013-10-29 17:46:54 -070017 * @param flowPath the Flow that is added.
Pavlin Radoslavov6b79f2b2013-10-26 21:31:10 -070018 */
19 void notificationRecvFlowAdded(FlowPath flowPath);
20
21 /**
22 * Receive a notification that a Flow is removed.
23 *
Pavlin Radoslavovb7506842013-10-29 17:46:54 -070024 * @param flowPath the Flow that is removed.
Pavlin Radoslavov6b79f2b2013-10-26 21:31:10 -070025 */
26 void notificationRecvFlowRemoved(FlowPath flowPath);
27
28 /**
29 * Receive a notification that a Flow is updated.
30 *
Pavlin Radoslavovb7506842013-10-29 17:46:54 -070031 * @param flowPath the Flow that is updated.
Pavlin Radoslavov6b79f2b2013-10-26 21:31:10 -070032 */
33 void notificationRecvFlowUpdated(FlowPath flowPath);
34
35 /**
Pavlin Radoslavovb7506842013-10-29 17:46:54 -070036 * Receive a notification that a FlowEntry is added.
37 *
38 * @param flowEntry the FlowEntry that is added.
39 */
40 void notificationRecvFlowEntryAdded(FlowEntry flowEntry);
41
42 /**
43 * Receive a notification that a FlowEntry is removed.
44 *
45 * @param flowEntry the FlowEntry that is removed.
46 */
47 void notificationRecvFlowEntryRemoved(FlowEntry flowEntry);
48
49 /**
50 * Receive a notification that a FlowEntry is updated.
51 *
52 * @param flowEntry the FlowEntry that is updated.
53 */
54 void notificationRecvFlowEntryUpdated(FlowEntry flowEntry);
55
56 /**
Pavlin Radoslavov2004fa02014-01-07 14:46:42 -080057 * Receive a notification that a FlowId is added.
58 *
59 * @param flowId the FlowId that is added.
60 */
61 void notificationRecvFlowIdAdded(FlowId flowId);
62
63 /**
64 * Receive a notification that a FlowId is removed.
65 *
66 * @param flowId the FlowId that is removed.
67 */
68 void notificationRecvFlowIdRemoved(FlowId flowId);
69
70 /**
71 * Receive a notification that a FlowId is updated.
72 *
73 * @param flowId the FlowId that is updated.
74 */
75 void notificationRecvFlowIdUpdated(FlowId flowId);
76
77 /**
Pavlin Radoslavov909da3c2014-01-09 04:04:33 -080078 * Receive a notification that a FlowEntryId is added.
79 *
80 * @param flowEntryId the FlowEntryId that is added.
81 * @param dpid the Switch Dpid for the corresponding Flow Entry.
82 */
83 void notificationRecvFlowEntryIdAdded(FlowEntryId flowEntryId, Dpid dpid);
84
85 /**
86 * Receive a notification that a FlowEntryId is removed.
87 *
88 * @param flowEntryId the FlowEntryId that is removed.
89 * @param dpid the Switch Dpid for the corresponding Flow Entry.
90 */
91 void notificationRecvFlowEntryIdRemoved(FlowEntryId flowEntryId,
92 Dpid dpid);
93
94 /**
95 * Receive a notification that a FlowEntryId is updated.
96 *
97 * @param flowEntryId the FlowEntryId that is updated.
98 * @param dpid the Switch Dpid for the corresponding Flow Entry.
99 */
100 void notificationRecvFlowEntryIdUpdated(FlowEntryId flowEntryId,
101 Dpid dpid);
102
103 /**
Pavlin Radoslavov6b79f2b2013-10-26 21:31:10 -0700104 * Receive a notification that a Topology Element is added.
105 *
106 * @param topologyElement the Topology Element that is added.
107 */
108 void notificationRecvTopologyElementAdded(TopologyElement topologyElement);
109
110 /**
111 * Receive a notification that a Topology Element is removed.
112 *
113 * @param topologyElement the Topology Element that is removed.
114 */
115 void notificationRecvTopologyElementRemoved(TopologyElement topologyElement);
116
117 /**
118 * Receive a notification that a Topology Element is updated.
119 *
120 * @param topologyElement the Topology Element that is updated.
121 */
122 void notificationRecvTopologyElementUpdated(TopologyElement topologyElement);
123}