]> git.ipfire.org Git - thirdparty/systemd.git/commit
network: wait for IPv6 MTU being synced to link MTU 34736/head
authorYu Watanabe <watanabe.yu+github@gmail.com>
Sat, 12 Oct 2024 07:43:15 +0000 (16:43 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Mon, 14 Oct 2024 21:56:06 +0000 (06:56 +0900)
commit39283a1f2710da43d57ef400a5320b8f9b03e369
tree74fcc556c99e8e687fc941c67841ee73e9164ab8
parent7edfbf4130ccdb517a127a3ad3748dfc82739b9e
network: wait for IPv6 MTU being synced to link MTU

The kernel resets the IPv6 MTU of an interface when its link MTU is changed.
But it seems the operation is asynchronous, and even when we detect that
the link MTU is changed, the IPv6 MTU may not be reset yet.
====
[ 2257.067613] systemd-networkd[447122]: veth99: MTU is changed: 1500 →1600 (min: 68, max: 65535)
[ 2257.067641] systemd-networkd[447122]: Setting '/proc/sys/net/ipv6/conf/veth99/mtu' to '1410'
[ 2257.067711] systemd-networkd[447122]: No change in value '1410', suppressing write
====
As you can see, even if the link MTU is changed to 1600, the IPv6 MTU is
unchanged (in this case, still 1410).
src/network/networkd-link.c
src/network/networkd-link.h
src/network/networkd-sysctl.c
src/network/networkd-sysctl.h