Keil Logo

Technical Support

On-Line Manuals

RL-ARM User's Guide (MDK v4)

RL-RTX RL-FlashFS RL-TCPnet TCP Socket Opening TCP Connection TCP Active Open TCP Passive Open Sending TCP Data Example for Sending Data Multiple TCP Connections UDP Socket Opening UDP Connection Sending UDP Data When DHCP Enabled When ARP Cache Empty Example for Sending Data IP Multicasting Multiple UDP Connections Configuring RL-TCPnet Static Configuration System Definitions Ethernet Network Interface PPP Network Interface SLIP Network Interface UDP Socket TCP Socket BSD Socket HTTP Server Telnet Server TFTP Server TFTP Client FTP Server FTP Client DNS Client SMTP Client SNMP Agent SNTP Client Error Function Runtime Configuration Library Files Using RL-TCPnet Stand Alone With RTX Kernel Event Driven Operation IP Address Assignment Ethernet Interface PPP Interface SLIP Interface Localhost Applications HTTP Server Script Language CGI Functions Ajax Support Using XML XML Example How it works SOAP Support SOAP Interface Large POST Messages Web Pages Default Page Error Pages Web on SD Card Web Update File System Interface Http Caching How it works Internal Web External Web Multi-user Authentication Using RAM File System FCARM File Converter PRINT Directive NOPRINT Directive PAGEWIDTH Directive PAGELENGTH Directive ROOT Directive Telnet Server Command Line Interface Multi-user Authentication Sending Reply Message Short Reply Long Reply Continuous Screen Update TFTP Server File System Interface TFTP Client File System Interface FTP Server File System Interface Multi-user Authentication Supported Commands FTP Client File System Interface SMTP Client SNMP Agent MIB Database MIB Interface MIB Entry MIB Table DNS Resolver Starting DNS Device Drivers Ethernet Driver Interrupt Mode Modem Driver Serial Driver Using Serial Link Cable Connection Modem Connection Windows Dial-up Add Direct Serial Link New Dial-up Connection Configure PPP Dial-up Configure SLIP Dial-up Debugging Enabling Debug Debug Level Redirecting Output Function Overview BSD Routines CGI Routines Ethernet Routines FTP Routines HTTP Routines IGMP Routines Miscellaneous Routines Modem Routines PPP Routines Serial Routines SLIP Routines SMTP Routines SNMP Routines System Functions TCP Routines Telnet Routines TFTP Routines UDP Routines RL-CAN RL-USB Example Programs Library Reference Appendix

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.

  Arm logo
Important information

This site uses cookies to store information on your computer. By continuing to use our site, you consent to our cookies.

Change Settings

Privacy Policy Update

Arm’s Privacy Policy has been updated. By continuing to use our site, you consent to Arm’s Privacy Policy. Please review our Privacy Policy to learn more about our collection, use and transfers
of your data.