]> git.proxmox.com Git - pve-network.git/commitdiff
zones: add add|del_bridge_fdb to plugins
authorAlexandre Derumier <aderumier@odiso.com>
Tue, 26 Sep 2023 07:39:41 +0000 (09:39 +0200)
committerFabian Grünbichler <f.gruenbichler@proxmox.com>
Wed, 25 Oct 2023 10:46:41 +0000 (12:46 +0200)
We want to be able to override it for some specific plugins.

Can be used by an sdn controller (like ovn for example), where
mac need to be registered manually.

src/PVE/Network/SDN/Zones.pm
src/PVE/Network/SDN/Zones/Plugin.pm

index 1e678ed6154aa0515506aff905b478ae057806a7..4ad4e4dfb86e0a254db541cadc53d2347a28f5f7 100644 (file)
@@ -336,7 +336,7 @@ sub add_bridge_fdb {
 
     my $plugin_config = get_plugin_config($vnet);
     my $plugin = PVE::Network::SDN::Zones::Plugin->lookup($plugin_config->{type});
-    PVE::Network::add_bridge_fdb($iface, $macaddr) if $plugin_config->{'bridge-disable-mac-learning'};
+    $plugin->add_bridge_fdb($plugin_config, $iface, $macaddr);
 }
 
 sub del_bridge_fdb {
@@ -350,7 +350,7 @@ sub del_bridge_fdb {
 
     my $plugin_config = get_plugin_config($vnet);
     my $plugin = PVE::Network::SDN::Zones::Plugin->lookup($plugin_config->{type});
-    PVE::Network::del_bridge_fdb($iface, $macaddr) if $plugin_config->{'bridge-disable-mac-learning'};
+    $plugin->del_bridge_fdb($plugin_config, $iface, $macaddr);
 }
 
 1;
index f6634b697d6b9fda1a4abb6fd9054ea870c3859a..b55b967ddb808d0c74fbbb8326a408e4de6106cf 100644 (file)
@@ -239,6 +239,18 @@ sub tap_plug {
     PVE::Network::tap_plug($iface, $vnetid, $tag, $firewall, $trunks, $rate, $opts);
 }
 
+sub add_bridge_fdb {
+    my ($class, $plugin_config, $iface, $macaddr) = @_;
+
+    PVE::Network::add_bridge_fdb($iface, $macaddr) if $plugin_config->{'bridge-disable-mac-learning'};
+}
+
+sub del_bridge_fdb {
+    my ($class, $plugin_config, $iface, $macaddr) = @_;
+
+    PVE::Network::del_bridge_fdb($iface, $macaddr) if $plugin_config->{'bridge-disable-mac-learning'};
+}
+
 #helper
 
 sub get_uplink_iface {