From 8cc1e9d5891e6b2212ca81d993395b974bb9816e Mon Sep 17 00:00:00 2001 From: Donald Buczek Date: Thu, 6 Mar 2025 17:35:54 +0100 Subject: [PATCH 1/2] mxrouter: Remove ununsed expressions --- mxrouter/mxrouterctl | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mxrouter/mxrouterctl b/mxrouter/mxrouterctl index 7ba1f5e..e02f294 100755 --- a/mxrouter/mxrouterctl +++ b/mxrouter/mxrouterctl @@ -514,7 +514,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,$del_vlan)=({},{}); for (keys %$want_vlan) { $new_vlan->{$_}=$want_vlan->{$_} @@ -577,11 +577,11 @@ sub start { stop_process_if($process_radvd); unconfigure_route($del_route); unconfigure_ip($del_addr); - unconfigure_vlans($del_vlan,{}); + 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); From 3c22ccd0e4a0b2a206321a3c73756c784a5a4e11 Mon Sep 17 00:00:00 2001 From: Donald Buczek Date: Tue, 18 Mar 2025 12:51:43 +0100 Subject: [PATCH 2/2] mxrouter: Don't remove vlan interfaces twice When a vlan interface definition is removed from the configuration, currently the code attempts to remove the actual vlan interface twice: once by the general logic ($have_if, $want_if -> unconfigure_if()) and once by the special logic ($have_vlan, $want_vlan -> unconfigure_vlan()). Remove the later. --- mxrouter/mxrouterctl | 21 +-------------------- 1 file changed, 1 insertion(+), 20 deletions(-) diff --git a/mxrouter/mxrouterctl b/mxrouter/mxrouterctl index e02f294..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,7 +559,6 @@ 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);