From b1ee72bdbe50bf5695e77bb7e4a518dd5d7f44ca Mon Sep 17 00:00:00 2001 From: Dong Heng Date: Wed, 15 Aug 2018 16:24:42 +0800 Subject: [PATCH] feat(lwip): Disable IPv6 default --- components/esp8266/include/esp_event.h | 2 ++ components/esp8266/source/event_default_handlers.c | 2 ++ components/lwip/Kconfig | 2 +- components/tcpip_adapter/include/tcpip_adapter.h | 11 +++++++++++ components/tcpip_adapter/tcpip_adapter_lwip.c | 12 +++++++----- 5 files changed, 23 insertions(+), 6 deletions(-) diff --git a/components/esp8266/include/esp_event.h b/components/esp8266/include/esp_event.h index e31da16a..0a792bc2 100644 --- a/components/esp8266/include/esp_event.h +++ b/components/esp8266/include/esp_event.h @@ -27,6 +27,8 @@ extern "C" { #endif +#define ESP_EVENT_IPV6 LWIP_IPV6 + typedef enum { SYSTEM_EVENT_WIFI_READY = 0, /**< ESP8266 WiFi ready */ SYSTEM_EVENT_SCAN_DONE, /**< ESP8266 finish scanning AP */ diff --git a/components/esp8266/source/event_default_handlers.c b/components/esp8266/source/event_default_handlers.c index a44fdeeb..a3ef8732 100644 --- a/components/esp8266/source/event_default_handlers.c +++ b/components/esp8266/source/event_default_handlers.c @@ -262,6 +262,7 @@ static esp_err_t esp_system_event_debug(system_event_t *event) MAC2STR(ap_probereqrecved->mac)); break; } +#if ESP_EVENT_IPV6 case SYSTEM_EVENT_GOT_IP6: { ip6_addr_t *addr = &event->event_info.got_ip6.ip6_info.ip; ESP_LOGD(TAG, "SYSTEM_EVENT_AP_STA_GOT_IP6 address %04x:%04x:%04x:%04x:%04x:%04x:%04x:%04x", @@ -275,6 +276,7 @@ static esp_err_t esp_system_event_debug(system_event_t *event) IP6_ADDR_BLOCK8(addr)); break; } +#endif default: { ESP_LOGW(TAG, "unexpected system event %d!", event->event_id); diff --git a/components/lwip/Kconfig b/components/lwip/Kconfig index 29903041..4f7606df 100644 --- a/components/lwip/Kconfig +++ b/components/lwip/Kconfig @@ -444,7 +444,7 @@ endmenu # LWIP RAW API menuconfig LWIP_IPV6 bool "Enable IPv6" - default y + default n config LWIP_IPV6_NUM_ADDRESSES int "Number of IPv6 addresses per netif" diff --git a/components/tcpip_adapter/include/tcpip_adapter.h b/components/tcpip_adapter/include/tcpip_adapter.h index 1d48b322..f6166e3e 100644 --- a/components/tcpip_adapter/include/tcpip_adapter.h +++ b/components/tcpip_adapter/include/tcpip_adapter.h @@ -40,6 +40,7 @@ #define CONFIG_TCPIP_LWIP 1 #define CONFIG_DHCP_STA_LIST 1 +#define TCPIP_ADAPTER_IPV6 LWIP_IPV6 #if CONFIG_TCPIP_LWIP #include "lwip/ip_addr.h" @@ -73,9 +74,17 @@ typedef struct { ip4_addr_t gw; } tcpip_adapter_ip_info_t; +#if TCPIP_ADAPTER_IPV6 typedef struct { ip6_addr_t ip; } tcpip_adapter_ip6_info_t; +#else +typedef struct { + struct { + uint32_t addr[4]; + } ip; +} tcpip_adapter_ip6_info_t; +#endif typedef dhcps_lease_t tcpip_adapter_dhcps_lease_t; @@ -349,6 +358,7 @@ esp_err_t tcpip_adapter_set_old_ip_info(tcpip_adapter_if_t tcpip_if, tcpip_adapt */ esp_err_t tcpip_adapter_create_ip6_linklocal(tcpip_adapter_if_t tcpip_if); +#if TCPIP_ADAPTER_IPV6 /** * @brief get interface's linkloacl IPv6 information * @@ -362,6 +372,7 @@ esp_err_t tcpip_adapter_create_ip6_linklocal(tcpip_adapter_if_t tcpip_if); * ESP_ERR_TCPIP_ADAPTER_INVALID_PARAMS */ esp_err_t tcpip_adapter_get_ip6_linklocal(tcpip_adapter_if_t tcpip_if, ip6_addr_t *if_ip6); +#endif #if 0 esp_err_t tcpip_adapter_get_mac(tcpip_adapter_if_t tcpip_if, uint8_t *mac); diff --git a/components/tcpip_adapter/tcpip_adapter_lwip.c b/components/tcpip_adapter/tcpip_adapter_lwip.c index a29ba990..2352af40 100644 --- a/components/tcpip_adapter/tcpip_adapter_lwip.c +++ b/components/tcpip_adapter/tcpip_adapter_lwip.c @@ -596,6 +596,7 @@ static void tcpip_adapter_nd6_cb(struct netif *p_netif, uint8_t ip_idex) } #endif +#if TCPIP_ADAPTER_IPV6 esp_err_t tcpip_adapter_create_ip6_linklocal(tcpip_adapter_if_t tcpip_if) { struct netif *p_netif; @@ -632,6 +633,7 @@ esp_err_t tcpip_adapter_get_ip6_linklocal(tcpip_adapter_if_t tcpip_if, ip6_addr_ } return ESP_OK; } +#endif esp_err_t tcpip_adapter_dhcps_option(tcpip_adapter_option_mode_t opt_op, tcpip_adapter_option_id_t opt_id, void *opt_val, uint32_t opt_len) { @@ -766,14 +768,14 @@ esp_err_t tcpip_adapter_set_dns_info(tcpip_adapter_if_t tcpip_if, tcpip_adapter_ ESP_LOGD(TAG, "set dns invalid type=%d", type); return ESP_ERR_TCPIP_ADAPTER_INVALID_PARAMS; } - - if (ip4_addr_isany_val(dns->ip.u_addr.ip4)) { + + if (ip4_addr_isany_val(*ip_2_ip4(&(dns->ip)))) { ESP_LOGD(TAG, "set dns invalid dns"); return ESP_ERR_TCPIP_ADAPTER_INVALID_PARAMS; } - ESP_LOGD(TAG, "set dns if=%d type=%d dns=%x", tcpip_if, type, dns->ip.u_addr.ip4.addr); - dns->ip.type = IPADDR_TYPE_V4; + ESP_LOGD(TAG, "set dns if=%d type=%d dns=%x", tcpip_if, type, ip_2_ip4(&(dns->ip))->addr); + IP_SET_TYPE_VAL(dns->ip, IPADDR_TYPE_V4) if (tcpip_if == TCPIP_ADAPTER_IF_STA || tcpip_if == TCPIP_ADAPTER_IF_ETH) { dns_setserver(type, &(dns->ip)); @@ -812,7 +814,7 @@ esp_err_t tcpip_adapter_get_dns_info(tcpip_adapter_if_t tcpip_if, tcpip_adapter_ ns = dns_getserver(type); dns->ip = *ns; } else { - dns->ip.u_addr.ip4 = dhcps_dns_getserver(); + *ip_2_ip4(&(dns->ip)) = dhcps_dns_getserver(); } return ESP_OK;