lwip-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[lwip-devel] ARP code question


From: Bill Auerbach
Subject: [lwip-devel] ARP code question
Date: Fri, 10 Sep 2021 12:49:51 +0000

Hello,

 

I’m trying to figure out how to get lwIP to not do ARP requests to the PC on an open connection where there are packets constantly being sent to and from lwIP and the PC.

 

The protocol for this product is every 5mS a packet is sent to the PC - to do real-time control.  I warned the PC code developers (3rd party) that you can’t rely on this with TCP/IP.  It turns out that it actually works very well.  There is much less bobble than I expected.  Good enough for their application.

 

But while they are running, after about 25 hours, there is an ARP “who is” request from lwIP to the PC. This affects the timing, which you might expect, but it also leads to a 200-300mS stall in wire shark for this stream of data.  They can handle some bobble but they do throw an error and shutdown with the 200mS error.  This may relate to the stalls I was seeing some months ago which I never definitely got to the bottom of.

 

It feels like a timer wrap problem.  I’ve been studying the code and I am trying to figure when or how it goes to the ETHARP_STATE_STABLE_REREQUESTING_1 or ETHARP_STATE_STABLE_REREQUESTING_2 state which I believe it what starts off the ARP request.

 

I was going to submit this as a bug, because I think an open connection constantly sending and receiving should not need ARP at all.  I don’t see in the RFC whether this behavior is allowed or not allowed.  There is a hint about ARP not using a lot of bandwidth.  And I see “gratuitous” ARPs mentioned as well. It seems that the spirit of the protocol is that it is used to resolve the physical address.  With an opening connection the physical address is known and cannot change.

 

Thoughts?

 

Thank you all,

Bill


reply via email to

[Prev in Thread] Current Thread [Next in Thread]