From: Alexandre Derumier Date: Tue, 26 Sep 2023 07:39:41 +0000 (+0200) Subject: zones: add add|del_bridge_fdb to plugins X-Git-Url: https://git.puffer.fish/?a=commitdiff_plain;h=9a03342a87f9cd4d083597c9d228512786b4a7f7;p=mirror%2Fpve-network.git zones: add add|del_bridge_fdb to plugins 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. --- diff --git a/src/PVE/Network/SDN/Zones.pm b/src/PVE/Network/SDN/Zones.pm index 1e678ed..4ad4e4d 100644 --- a/src/PVE/Network/SDN/Zones.pm +++ b/src/PVE/Network/SDN/Zones.pm @@ -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; diff --git a/src/PVE/Network/SDN/Zones/Plugin.pm b/src/PVE/Network/SDN/Zones/Plugin.pm index f6634b6..b55b967 100644 --- a/src/PVE/Network/SDN/Zones/Plugin.pm +++ b/src/PVE/Network/SDN/Zones/Plugin.pm @@ -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 {