[pve-devel] [PATCH qemu-server 1/1] fix #5619: honor link_down setting when hot-plugging nic

Fiona Ebner f.ebner at proxmox.com
Tue Jul 23 16:00:35 CEST 2024


Am 23.07.24 um 15:14 schrieb Stefan Hanreich:
> When detaching and attaching the network device on update, the
> link_down setting is not considered and the network device always gets
> attached to the guest - even if link_down is set.
> 
> Fixes: 3f14f206 ("nic online bridge/vlan change: link disconnect/reconnect")
> 

Please don't use newlines between trailers.

> Signed-off-by: Stefan Hanreich <s.hanreich at proxmox.com>

Reviewed-by: Fiona Ebner <f.ebner at proxmox.com>

> ---
>  PVE/QemuServer.pm | 12 ++++--------
>  1 file changed, 4 insertions(+), 8 deletions(-)
> 
> diff --git a/PVE/QemuServer.pm b/PVE/QemuServer.pm
> index 88c274d..19e59a8 100644
> --- a/PVE/QemuServer.pm
> +++ b/PVE/QemuServer.pm
> @@ -5339,20 +5339,16 @@ sub vmconfig_update_net {
>  		    PVE::Network::tap_plug($iface, $newnet->{bridge}, $newnet->{tag}, $newnet->{firewall}, $newnet->{trunks}, $newnet->{rate});
>  		}
>  
> -		#set link_up in guest if bridge or vlan change to notify guest (dhcp renew for example)

I'd prefer to not remove the comment completely, but adapt and move it
to below. Then nobody needs to wonder why link status is set if only
bridge or tag changes for example.

> -		if (safe_string_ne($oldnet->{bridge}, $newnet->{bridge}) ||
> -		    safe_num_ne($oldnet->{tag}, $newnet->{tag})
> -		) {
> -		    qemu_set_link_status($vmid, $opt, 1);
> -		}
> -
>  	    } elsif (safe_num_ne($oldnet->{rate}, $newnet->{rate})) {
>  		# Rate can be applied on its own but any change above needs to
>  		# include the rate in tap_plug since OVS resets everything.
>  		PVE::Network::tap_rate_limit($iface, $newnet->{rate});
>  	    }
>  
> -	    if (safe_string_ne($oldnet->{link_down}, $newnet->{link_down})) {
> +	    if (safe_string_ne($oldnet->{link_down}, $newnet->{link_down})
> +		|| safe_string_ne($oldnet->{bridge}, $newnet->{bridge})
> +		|| safe_num_ne($oldnet->{tag}, $newnet->{tag})
> +	    ) {
>  		qemu_set_link_status($vmid, $opt, !$newnet->{link_down});
>  	    }
>  




More information about the pve-devel mailing list