reduce the DHCP Request timeout

This commit is contained in:
zhangyanjiao
2022-11-03 12:00:18 +08:00
parent c3e9aa1cef
commit 33912690ea
2 changed files with 6 additions and 4 deletions
+3 -3
View File
@@ -132,7 +132,7 @@ static inline u32_t timeout_from_offered(u32_t lease, u32_t min, u32_t max)
#define DHCP_CALC_TIMEOUT_FROM_OFFERED_T2_REBIND(dhcp) timeout_from_offered((dhcp)->offered_t2_rebind, 0, 0xffff) #define DHCP_CALC_TIMEOUT_FROM_OFFERED_T2_REBIND(dhcp) timeout_from_offered((dhcp)->offered_t2_rebind, 0, 0xffff)
#define DHCP_NEXT_TIMEOUT_THRESHOLD ((60 + DHCP_COARSE_TIMER_SECS / 2) / DHCP_COARSE_TIMER_SECS) #define DHCP_NEXT_TIMEOUT_THRESHOLD ((60 + DHCP_COARSE_TIMER_SECS / 2) / DHCP_COARSE_TIMER_SECS)
#define DHCP_REQUEST_TIMEOUT_SEQUENCE(tries) (u16_t)(( (tries) < 6 ? 1 << (tries) : 60) * 1000) #define DHCP_REQUEST_TIMEOUT_SEQUENCE(state, tries) (u16_t)(( (tries) < 6 ? 1 << (tries) : 60) * 1000)
#endif /* DHCP_DEFINE_CUSTOM_TIMEOUTS */ #endif /* DHCP_DEFINE_CUSTOM_TIMEOUTS */
@@ -478,7 +478,7 @@ dhcp_select(struct netif *netif)
if (dhcp->tries < 255) { if (dhcp->tries < 255) {
dhcp->tries++; dhcp->tries++;
} }
msecs = (u16_t)((dhcp->tries < 6 ? 1 << dhcp->tries : 60) * 1000); msecs = DHCP_REQUEST_TIMEOUT_SEQUENCE(DHCP_STATE_REQUESTING, dhcp->tries);
dhcp->request_timeout = (u16_t)((msecs + DHCP_FINE_TIMER_MSECS - 1) / DHCP_FINE_TIMER_MSECS); dhcp->request_timeout = (u16_t)((msecs + DHCP_FINE_TIMER_MSECS - 1) / DHCP_FINE_TIMER_MSECS);
LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_STATE, ("dhcp_select(): set request timeout %"U16_F" msecs\n", msecs)); LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_STATE, ("dhcp_select(): set request timeout %"U16_F" msecs\n", msecs));
ESP_LWIP_DHCP_FINE_TIMER_START_ONCE(); ESP_LWIP_DHCP_FINE_TIMER_START_ONCE();
@@ -1131,7 +1131,7 @@ dhcp_discover(struct netif *netif)
autoip_start(netif); autoip_start(netif);
} }
#endif /* LWIP_DHCP_AUTOIP_COOP */ #endif /* LWIP_DHCP_AUTOIP_COOP */
msecs = DHCP_REQUEST_TIMEOUT_SEQUENCE(dhcp->tries); msecs = DHCP_REQUEST_TIMEOUT_SEQUENCE(DHCP_STATE_SELECTING, dhcp->tries);
dhcp->request_timeout = (u16_t)((msecs + DHCP_FINE_TIMER_MSECS - 1) / DHCP_FINE_TIMER_MSECS); dhcp->request_timeout = (u16_t)((msecs + DHCP_FINE_TIMER_MSECS - 1) / DHCP_FINE_TIMER_MSECS);
LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("dhcp_discover(): set request timeout %"U16_F" msecs\n", msecs)); LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("dhcp_discover(): set request timeout %"U16_F" msecs\n", msecs));
ESP_LWIP_DHCP_FINE_TIMER_START_ONCE(); ESP_LWIP_DHCP_FINE_TIMER_START_ONCE();
+3 -1
View File
@@ -102,7 +102,9 @@
#define DHCP_DEFINE_CUSTOM_TIMEOUTS 1 #define DHCP_DEFINE_CUSTOM_TIMEOUTS 1
#define DHCP_COARSE_TIMER_SECS (1) #define DHCP_COARSE_TIMER_SECS (1)
#define DHCP_NEXT_TIMEOUT_THRESHOLD (3) #define DHCP_NEXT_TIMEOUT_THRESHOLD (3)
#define DHCP_REQUEST_TIMEOUT_SEQUENCE(tries) (( (tries) < 6 ? 1 << (tries) : 60) * 250) #define DHCP_REQUEST_TIMEOUT_SEQUENCE(state, tries) (state == DHCP_STATE_REQUESTING ? \
(uint16_t)(1 * 1000) : \
(uint16_t)(((tries) < 6 ? 1 << (tries) : 60) * 250))
#include <stdint.h> #include <stdint.h>
static inline uint32_t timeout_from_offered(uint32_t lease, uint32_t min) static inline uint32_t timeout_from_offered(uint32_t lease, uint32_t min)