Prevented a race condition between a new ARP request and the ARP timer.

Timeouts stay the same (halved the ARP timer, doubled the counts), but
ETHARP_MAX_PENDING should be at least 2 to prevent it from reaching 0 right away,
giving too little time for any ARP responses to be noted.
This commit is contained in:
likewise 2004-11-28 18:00:20 +00:00
parent a5cd3fcafd
commit ed59dc1ada
2 changed files with 13 additions and 5 deletions

View File

@ -107,7 +107,8 @@ PACK_STRUCT_END
# include "arch/epstruct.h"
#endif
#define ARP_TMR_INTERVAL 10000
/** 5 seconds period */
#define ARP_TMR_INTERVAL 5000
#define ETHTYPE_ARP 0x0806
#define ETHTYPE_IP 0x0800

View File

@ -55,10 +55,17 @@
# include "lwip/dhcp.h"
#endif
/** the time an ARP entry stays valid after its last update, (120 * 10) seconds = 20 minutes. */
#define ARP_MAXAGE 120
/** the time an ARP entry stays pending after first request, (1 * 10) seconds = 10 seconds. */
#define ARP_MAXPENDING 1
/** the time an ARP entry stays valid after its last update,
* (240 * 5) seconds = 20 minutes.
*/
#define ARP_MAXAGE 240
/** the time an ARP entry stays pending after first request,
* (2 * 5) seconds = 10 seconds.
*
* @internal Keep this number at least 2, otherwise it might
* run out instantly if the timeout occurs directly after a request.
*/
#define ARP_MAXPENDING 2
#define HWTYPE_ETHERNET 1