Home / RL-ARM User's Guide (MDK v4)
When ARP Cache Empty
The Address Resolution Protocol (ARP) module caches all received
IP addresses to an internal cache buffer, which stores the IP
addresses and Ethernet addresses (MAC).
When the application starts, the ARP Cache buffer is normally
empty. The ARP module does not yet know the target MAC address for
the first UDP data packet being sent from the application. It sends
the ARP request to the network. The first and any subsequent UDP data
packets sent from the user application are lost until the
target MAC address is resolved. This is because the UDP does not
buffer outgoing packets.
An ARP request must be sent to the network and the MAC address for
the target IP address must be resolved before the first UDP data
packet is sent to the network. This is only required if no packets
were received from a destination IP. Every received IP or ARP packet
is also processed by the ARP module, and the IP and MAC addresses are
cached internally.
All cached IP addresses are by default temporary IP cache
entries. After a timeout, which is set in the Ethernet Network Interface - ARP
Definitions, such entries are automatically deleted from the
cache. You can use the function arp_cache_ip() to force an ARP
request. You can also use the function to change the cache entry
attribute to a fixed IP address rather than a temporary IP
address.
Fixed IP entries are automatically refreshed by the ARP module on
timeout. When timeout expires, the ARP module sends an ARP request to
the target again to verify whether the target is still active and
able to accept packets.
Once the function arp_cache_ip() returns the value of
__TRUE, the remote IP address is resolved and cached in the
ARP cache buffer. If the Cache Entry attribute is set to
ARP_FIXED_IP, there is no need to take care of resolving the
IP address when a timeout expires. The ARP module does this
automatically.