OpenCores

1G eth UDP / IP Stack

Issue List
ARP timeout and UDP broadcast #2
Closed apalopohapa opened this issue over 12 years ago
apalopohapa commented over 12 years ago

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.

pjf commented over 12 years ago

Agreed. Will add these features.

pjf commented over 12 years ago

Has anyone got ideas on the following regarding ARP timeout:

  • constant defined in VHDL or programmable?
  • if programmable, defined as input port or settable via a register?
  • on timeout, report error, or automatic retransmit of ARP REQ?
pjf was assigned over 12 years ago
apalopohapa commented over 12 years ago

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).

pjf commented over 12 years ago

Released v1.2 to support IP broadcast address. ARP timeout still to come.

pjf commented over 12 years ago

fixed in V1.3 ARP timeout controlled by generic parameters. "control" input added to allow clearing of ARP cache.

pjf closed this over 12 years ago
soumakm commented about 12 years ago

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.


Assignee
pjf
Labels
Request