When my upstream Fritz!Box reconnects it receives a new IPv6 address and a new IPv6 prefix (IPv6-PD) from my ISP. The downstream OpenWrt router is apparently notified about this change as its WAN6 IPv6 address changes accordingly, however the delegated IPv6 prefix is not updated and global IPv6 addresses further downstream will not be updated either.
If the WAN6 interface is restarted, i.e. odhcp6c is restarted, the delegated Ipv6 prefix is properly updated.
I tried to dig a little further into this and monitored the call of the dhcpv6.script, and indeed whenever the Fritz!box reconnects I see calls of it with the 'ra-updated' parameter. However the PREFIXES environment variable remains unchanged.
I am no expert but to me it looks like either
the Fritz!box is not pushing changes of the prefix downstream (not shure whether any standard requires this), or
the OpenWrt box is not processing such information whereas at startup of odhcp6c the prefix information is somehow pulled.
Accordingly possible solutions to this problem that I could think of would be
Config change: I am simply missing some detail in either my Fritz!box or OpenWrt config. Any advice appreciated as I am new to OpenWrt.
Bug Fix: if the update information is pushed downstream but is somehow ignored by the OpenWrt box (I have no evidence for this), then this would likely be a bug in odhcp6c.
Workaround: If the update information is not passed on there are two workarounds that I could think of:
within odhcp6c to check whether IPv6 addresses change and re-initialize IPv6-PD (i.e., pull this information from the Fritz!box)
within the dhcpv6.script to check whether the IPv6 address has changed, deduce the new prefix from the new address and set the PREFIXES environment variable accordingly or simply restart (i.e. kill) odhcp6c.
The latter would be a feasible although dirty solution, which I could implement myself. Any advice appreciated.