vlan fixups: remove existing vlan ids
authorWolfgang Bumiller <w.bumiller@proxmox.com>
Mon, 20 Jun 2016 13:32:18 +0000 (15:32 +0200)
committerDietmar Maurer <dietmar@proxmox.com>
Tue, 21 Jun 2016 04:53:35 +0000 (06:53 +0200)
bridge_add_interface should remove the existing vids from
the interface (which is usually 1, which was previously left
on the interface)

src/PVE/Network.pm

index 63476d3..405f14b 100644 (file)
@@ -181,8 +181,10 @@ my $bridge_add_interface = sub {
 
    if ($vlan_aware) {
        if ($tag) {
-           system("/sbin/bridge vlan add dev $iface vid $tag pvid untagged") == 0 ||
-           die "unable to add vlan $tag to interface $iface\n";
+           system({'/sbin/bridge'} 'bridge', 'vlan', 'del', 'dev', $iface, 'vid', '1-4094') == 0
+               or die "failed to remove default vlan tags of $iface\n";
+           system({'/sbin/bridge'} 'bridge', 'vlan', 'add', 'dev', $iface, 'vid', $tag, 'pvid', 'untagged') == 0
+               or die "unable to add vlan $tag to interface $iface\n";
 
            warn "Caution: Setting VLAN ID 1 on a VLAN aware bridge may be dangerous\n" if $tag == 1;
        } else {