Renamed forwarding and proxyarp packages
net.onrc.onos.ofcontroller.forwarding => net.onrc.onos.apps.forwarding
net.onrc.onos.ofcontroller.proxyarp => net.onrc.onos.apps.proxyarp
Change-Id: Id368d4fd675b00ad84c17d44dd9804f010710cde
diff --git a/src/main/java/net/onrc/onos/apps/proxyarp/IProxyArpService.java b/src/main/java/net/onrc/onos/apps/proxyarp/IProxyArpService.java
new file mode 100644
index 0000000..1cdf18c
--- /dev/null
+++ b/src/main/java/net/onrc/onos/apps/proxyarp/IProxyArpService.java
@@ -0,0 +1,42 @@
+package net.onrc.onos.apps.proxyarp;
+
+import java.net.InetAddress;
+import java.util.List;
+
+import net.floodlightcontroller.core.module.IFloodlightService;
+import net.floodlightcontroller.util.MACAddress;
+
+// Extends IFloodlightService so we can access it from REST API resources
+/**
+ * Provides ARP services to other modules.
+ */
+public interface IProxyArpService extends IFloodlightService {
+ /**
+ * Returns the MAC address if there is a valid entry in the cache. Otherwise
+ * returns null.
+ *
+ * @param ipAddress the IP address to request the ARP mapping for
+ * @return the MACAddress that maps to the specified IP address, or null if
+ * no mapping is found
+ */
+ public MACAddress getMacAddress(InetAddress ipAddress);
+
+ /**
+ * Tell the IProxyArpService to send an ARP request for the IP address. The
+ * request will be broadcast out all edge ports in the network.
+ *
+ * @param ipAddress the IP address to send an ARP request for
+ * @param requester the {@link IArpRequester} object that will be called if
+ * a reply is received
+ * @param retry whether to keep sending requests until the MAC is learnt
+ */
+ public void sendArpRequest(InetAddress ipAddress, IArpRequester requester,
+ boolean retry);
+
+ /**
+ * Returns a snapshot of the entire ARP cache.
+ *
+ * @return a list of mappings formatted as a human-readable string
+ */
+ public List<String> getMappings();
+}