Hello. Current version does not handle udp broadcasts, which are sometimes required. Broadcast tx (ip=255.255.255.255) is not accepted because it is forwarded to arp.vhd and will never get a response. Broadcast rx is never accepted because it compares dst ip with our ip, and our ip is not 255.255.255.255.
Arp seems will hang if reply is not received (no timeout). Not really acceptable in my opinion.
Application case is gigE vision cameras (purely UDP+ARP). For example, they are discovered by udp broadcasting (ip=255.255.255.255 and mac=FF:FF:FF:FF:FF:FF), and some commands like forcing IP are done via udp broadcast as well.
Agreed. Will add these features.
Has anyone got ideas on the following regarding ARP timeout:
Constant defined is probably enough, since they are not normally required to change dynamically.
On timeout, you can simply report error right away. A more sophisticated solution would be to retransmit n (default 2) more times and only then report error, but this is not essential.
ARP table expiration would also be a good thing (either timeout or forced, or both).
Released v1.2 to support IP broadcast address. ARP timeout still to come.
fixed in V1.3 ARP timeout controlled by generic parameters. "control" input added to allow clearing of ARP cache.
I could not get it implemented on ML605. I used your xv6mac_straight.vhd module. With Xilinx EMAC ver 2.2, I found ports are not matching. Any idea, what am I missing? Also, last entry in the ucf file "8mac_bloack/gtx_clk_bufg" error out. So, I commented out that line. Is it okay? Any help from you is greatly appreciated. Thank you.