Cleaned up ProxyArpManager code by creating an interface through which it can request information about the L3 configuration (IP addresses, ports, etc)
diff --git a/src/main/java/net/onrc/onos/ofcontroller/bgproute/ILayer3InfoService.java b/src/main/java/net/onrc/onos/ofcontroller/bgproute/ILayer3InfoService.java
new file mode 100644
index 0000000..0f14dd6
--- /dev/null
+++ b/src/main/java/net/onrc/onos/ofcontroller/bgproute/ILayer3InfoService.java
@@ -0,0 +1,36 @@
+package net.onrc.onos.ofcontroller.bgproute;
+
+import java.net.InetAddress;
+
+import net.floodlightcontroller.util.MACAddress;
+
+/**
+ * Provides information about the layer 3 properties of the network.
+ * This is based on IP addresses configured on ports in the network.
+ *
+ */
+public interface ILayer3InfoService {
+	//public Collection<Interface> getInterfaces();
+	public boolean isInterfaceAddress(InetAddress address);
+	public boolean inConnectedNetwork(InetAddress address);
+	public boolean fromExternalNetwork(long inDpid, short inPort);
+	
+	/**
+	 * Retrieves the {@link Interface} object for the interface that packets
+	 * to dstIpAddress will be sent out of. Returns null if dstIpAddress is not
+	 * in a directly connected network, or if no interfaces are configured.
+	 * @param dstIpAddress Destination IP address that we want to match to
+	 * an outgoing interface
+	 * @return The {@link Interface} object if found, null if not
+	 */
+	public Interface getOutgoingInterface(InetAddress dstIpAddress);
+	
+	/**
+	 * Returns whether this controller has a layer 3 configuration 
+	 * (i.e. interfaces and IP addresses)
+	 * @return True if IP addresses are configured, false if not
+	 */
+	public boolean hasLayer3Configuration();
+	
+	public MACAddress getRouterMacAddress();
+}