RMerl/asuswrt-merlin — pull request #616 by pinwing (2014-05-03 12:43:20+00:00)
Title: Do not restart radvd if it is already running

This is basically a better way to solve #585 (without having to change radvd at all).

I have been able to reproduce that problem: loss of IPv6 connectivity because Windows does not set the default IPv6 gateway after roughly 100 new router advertisements. "New" in this case means that a router advertisement with a zero lifetime was sent in a previous message.

To reproduce, I executed something like the following command a few times "for i in 1 2 3 4 5 6 7 8 9 10; do rc rc_service restart_radvd ; done".
On both Windows 7SP1 and Windows 8.1 (I don't have Vista or XP), the event viewer will show the following message:
>Level: Warning
>Source: Tcpip
>Event ID: 4205
>Autoconfigured route limit has been reached. No further autoconfigured routes will be added until the interface is reconnected.

Because my ISP configures a lease time of two hours for the prefix, and because the prefix is renewed after an hour by dhcp6c, this means that I lose IPv6 connectivity after a little over 4 days (unless I reboot or disconnect/reconnect).