Merge branch 'master' of ssh://gerrit.onlab.us:29418/onos-next
Showing
2 changed files
with
38 additions
and
2 deletions
... | @@ -250,10 +250,13 @@ public class OpenFlowControllerImpl implements OpenFlowController { | ... | @@ -250,10 +250,13 @@ public class OpenFlowControllerImpl implements OpenFlowController { |
250 | } | 250 | } |
251 | OpenFlowSwitch sw = activeMasterSwitches.remove(dpid); | 251 | OpenFlowSwitch sw = activeMasterSwitches.remove(dpid); |
252 | if (sw == null) { | 252 | if (sw == null) { |
253 | + sw = getSwitch(dpid); | ||
254 | + if (sw == null) { | ||
253 | log.error("Transition to equal called on sw {}, but switch " | 255 | log.error("Transition to equal called on sw {}, but switch " |
254 | + "was not found in controller-cache", dpid); | 256 | + "was not found in controller-cache", dpid); |
255 | return; | 257 | return; |
256 | } | 258 | } |
259 | + } | ||
257 | log.info("Transitioned switch {} to EQUAL", dpid); | 260 | log.info("Transitioned switch {} to EQUAL", dpid); |
258 | activeEqualSwitches.put(dpid, sw); | 261 | activeEqualSwitches.put(dpid, sw); |
259 | } finally { | 262 | } finally { | ... | ... |
... | @@ -2,10 +2,15 @@ package org.onlab.onos.of.drivers.impl; | ... | @@ -2,10 +2,15 @@ package org.onlab.onos.of.drivers.impl; |
2 | 2 | ||
3 | 3 | ||
4 | 4 | ||
5 | +import java.util.Collections; | ||
6 | +import java.util.List; | ||
7 | + | ||
5 | import org.onlab.onos.of.controller.Dpid; | 8 | import org.onlab.onos.of.controller.Dpid; |
9 | +import org.onlab.onos.of.controller.driver.AbstractOpenFlowSwitch; | ||
6 | import org.onlab.onos.of.controller.driver.OpenFlowSwitchDriver; | 10 | import org.onlab.onos.of.controller.driver.OpenFlowSwitchDriver; |
7 | import org.onlab.onos.of.controller.driver.OpenFlowSwitchDriverFactory; | 11 | import org.onlab.onos.of.controller.driver.OpenFlowSwitchDriverFactory; |
8 | import org.projectfloodlight.openflow.protocol.OFDescStatsReply; | 12 | import org.projectfloodlight.openflow.protocol.OFDescStatsReply; |
13 | +import org.projectfloodlight.openflow.protocol.OFMessage; | ||
9 | import org.projectfloodlight.openflow.protocol.OFVersion; | 14 | import org.projectfloodlight.openflow.protocol.OFVersion; |
10 | import org.slf4j.Logger; | 15 | import org.slf4j.Logger; |
11 | import org.slf4j.LoggerFactory; | 16 | import org.slf4j.LoggerFactory; |
... | @@ -51,8 +56,36 @@ public final class DriverManager implements OpenFlowSwitchDriverFactory { | ... | @@ -51,8 +56,36 @@ public final class DriverManager implements OpenFlowSwitchDriverFactory { |
51 | } | 56 | } |
52 | 57 | ||
53 | log.warn("DriverManager could not identify switch desc: {}. " | 58 | log.warn("DriverManager could not identify switch desc: {}. " |
54 | - + "Assigning OFSwitchImplBase", desc); | 59 | + + "Assigning AbstractOpenFlowSwich", desc); |
55 | - return null; | 60 | + return new AbstractOpenFlowSwitch(dpid) { |
61 | + | ||
62 | + @Override | ||
63 | + public void write(List<OFMessage> msgs) { | ||
64 | + channel.write(msgs); | ||
65 | + } | ||
66 | + | ||
67 | + @Override | ||
68 | + public void write(OFMessage msg) { | ||
69 | + channel.write(Collections.singletonList(msg)); | ||
70 | + | ||
71 | + } | ||
72 | + | ||
73 | + @Override | ||
74 | + public Boolean supportNxRole() { | ||
75 | + return false; | ||
76 | + } | ||
77 | + | ||
78 | + @Override | ||
79 | + public void startDriverHandshake() {} | ||
80 | + | ||
81 | + @Override | ||
82 | + public void processDriverHandshakeMessage(OFMessage m) {} | ||
83 | + | ||
84 | + @Override | ||
85 | + public boolean isDriverHandshakeComplete() { | ||
86 | + return true; | ||
87 | + } | ||
88 | + }; | ||
56 | } | 89 | } |
57 | 90 | ||
58 | /** | 91 | /** | ... | ... |
-
Please register or login to post a comment