[comp.protocols.tcp-ip] Timeout mechanism to invalidate ARP cache entries

echan@cadev6.intel.com (Eldon Chan ~ ) (02/23/91)

On page 23 of RFC1122 (Requirements for Internet Hosts--Communication
Layers) under the DISCUSSION paragraph said this:

   " The ARP specification [LINK:2} suggests but "DOES NOT" require a
timeout mechanism to invalidate cache entries when hosts change their
Ethernet addresses "

Would someone tell me what are implemented and how it is done on SunOS,
Ultrix and other UNIX machines ?

The RFC mentioned four mechanisms-- timeout, unicast poll, link-layer
advise and high-layer advice. So, which OS is using which mechanisms ?

Thanks in advance for your input.

Eldon Chan
Design Technology
Intel Corporation
echan@scdt.intel.com

VOLZ@process.com (Bernard E. Volz) (02/24/91)

In <2669@inews.intel.com> echan@cadev6.intel.com writes:

> On page 23 of RFC1122 (Requirements for Internet Hosts--Communication
> Layers) under the DISCUSSION paragraph said this:
> 
>    " The ARP specification [LINK:2} suggests but "DOES NOT" require a
> timeout mechanism to invalidate cache entries when hosts change their
> Ethernet addresses "
> 
> Would someone tell me what are implemented and how it is done on SunOS,
> Ultrix and other UNIX machines ?
> 
> The RFC mentioned four mechanisms-- timeout, unicast poll, link-layer
> advise and high-layer advice. So, which OS is using which mechanisms ?
> 
> Thanks in advance for your input.
> 
> Eldon Chan
> Design Technology
> Intel Corporation
> echan@scdt.intel.com

For Process Software Corporation's TCPware for VMS we flush an ARP cache
entry if we haven't RECEIVED a packet from the <Internet-Address>,<Ethernet-
Physical-Address> pair within a reasonable time period (typically 10 minutes).

vjs@rhyolite.wpd.sgi.com (Vernon Schryver) (02/24/91)

In article <2669@inews.intel.com>, echan@cadev6.intel.com (Eldon Chan ~ ) writes:
> Would someone tell me what [ARP cache timeout mechanisms] are implemented
>	and how it is done on SunOS,
> Ultrix and other UNIX machines ?

The most reliable way to answer such a question is to check the source,
when possible.  That way you don't rely on hearsay and rumor.

I suspect 4.* BSD was influential in most versions of SunOs and Ultrix.
(Take that statement as hearsay or rumor).  The 4.3BSD-network-release code
is in arptimer() in .../netinet/if_ether.c in your favorite public source
repository, such as UUNET.  An official tape of the 4.3BSD network source
is cheap, and is required reading for any serious student of TCP/IP.

If you want a rumor of how 4.3BSD does it, mine is that it uses simple
timers which delete completed entries 20 minutes after creation.

Vernon Schryver,    vjs@sgi.com