- special check for bond, ifupdown set parent mtu from slaves mtu if no defined.
- error if parent mtu is lower than child mtu (not bigger) - child inherit from parent mtu if not defined - fix vlan check (parent/child was inverted) --- src/PVE/INotify.pm | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/src/PVE/INotify.pm b/src/PVE/INotify.pm index 4cf8699..083fb70 100644 --- a/src/PVE/INotify.pm +++ b/src/PVE/INotify.pm @@ -754,16 +754,20 @@ my $extract_ovs_option = sub { }; my $check_mtu = sub { - my ($ifaces, $parent, $child) = @_; + my ($ifaces, $parent, $child, $ifupdown2) = @_; die "check mtu - missing parent interface\n" if !$parent; die "check mtu - missing child interface\n" if !$child; + if($ifaces->{$parent}->{type} eq 'bond') { + $ifaces->{$parent}->{mtu} = $ifaces->{$child}->{mtu} if (!$ifaces->{$parent}->{mtu} && $ifaces->{$child}->{mtu} && !$ifupdown2); + } + my $pmtu = $ifaces->{$parent}->{mtu} ? $ifaces->{$parent}->{mtu} : 1500; - my $cmtu = $ifaces->{$child}->{mtu} ? $ifaces->{$child}->{mtu} : 1500; + my $cmtu = $ifaces->{$child}->{mtu} ? $ifaces->{$child}->{mtu} : $pmtu; - die "interface '$parent' - mtu $pmtu is bigger than '$child' - mtu $cmtu\n" - if $pmtu > $cmtu; + die "interface '$parent' - mtu $pmtu is lower than '$child' - mtu $cmtu\n" + if $pmtu < $cmtu; }; # config => { @@ -1347,7 +1351,7 @@ sub __write_etc_network_interfaces { if !$n; die "bond '$iface' - wrong interface type on slave '$p' " . "('$n->{type}' != 'eth')\n" if $n->{type} ne 'eth'; - &$check_mtu($ifaces, $iface, $p); + &$check_mtu($ifaces, $iface, $p, $ifupdown2); } } } @@ -1393,7 +1397,7 @@ sub __write_etc_network_interfaces { die "vlan '$iface' - wrong interface type on parent '$p' " . "('$n->{type}' != 'eth|bond|bridge' )\n"; } - &$check_mtu($ifaces, $iface, $p); + &$check_mtu($ifaces, $p, $iface); } } -- 2.11.0 _______________________________________________ pve-devel mailing list pve-devel@pve.proxmox.com https://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel