FreeBSD Manual Pages
ARP(4P) ARP(4P) NAME arp - Address Resolution Protocol SYNOPSIS /sys/conf/SYSTEM: NETHER 1 # ether pseudo-device DESCRIPTION ARP is a protocol used to dynamically map between DARPA Internet and 10Mb/s Ethernet addresses. It is used by all the 10Mb/s Ethernet in- terface drivers. It is not specific to Internet protocols or to 10Mb/s Ethernet, but this implementation currently supports only that combina- tion. ARP caches Internet-Ethernet address mappings. When an interface re- quests a mapping for an address not in the cache, ARP queues the mes- sage which requires the mapping and broadcasts a message on the associ- ated network requesting the address mapping. If a response is pro- vided, the new mapping is cached and any pending message is transmit- ted. ARP will queue at most one packet while waiting for a mapping re- quest to be responded to; only the most recently ``transmitted'' packet is kept. To facilitate communications with systems which do not use ARP, ioctls are provided to enter and delete entries in the Internet-to-Ethernet tables. Usage: #include <sys/ioctl.h> #include <sys/socket.h> #include <net/if.h> struct arpreq arpreq; ioctl(s, SIOCSARP, (caddr_t)&arpreq); ioctl(s, SIOCGARP, (caddr_t)&arpreq); ioctl(s, SIOCDARP, (caddr_t)&arpreq); Each ioctl takes the same structure as an argument. SIOCSARP sets an ARP entry, SIOCGARP gets an ARP entry, and SIOCDARP deletes an ARP en- try. These ioctls may be applied to any socket descriptor s, but only by the super-user. The arpreq structure contains: /* * ARP ioctl request */ struct arpreq { struct sockaddr arp_pa; /* protocol address */ struct sockaddr arp_ha; /* hardware address */ int arp_flags;/* flags */ }; /* arp_flags field values */ #define ATF_COM 0x02/* completed entry (arp_ha valid) */ #define ATF_PERM 0x04 /* permanent entry */ #define ATF_PUBL 0x08 /* publish (respond for other host) */ #define ATF_USETRAILERS 0x10 /* send trailer packets to host */ The address family for the arp_pa sockaddr must be AF_INET; for the arp_ha sockaddr it must be AF_UNSPEC. The only flag bits which may be written are ATF_PERM, ATF_PUBL and ATF_USETRAILERS. ATF_PERM causes the entry to be permanent if the ioctl call succeeds. The peculiar na- ture of the ARP tables may cause the ioctl to fail if more than 8 (per- manent) Internet host addresses hash to the same slot. ATF_PUBL speci- fies that the ARP code should respond to ARP requests for the indicated host coming from other machines. This allows a host to act as an ``ARP server,'' which may be useful in convincing an ARP-only machine to talk to a non-ARP machine. ARP is also used to negotiate the use of trailer IP encapsulations; trailers are an alternate encapsulation used to allow efficient packet alignment for large packets despite variable-sized headers. Hosts which wish to receive trailer encapsulations so indicate by sending gratuitous ARP translation replies along with replies to IP requests; they are also sent in reply to IP translation replies. The negotiation is thus fully symmetrical, in that either or both hosts may request trailers. The ATF_USETRAILERS flag is used to record the receipt of such a reply, and enables the transmission of trailer packets to that host. ARP watches passively for hosts impersonating the local host (i.e. a host which responds to an ARP mapping request for the local host's ad- dress). DIAGNOSTICS duplicate IP address!! sent from ethernet address: %x:%x:%x:%x:%x:%x. ARP has discovered another host on the local network which responds to mapping requests for its own Internet address. SEE ALSO ec(4), de(4), il(4), inet(4F), arp(8C), ifconfig(8C) ``An Ethernet Address Resolution Protocol,'' RFC826, Dave Plummer, Net- work Information Center, SRI. ``Trailer Encapsulations,'' RFC893, S.J. Leffler and M.J. Karels, Net- work Information Center, SRI. BUGS ARP packets on the Ethernet use only 42 bytes of data; however, the smallest legal Ethernet packet is 60 bytes (not including CRC). Some systems may not enforce the minimum packet size, others will. 3rd Berkeley Distribution August 1, 1987 ARP(4P)
NAME | SYNOPSIS | DESCRIPTION | DIAGNOSTICS | SEE ALSO | BUGS
Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=arp&sektion=4p&manpath=2.10+BSD>