Retrieving handshaker drivers should respect driver annotation.
ONOS-2404. Ported from onos-1.2 branch. Change-Id: Ib0cd76790612216030a9dd50ed434253d8202868
Showing
1 changed file
with
10 additions
and
2 deletions
| ... | @@ -21,6 +21,8 @@ import org.jboss.netty.channel.ChannelPipelineFactory; | ... | @@ -21,6 +21,8 @@ import org.jboss.netty.channel.ChannelPipelineFactory; |
| 21 | import org.jboss.netty.channel.group.ChannelGroup; | 21 | import org.jboss.netty.channel.group.ChannelGroup; |
| 22 | import org.jboss.netty.channel.group.DefaultChannelGroup; | 22 | import org.jboss.netty.channel.group.DefaultChannelGroup; |
| 23 | import org.jboss.netty.channel.socket.nio.NioServerSocketChannelFactory; | 23 | import org.jboss.netty.channel.socket.nio.NioServerSocketChannelFactory; |
| 24 | +import org.onlab.util.ItemNotFoundException; | ||
| 25 | +import org.onosproject.net.DeviceId; | ||
| 24 | import org.onosproject.net.driver.DefaultDriverData; | 26 | import org.onosproject.net.driver.DefaultDriverData; |
| 25 | import org.onosproject.net.driver.DefaultDriverHandler; | 27 | import org.onosproject.net.driver.DefaultDriverHandler; |
| 26 | import org.onosproject.net.driver.Driver; | 28 | import org.onosproject.net.driver.Driver; |
| ... | @@ -206,8 +208,14 @@ public class Controller { | ... | @@ -206,8 +208,14 @@ public class Controller { |
| 206 | protected OpenFlowSwitchDriver getOFSwitchInstance(long dpid, | 208 | protected OpenFlowSwitchDriver getOFSwitchInstance(long dpid, |
| 207 | OFDescStatsReply desc, | 209 | OFDescStatsReply desc, |
| 208 | OFVersion ofv) { | 210 | OFVersion ofv) { |
| 209 | - Driver driver = driverService | 211 | + Dpid dpidObj = new Dpid(dpid); |
| 210 | - .getDriver(desc.getMfrDesc(), desc.getHwDesc(), desc.getSwDesc()); | 212 | + |
| 213 | + Driver driver; | ||
| 214 | + try { | ||
| 215 | + driver = driverService.getDriver(DeviceId.deviceId(Dpid.uri(dpidObj))); | ||
| 216 | + } catch (ItemNotFoundException e) { | ||
| 217 | + driver = driverService.getDriver(desc.getMfrDesc(), desc.getHwDesc(), desc.getSwDesc()); | ||
| 218 | + } | ||
| 211 | 219 | ||
| 212 | if (driver != null && driver.hasBehaviour(OpenFlowSwitchDriver.class)) { | 220 | if (driver != null && driver.hasBehaviour(OpenFlowSwitchDriver.class)) { |
| 213 | Dpid did = new Dpid(dpid); | 221 | Dpid did = new Dpid(dpid); | ... | ... |
-
Please register or login to post a comment