network: also adjust IPv6 MTU by the maximum MTU of the interface

This commit is contained in:
Yu Watanabe
2021-06-09 04:59:23 +09:00
parent 717ba5fc90
commit e56e1a15b5
+10 -1
View File
@@ -184,6 +184,8 @@ static int link_set_ipv6_proxy_ndp(Link *link) {
}
int link_set_ipv6_mtu(Link *link) {
uint32_t mtu;
assert(link);
/* Make this a NOP if IPv6 is not available */
@@ -199,7 +201,14 @@ int link_set_ipv6_mtu(Link *link) {
if (link->network->ipv6_mtu == 0)
return 0;
return sysctl_write_ip_property_uint32(AF_INET6, link->ifname, "mtu", link->network->ipv6_mtu);
mtu = link->network->ipv6_mtu;
if (mtu > link->max_mtu) {
log_link_warning(link, "Reducing requested IPv6 MTU %"PRIu32" to the interface's maximum MTU %"PRIu32".",
mtu, link->max_mtu);
mtu = link->max_mtu;
}
return sysctl_write_ip_property_uint32(AF_INET6, link->ifname, "mtu", mtu);
}
static int link_set_ipv4_accept_local(Link *link) {