}
private void replaceHost(InetAddress networkAddr, HostNodeConnector removedHost, HostNodeConnector newHost) {
+ // Ignore ARP messages from internal nodes
+ NodeConnector newHostNc = newHost.getnodeConnector();
+ boolean newHostIsInternal = topologyManager.isInternal(newHostNc);
+ if (newHostIsInternal) {
+ return;
+ }
+
newHost.initArpSendCountDown();
+
if (hostsDB.replace(networkAddr, removedHost, newHost)) {
logger.debug("Host move occurred: Old Host IP:{}, New Host IP: {}", removedHost.getNetworkAddress()
.getHostAddress(), newHost.getNetworkAddress().getHostAddress());
if (hostExists(host)) {
HostNodeConnector existinghost = hostsDB.get(host.getNetworkAddress());
existinghost.initArpSendCountDown();
+ // Update the host
+ hostsDB.put(host.getNetworkAddress(), existinghost);
return;
}
new NotifyHostThread(host).start();