stoppign starting works nicely
diff --git a/providers/of/link/src/main/java/org/onlab/onos/provider/of/link/impl/LinkDiscovery.java b/providers/of/link/src/main/java/org/onlab/onos/provider/of/link/impl/LinkDiscovery.java
index 2e8fa55..b0b86f0 100644
--- a/providers/of/link/src/main/java/org/onlab/onos/provider/of/link/impl/LinkDiscovery.java
+++ b/providers/of/link/src/main/java/org/onlab/onos/provider/of/link/impl/LinkDiscovery.java
@@ -86,6 +86,7 @@
private final OpenFlowController ctrl;
private final LinkProviderService linkProvider;
private final Map<Integer, OFPortDesc> ports;
+ private Timeout timeout;
/**
* Instantiates discovery manager for the given physical switch. Creates a
@@ -127,7 +128,7 @@
addPort(port);
}
}
- Timer.getTimer().newTimeout(this, this.probeRate,
+ timeout = Timer.getTimer().newTimeout(this, this.probeRate,
TimeUnit.MILLISECONDS);
this.log.debug("Started discovery manager for switch {}",
sw.getId());
@@ -186,6 +187,10 @@
portnum);
}
}
+ ConnectPoint cp = new ConnectPoint(
+ DeviceId.deviceId("of:" + Long.toHexString(sw.getId())),
+ PortNumber.portNumber(port.getPortNo().getPortNumber()));
+ linkProvider.linksVanished(cp);
}
@@ -380,14 +385,19 @@
}
// reschedule timer
- Timer.getTimer().newTimeout(this, this.probeRate,
+ timeout = Timer.getTimer().newTimeout(this, this.probeRate,
TimeUnit.MILLISECONDS);
}
public void removeAllPorts() {
- for (OFPortDesc port : sw.getPorts()) {
+ for (OFPortDesc port : ports.values()) {
removePort(port);
}
}
+ public void stop() {
+ removeAllPorts();
+ timeout.cancel();
+ }
+
}