Global IPV6 support enable in esp-idf 5.4.1
Posted: Thu Apr 02, 2026 4:42 am
Hello,
I have been testing the ESP-IDF IPv6 example for Ethernet. I have configured the project to prefer a **global IPv6 address** (`CONFIG_EXAMPLE_CONNECT_IPV6_PREF_GLOBAL=y`). However, I am still receiving only a **link-local IPv6 address**.
Below are my logs:
```
I (180) main_task: Started on CPU0
I (220) main_task: Calling a...
I (2260) ethernet_connect: Ethernet Link Up
I (3260) esp_netif_handlers: example_netif_eth ip: 10.20.0.197, mask: 255.255.254.0, gw: 10.20.1.254
I (3270) ethernet_connect: Got IPv4 event: Interface "example_netif_eth" address: 10.20.0.197
I (4230) ethernet_connect: Got IPv6 event: Interface "example_netif_eth" address: fe80:0000:0000:0000:9aa3
fec0:3573, type: ESP_IP6_ADDR_IS_LINK_LOCAL
```
And here is the relevant part of my `sdkconfig`:
```
CONFIG_EXAMPLE_CONNECT_ETHERNET=y
CONFIG_EXAMPLE_USE_W5500=y
CONFIG_EXAMPLE_CONNECT_IPV6=y
CONFIG_EXAMPLE_CONNECT_IPV6_PREF_GLOBAL=y
```
Despite selecting the preferred IPv6 type as global, the device only acquires a link-local address (`fe80::/10`).
Could you please help clarify:
* Why a global IPv6 address is not being assigned?
* Are there additional network or configuration requirements to obtain a global IPv6 address over Ethernet?
Thanks in advance.
I have been testing the ESP-IDF IPv6 example for Ethernet. I have configured the project to prefer a **global IPv6 address** (`CONFIG_EXAMPLE_CONNECT_IPV6_PREF_GLOBAL=y`). However, I am still receiving only a **link-local IPv6 address**.
Below are my logs:
```
I (180) main_task: Started on CPU0
I (220) main_task: Calling a...
I (2260) ethernet_connect: Ethernet Link Up
I (3260) esp_netif_handlers: example_netif_eth ip: 10.20.0.197, mask: 255.255.254.0, gw: 10.20.1.254
I (3270) ethernet_connect: Got IPv4 event: Interface "example_netif_eth" address: 10.20.0.197
I (4230) ethernet_connect: Got IPv6 event: Interface "example_netif_eth" address: fe80:0000:0000:0000:9aa3
```
And here is the relevant part of my `sdkconfig`:
```
CONFIG_EXAMPLE_CONNECT_ETHERNET=y
CONFIG_EXAMPLE_USE_W5500=y
CONFIG_EXAMPLE_CONNECT_IPV6=y
CONFIG_EXAMPLE_CONNECT_IPV6_PREF_GLOBAL=y
```
Despite selecting the preferred IPv6 type as global, the device only acquires a link-local address (`fe80::/10`).
Could you please help clarify:
* Why a global IPv6 address is not being assigned?
* Are there additional network or configuration requirements to obtain a global IPv6 address over Ethernet?
Thanks in advance.