Mark AD-SAL interfaces as deprecated
[controller.git] / opendaylight / adsal / sal / api / src / main / java / org / opendaylight / controller / sal / flowprogrammer / IPluginInFlowProgrammerService.java
1 /*
2  * Copyright (c) 2013 Cisco Systems, Inc. and others.  All rights reserved.
3  *
4  * This program and the accompanying materials are made available under the
5  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6  * and is available at http://www.eclipse.org/legal/epl-v10.html
7  */
8
9 package org.opendaylight.controller.sal.flowprogrammer;
10
11 import org.opendaylight.controller.sal.core.Node;
12 import org.opendaylight.controller.sal.utils.Status;
13
14 /**
15  * This interface defines the flow programmer methods to be implemented by
16  * protocol plugins
17  */
18 @Deprecated
19 public interface IPluginInFlowProgrammerService {
20     /**
21      * Synchronously add a flow to the network node
22      *
23      * @param node
24      *            the network node
25      *            {@link org.opendaylight.controller.sal.core.Node} on which the
26      *            flow got added
27      * @param flow
28      *            the flow
29      *            {@link org.opendaylight.controller.sal.flowprogrammer.Flow}
30      *            that got added
31      * @return Status the operation status
32      *         {@link org.opendaylight.controller.sal.utils.Status}
33      */
34     Status addFlow(Node node, Flow flow);
35
36     /**
37      * Synchronously modify existing flow on the switch
38      *
39      * @param node
40      *            the network node
41      *            {@link org.opendaylight.controller.sal.core.Node} on which the
42      *            flow got modified
43      * @param flow
44      *            the flow
45      *            {@link org.opendaylight.controller.sal.flowprogrammer.Flow}
46      *            that got modified
47      * @return Status the operation status
48      *         {@link org.opendaylight.controller.sal.utils.Status}
49      */
50     Status modifyFlow(Node node, Flow oldFlow, Flow newFlow);
51
52     /**
53      * Synchronously remove the flow from the network node
54      *
55      * @param node
56      *            the network node
57      *            {@link org.opendaylight.controller.sal.core.Node} on which the
58      *            flow got removed
59      * @param flow
60      *            the flow
61      *            {@link org.opendaylight.controller.sal.flowprogrammer.Flow}
62      *            that got removed
63      * @return Status the operation status
64      *         {@link org.opendaylight.controller.sal.utils.Status}
65      */
66     Status removeFlow(Node node, Flow flow);
67
68     /**
69      * Asynchronously add a flow to the network node
70      *
71      * @param node
72      *            the network node
73      *            {@link org.opendaylight.controller.sal.core.Node} on which the
74      *            flow got added
75      * @param flow
76      *            the flow
77      *            {@link org.opendaylight.controller.sal.flowprogrammer.Flow}
78      *            that got added
79      * @param rid
80      *            the request id
81      * @return Status the operation status
82      *         {@link org.opendaylight.controller.sal.utils.Status}
83      */
84     Status addFlowAsync(Node node, Flow flow, long rid);
85
86     /**
87      * Asynchronously modify existing flow on the switch
88      *
89      * @param node
90      *            the network node
91      *            {@link org.opendaylight.controller.sal.core.Node} on which the
92      *            flow got modified
93      * @param oldFlow
94      *            the original flow
95      *            {@link org.opendaylight.controller.sal.flowprogrammer.Flow}
96      * @param newFlow
97      *            the new flow
98      *            {@link org.opendaylight.controller.sal.flowprogrammer.Flow}
99      * @param rid
100      *            the request id
101      * @return Status the operation status
102      *         {@link org.opendaylight.controller.sal.utils.Status}
103      */
104     Status modifyFlowAsync(Node node, Flow oldFlow, Flow newFlow, long rid);
105
106     /**
107      * Asynchronously remove the flow from the network node
108      *
109      * @param node
110      *            the network node
111      *            {@link org.opendaylight.controller.sal.core.Node} on which the
112      *            flow got removed
113      * @param flow
114      *            the flow
115      *            {@link org.opendaylight.controller.sal.flowprogrammer.Flow}
116      *            that got removed
117      * @param rid
118      *            the request id
119      * @return Status the operation status
120      *         {@link org.opendaylight.controller.sal.utils.Status}
121      */
122     Status removeFlowAsync(Node node, Flow flow, long rid);
123
124     /**
125      * Remove all flows present on the network node
126      *
127      * @param node
128      *            the network node
129      *            {@link org.opendaylight.controller.sal.core.Node} on which the
130      *            flow got removed
131      * @return Status the operation status
132      *         {@link org.opendaylight.controller.sal.utils.Status}
133      */
134     Status removeAllFlows(Node node);
135
136     /**
137      * Send Barrier message synchronously. The caller will be blocked until the
138      * Barrier reply arrives.
139      *
140      * @param node
141      *            the network node
142      *            {@link org.opendaylight.controller.sal.core.Node}
143      * @return Status the operation status
144      *         {@link org.opendaylight.controller.sal.utils.Status}
145      */
146     Status syncSendBarrierMessage(Node node);
147
148     /**
149      * Send Barrier message asynchronously. The caller is not blocked.
150      *
151      * @param node
152      *            the network node
153      *            {@link org.opendaylight.controller.sal.core.Node}
154      * @return Status the operation status
155      *         {@link org.opendaylight.controller.sal.utils.Status}
156      */
157     Status asyncSendBarrierMessage(Node node);
158 }