[pve-devel] [PATCH pve-manager 1/1] api: network: default to not regenerating the frr configuration

Stefan Hanreich s.hanreich at proxmox.com
Mon Aug 4 15:47:03 CEST 2025


Default to not regenerating the FRR configuration, unless explicitly
requested. Otherwise applying the host network configuration would
reload and enable the FRR service. Invert the boolean from skip to
regenerate, since the logic is less convoluted this way.

Signed-off-by: Stefan Hanreich <s.hanreich at proxmox.com>
---
 PVE/API2/Network.pm | 7 ++++---
 bin/pve-sdn-commit  | 4 ++--
 2 files changed, 6 insertions(+), 5 deletions(-)

diff --git a/PVE/API2/Network.pm b/PVE/API2/Network.pm
index 93f441bab..b423e19b5 100644
--- a/PVE/API2/Network.pm
+++ b/PVE/API2/Network.pm
@@ -891,10 +891,11 @@ __PACKAGE__->register_method({
         additionalProperties => 0,
         properties => {
             node => get_standard_option('pve-node'),
-            skip_frr => {
+            'regenerate-frr' => {
                 type => 'boolean',
                 description => 'Whether FRR config generation should get skipped or not.',
                 optional => 1,
+                default => 0,
             },
         },
     },
@@ -910,7 +911,7 @@ __PACKAGE__->register_method({
         my $current_config_file = "/etc/network/interfaces";
         my $new_config_file = "/etc/network/interfaces.new";
 
-        my $skip_frr = extract_param($param, 'skip_frr');
+        my $regenerate_frr = extract_param($param, 'regenerate-frr');
 
         assert_ifupdown2_installed();
 
@@ -931,7 +932,7 @@ __PACKAGE__->register_method({
             };
             PVE::Tools::run_command(['ifreload', '-a'], errfunc => $err);
 
-            if ($have_sdn && !$skip_frr) {
+            if ($have_sdn && $regenerate_frr) {
                 PVE::Network::SDN::generate_frr_config(1);
             }
         };
diff --git a/bin/pve-sdn-commit b/bin/pve-sdn-commit
index 492963baf..6eeba301c 100644
--- a/bin/pve-sdn-commit
+++ b/bin/pve-sdn-commit
@@ -83,7 +83,7 @@ my $previous_config_has_frr = PVE::Network::SDN::running_config_has_frr();
 PVE::Network::SDN::commit_config();
 
 my $new_config_has_frr = PVE::Network::SDN::running_config_has_frr();
-my $skip_frr = !($previous_config_has_frr || $new_config_has_frr);
+my $regenerate_frr = ($previous_config_has_frr || $new_config_has_frr);
 
 PVE::Network::SDN::generate_etc_network_config();
 PVE::Network::SDN::generate_dhcp_config();
@@ -97,6 +97,6 @@ my $err = sub {
 
 PVE::Tools::run_command(['ifreload', '-a'], errfunc => $err);
 
-PVE::Network::SDN::generate_frr_config(1) if !$skip_frr;
+PVE::Network::SDN::generate_frr_config(1) if $regenerate_frr;
 
 exit 0;
-- 
2.47.2




More information about the pve-devel mailing list