Hi, all.
My experiment is to test lwip 2.1.2 IPv6 address auto-configuration with
two different routers.
And check whether IPv6 address auto-configuration is successful.
Unfortunately, the test failed.
My test board is running lwip2.1.2 and there are 3 IPv6 address for the
Ethernet netif.
Slot 0 is link local, slot 1 is for global address, slot 2 is for
auto-configured address.
My test board can setup auto-configuration IPv6 address with the Router
1 with valid time of 604800 seconds(7 days).
The following address is the auto-configured address 1 with valid time
of 604054.
/FC00::D51:200:DFF:FE41:1, 604054/
When I unplug the Ethernet cable, the auto-configured address 1 with
prefix of Router 1 is still there and the valid time is counting down.
/FC00::D51:200:DFF:FE41:1, 604038/
When I plug the Ethernet cable to the Router 2, no new auto-configured
IPv6 address will be generated for prefix of Router 2(FC00:0:0:5B1::/64).
I think when the valid time of auto-configured address 1 is expired,
another new address with prefix of Router 2 may generated.
But, this is 7 days later which is not reasonable.
I used the same procedure to test my laptop which is windows 10 with
IPv6 auto-configuration enabled on Ethernet interface.
I connected my laptop to the two Routers one by one, everything works fine.
I notice that when I connect my laptop to *Router 2*, the valid time of
the auto-configuration IPv6 address with prefix of *Router 1 *is reduced
to 3 seconds from a 6 days.
And after 3 seconds, the former auto-configured address is disappear and
new auto-configured address is generated with prefix of Router 2.
The procedure is as follows:
/Interface 16: Ethernet 5/
/Address type DAD Valid time Preferred time Address/
/--------- ----------- ---------- ---------- ------------------------/
/Public No 6d23h59m50s 23h59m50s
fc00::d51:8c79:e4f9:f5a3:e5eb/
/Tentative No 6d23h59m44s 23h57m15s
fc00::d51:9146:165c:cb7f:f35a/
/Other No infinite infinite
fe80::8c79:e4f9:f5a3:e5eb%16/
/
/
/Interface 16: Ethernet 5/
/Address type DAD Valid time Preferred time Address/
/--------- ----------- ---------- ---------- ------------------------/
/Public Preferred 3s 3s
fc00::d51:8c79:e4f9:f5a3:e5eb/
/Tentative Preferred 3s 3s
fc00::d51:9146:165c:cb7f:f35a/
/Other Preferred infinite infinite fe80::8c79:e4f9:f5a3:e5eb%16/
/
/
/Interface16: Ethernet 5/
/Address type DAD Valid time Preferred time Address/
/--------- ----------- ---------- ---------- ------------------------/
/Public Preferred 6d23h59m59s 23h59m59s
fc00::5b1:8c79:e4f9:f5a3:e5eb/
/Tentative Preferred 6d23h59m59s 23h57m30s
fc00::5b1:b0de:2e31:256f:afcd/
/Other Preferred infinite infinite fe80::8c79:e4f9:f5a3:e5eb%16/
From the test, we can see that when a new router is connected, windows
10 will set the valid time of the former prefix to 3 seconds to make it
expired quickly,
then new address will be generated.
So, how to make lwip behave like windows 10 under such circumstances?