blob: 1cdf18c8c2a736ad179fc3967d6772e77beb2921 [file] [log] [blame]
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();
}