Added a REST API to the Proxy ARP module to inspect the ARP cache
diff --git a/src/main/java/net/onrc/onos/ofcontroller/proxyarp/ProxyArpManager.java b/src/main/java/net/onrc/onos/ofcontroller/proxyarp/ProxyArpManager.java
index 10aa87a..31cc4fc 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/proxyarp/ProxyArpManager.java
+++ b/src/main/java/net/onrc/onos/ofcontroller/proxyarp/ProxyArpManager.java
@@ -19,6 +19,7 @@
import net.floodlightcontroller.packet.ARP;
import net.floodlightcontroller.packet.Ethernet;
import net.floodlightcontroller.packet.IPv4;
+import net.floodlightcontroller.restserver.IRestApiService;
import net.floodlightcontroller.topology.ITopologyService;
import net.floodlightcontroller.util.MACAddress;
import net.onrc.onos.ofcontroller.bgproute.ILayer3InfoService;
@@ -39,7 +40,6 @@
import com.google.common.collect.Multimaps;
import com.google.common.collect.SetMultimap;
-//TODO REST API to inspect ARP table
public class ProxyArpManager implements IProxyArpService, IOFMessageListener {
private final static Logger log = LoggerFactory.getLogger(ProxyArpManager.class);
@@ -50,6 +50,7 @@
private final IFloodlightProviderService floodlightProvider;
private final ITopologyService topology;
private final ILayer3InfoService layer3;
+ private final IRestApiService restApi;
private final ArpCache arpCache;
@@ -103,10 +104,12 @@
}
public ProxyArpManager(IFloodlightProviderService floodlightProvider,
- ITopologyService topology, ILayer3InfoService layer3){
+ ITopologyService topology, ILayer3InfoService layer3,
+ IRestApiService restApi){
this.floodlightProvider = floodlightProvider;
this.topology = topology;
this.layer3 = layer3;
+ this.restApi = restApi;
arpCache = new ArpCache();
@@ -115,6 +118,8 @@
}
public void startUp() {
+ restApi.addRestletRoutable(new ArpWebRoutable());
+
Timer arpTimer = new Timer("arp-processing");
arpTimer.scheduleAtFixedRate(new TimerTask() {
@Override
@@ -552,4 +557,9 @@
sendArpRequestForAddress(ipAddress);
}
}
+
+ @Override
+ public List<String> getMappings() {
+ return arpCache.getMappings();
+ }
}