From aa21e87cd95022295494d7c91b605f5d086c5b45 Mon Sep 17 00:00:00 2001 From: xueyunfei Date: Tue, 21 Nov 2023 15:49:54 +0800 Subject: [PATCH 1/2] feat(lwip): add fall back dns config in menuconfig --- components/lwip/Kconfig | 36 ++++++++++++++++++++++--- components/lwip/lwip | 2 +- components/lwip/port/include/lwipopts.h | 13 +++++++-- 3 files changed, 45 insertions(+), 6 deletions(-) diff --git a/components/lwip/Kconfig b/components/lwip/Kconfig index 9152faf3172..a47bbe9ecd7 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" @@ -706,9 +707,11 @@ menu "LWIP" 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. @@ -1045,6 +1048,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 542ba2997f6..f79221431fa 160000 --- a/components/lwip/lwip +++ b/components/lwip/lwip @@ -1 +1 @@ -Subproject commit 542ba2997f6cc14fe9c3d781bf9b0d890cd70bb1 +Subproject commit f79221431fa9042b3572d271d687de66da7560c4 diff --git a/components/lwip/port/include/lwipopts.h b/components/lwip/port/include/lwipopts.h index dc20710a5b3..d48766667d9 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 /* ----------------------------------------- From 2d03df48b0cbee913256f1b4d5e7df1c05ddc203 Mon Sep 17 00:00:00 2001 From: Abhik Roy Date: Tue, 14 Nov 2023 22:38:48 +1100 Subject: [PATCH 2/2] fix(lwip): Fixed debug format, added ci test config Detailed description of the changes: - lwip_debug: Fixed string format error in ip6 and napt (espressif/esp-lwip@f5c43549) - dns: fix init with only ipv4 enabled (espressif/esp-lwip@5aab73d7) --- .../lwip/test_apps/sdkconfig.ci.lwip_debug | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 components/lwip/test_apps/sdkconfig.ci.lwip_debug diff --git a/components/lwip/test_apps/sdkconfig.ci.lwip_debug b/components/lwip/test_apps/sdkconfig.ci.lwip_debug new file mode 100644 index 00000000000..a351db0a709 --- /dev/null +++ b/components/lwip/test_apps/sdkconfig.ci.lwip_debug @@ -0,0 +1,25 @@ +# Included for build test with LWIP debug enabled. + +CONFIG_LWIP_IP_FORWARD=y +CONFIG_LWIP_IPV4_NAPT=y +CONFIG_LWIP_DEBUG=y +CONFIG_LWIP_DEBUG_ESP_LOG=y +CONFIG_LWIP_NETIF_DEBUG=y +CONFIG_LWIP_PBUF_DEBUG=y +CONFIG_LWIP_ETHARP_DEBUG=y +CONFIG_LWIP_API_LIB_DEBUG=y +CONFIG_LWIP_SOCKETS_DEBUG=y +CONFIG_LWIP_IP_DEBUG=y +CONFIG_LWIP_ICMP_DEBUG=y +CONFIG_LWIP_DHCP_STATE_DEBUG=y +CONFIG_LWIP_DHCP_DEBUG=y +CONFIG_LWIP_IP6_DEBUG=y +CONFIG_LWIP_ICMP6_DEBUG=y +CONFIG_LWIP_TCP_DEBUG=y +CONFIG_LWIP_UDP_DEBUG=y +CONFIG_LWIP_SNTP_DEBUG=y +CONFIG_LWIP_DNS_DEBUG=y +CONFIG_LWIP_NAPT_DEBUG=y +CONFIG_LWIP_BRIDGEIF_DEBUG=y +CONFIG_LWIP_BRIDGEIF_FDB_DEBUG=y +CONFIG_LWIP_BRIDGEIF_FW_DEBUG=y