WIZnet Developer Forum

Why doesn't W5100 see Announce ARP?

Hi, dear Wiznet.
I use W5100. One is a client, another is a server. Both operate in UDP mode.
After power up the client sends udp-datagram. Before itself datagram I see ARP-request from the client, then ARP-reply from the server, and then the UDP-datagram. It’s OK.
Then the client sends another datagram: now there is no ARP-exchange between the client and the server because the client has already formed an entry in its ARP-cache and knows the server’s MAC. It’s OK too.
Now let’s suppose that the server changes its MAC (for example, the server’s NIC was replaced). After power up the server sends so-called Annoucse ARP-request where Source MAC = Sender HW Address = new MAC, Sender Protocol Address = Target Protocol Address = server’s IP address, Target HW Address = 00.00.00.00.00.00. I hoped that the client received this ARP-request would update its ARP-cache with the new server’s MAC. But when the client now sends a next UDP-datagram to the server I see the OLD MAC in the Ethernet header! Why? Why hasn’t the client update its ARP-cache? What sould be done in order the client can understand the Announce ARP?
Thank you.

If you need to handle these situation and you already proven that update of ARP cache does not work, I recommend before sending UDP packet closing and reopening the socket, so that chip (hopefully) sends another ARP request to resolve current MAC address of the remote device. Test it please and share your results.

Copyright © 2017 WIZnet Co., Ltd. All Rights Reserved.