network: do not touch proxy_ndp sysctl when nothing requested

Even though the document says "When unset, the kernel's default will
be used." for IPv6ProxyNDP=, previously, when both IPv6ProxyNDP= and
IPv6ProxyNDPAddress= are unspecified, proxy_ndp sysctl was disabled.
This was also inconsistent to other sysctl settings.
This commit is contained in:
Yu Watanabe
2026-08-17 17:15:22 +09:00
parent 80922ebbc5
commit 78ca255140
2 changed files with 5 additions and 3 deletions
+3 -1
View File
@@ -522,8 +522,10 @@ static int link_set_ipv6_proxy_ndp(Link *link) {
if (link->network->ipv6_proxy_ndp >= 0)
v = link->network->ipv6_proxy_ndp;
else if (network_has_neighbor_proxy_address(link->network, AF_INET6))
v = true;
else
v = network_has_neighbor_proxy_address(link->network, AF_INET6);
return 0;
return sysctl_write_ip_property_boolean(AF_INET6, link->ifname, "proxy_ndp", v, manager_get_sysctl_shadow(link->manager));
}
+2 -2
View File
@@ -11143,21 +11143,21 @@ class NetworkdSysctlTest(unittest.TestCase, Utilities):
call('sysctl -w net.ipv6.conf.dummy98.accept_ra=1')
call('sysctl -w net.ipv6.conf.dummy98.mtu=1360')
call('sysctl -w net.ipv4.conf.dummy98.promote_secondaries=0')
call('sysctl -w net.ipv6.conf.dummy98.proxy_ndp=1')
# And unmanaged ones
call('sysctl -w net.ipv6.conf.dummy98.hop_limit=4')
call('sysctl -w net.ipv6.conf.dummy98.max_addresses=10')
call('sysctl -w net.ipv6.conf.dummy98.proxy_ndp=1')
log = read_networkd_log()
# fmt: off
self.assertRegex(log, r"Foreign process 'sysctl\[\d+\]' changed sysctl '/proc/sys/net/ipv6/conf/dummy98/accept_ra' from '0' to '1', conflicting with our setting to '0'")
self.assertRegex(log, r"Foreign process 'sysctl\[\d+\]' changed sysctl '/proc/sys/net/ipv6/conf/dummy98/mtu' from '1550' to '1360', conflicting with our setting to '1550'")
self.assertRegex(log, r"Foreign process 'sysctl\[\d+\]' changed sysctl '/proc/sys/net/ipv4/conf/dummy98/promote_secondaries' from '1' to '0', conflicting with our setting to '1'")
self.assertRegex(log, r"Foreign process 'sysctl\[\d+\]' changed sysctl '/proc/sys/net/ipv6/conf/dummy98/proxy_ndp' from '0' to '1', conflicting with our setting to '0'")
# fmt: on
self.assertNotIn("changed sysctl '/proc/sys/net/ipv6/conf/dummy98/hop_limit'", log)
self.assertNotIn("changed sysctl '/proc/sys/net/ipv6/conf/dummy98/max_addresses'", log)
self.assertNotIn("changed sysctl '/proc/sys/net/ipv6/conf/dummy98/proxy_ndp'", log)
self.assertNotIn('Sysctl monitor BPF returned error', log)