| 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(); |
| } |