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:
@@ -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));
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user