I've been working to get UDP unicast packets implemented on an embedded system, using a Wiznet W5100S internet offload chip.
Their libraries enable the negotiation of DHCP, and I have successfully leased a local IP address from the gateway I am connected to. When the function to send a UDP unicast packet is invoked, the chip will automatically issue an ARP request if it has no previous memory of doing this before. I would expect the gateway to response with it's MAC, but I get no response at all and the embedded system reports "Dest_Unreach".
You can see both the DHCP negotiation (packet 8-14) and failed ARP request (24) below:
I'm monitoring everything via wireshark, capture here: https://filebin.net/m4x2a2ujezk6hug8
Comparing the ARP request from my embedded system to that of my laptop, there is absolutely no difference in structure, aside from my embedded system has some trailing padding zeros. Comparison below:
I wondered if something in DHCP set me up to fail ARP, but there is little difference when comparing with my laptop's negotiation and the client IP, gateway IP, and subnet mask all seem correct.
I've tried two gateways in case that was the problem, but no difference.
I've been really struggling to figure this out, any help would be greatly appreciated!