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"
my $vmid = $1;
my $netid = "net$2";
-my $migratedfrom = $ENV{PVE_MIGRATED_FROM};
+my $migratedfrom = $hotplug ? undef : $ENV{PVE_MIGRATED_FROM};
my $conf = PVE::QemuServer::load_config($vmid, $migratedfrom);
PVE::Network::tap_create($iface, $net->{bridge});
-PVE::Network::tap_rate_limit($iface, $net->{rate}) if $net->{rate};
+# if ovs is under this bridge all traffic control settings will be flushed.
+# so we need to call tap_rate_limit after tap_plug
+PVE::Network::tap_plug($iface, $net->{bridge}, $net->{tag}, $net->{firewall}, $net->{trunks});
-PVE::Network::tap_plug($iface, $net->{bridge}, $net->{tag}, $net->{firewall});
+PVE::Network::tap_rate_limit($iface, $net->{rate}) if $net->{rate};
exit 0;