Merge branch 'optimization/lwip_dhcp_coarse_timer' into 'master'

lwip:optimization dhcp coarse timer

Closes WIFI-5235

See merge request espressif/esp-idf!21981
This commit is contained in:
Jiang Jiang Jian
2023-02-09 11:10:12 +08:00
2 changed files with 10 additions and 1 deletions

View File

@@ -272,6 +272,14 @@ menu "LWIP"
help help
Number of clients that may store data in client_data member array of struct netif. Number of clients that may store data in client_data member array of struct netif.
config LWIP_DHCP_COARSE_TIMER_SECS
int "DHCP coarse timer interval(s)"
default 1
range 1 10
help
Set DHCP coarse interval in seconds.
A higher value will be less precise but cost less power consumption.
menu "DHCP server" menu "DHCP server"
config LWIP_DHCPS config LWIP_DHCPS

View File

@@ -347,7 +347,7 @@ extern "C" {
#define ESP_DHCP_DISABLE_VENDOR_CLASS_IDENTIFIER CONFIG_LWIP_DHCP_DISABLE_VENDOR_CLASS_ID #define ESP_DHCP_DISABLE_VENDOR_CLASS_IDENTIFIER CONFIG_LWIP_DHCP_DISABLE_VENDOR_CLASS_ID
#define DHCP_DEFINE_CUSTOM_TIMEOUTS 1 #define DHCP_DEFINE_CUSTOM_TIMEOUTS 1
#define DHCP_COARSE_TIMER_SECS (1) #define DHCP_COARSE_TIMER_SECS CONFIG_LWIP_DHCP_COARSE_TIMER_SECS
#define DHCP_NEXT_TIMEOUT_THRESHOLD (3) #define DHCP_NEXT_TIMEOUT_THRESHOLD (3)
/* Since for embedded devices it's not that hard to miss a discover packet, so lower /* Since for embedded devices it's not that hard to miss a discover packet, so lower
* the discover retry backoff time from (2,4,8,16,32,60,60)s to (500m,1,2,4,8,15,15)s. * the discover retry backoff time from (2,4,8,16,32,60,60)s to (500m,1,2,4,8,15,15)s.
@@ -362,6 +362,7 @@ static inline uint32_t timeout_from_offered(uint32_t lease, uint32_t min)
if (timeout == 0) { if (timeout == 0) {
timeout = min; timeout = min;
} }
timeout = (timeout + DHCP_COARSE_TIMER_SECS - 1) / DHCP_COARSE_TIMER_SECS;
return timeout; return timeout;
} }