X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=pve-bridge;h=64490b0a9b70278fc22e4a22c4c8007758457663;hb=58b1a8d75d9501297e205f9c2c3303c54204ecb3;hp=81ad5f4501284a7e3b747698750d285a3ec9b7b2;hpb=990fc5e22e7c173d43cc30a4862fececa1b18cfc;p=qemu-server.git diff --git a/pve-bridge b/pve-bridge index 81ad5f4..64490b0 100755 --- a/pve-bridge +++ b/pve-bridge @@ -8,6 +8,12 @@ use PVE::Network; my $iface = shift; +my $hotplug = 0; +if ($iface eq '--hotplug') { + $hotplug = 1; + $iface = shift; +} + die "no interface specified\n" if !$iface; die "got strange interface name '$iface'\n" @@ -16,20 +22,22 @@ die "got strange interface name '$iface'\n" my $vmid = $1; my $netid = "net$2"; -my $migratedfrom = $ENV{PVE_MIGRATED_FROM}; +my $migratedfrom = $hotplug ? undef : $ENV{PVE_MIGRATED_FROM}; + +my $conf = PVE::QemuConfig->load_config($vmid, $migratedfrom); -my $conf = PVE::QemuServer::load_config($vmid, $migratedfrom); +my $netconf = $conf->{$netid}; +$netconf = $conf->{pending}->{$netid} if !$migratedfrom && defined($conf->{pending}->{$netid}); + die "unable to get network config '$netid'\n" - if !$conf->{$netid}; + if !defined($netconf); -my $net = PVE::QemuServer::parse_net($conf->{$netid}); +my $net = PVE::QemuServer::parse_net($netconf); die "unable to parse network config '$netid'\n" if !$net; PVE::Network::tap_create($iface, $net->{bridge}); -PVE::Network::tap_rate_limit($iface, $net->{rate}) if $net->{rate}; - -PVE::Network::tap_plug($iface, $net->{bridge}, $net->{tag}); +PVE::Network::tap_plug($iface, $net->{bridge}, $net->{tag}, $net->{firewall}, $net->{trunks}, $net->{rate}); exit 0;