First of all, when the machine boots up, you already have the problemWhat do you mean? I see no problem.
that you cannot set the accept_ra and addrconf sysctl settings before
the first ipv6 address is added to the interface.
So by definition you already cannot make the settings before it isThis is all nonsense.
"too late" and the device is already engaging in ipv6 activity.
Giving you the capability to handle this across full ipv6 address
deletions on the device later on doesn't add anything, and at best it
gives people a false sense of security about being able to preserve
these settings across an ipv6 disable on the device.
If people are going to use this new behavior to do some trick like:
1) Let device come up and assign ipv6 addresses so that sysctls appear
2) Set ipv6 sysctls how actually desired
3) Delete all ipv6 addresses
4) Add them all back
Then I doubly do not want to set a precedent for this kind of usage
by applying this patch. Fix the real problem.
This behavior has been here, and intentionally so, since Alexey addedThe "how" parameter indicates the device is being deleted. In this case, the device is not being deleted.
the "how" parameter to addrconf_ifdown() back in 1997.
to zero in this case and I haven't seen any analysis that those won'tIf the device isn't going away, then the ip6_ptr shouldn't be zeroed, the /proc/net/dev_snmp6 entry shouldn't be deregistered, the stateless addrconf flags should be cleared, the regen timer shouldn't be deleted, ipv6 multicast shouldn't mark the device down instead of being destroyed, and the nd_parms shouldn't be freed.
cause any other undesirable side effects either.