Selaa lähdekoodia

lwip:optimization dhcp coarse timer

xueyunfei 3 vuotta sitten
vanhempi
sitoutus
2f6b681b1a
2 muutettua tiedostoa jossa 10 lisäystä ja 1 poistoa
  1. 8 0
      components/lwip/Kconfig
  2. 2 1
      components/lwip/port/include/lwipopts.h

+ 8 - 0
components/lwip/Kconfig

@@ -272,6 +272,14 @@ menu "LWIP"
         help
             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"
 
         config LWIP_DHCPS

+ 2 - 1
components/lwip/port/include/lwipopts.h

@@ -347,7 +347,7 @@ extern "C" {
 #define ESP_DHCP_DISABLE_VENDOR_CLASS_IDENTIFIER       CONFIG_LWIP_DHCP_DISABLE_VENDOR_CLASS_ID
 
 #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)
 /* 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.
@@ -362,6 +362,7 @@ static inline uint32_t timeout_from_offered(uint32_t lease, uint32_t min)
     if (timeout == 0) {
         timeout = min;
     }
+    timeout = (timeout + DHCP_COARSE_TIMER_SECS - 1) / DHCP_COARSE_TIMER_SECS;
     return timeout;
 }