Behaviour of sysctl net.ipv6.conf.all.* parameters
Subsystems (2)
Hi,
I was exploring the behavior of various net.ipv6.conf.all parameters such as use_tempaddr on Linux 3.16, but the behavior doesn't seem to make sense.
The following settings do *not* result in privacy addresses on eth0:
net.ipv6.conf.all.use_tempaddr=2 net.ipv6.conf.eth0.use_tempaddr=0
But the following settings do:
net.ipv6.conf.all.use_tempaddr=0 net.ipv6.conf.eth0.use_tempaddr=2
This doesn't make sense per any of the AND/OR/MAX semantics as used for e.g. net.ipv4.conf.all.
Looking at the net/ipv6/addrconf.c implementation, I can figure out where net.ipv6.conf.default is implemented, and some handling for specific devconf_all parameters (forwarding, disable_ipv6, proxy_ndp), but I am unable to find any link between struct netns_ipv6.devconf_all.use_tempaddr and struct inet6_dev.cnf.use_tempaddr.
Does anyone have any pointers for where this linking logic would be implemented, or are the majority of net.ipv6.conf.all.* sysctl parameters actually complete no-ops?
-- Tero Marttila