From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [IPv6:2a01:7e0:0:424::9]) by lore.proxmox.com (Postfix) with ESMTPS id 49F231FF16F for ; Tue, 5 Aug 2025 10:28:01 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 5D7E19048; Tue, 5 Aug 2025 10:29:29 +0200 (CEST) From: Stefan Hanreich To: pve-devel@lists.proxmox.com Date: Tue, 5 Aug 2025 10:29:23 +0200 Message-ID: <20250805082926.48280-2-s.hanreich@proxmox.com> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250805082926.48280-1-s.hanreich@proxmox.com> References: <20250805082926.48280-1-s.hanreich@proxmox.com> MIME-Version: 1.0 X-SPAM-LEVEL: Spam detection results: 0 AWL -0.190 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DMARC_MISSING 0.1 Missing DMARC policy KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment KAM_LAZY_DOMAIN_SECURITY 1 Sending domain does not have any anti-forgery methods RDNS_NONE 0.793 Delivered to internal network by a host with no rDNS SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_NONE 0.001 SPF: sender does not publish an SPF Record Subject: [pve-devel] [PATCH pve-manager 1/1] network: improve reloading logic X-BeenThere: pve-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox VE development discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Proxmox VE development discussion Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: pve-devel-bounces@lists.proxmox.com Sender: "pve-devel" The old behavior was *always* reloading the network configuration, which worked as long as FRR was not pre-installed, but the change in db03d261 coupled with the fact that we now ship with FRR caused FRR to be enabled on applying the network configuration via the Web UI. The stop gap fix in e1b9466d solved this behavior, but had the issue that we need to possibly regenerate the FRR configuration if the host configuration changes, since some controllers generate their configuration based on the host network configuration. pve-network now always sends the regenerate-frr parameter, so we can discern whether a request came from SDN or is a manual request that is requesting a specific behavior. With this information the reloading logic can be improved as follows: * Honor the parameter if it is set * reload only if there are any FRR entities in the SDN configuration This should handle all cases that we need to consider: * Do not overwrite existing FRR configurations, unless we need to generate our own FRR configuration. * Do not trigger a FRR enable when reloading the host configuration, even though there is no FRR configuration. * Overwrite the FRR configuration with an empty configuration if all SDN entities using FRR got deleted. * Regenerate the FRR configuration when the host network configuration changes, since this might affect the generated FRR configuration. Signed-off-by: Stefan Hanreich --- PVE/API2/Network.pm | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/PVE/API2/Network.pm b/PVE/API2/Network.pm index b423e19b5..28e060714 100644 --- a/PVE/API2/Network.pm +++ b/PVE/API2/Network.pm @@ -932,7 +932,13 @@ __PACKAGE__->register_method({ }; PVE::Tools::run_command(['ifreload', '-a'], errfunc => $err); - if ($have_sdn && $regenerate_frr) { + if (defined($regenerate_frr)) { + # SDN is requesting a reload, so we abide by the parameter set + # by SDN> + PVE::Network::SDN::generate_frr_config(1) if $regenerate_frr; + } elsif (PVE::Network::SDN::running_config_has_frr()) { + # Reload is coming from the Web UI, so we reload if there are + # FRR entities in the SDN config. PVE::Network::SDN::generate_frr_config(1); } }; -- 2.47.2 _______________________________________________ pve-devel mailing list pve-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel