mirror of
https://github.com/ipxe/ipxe
synced 2025-12-27 18:12:36 +03:00
[retry] Added configurable timeouts to retry timer
New min_timeout and max_timeout fields in struct retry_timer allow users of this timer to set their own desired minimum and maximum timeouts, without being constrained to a single global minimum and maximum. Users of the timer can still elect to use the default global values by leaving the min_timeout and max_timeout fields as 0.
This commit is contained in:
committed by
Michael Brown
parent
5d4839b577
commit
ff2b6a512d
@@ -466,6 +466,10 @@ struct dhcphdr {
|
||||
/** Maximum time that we will wait for ProxyDHCP responses */
|
||||
#define PROXYDHCP_WAIT_TIME ( TICKS_PER_SEC * 1 )
|
||||
|
||||
/** Timeouts for sending DHCP packets */
|
||||
#define DHCP_MIN_TIMEOUT ( 1 * TICKS_PER_SEC )
|
||||
#define DHCP_MAX_TIMEOUT ( 10 * TICKS_PER_SEC )
|
||||
|
||||
/** Settings block name used for DHCP responses */
|
||||
#define DHCP_SETTINGS_NAME "dhcp"
|
||||
|
||||
|
||||
@@ -9,12 +9,28 @@
|
||||
|
||||
#include <gpxe/list.h>
|
||||
|
||||
/** Default timeout value */
|
||||
#define DEFAULT_MIN_TIMEOUT ( TICKS_PER_SEC / 4 )
|
||||
|
||||
/** Limit after which the timeout will be deemed permanent */
|
||||
#define DEFAULT_MAX_TIMEOUT ( 10 * TICKS_PER_SEC )
|
||||
|
||||
/** A retry timer */
|
||||
struct retry_timer {
|
||||
/** List of active timers */
|
||||
struct list_head list;
|
||||
/** Timeout value (in ticks) */
|
||||
unsigned long timeout;
|
||||
/** Minimum timeout value (in ticks)
|
||||
*
|
||||
* A value of zero means "use default timeout."
|
||||
*/
|
||||
unsigned long min_timeout;
|
||||
/** Maximum timeout value before failure (in ticks)
|
||||
*
|
||||
* A value of zero means "use default timeout."
|
||||
*/
|
||||
unsigned long max_timeout;
|
||||
/** Start time (in ticks)
|
||||
*
|
||||
* A start time of zero indicates a stopped timer.
|
||||
|
||||
Reference in New Issue
Block a user