Problem with ARP source address #stm32 #ethernet


tobias.roehmel@...
 

Hi,

I am using an STM32F4 board with an ENC28J60 (Ethernet over SPI chip) and am trying to get the net/sockets/http_get sample to work. To make it easier I use a static IP of google instead of DNS. The Problem I am seeing, by using Wireshark, is that the first Ethernet packet is lost somewhere on the ENC28J60. I know that the driver received the packet but it never arrives on the other side of the ethernet cable. The network stack tries to resend the packet but now the Sender protocol address is set to all 0s (This happens in the function arp_prepare in arp.c). The ARP request is answered but sent with Target protocol address 0.0.0.0 and Zephyr seems to refuse to reply to IPs other than their own. I found 2 solutions to this, first adding a delay before accessing the socket, second changing the code in arp.c to not fill in 0s.
Am I doing something wrong? Is there a configuration I could change instead? Is this the intended behavior?

Kind regards,
Tobias Röhmel

Join users@lists.zephyrproject.org to automatically receive all group messages.