I am facing the following situation:
A network application is calling arp_send
kernel system call in order to send an ARP request for resolving an IP address. An ARP reply is received and send to kernel via netif_rx but linux kernel does not place any arp entry inside its arp cache.
When echo 1 > /proc/sys/net/ipv4/conf/enps025/arp_accept
has been set, then kernel has considered ARP reply and updated its ARP cache.
My question is how can we reach to the same result by calling one or more system calls from user application? It seems that kernel does not trust unsolicited ARP replies. Is the only way to use icmp_send
and let the kernel do the rest of the job?