From 4f96d04c9eb0c8385dcace3e00f29c705fc6fd0e Mon Sep 17 00:00:00 2001 From: xueyunfei Date: Tue, 21 Nov 2023 15:49:54 +0800 Subject: [PATCH] feat(lwip): add fall back dns config in menuconfig Closes https://github.com/espressif/esp-idf/issues/12530 --- components/lwip/Kconfig | 39 ++++++++++++++++++++++--- components/lwip/lwip | 2 +- components/lwip/port/include/lwipopts.h | 13 +++++++-- 3 files changed, 47 insertions(+), 7 deletions(-) diff --git a/components/lwip/Kconfig b/components/lwip/Kconfig index 3132fae6b6..0397c7679f 100644 --- a/components/lwip/Kconfig +++ b/components/lwip/Kconfig @@ -130,7 +130,8 @@ menu "LWIP" depends on LWIP_ND6 help This option is used to set the the router flag for the NA packets. - When enabled, the router flag in NA packet will always set to 1, otherwise, never set router flag for NA packets. + When enabled, the router flag in NA packet will always set to 1, + otherwise, never set router flag for NA packets. config LWIP_MAX_SOCKETS int "Max number of open sockets" @@ -717,11 +718,14 @@ menu "LWIP" cause Wi-Fi/Ethernet fail to release RX buffer in time. It is possible that all RX buffers for MAC layer are used by OOSEQ. - Control the number of out-of-order pbufs to ensure that the MAC layer has enough RX buffer to receive packets. + Control the number of out-of-order pbufs to ensure that the MAC layer has + enough RX buffer to receive packets. - In the Wi-Fi scenario, recommended OOSEQ PBUFS Range: 0 <= TCP_OOSEQ_MAX_PBUFS <= CONFIG_ESP_WIFI_DYNAMIC_RX_BUFFER_NUM/(MAX_TCP_NUMBER + 1) + In the Wi-Fi scenario, recommended OOSEQ PBUFS Range: + 0 <= TCP_OOSEQ_MAX_PBUFS <= CONFIG_ESP_WIFI_DYNAMIC_RX_BUFFER_NUM/(MAX_TCP_NUMBER + 1) - In the Ethernet scenario,recommended Ethernet OOSEQ PBUFS Range: 0 <= TCP_OOSEQ_MAX_PBUFS <= CONFIG_ETH_DMA_RX_BUFFER_NUM/(MAX_TCP_NUMBER + 1) + In the Ethernet scenario,recommended Ethernet OOSEQ PBUFS Range: + 0 <= TCP_OOSEQ_MAX_PBUFS <= CONFIG_ETH_DMA_RX_BUFFER_NUM/(MAX_TCP_NUMBER + 1) Within the recommended value range, the larger the value, the better the performance. @@ -1058,6 +1062,33 @@ menu "LWIP" endmenu # SNTP + menu "DNS" + + config LWIP_DNS_MAX_SERVERS + int "Maximum number of DNS servers" + default 3 + range 1 4 + help + Set maximum number of DNS servers. + If fallback DNS servers are supported, + the number of DNS servers needs to be greater than or equal to 3. + + config LWIP_FALLBACK_DNS_SERVER_SUPPORT + bool "Enable DNS fallback server support" + default n + depends on LWIP_DNS_MAX_SERVERS >= 3 + help + Enable this feature to support DNS fallback server. + + config LWIP_FALLBACK_DNS_SERVER_ADDRESS + string "DNS fallback server address" + default "114.114.114.114" + depends on LWIP_FALLBACK_DNS_SERVER_SUPPORT + help + This option allows you to config dns fallback server address. + + endmenu # DNS + config LWIP_BRIDGEIF_MAX_PORTS int "Maximum number of bridge ports" default 7 diff --git a/components/lwip/lwip b/components/lwip/lwip index f5c43549e5..f79221431f 160000 --- a/components/lwip/lwip +++ b/components/lwip/lwip @@ -1 +1 @@ -Subproject commit f5c43549e5d12ec2105a43c27986416124143e6e +Subproject commit f79221431fa9042b3572d271d687de66da7560c4 diff --git a/components/lwip/port/include/lwipopts.h b/components/lwip/port/include/lwipopts.h index c3687319ab..eb4035f647 100644 --- a/components/lwip/port/include/lwipopts.h +++ b/components/lwip/port/include/lwipopts.h @@ -3,7 +3,7 @@ * * SPDX-License-Identifier: BSD-3-Clause * - * SPDX-FileContributor: 2015-2023 Espressif Systems (Shanghai) CO LTD + * SPDX-FileContributor: 2015-2024 Espressif Systems (Shanghai) CO LTD */ #ifndef LWIP_HDR_ESP_LWIPOPTS_H #define LWIP_HDR_ESP_LWIPOPTS_H @@ -472,7 +472,7 @@ static inline uint32_t timeout_from_offered(uint32_t lease, uint32_t min) /** The maximum of DNS servers */ -#define DNS_MAX_SERVERS 3 +#define DNS_MAX_SERVERS CONFIG_LWIP_DNS_MAX_SERVERS /** ESP specific option only applicable if ESP_DNS=1 * @@ -481,6 +481,14 @@ static inline uint32_t timeout_from_offered(uint32_t lease, uint32_t min) */ #define DNS_FALLBACK_SERVER_INDEX (DNS_MAX_SERVERS - 1) +#ifdef CONFIG_LWIP_FALLBACK_DNS_SERVER_SUPPORT +#define FALLBACK_DNS_SERVER_ADDRESS(address) \ + do { ip_addr_t *server_dns = address; \ + char server_ip[] = CONFIG_LWIP_FALLBACK_DNS_SERVER_ADDRESS; \ + ipaddr_aton(server_ip, server_dns); \ + } while (0) +#endif /* CONFIG_LWIP_FALLBACK_DNS_SERVER_SUPPORT */ + /** * LWIP_DNS_SUPPORT_MDNS_QUERIES==1: Enable mDNS queries in hostname resolution. * This option is set via menuconfig. @@ -1576,6 +1584,7 @@ static inline uint32_t timeout_from_offered(uint32_t lease, uint32_t min) #define ESP_LWIP_LOCK 1 #define ESP_THREAD_PROTECTION 1 #define LWIP_SUPPORT_CUSTOM_PBUF 1 +#define ESP_LWIP_FALLBACK_DNS_PREFER_IPV4 0 /* -----------------------------------------