From 06d0bfb204b7a60b872e654b41a34dd58c0c88e4 Mon Sep 17 00:00:00 2001 From: Srinivasan Ramasubramanian <srini@bigswitch.com> Date: Fri, 10 Aug 2012 08:41:01 -0700 Subject: [PATCH] Rechedule discovery task only if role is MASTER. Also, start the scheduling when role is changed to master. --- .../linkdiscovery/internal/LinkDiscoveryManager.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/main/java/net/floodlightcontroller/linkdiscovery/internal/LinkDiscoveryManager.java b/src/main/java/net/floodlightcontroller/linkdiscovery/internal/LinkDiscoveryManager.java index dd2f6f8b0..51821e0bc 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: -- GitLab