blob: 19666837e77e483330b49660595647b1eee78724 [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 Radoslavov6b79f2b2013-10-26 21:31:10 -07005import net.onrc.onos.ofcontroller.util.FlowPath;
6
7/**
8 * Interface for providing Path Computation Service to other modules.
9 */
10public interface IPathComputationService {
11 /**
12 * Receive a notification that a Flow is added.
13 *
Pavlin Radoslavovb7506842013-10-29 17:46:54 -070014 * @param flowPath the Flow that is added.
Pavlin Radoslavov6b79f2b2013-10-26 21:31:10 -070015 */
16 void notificationRecvFlowAdded(FlowPath flowPath);
17
18 /**
19 * Receive a notification that a Flow is removed.
20 *
Pavlin Radoslavovb7506842013-10-29 17:46:54 -070021 * @param flowPath the Flow that is removed.
Pavlin Radoslavov6b79f2b2013-10-26 21:31:10 -070022 */
23 void notificationRecvFlowRemoved(FlowPath flowPath);
24
25 /**
26 * Receive a notification that a Flow is updated.
27 *
Pavlin Radoslavovb7506842013-10-29 17:46:54 -070028 * @param flowPath the Flow that is updated.
Pavlin Radoslavov6b79f2b2013-10-26 21:31:10 -070029 */
30 void notificationRecvFlowUpdated(FlowPath flowPath);
31
32 /**
Pavlin Radoslavovb7506842013-10-29 17:46:54 -070033 * Receive a notification that a FlowEntry is added.
34 *
35 * @param flowEntry the FlowEntry that is added.
36 */
37 void notificationRecvFlowEntryAdded(FlowEntry flowEntry);
38
39 /**
40 * Receive a notification that a FlowEntry is removed.
41 *
42 * @param flowEntry the FlowEntry that is removed.
43 */
44 void notificationRecvFlowEntryRemoved(FlowEntry flowEntry);
45
46 /**
47 * Receive a notification that a FlowEntry is updated.
48 *
49 * @param flowEntry the FlowEntry that is updated.
50 */
51 void notificationRecvFlowEntryUpdated(FlowEntry flowEntry);
52
53 /**
Pavlin Radoslavov6b79f2b2013-10-26 21:31:10 -070054 * Receive a notification that a Topology Element is added.
55 *
56 * @param topologyElement the Topology Element that is added.
57 */
58 void notificationRecvTopologyElementAdded(TopologyElement topologyElement);
59
60 /**
61 * Receive a notification that a Topology Element is removed.
62 *
63 * @param topologyElement the Topology Element that is removed.
64 */
65 void notificationRecvTopologyElementRemoved(TopologyElement topologyElement);
66
67 /**
68 * Receive a notification that a Topology Element is updated.
69 *
70 * @param topologyElement the Topology Element that is updated.
71 */
72 void notificationRecvTopologyElementUpdated(TopologyElement topologyElement);
73}