From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from gate001.proxmox.com (gate001.proxmox.com [IPv6:2a0f:8001:1:32::40]) by lore.proxmox.com (Postfix) with ESMTPS id 7703E1FF0AA for ; Tue, 20 Oct 2026 15:21:58 +0200 (CEST) Received: from gate001.proxmox.com (localhost.localdomain [127.0.0.1]) by gate001.proxmox.com (Proxmox) with ESMTP id 90D82216C4; Tue, 20 Oct 2026 15:21:56 +0200 (CEST) Message-ID: Date: Tue, 20 Oct 2026 15:21:52 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH pve-manager v3 16/17] sdn: bring up the DHCP backends at boot before the guests start To: pve-devel@lists.proxmox.com References: <20261020080005.470757-1-h.laimer@proxmox.com> <20261020080005.470757-17-h.laimer@proxmox.com> Content-Language: en-US From: Stefan Hanreich In-Reply-To: <20261020080005.470757-17-h.laimer@proxmox.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-SPAM-LEVEL: Spam detection results: 0 AWL 0.352 Adjusted score from AWL reputation of From: address DMARC_MISSING 0.1 Missing DMARC policy KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment (newer systems) RCVD_IN_DNSWL_MED -2.3 Sender listed at https://www.dnswl.org/, medium trust SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record Message-ID-Hash: 26DCY6IXUDMC4VZ5PHDLJJCELSZR6HNF X-Message-ID-Hash: 26DCY6IXUDMC4VZ5PHDLJJCELSZR6HNF X-MailFrom: s.hanreich@proxmox.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.10 Precedence: list List-Id: Proxmox VE development discussion List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: On 10/20/26 10:03 AM, Hannes Laimer wrote: > The eBPF DHCP responder keeps its programs and maps pinned in bpffs, > so they are gone after a reboot. The SDN commit helper now brings the > DHCP backends back up on every boot, not only when it has changes to > commit. > > The helper runs before the node and HA start the guests at boot. > Otherwise the first guest interface plug loads the responder with a > full pass, which holds the responder's lock exclusively. A guest > starting meanwhile waits for that lock. One that waits too long comes > up without the responder on its interface. > > Signed-off-by: Hannes Laimer > --- > bin/pve-sdn-commit | 3 +++ > services/pve-sdn-commit.service | 1 + > 2 files changed, 4 insertions(+) > > diff --git a/bin/pve-sdn-commit b/bin/pve-sdn-commit > index aa7e9b29..ed2d6935 100644 > --- a/bin/pve-sdn-commit > +++ b/bin/pve-sdn-commit > @@ -96,6 +96,9 @@ sub sdn_changed { > return fabrics_changed(); > } > > +# the dhcp backends bring back what a reboot took, pending changes or not > +PVE::Network::SDN::Dhcp::boot(); Add some form of log message here. I've tested this and it worked but I'd like at least some form of confirmation that this ran successfully? > + > if (!sdn_changed()) { > print "No changes to SDN configuration detected, skipping reload\n"; > exit 0; > diff --git a/services/pve-sdn-commit.service b/services/pve-sdn-commit.service > index ff723725..825926be 100644 > --- a/services/pve-sdn-commit.service > +++ b/services/pve-sdn-commit.service > @@ -3,6 +3,7 @@ Description=Commit Proxmox VE SDN changes > DefaultDependencies=no > Wants=pve-cluster.service network.target > After=frr.service network.target corosync.service > +Before=pve-guests.service pve-ha-lrm.service > > [Service] > ExecStart=/usr/share/pve-manager/helpers/pve-sdn-commit