Refactored the ARP cache logic out of ProxyArpManager and into its own class to make the code clearer. Moved to using MACAddress objects in the ProxyArpManager APIs and implementation which prevents us having to pass byte arrays around and are safer as MACAddress prevents a rogue client changing the MAC address for everyone
diff --git a/src/main/java/net/onrc/onos/ofcontroller/proxyarp/IProxyArpService.java b/src/main/java/net/onrc/onos/ofcontroller/proxyarp/IProxyArpService.java
index 2bb32f4..7dde89b 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/proxyarp/IProxyArpService.java
+++ b/src/main/java/net/onrc/onos/ofcontroller/proxyarp/IProxyArpService.java
@@ -3,6 +3,7 @@
 import java.net.InetAddress;
 
 import net.floodlightcontroller.packet.ARP;
+import net.floodlightcontroller.util.MACAddress;
 
 public interface IProxyArpService {
 	
@@ -16,7 +17,7 @@
 	 * @param port
 	 * @param targetMac
 	 */
-	public void sendArpReply(ARP arpRequest, long dpid, short port, byte[] targetMac);
+	public void sendArpReply(ARP arpRequest, long dpid, short port, MACAddress targetMac);
 	
 	/**
 	 * Returns the mac address if there is a valid entry in the cache.
@@ -24,7 +25,7 @@
 	 * @param ipAddress
 	 * @return
 	 */
-	public byte[] getMacAddress(InetAddress ipAddress);
+	public MACAddress getMacAddress(InetAddress ipAddress);
 	
 	/**
 	 * Tell the IProxyArpService to send an ARP request for the IP address.