avoid transient changes to MastershipStore from being posted as events
Change-Id: Id033cf50f865e44439138f5b3814ebaedb832b73
diff --git a/providers/openflow/device/src/main/java/org/onlab/onos/provider/of/device/impl/OpenFlowDeviceProvider.java b/providers/openflow/device/src/main/java/org/onlab/onos/provider/of/device/impl/OpenFlowDeviceProvider.java
index ecc50a3..6ba0fe3 100644
--- a/providers/openflow/device/src/main/java/org/onlab/onos/provider/of/device/impl/OpenFlowDeviceProvider.java
+++ b/providers/openflow/device/src/main/java/org/onlab/onos/provider/of/device/impl/OpenFlowDeviceProvider.java
@@ -103,22 +103,31 @@
LOG.info("Stopped");
}
+
+ @Override
+ public boolean isReachable(Device device) {
+ // FIXME if possible, we might want this to be part of
+ // OpenFlowSwitch interface so the driver interface isn't misused.
+ OpenFlowSwitch sw = controller.getSwitch(dpid(device.id().uri()));
+ if (sw == null || !((OpenFlowSwitchDriver) sw).isConnected()) {
+ return false;
+ }
+ return true;
+ //return checkChannel(device, sw);
+ }
+
@Override
public void triggerProbe(Device device) {
LOG.info("Triggering probe on device {}", device.id());
- // 1. check device liveness
- // FIXME if possible, we might want this to be part of
- // OpenFlowSwitch interface so the driver interface isn't misused.
OpenFlowSwitch sw = controller.getSwitch(dpid(device.id().uri()));
- if (sw == null ||
- !((OpenFlowSwitchDriver) sw).isConnected()) {
- LOG.error("Failed to probe device {} on sw={}", device, sw);
- providerService.deviceDisconnected(device.id());
- return;
- }
+ //if (!checkChannel(device, sw)) {
+ // LOG.error("Failed to probe device {} on sw={}", device, sw);
+ // providerService.deviceDisconnected(device.id());
+ //return;
+ //}
- // 2. Prompt an update of port information. Do we have an XID for this?
+ // Prompt an update of port information. We can use any XID for this.
OFFactory fact = sw.factory();
switch (fact.getVersion()) {
case OF_10:
@@ -132,6 +141,16 @@
}
}
+ // Checks if the OF channel is connected.
+ //private boolean checkChannel(Device device, OpenFlowSwitch sw) {
+ // FIXME if possible, we might want this to be part of
+ // OpenFlowSwitch interface so the driver interface isn't misused.
+ // if (sw == null || !((OpenFlowSwitchDriver) sw).isConnected()) {
+ // return false;
+ // }
+ // return true;
+ // }
+
@Override
public void roleChanged(Device device, MastershipRole newRole) {
switch (newRole) {