[arp] Try to avoid discarding ARP cache entries

Discarding the active ARP cache entry in the middle of a download will
substantially disrupt the TCP stream.  Try to minimise any such
disruption by treating ARP cache entries as expensive, and discarding
them only when nothing else is available to discard.

Signed-off-by: Michael Brown <mcb30@ipxe.org>
This commit is contained in:
Michael Brown
2012-07-09 09:55:26 +01:00
parent 8d95e1d6ff
commit 024247317d
4 changed files with 21 additions and 5 deletions

View File

@@ -76,6 +76,17 @@ struct cache_discarder {
#define CACHE_DISCARDERS __table ( struct cache_discarder, "cache_discarders" )
/** Declare a cache discarder */
#define __cache_discarder __table_entry ( CACHE_DISCARDERS, 01 )
#define __cache_discarder( cost ) __table_entry ( CACHE_DISCARDERS, cost )
/** @defgroup cache_cost Cache discarder costs
*
* @{
*/
#define CACHE_CHEAP 01 /**< Items with a low replacement cost */
#define CACHE_NORMAL 02 /**< Items with a normal replacement cost */
#define CACHE_EXPENSIVE 03 /**< Items with a high replacement cost */
/** @} */
#endif /* _IPXE_MALLOC_H */