blob: a44a898fcba5edd936620b13dc8311b6e757cbc9 [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.
Pavlin Radoslavov2194d112014-01-10 13:36:00 -080060 * @param dpid the Source Switch Dpid for the corresponding Flow.
Pavlin Radoslavov2004fa02014-01-07 14:46:42 -080061 */
Pavlin Radoslavov2194d112014-01-10 13:36:00 -080062 void notificationRecvFlowIdAdded(FlowId flowId, Dpid dpid);
Pavlin Radoslavov2004fa02014-01-07 14:46:42 -080063
64 /**
65 * Receive a notification that a FlowId is removed.
66 *
67 * @param flowId the FlowId that is removed.
Pavlin Radoslavov2194d112014-01-10 13:36:00 -080068 * @param dpid the Source Switch Dpid for the corresponding Flow.
Pavlin Radoslavov2004fa02014-01-07 14:46:42 -080069 */
Pavlin Radoslavov2194d112014-01-10 13:36:00 -080070 void notificationRecvFlowIdRemoved(FlowId flowId, Dpid dpid);
Pavlin Radoslavov2004fa02014-01-07 14:46:42 -080071
72 /**
73 * Receive a notification that a FlowId is updated.
74 *
75 * @param flowId the FlowId that is updated.
Pavlin Radoslavov2194d112014-01-10 13:36:00 -080076 * @param dpid the Source Switch Dpid for the corresponding Flow.
Pavlin Radoslavov2004fa02014-01-07 14:46:42 -080077 */
Pavlin Radoslavov2194d112014-01-10 13:36:00 -080078 void notificationRecvFlowIdUpdated(FlowId flowId, Dpid dpid);
Pavlin Radoslavov2004fa02014-01-07 14:46:42 -080079
80 /**
Pavlin Radoslavov909da3c2014-01-09 04:04:33 -080081 * Receive a notification that a FlowEntryId is added.
82 *
83 * @param flowEntryId the FlowEntryId that is added.
84 * @param dpid the Switch Dpid for the corresponding Flow Entry.
85 */
86 void notificationRecvFlowEntryIdAdded(FlowEntryId flowEntryId, Dpid dpid);
87
88 /**
89 * Receive a notification that a FlowEntryId is removed.
90 *
91 * @param flowEntryId the FlowEntryId that is removed.
92 * @param dpid the Switch Dpid for the corresponding Flow Entry.
93 */
94 void notificationRecvFlowEntryIdRemoved(FlowEntryId flowEntryId,
95 Dpid dpid);
96
97 /**
98 * Receive a notification that a FlowEntryId is updated.
99 *
100 * @param flowEntryId the FlowEntryId that is updated.
101 * @param dpid the Switch Dpid for the corresponding Flow Entry.
102 */
103 void notificationRecvFlowEntryIdUpdated(FlowEntryId flowEntryId,
104 Dpid dpid);
105
106 /**
Pavlin Radoslavov6b79f2b2013-10-26 21:31:10 -0700107 * Receive a notification that a Topology Element is added.
108 *
109 * @param topologyElement the Topology Element that is added.
110 */
111 void notificationRecvTopologyElementAdded(TopologyElement topologyElement);
112
113 /**
114 * Receive a notification that a Topology Element is removed.
115 *
116 * @param topologyElement the Topology Element that is removed.
117 */
118 void notificationRecvTopologyElementRemoved(TopologyElement topologyElement);
119
120 /**
121 * Receive a notification that a Topology Element is updated.
122 *
123 * @param topologyElement the Topology Element that is updated.
124 */
125 void notificationRecvTopologyElementUpdated(TopologyElement topologyElement);
126}