public inbox for pve-devel@lists.proxmox.com
 help / color / mirror / Atom feed
* [pve-devel] [PATCH pve-container 0/1] add disable bridge learning feature
@ 2021-09-24  8:51 Alexandre Derumier
  2021-09-24  8:51 ` [pve-devel] [PATCH pve-container 1/1] net : add support for bridge disable mac learning Alexandre Derumier
  0 siblings, 1 reply; 2+ messages in thread
From: Alexandre Derumier @ 2021-09-24  8:51 UTC (permalink / raw)
  To: pve-devel

following pve-common 
https://lists.proxmox.com/pipermail/pve-devel/2021-September/050090.html

Alexandre Derumier (1):
  net : add support for bridge disable mac learning

 src/PVE/LXC.pm  | 11 ++++++++---
 src/lxcnetaddbr |  6 +++++-
 2 files changed, 13 insertions(+), 4 deletions(-)

-- 
2.30.2




^ permalink raw reply	[flat|nested] 2+ messages in thread

* [pve-devel] [PATCH pve-container 1/1] net : add support for bridge disable mac learning
  2021-09-24  8:51 [pve-devel] [PATCH pve-container 0/1] add disable bridge learning feature Alexandre Derumier
@ 2021-09-24  8:51 ` Alexandre Derumier
  0 siblings, 0 replies; 2+ messages in thread
From: Alexandre Derumier @ 2021-09-24  8:51 UTC (permalink / raw)
  To: pve-devel

Signed-off-by: Alexandre Derumier <aderumier@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




^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2021-09-24  8:51 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-09-24  8:51 [pve-devel] [PATCH pve-container 0/1] add disable bridge learning feature Alexandre Derumier
2021-09-24  8:51 ` [pve-devel] [PATCH pve-container 1/1] net : add support for bridge disable mac learning Alexandre Derumier

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal