OpenDaylight Controller functional modules.
[controller.git] / opendaylight / protocol_plugins / openflow / src / main / java / org / opendaylight / controller / protocol_plugin / openflow / ITopologyServiceShimListener.java
1
2 /*
3  * Copyright (c) 2013 Cisco Systems, Inc. and others.  All rights reserved.
4  *
5  * This program and the accompanying materials are made available under the
6  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
7  * and is available at http://www.eclipse.org/legal/epl-v10.html
8  */
9
10 package org.opendaylight.controller.protocol_plugin.openflow;
11
12 import java.util.Set;
13
14 import org.opendaylight.controller.sal.core.Edge;
15 import org.opendaylight.controller.sal.core.Property;
16 import org.opendaylight.controller.sal.core.UpdateType;
17
18 /**
19  * Interface class that provides Edge updates to the topology listeners
20  *
21  *
22  */
23 public interface ITopologyServiceShimListener {
24     /**
25      * Called to update on Edge in the topology graph
26      *
27      * @param edge                      {@link org.opendaylight.controller.sal.core.Edge} being updated
28      * @param type              {@link org.opendaylight.controller.sal.core.UpdateType}
29      * @param props             set of {@link org.opendaylight.controller.sal.core.Property} like
30      *                                          {@link org.opendaylight.controller.sal.core.Bandwidth} and/or
31      *                                          {@link org.opendaylight.controller.sal.core.Latency} etc.
32      */
33     public void edgeUpdate(Edge edge, UpdateType type, Set<Property> props);
34
35     /**
36      * Called when an Edge utilization is above the safe threshold configured
37      * on the controller
38      * @param {@link org.opendaylight.controller.sal.core.Edge}
39      */
40     public void edgeOverUtilized(Edge edge);
41
42     /**
43      * Called when the Edge utilization is back to normal, below the safety
44      * threshold level configured on the controller
45      *
46      * @param {@link org.opendaylight.controller.sal.core.Edge}
47      */
48     public void edgeUtilBackToNormal(Edge edge);
49 }