next up previous contents index
Next: ASP Up: Protocol Specifications Previous: Protocol Specifications

ARP

NAME

ARP (Address Resolution Protocol)

SPECIFICATION

D. Plummer. An Ethernet Address Resolution Protocol. Request for Comments 826, USC Information Sciences Institute, Marina del Ray, Calif., Nov. 1982.

SYNOPSIS

ARP translates IP addresses into ethernet addresses, and vice versa (i.e., it also implements RARP). This implementation of ARP supports a single interface, but may be multiply instantiated to support several network interfaces.

REALM

ARP is in the CONTROL realm. There are no ARP sessions -- control operations may be performed on the protocol object only.

CONTROL OPERATIONS

RESOLVE:
Maps an IP address into an ethernet address.
Input:
IPhost
Output:
ETHhost

RRESOLVE:
Maps an ethernet address into an IP address.
Input:
ETHhost
Output:
IPhost

ARP_INSTALL:
Installs an IP address to ETH address binding.
Input:
ArpBinding == {ETHhost eth; IPhost ip;}
Output:
none

ARP_GETMYBINDING:
Return the IP and ETH address of the local host for the interface.
Input:
none
Output:
ArpBinding == {ETHhost eth; IPhost ip;}

ARP_FOREACH:
This is a kludge to allow non-broadcast device drivers, such as SIMETH, to simulate broadcast without having to keep their own tables of reachable hosts. When the ARP_FOREACH control operation is invoked, ARP will call-back the invoking protocol once for each binding in its table.
Input:
ArpForEach == { void *arg; ArpForEachFunc f; }
Output:
none

typedef int (ArpForEachFunc) ( ArpBinding *, void * );

ETH_REGISTER_ARP:
ARP invokes this control operation on its lower protocol at initialization time so the driver knows which protocol to use if it has to invoke an ARP_FOREACH. This is not pretty.
Input:
XObj
Output:
none

CONFIGURATION

name=arp protocols=eth;

AUTHORS

Larry Peterson and Norm Hutchinson


next up previous contents index
Next: ASP Up: Protocol Specifications Previous: Protocol Specifications



Larry Peterson
Tue Jul 1 14:50:34 MST 1997