]> git.proxmox.com Git - pve-network.git/commitdiff
vlan/qinq: use vlan-raw-device to support long predictable interfaces name
authorAlexandre Derumier <aderumier@odiso.com>
Sat, 11 Jan 2020 12:48:50 +0000 (13:48 +0100)
committerThomas Lamprecht <t.lamprecht@proxmox.com>
Sat, 11 Jan 2020 15:07:04 +0000 (16:07 +0100)
users have reported in the forum some crazy long interfaces names
like "enp0s20f0u8u2c2".
So they are no space for create a "enp0s20f0u8u2c2.vlan".

changelog V2:

small fix with reclared ifaces_variable

Signed-off-by: Alexandre Derumier <aderumier@odiso.com>
PVE/Network/SDN/Zones/QinQPlugin.pm
PVE/Network/SDN/Zones/VlanPlugin.pm

index d36f0d8ffd98fffb855cc2dec5f49b68579f63e6..d3f4b7d923049293e94c8ccb63b13ec1e76e8fc7 100644 (file)
@@ -52,18 +52,24 @@ sub generate_sdn_config {
 
     my $iface = PVE::Network::SDN::Zones::Plugin::get_uplink_iface($interfaces_config, $uplink);
 
-    $iface .= ".$zone_tag";
-
-    #tagged interface
+    #service vlan
     my @iface_config = ();
+    push @iface_config, "vlan-raw-device $iface";
+    push @iface_config, "vlan-id $zone_tag";
     push @iface_config, "vlan-protocol $vlanprotocol" if $vlanprotocol;
     push @iface_config, "mtu $mtu" if $mtu;
-    push(@{$config->{$iface}}, @iface_config) if !$config->{$iface};
+    push(@{$config->{"qinq$zoneid"}}, @iface_config) if !$config->{$iface};
+
+    #customer vlan
+    @iface_config = ();
+    push @iface_config, "vlan-raw-device qinq$zoneid";
+    push @iface_config, "vlan-id $tag";
+    push @iface_config, "mtu $mtu" if $mtu;
+    push(@{$config->{"vlan$vnetid"}}, @iface_config) if !$config->{$iface};
 
-    $iface .= ".$tag";
     #vnet bridge
     @iface_config = ();
-    push @iface_config, "bridge_ports $iface";
+    push @iface_config, "bridge_ports vlan$vnetid";
     push @iface_config, "bridge_stp off";
     push @iface_config, "bridge_fd 0";
     push @iface_config, "mtu $mtu" if $mtu;
index 63db8abb19067258f844c0306b982ddb1881570c..af76b43f5b25d46266ef3493b80281ba6da42561 100644 (file)
@@ -50,16 +50,16 @@ sub generate_sdn_config {
 
     my $iface = PVE::Network::SDN::Zones::Plugin::get_uplink_iface($interfaces_config, $uplink);
 
-    $iface .= ".$tag";
-
     #tagged interface
     my @iface_config = ();
     push @iface_config, "mtu $mtu" if $mtu;
-    push(@{$config->{$iface}}, @iface_config) if !$config->{$iface};
+    push @iface_config, "vlan-raw-device $iface";
+    push @iface_config, "vlan-id $tag";
+    push(@{$config->{"vlan$vnetid"}}, @iface_config) if !$config->{$iface};
 
     #vnet bridge
     @iface_config = ();
-    push @iface_config, "bridge_ports $iface";
+    push @iface_config, "bridge_ports vlan$vnetid";
     push @iface_config, "bridge_stp off";
     push @iface_config, "bridge_fd 0";
     push @iface_config, "mtu $mtu" if $mtu;