Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
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>

home | help