blob: 2d925f8d2f4c5ea3fd1e38ba1bcaafdeae338917 [file] [log] [blame]
tom9ccd7812014-08-25 22:43:19 -07001package org.onlab.onos.of.controller.impl.util;
alshabib1f44e8e2014-08-14 15:19:57 -07002
3import java.io.IOException;
4import java.util.Collection;
5import java.util.Date;
6import java.util.List;
7import java.util.Map;
8import java.util.Set;
9import java.util.concurrent.Future;
10
11import org.jboss.netty.channel.Channel;
12import org.projectfloodlight.openflow.protocol.OFActionType;
13import org.projectfloodlight.openflow.protocol.OFCapabilities;
14import org.projectfloodlight.openflow.protocol.OFDescStatsReply;
15import org.projectfloodlight.openflow.protocol.OFFeaturesReply;
16import org.projectfloodlight.openflow.protocol.OFMessage;
17import org.projectfloodlight.openflow.protocol.OFPortDesc;
18import org.projectfloodlight.openflow.protocol.OFPortDescStatsReply;
19import org.projectfloodlight.openflow.protocol.OFPortStatus;
20import org.projectfloodlight.openflow.protocol.OFStatsReply;
21import org.projectfloodlight.openflow.protocol.OFStatsRequest;
22import org.projectfloodlight.openflow.protocol.OFVersion;
23import org.projectfloodlight.openflow.types.DatapathId;
24import org.projectfloodlight.openflow.types.U64;
25import org.slf4j.Logger;
26import org.slf4j.LoggerFactory;
27
tom9ccd7812014-08-25 22:43:19 -070028import org.onlab.onos.of.controller.impl.IOFSwitch;
29import org.onlab.onos.of.controller.impl.Role;
30import org.onlab.onos.of.controller.impl.debugcounter.IDebugCounterService;
31import org.onlab.onos.of.controller.impl.debugcounter.IDebugCounterService.CounterException;
alshabib1f44e8e2014-08-14 15:19:57 -070032
33public class DummySwitchForTesting implements IOFSwitch {
34
35 protected static final Logger log = LoggerFactory.getLogger(DummySwitchForTesting.class);
36
37 private Channel channel;
38 private boolean connected = false;
39 private OFVersion ofv = OFVersion.OF_10;
40
41 private Collection<OFPortDesc> ports;
42
43 private DatapathId datapathId;
44
45 private Set<OFCapabilities> capabilities;
46
47 private int buffers;
48
49 private byte tables;
50
51 private String stringId;
52
53 private Role role;
54
55 @Override
56 public void disconnectSwitch() {
57 this.channel.close();
58 }
59
60 @Override
61 public void write(OFMessage m) throws IOException {
62 this.channel.write(m);
63
64 }
65
66 @Override
67 public void write(List<OFMessage> msglist) throws IOException {
68 for (OFMessage m : msglist) {
69 this.channel.write(m);
70 }
71
72 }
73
74 @Override
75 public Date getConnectedSince() {
76 // TODO Auto-generated method stub
77 return null;
78 }
79
80 @Override
81 public int getNextTransactionId() {
82 return 0;
83 }
84
85 @Override
86 public boolean isConnected() {
87 return this.connected;
88 }
89
90 @Override
91 public void setConnected(boolean connected) {
92 this.connected = connected;
93
94 }
95
96 @Override
97 public void flush() {
98 // TODO Auto-generated method stub
99
100 }
101
102 @Override
103 public void setChannel(Channel channel) {
104 this.channel = channel;
105
106 }
107
108 @Override
109 public long getId() {
110 if (this.stringId == null) {
111 throw new RuntimeException("Features reply has not yet been set");
112 }
113 return this.datapathId.getLong();
114 }
115
116 @Override
117 public String getStringId() {
118 // TODO Auto-generated method stub
119 return "DummySwitch";
120 }
121
122 @Override
123 public int getNumBuffers() {
124 // TODO Auto-generated method stub
125 return 0;
126 }
127
128 @Override
129 public Set<OFCapabilities> getCapabilities() {
130 // TODO Auto-generated method stub
131 return null;
132 }
133
134 @Override
135 public byte getNumTables() {
136 // TODO Auto-generated method stub
137 return 0;
138 }
139
140 @Override
141 public OFDescStatsReply getSwitchDescription() {
142 // TODO Auto-generated method stub
143 return null;
144 }
145
146 @Override
147 public void cancelFeaturesReply(int transactionId) {
148 // TODO Auto-generated method stub
149
150 }
151
152 @Override
153 public Set<OFActionType> getActions() {
154 // TODO Auto-generated method stub
155 return null;
156 }
157
158 @Override
159 public void setOFVersion(OFVersion version) {
160 // TODO Auto-generated method stub
161
162 }
163
164 @Override
165 public OFVersion getOFVersion() {
166 return this.ofv;
167 }
168
169 @Override
170 public Collection<OFPortDesc> getEnabledPorts() {
171 // TODO Auto-generated method stub
172 return null;
173 }
174
175 @Override
176 public Collection<Integer> getEnabledPortNumbers() {
177 // TODO Auto-generated method stub
178 return null;
179 }
180
181 @Override
182 public OFPortDesc getPort(int portNumber) {
183 // TODO Auto-generated method stub
184 return null;
185 }
186
187 @Override
188 public OFPortDesc getPort(String portName) {
189 // TODO Auto-generated method stub
190 return null;
191 }
192
193 @Override
194 public OrderedCollection<PortChangeEvent> processOFPortStatus(
195 OFPortStatus ps) {
196 // TODO Auto-generated method stub
197 return null;
198 }
199
200 @Override
201 public Collection<OFPortDesc> getPorts() {
202 return ports;
203 }
204
205 @Override
206 public boolean portEnabled(int portName) {
207 // TODO Auto-generated method stub
208 return false;
209 }
210
211 @Override
212 public OrderedCollection<PortChangeEvent> setPorts(
213 Collection<OFPortDesc> p) {
214 this.ports = p;
215 return null;
216 }
217
218 @Override
219 public Map<Object, Object> getAttributes() {
220 return null;
221 }
222
223 @Override
224 public boolean hasAttribute(String name) {
225 // TODO Auto-generated method stub
226 return false;
227 }
228
229 @Override
230 public Object getAttribute(String name) {
231 return Boolean.FALSE;
232 }
233
234 @Override
235 public void setAttribute(String name, Object value) {
236 // TODO Auto-generated method stub
237
238 }
239
240 @Override
241 public Object removeAttribute(String name) {
242 // TODO Auto-generated method stub
243 return null;
244 }
245
246 @Override
247 public void deliverStatisticsReply(OFMessage reply) {
248 // TODO Auto-generated method stub
249
250 }
251
252 @Override
253 public void cancelStatisticsReply(int transactionId) {
254 // TODO Auto-generated method stub
255
256 }
257
258 @Override
259 public void cancelAllStatisticsReplies() {
260 // TODO Auto-generated method stub
261
262 }
263
264 @Override
265 public Future<List<OFStatsReply>> getStatistics(OFStatsRequest<?> request)
266 throws IOException {
267 // TODO Auto-generated method stub
268 return null;
269 }
270
271 @Override
272 public void clearAllFlowMods() {
273 // TODO Auto-generated method stub
274
275 }
276
277 @Override
278 public Role getRole() {
279 return this.role;
280 }
281
282 @Override
283 public void setRole(Role role) {
284 this.role = role;
285 }
286
287 @Override
288 public U64 getNextGenerationId() {
289 // TODO Auto-generated method stub
290 return null;
291 }
292
293 @Override
294 public void setDebugCounterService(IDebugCounterService debugCounter)
295 throws CounterException {
296 // TODO Auto-generated method stub
297
298 }
299
300 @Override
301 public void startDriverHandshake() throws IOException {
302 // TODO Auto-generated method stub
303
304 }
305
306 @Override
307 public boolean isDriverHandshakeComplete() {
308 return true;
309 }
310
311 @Override
312 public void processDriverHandshakeMessage(OFMessage m) {
313
314 }
315
316 @Override
317 public void setTableFull(boolean isFull) {
318 // TODO Auto-generated method stub
319
320 }
321
322 @Override
323 public void setFeaturesReply(OFFeaturesReply featuresReply) {
324 if (featuresReply == null) {
325 log.error("Error setting featuresReply for switch: {}", getStringId());
326 return;
327 }
328 this.datapathId = featuresReply.getDatapathId();
329 this.capabilities = featuresReply.getCapabilities();
330 this.buffers = (int) featuresReply.getNBuffers();
331 this.tables = (byte) featuresReply.getNTables();
332 this.stringId = this.datapathId.toString();
333
334 }
335
336 @Override
337 public void setPortDescReply(OFPortDescStatsReply portDescReply) {
338 // TODO Auto-generated method stub
339
340 }
341
342 @Override
343 public void handleMessage(OFMessage m) {
344 log.info("Got packet {} but I am dumb so I don't know what to do.", m);
345 }
346
347 @Override
348 public boolean portEnabled(String portName) {
349 // TODO Auto-generated method stub
350 return false;
351 }
352
353 @Override
354 public OrderedCollection<PortChangeEvent> comparePorts(
355 Collection<OFPortDesc> p) {
356 // TODO Auto-generated method stub
357 return null;
358 }
359
360}