tom | 9ccd781 | 2014-08-25 22:43:19 -0700 | [diff] [blame^] | 1 | package org.onlab.onos.of.controller.impl.util; |
tom | 0eb04ca | 2014-08-25 14:34:51 -0700 | [diff] [blame] | 2 | |
| 3 | import java.io.IOException; |
| 4 | import java.util.Collection; |
| 5 | import java.util.Date; |
| 6 | import java.util.List; |
| 7 | import java.util.Map; |
| 8 | import java.util.Set; |
| 9 | import java.util.concurrent.Future; |
| 10 | |
| 11 | import org.jboss.netty.channel.Channel; |
| 12 | import org.projectfloodlight.openflow.protocol.OFActionType; |
| 13 | import org.projectfloodlight.openflow.protocol.OFCapabilities; |
| 14 | import org.projectfloodlight.openflow.protocol.OFDescStatsReply; |
| 15 | import org.projectfloodlight.openflow.protocol.OFFeaturesReply; |
| 16 | import org.projectfloodlight.openflow.protocol.OFMessage; |
| 17 | import org.projectfloodlight.openflow.protocol.OFPortDesc; |
| 18 | import org.projectfloodlight.openflow.protocol.OFPortDescStatsReply; |
| 19 | import org.projectfloodlight.openflow.protocol.OFPortStatus; |
| 20 | import org.projectfloodlight.openflow.protocol.OFStatsReply; |
| 21 | import org.projectfloodlight.openflow.protocol.OFStatsRequest; |
| 22 | import org.projectfloodlight.openflow.protocol.OFVersion; |
| 23 | import org.projectfloodlight.openflow.types.DatapathId; |
| 24 | import org.projectfloodlight.openflow.types.U64; |
| 25 | import org.slf4j.Logger; |
| 26 | import org.slf4j.LoggerFactory; |
| 27 | |
| 28 | import net.onrc.onos.of.ctl.IOFSwitch; |
| 29 | import net.onrc.onos.of.ctl.Role; |
tom | 9ccd781 | 2014-08-25 22:43:19 -0700 | [diff] [blame^] | 30 | import org.onlab.onos.of.controller.impl.debugcounter.IDebugCounterService; |
| 31 | import org.onlab.onos.of.controller.impl.debugcounter.IDebugCounterService.CounterException; |
tom | 0eb04ca | 2014-08-25 14:34:51 -0700 | [diff] [blame] | 32 | |
| 33 | public 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 | } |