X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;ds=sidebyside;f=opendaylight%2Fsal%2Fapi%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fsal%2Ftopology%2FIPluginOutTopologyService.java;fp=opendaylight%2Fsal%2Fapi%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fsal%2Ftopology%2FIPluginOutTopologyService.java;h=7ea9360300659c7babeb93ba87f22eb4253a22ff;hb=42210c03b0a4c54706320ba9f55794c0abd4d201;hp=0000000000000000000000000000000000000000;hpb=7576b38152b393793b1c9ec3df0ff86685f95236;p=controller.git diff --git a/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/topology/IPluginOutTopologyService.java b/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/topology/IPluginOutTopologyService.java new file mode 100644 index 0000000000..7ea9360300 --- /dev/null +++ b/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/topology/IPluginOutTopologyService.java @@ -0,0 +1,56 @@ + +/* + * Copyright (c) 2013 Cisco Systems, Inc. and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ + +package org.opendaylight.controller.sal.topology; + +import java.util.Set; + +import org.opendaylight.controller.sal.core.Edge; +import org.opendaylight.controller.sal.core.Property; +import org.opendaylight.controller.sal.core.UpdateType; + +/** + * @file IPluginOutTopologyService.java + * + * @brief Methods that are invoked from Protocol Plugin toward SAL + * + * Every time a protocol plugin update the topology, it will call this + * service provided by SAL so the update can migrate upward toward the + * applications + */ + +/** + * Methods that are invoked from Protocol Plugin toward SAL + * + */ +public interface IPluginOutTopologyService { + /** + * Called to update on Edge in the topology graph + * + * @param e Edge being updated + * @param type Type of update + * @param props Properties of the edge, like BandWidth and/or Latency etc. + */ + public void edgeUpdate(Edge e, UpdateType type, Set props); + + /** + * Called when an Edge utilization is above the safety threshold + * configured on the controller + * @param edge + */ + public void edgeOverUtilized(Edge edge); + + /** + * Called when the Edge utilization is back to normal, below the safety + * threshold level configured on the controller + * + * @param edge + */ + public void edgeUtilBackToNormal(Edge edge); +}