Hi,
While testing Linux kernel 6.12.42 on OpenWrt, we observed a regression in IPv6 Router Advertisement (RA) handling for the default router.
Affected commits
The following commits appear related and may have introduced the issue:
ipv6: fix possible infinite loop in fib6_info_uses_dev(): https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v...
ipv6: prevent infinite loop in rt6_nlmsg_size(): https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v...
ipv6: annotate data-races around rt->fib6_nsiblings: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v...
Problem description:
In Linux kernel 6.12.42, IPv6 FIB multipath and concurrent access handling was made stricter (READ_ONCE / WRITE_ONCE + RCU retry).
The RA “Automatic” mode relies on checking whether a local default route exists.
With the stricter FIB handling, this check can fail in multipath scenarios.
As a result, RA does not advertise a default route, and IPv6 clients on LAN fail to receive the default gateway.
Steps to reproduce
Run OpenWrt with kernel 6.12.42 on a router with br-lan bridge.
Configure IPv6 RA in Automatic default router mode.
Observe that no default route is advertised to clients (though prefixes may still be delivered).
Expected behavior
Router Advertisement should continue to advertise the default route as in kernel 6.12.41 and earlier.
Client IPv6 connectivity should not break.
Actual behavior
RA fails to advertise a default route in Automatic mode.
Clients do not install a default IPv6 route → connectivity fails.
Temporary workaround
Change RA default router mode from Automatic → Always / Use available prefixes in OpenWrt.
This bypasses the dependency on local default route check and restores correct RA behavior.
Additional notes
This appears to be an unintended side effect of the stricter FIB handling changes introduced in 6.12.42. Please advise if this has already been reported or if I should prepare a minimal reproducer outside OpenWrt.
Thanks, [GitHub: mgz0227]