diff --git a/src/main/java/net/floodlightcontroller/linkdiscovery/internal/LinkDiscoveryManager.java b/src/main/java/net/floodlightcontroller/linkdiscovery/internal/LinkDiscoveryManager.java index dd2f6f8b0e87a6196c1c41fe9e87dcc413740bd4..51821e0bc3274522fadd16e8515395da48f78b9a 100644 --- a/src/main/java/net/floodlightcontroller/linkdiscovery/internal/LinkDiscoveryManager.java +++ b/src/main/java/net/floodlightcontroller/linkdiscovery/internal/LinkDiscoveryManager.java @@ -1585,7 +1585,8 @@ IFloodlightModule, IInfoProvider, IHAListener { } catch (Exception e) { log.error("Exception in LLDP send timer.", e); } finally { - if (!shuttingDown) { + if (!shuttingDown && + floodlightProvider.getRole() == Role.MASTER) { discoveryTask.reschedule(DISCOVERY_TASK_INTERVAL, TimeUnit.SECONDS); } @@ -1606,7 +1607,8 @@ IFloodlightModule, IInfoProvider, IHAListener { }}, "Topology Updates"); updatesThread.start(); - discoveryTask.reschedule(DISCOVERY_TASK_INTERVAL, TimeUnit.SECONDS); + if (floodlightProvider.getRole() == Role.MASTER) + discoveryTask.reschedule(1, TimeUnit.MICROSECONDS); // Register for the OpenFlow messages we want to receive floodlightProvider.addOFMessageListener(OFType.PACKET_IN, this); floodlightProvider.addOFMessageListener(OFType.PORT_STATUS, this); @@ -1712,19 +1714,17 @@ IFloodlightModule, IInfoProvider, IHAListener { } // IHARoleListener - @Override public void roleChanged(Role oldRole, Role newRole) { switch(newRole) { case MASTER: if (oldRole == Role.SLAVE) { - clearAllLinks(); if (log.isTraceEnabled()) { log.trace("Sending LLDPs " + "to HA change from SLAVE->MASTER"); } clearAllLinks(); - discoverLinks(); + discoveryTask.reschedule(1, TimeUnit.MICROSECONDS); } break; case SLAVE: