Signed-off-by: Alexandre Derumier <aderum...@odiso.com>
---
 src/PVE/LXC.pm  | 11 ++++++++---
 src/lxcnetaddbr |  6 +++++-
 2 files changed, 13 insertions(+), 4 deletions(-)

diff --git a/src/PVE/LXC.pm b/src/PVE/LXC.pm
index dbdec23..66c972f 100644
--- a/src/PVE/LXC.pm
+++ b/src/PVE/LXC.pm
@@ -939,8 +939,13 @@ sub update_net {
 
                if ($have_sdn) {
                    PVE::Network::SDN::Zones::tap_plug($veth, 
$newnet->{bridge}, $newnet->{tag}, $newnet->{firewall}, $newnet->{trunks}, 
$newnet->{rate});
+                   PVE::Network::SDN::Zones::add_bridge_fdb($veth, 
$newnet->{hwaddr}, $newnet->{bridge}, $newnet->{firewall}); 
                } else {
-                   PVE::Network::tap_plug($veth, $newnet->{bridge}, 
$newnet->{tag}, $newnet->{firewall}, $newnet->{trunks}, $newnet->{rate});
+                   my $interfaces_config = 
PVE::INotify::read_file('interfaces');
+                   my $bridge = $newnet->{bridge};
+                   my $disablelearning = 1 if 
$interfaces_config->{ifaces}->{$bridge} && 
$interfaces_config->{ifaces}->{$bridge}->{'bridge-disable-mac-learning'};
+                   PVE::Network::tap_plug($veth, $newnet->{bridge}, 
$newnet->{tag}, $newnet->{firewall}, $newnet->{trunks}, $newnet->{rate}, 
$disablelearning);
+                   PVE::Network::add_bridge_fdb($veth, $newnet->{hwaddr}, 
$newnet->{firewall}) if $disablelearning;
                }
 
                # This includes the rate:
@@ -972,10 +977,10 @@ sub hotplug_net {
 
     if ($have_sdn) {
        PVE::Network::SDN::Zones::veth_create($veth, $vethpeer, 
$newnet->{bridge}, $newnet->{hwaddr});
-       PVE::Network::SDN::Zones::tap_plug($veth, $newnet->{bridge}, 
$newnet->{tag}, $newnet->{firewall}, $newnet->{trunks}, $newnet->{rate});
+       PVE::Network::SDN::Zones::tap_plug($veth, $newnet->{bridge}, 
$newnet->{tag}, $newnet->{firewall}, $newnet->{trunks}, $newnet->{rate}, 
$newnet->{disable_flood});
     } else {
        PVE::Network::veth_create($veth, $vethpeer, $newnet->{bridge}, 
$newnet->{hwaddr});
-       PVE::Network::tap_plug($veth, $newnet->{bridge}, $newnet->{tag}, 
$newnet->{firewall}, $newnet->{trunks}, $newnet->{rate});
+       PVE::Network::tap_plug($veth, $newnet->{bridge}, $newnet->{tag}, 
$newnet->{firewall}, $newnet->{trunks}, $newnet->{rate}, 
$newnet->{disable_flood});
     }
 
     # attach peer in container
diff --git a/src/lxcnetaddbr b/src/lxcnetaddbr
index 8bd9d22..d53898a 100755
--- a/src/lxcnetaddbr
+++ b/src/lxcnetaddbr
@@ -63,8 +63,12 @@ if (-d "/sys/class/net/$iface") {
 
     if ($have_sdn) {
        PVE::Network::SDN::Zones::tap_plug($iface, $net->{bridge}, $tag, 
$firewall, $trunks, $rate);
+       PVE::Network::SDN::Zones::add_bridge_fdb($iface, $net->{hwaddr}, 
$net->{bridge}, $net->{firewall});
     } else {
-       PVE::Network::tap_plug($iface, $bridge, $tag, $firewall, $trunks, 
$rate);
+       my $interfaces_config = PVE::INotify::read_file('interfaces');
+       my $disablelearning = 1 if $interfaces_config->{ifaces}->{$bridge} && 
$interfaces_config->{ifaces}->{$bridge}->{'bridge-disable-mac-learning'};
+       PVE::Network::tap_plug($iface, $bridge, $tag, $firewall, $trunks, 
$rate, $disablelearning);
+       PVE::Network::add_bridge_fdb($iface, $net->{hwaddr}, $net->{firewall}) 
if $disablelearning;
     }
 }
 
-- 
2.30.2


_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel

Reply via email to