X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fsal%2Fapi%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fsal%2Fflowprogrammer%2FIPluginInFlowProgrammerService.java;h=5157788ce7b58982414fdc91436d8cf24f5eb167;hb=b8bb7db7c6133e00046e85ead70426eb1e05184d;hp=1fb99e0ab99bc4317184d1b077b0be8d0b69bb1b;hpb=42210c03b0a4c54706320ba9f55794c0abd4d201;p=controller.git diff --git a/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/flowprogrammer/IPluginInFlowProgrammerService.java b/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/flowprogrammer/IPluginInFlowProgrammerService.java index 1fb99e0ab9..5157788ce7 100644 --- a/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/flowprogrammer/IPluginInFlowProgrammerService.java +++ b/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/flowprogrammer/IPluginInFlowProgrammerService.java @@ -1,4 +1,3 @@ - /* * Copyright (c) 2013 Cisco Systems, Inc. and others. All rights reserved. * @@ -13,40 +12,81 @@ import org.opendaylight.controller.sal.core.Node; import org.opendaylight.controller.sal.utils.Status; /** - * @file IPluginOutFlowProgrammer.java - * - * @brief Flow programmer interface to be implemented by protocol plugins - * - * + * @file IPluginOutFlowProgrammer.java * + * @brief Flow programmer interface to be implemented by protocol plugins */ public interface IPluginInFlowProgrammerService { /** - * Add a flow to the network node + * Synchronously add a flow to the network node + * + * @param node + * @param flow + */ + Status addFlow(Node node, Flow flow); + + /** + * Synchronously modify existing flow on the switch + * + * @param node + * @param flow + */ + Status modifyFlow(Node node, Flow oldFlow, Flow newFlow); + + /** + * Synchronously remove the flow from the network node + * + * @param node + * @param flow + */ + Status removeFlow(Node node, Flow flow); + + /** + * Asynchronously add a flow to the network node * * @param node * @param flow + * @param rid */ - Status addFlow(Node node, Flow flow); + Status addFlowAsync(Node node, Flow flow, long rid); /** - * Modify existing flow on the switch + * Asynchronously modify existing flow on the switch * * @param node * @param flow + * @param rid */ - Status modifyFlow(Node node, Flow oldFlow, Flow newFlow); + Status modifyFlowAsync(Node node, Flow oldFlow, Flow newFlow, long rid); /** - * Remove the flow from the network node + * Asynchronously remove the flow from the network node + * * @param node * @param flow + * @param rid */ - Status removeFlow(Node node, Flow flow); + Status removeFlowAsync(Node node, Flow flow, long rid); /** * Remove all flows present on the network node + * + * @param node + */ + Status removeAllFlows(Node node); + + /** + * Send Barrier message synchronously. The caller will be blocked until the + * Barrier reply arrives. + * + * @param node + */ + Status syncSendBarrierMessage(Node node); + + /** + * Send Barrier message asynchronously. The caller is not blocked. + * * @param node */ - Status removeAllFlows(Node node); + Status asyncSendBarrierMessage(Node node); }