Messages in this thread | | | From | Rocco Yue <> | Subject | Re: [PATCH] net: ipv6: don't generate link-local address in any addr_gen_mode | Date | Tue, 13 Jul 2021 09:49:24 +0800 |
| |
>> According to your suggestion, I checked the ipv6 code again. In my >> opinion, adding another addr_gen_mode may not be suitable. >> >> (1) >> In the user space, the process enable the ipv6 stable privacy mode by >> setting the "/proc/sys/net/ipv6/conf/<iface>/stable_secret". >> >> In the kernel, the addr_gen_mode of a networking device is switched to >> IN6_ADDR_GEN_MODE_STABLE_PRIVACY by judging the bool value of >> "cnf.stable_secret.initialized". > > and that can be updated. If the default (inherited) setting is > IN6_ADDR_GEN_MODE_STABLE_PRIVACY_NO_LLA, then do not change to > IN6_ADDR_GEN_MODE_STABLE_PRIVACY. > >> >> So, although adding an additional IN6_ADDR_GEN_MODE_STABLE_PRIVACY_NO_LLA, >> user space process has some trouble to let kernel switch the iface's >> addr_gen_mode to the IN6_ADDR_GEN_MODE_STABLE_PRIVACY_NO_LLA. >> >> This is not as flexible as adding a separate sysctl. >> >> (2) >> After adding "proc/sys/net/ipv6/<iface>/disable_gen_linklocal_addr", >> so that kernel can keep the original code logic of the stable_secret >> proc file, and expand when the subsequent kernel adds a new add_gen_mode >> more flexibility and applicability. >> >> And we only need to care about the networking device that do not >> generate an ipv6 link-local address, and not the addr_gen_mode that >> this device is using. >> >> Maybe adding a separate sysctl is a better choice. >> Looking forward to your professional reply again. > > per device sysctl's are not free. I do not see a valid reason for a > separate disable knob.
Hi David,
Thanks for your reply,
honstly, this separate sysctl is really useful and convenient.
It allows users to simply configure the disable_gen_linklocal_addr proc file to achieve customized configuration of ipv6 link-local address without worrying about when the kernel will automatically generate a link-local address.
At the same time, maybe a new addr_gen_mode will be added in the future. If the method of adding a sysctl is adopted, we don't need to consider the existing addr_gen_mode and the impact of adding another new addr_gen_mode in the future.
Just simply echoing different values to the disable_gen_linklocal_addr proc file can achieve this needs.
Thanks, Rocco
| |