I'm trying to get an old display device to boot from a Linux server.
At the start of the boot process, the device sends an ARP request to get the Linux server's MAC address. The Linux server replies and also stores the IP and MAC address of the requesting device into its ARP table.
I had to change the value of delay_first_probe_time in /proc/sys/net/ipv4/neigh/*/* to a value much greater than 5 for the following reason:
After 5 seconds (value stored in delay_first_probe_time) of having received the initial ARP request, the Linux server wants to verify that the ARP entry it has in its ARP table is still valid, so it sends out an ARP request to the device. The problem I was having is that this device is too old, so it wasn't responding at all to the ARP requests from the Linux box. So, after a while, the boot process would fail because the Linux server would decide the ARP entry was no longer valid, so would stop sending data.
If I change the value of delay_first_probe_time to something like 500, it boots without a problem.
However, during execution of my process, there will still be communication between the old device and my Linux server, and I'm afraid that after 500 seconds the Linux box will send an ARP request again, and then the device won't answer and my program execution will fail.
My question:
Is there a way of disabling the ARP probe, so that if the Linux box receives an ARP request, it stores the IP and MAC address of the requesting device into its ARP table and *doesn't * do a probe after delay_first_probe_time seconds?
I tried setting delay_first_probe_time to 0 and to -1, but that doesn't seem to work.
Any help would be greatly appreciated!