import java.util.Timer;
import java.util.TimerTask;
import java.util.concurrent.ConcurrentHashMap;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+import java.util.concurrent.ConcurrentMap;
import org.opendaylight.controller.hosttracker.IfHostListener;
import org.opendaylight.controller.hosttracker.IfIptoHost;
import org.opendaylight.controller.switchmanager.ISwitchManager;
import org.opendaylight.controller.switchmanager.Subnet;
import org.opendaylight.controller.topologymanager.ITopologyManager;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
public class ArpHandler implements IHostFinder, IListenDataPacket {
private static final Logger logger = LoggerFactory
private IDataPacketService dataPacketService = null;
private Set<IfHostListener> hostListener = Collections
.synchronizedSet(new HashSet<IfHostListener>());
- private ConcurrentHashMap<InetAddress, Set<HostNodeConnector>> arpRequestors;
- private ConcurrentHashMap<InetAddress, Short> countDownTimers;
+ private ConcurrentMap<InetAddress, Set<HostNodeConnector>> arpRequestors;
+ private ConcurrentMap<InetAddress, Short> countDownTimers;
private Timer periodicTimer;
void setHostListener(IfHostListener s) {
this.hostTracker = null;
}
}
-
+
public void setTopologyManager(ITopologyManager tm) {
this.topologyManager = tm;
}
generateAndSendReply(sourceIP, sourceMAC);
return;
}
-
+
/*
* ARP Request Handling:
* If targetIP is the IP of the subnet, reply with ARP REPLY
nodeConnectors = subnet.getNodeConnectors();
}
for (NodeConnector p : nodeConnectors) {
- if (topologyManager.isInternal(p)) {
- continue;
- }
+ if (topologyManager.isInternal(p)) {
+ continue;
+ }
ARP arp = new ARP();
byte[] senderIP = subnet.getNetworkAddress().getAddress();
byte[] targetIPB = targetIP.getAddress();
}
return PacketResult.IGNORED;
}
-
+
private void startPeriodicTimer() {
this.periodicTimer = new Timer("ArpHandler Periodic Timer");
this.periodicTimer.scheduleAtFixedRate(new TimerTask() {