From 9a03342a87f9cd4d083597c9d228512786b4a7f7 Mon Sep 17 00:00:00 2001 From: Alexandre Derumier Date: Tue, 26 Sep 2023 09:39:41 +0200 Subject: [PATCH] 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. --- src/PVE/Network/SDN/Zones.pm | 4 ++-- src/PVE/Network/SDN/Zones/Plugin.pm | 12 ++++++++++++ 2 files changed, 14 insertions(+), 2 deletions(-) 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 { -- 2.39.5