diff --git a/mxrouter/mxrouterctl b/mxrouter/mxrouterctl index 7ba1f5e..f16b2d0 100755 --- a/mxrouter/mxrouterctl +++ b/mxrouter/mxrouterctl @@ -292,18 +292,6 @@ sub read_active_vlans { return ($have_vlan); } -sub unconfigure_vlans { - my ($have_vlan)=@_; - - for my $device (sort keys %$have_vlan) { - sys("ip link set dev $device down"); - } - for my $device (sort keys %$have_vlan) { - my ($base_device,$vlan_num)=$device=~/^([^.]+)\.(.+)$/; - sys("ip link delete $device"); - } -} - sub configure_vlans { my ($want_vlan)=@_; for my $device (sort keys %$want_vlan) { @@ -514,7 +502,7 @@ sub start { my ($have_vlan)=read_active_vlans(); delete $have_vlan->{$_} for keys %$want_if; # vlan interfaces created in main and moved via interface() - my ($new_vlan,$del_vlan)=({},{},{},{}); + my $new_vlan = {}; for (keys %$want_vlan) { $new_vlan->{$_}=$want_vlan->{$_} @@ -522,12 +510,6 @@ sub start { && $have_vlan->{$_}[0] eq $want_vlan->{$_}[0] && $have_vlan->{$_}[1] eq $want_vlan->{$_}[1]; } - for (keys %$have_vlan) { - $del_vlan->{$_}=$have_vlan->{$_} - unless exists $want_vlan->{$_} - && $have_vlan->{$_}[0] eq $want_vlan->{$_}[0] - && $have_vlan->{$_}[1] eq $want_vlan->{$_}[1]; - } for (keys %$ip_want_addr) { $new_addr->{$_}=$ip_want_addr->{$_} @@ -577,11 +559,10 @@ sub start { stop_process_if($process_radvd); unconfigure_route($del_route); unconfigure_ip($del_addr); - unconfigure_vlans($del_vlan,{}); unconfigure_if($del_if); configure_if($want_if); - configure_vlans($new_vlan,{}); + configure_vlans($new_vlan); configure_ip($new_addr); configure_route($new_route);