]> git.proxmox.com Git - pve-network.git/commitdiff
vxlanmulticast : fix mtu
authorAlexandre Derumier <aderumier@odiso.com>
Thu, 6 Jun 2019 06:20:13 +0000 (08:20 +0200)
committerThomas Lamprecht <t.lamprecht@proxmox.com>
Thu, 6 Jun 2019 06:24:05 +0000 (08:24 +0200)
vxlan mtu must be 50bytes lower than physdev mtu

Signed-off-by: Alexandre Derumier <aderumier@odiso.com>
PVE/Network/Network/VlanPlugin.pm
PVE/Network/Network/VxlanMulticastPlugin.pm
test/generateconfig.pl

index 115d3bec4d2827a8317a685ee4db3604910164e4..063ae4996ebc971621def57af511e6b343b25801 100644 (file)
@@ -69,9 +69,8 @@ sub generate_network_config {
 
     die "missing vlan tag" if !$tag;
 
-    my $iface = $uplinks->{$uplink} ? $uplinks->{$uplink} : "uplink$uplink";
+    my $iface = $uplinks->{$uplink}->{name} ? $uplinks->{$uplink}->{name} : "uplink$uplink";
     $iface .= ".$tag";
-
     my $config = "\n";
     $config .= "auto $iface\n";
     $config .= "iface $iface inet manual\n";
index 2f03f487b6cd444eb7caca31ecbf082a390baf00..f5440067a9a4ff5b99679410e633e0f4dec3f5a0 100644 (file)
@@ -47,14 +47,17 @@ sub generate_network_config {
     my ($class, $plugin_config, $zoneid, $vnetid, $vnet, $uplinks) = @_;
 
     my $tag = $vnet->{tag};
-    my $mtu = $vnet->{mtu};
     my $alias = $vnet->{alias};
     my $multicastaddress = $plugin_config->{'multicast-address'};
     my $uplink = $plugin_config->{'uplink-id'};
     my $vxlanallowed = $plugin_config->{'vxlan-allowed'};
 
     die "missing vxlan tag" if !$tag;
-    my $iface = $uplinks->{$uplink} ? $uplinks->{$uplink} : "uplink$uplink";
+    my $iface = $uplinks->{$uplink}->{name} ? $uplinks->{$uplink}->{name} : "uplink$uplink";
+
+    my $mtu = 1450;
+    $mtu = $uplinks->{$uplink}->{mtu} - 50 if $uplinks->{$uplink}->{mtu};
+    $mtu = $vnet->{mtu} if $vnet->{mtu};
 
     my $config = "\n";
     $config .= "auto vxlan$tag\n";
index fa4e74f68dc85fc678714d7a6fb0deef213b1840..4921d97f95a8c054fbb4f3f4d5ec229d55109c74 100644 (file)
@@ -35,7 +35,8 @@ sub generate_network_config {
         my $interface = $interfaces_config->{ifaces}->{$id};
        if (my $uplink = $interface->{'uplink-id'}) {
                die "uplink-id $uplink is already defined on $uplinks->{$uplink}" if $uplinks->{$uplink};
-               $uplinks->{$interface->{'uplink-id'}} = $id;
+               $interface->{name} = $id;
+               $uplinks->{$interface->{'uplink-id'}} = $interface;
        }
      }