From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by lists.proxmox.com (Postfix) with ESMTPS id A7BBB9A933 for ; Fri, 17 Nov 2023 15:13:35 +0100 (CET) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 8785034ABF for ; Fri, 17 Nov 2023 15:13:05 +0100 (CET) Received: from proxmox-new.maurer-it.com (proxmox-new.maurer-it.com [94.136.29.106]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by firstgate.proxmox.com (Proxmox) with ESMTPS for ; Fri, 17 Nov 2023 15:13:05 +0100 (CET) Received: from proxmox-new.maurer-it.com (localhost.localdomain [127.0.0.1]) by proxmox-new.maurer-it.com (Proxmox) with ESMTP id CBF5D43E17; Fri, 17 Nov 2023 15:13:04 +0100 (CET) From: Stefan Lendl To: Stefan Hanreich , pve-devel@lists.proxmox.com In-Reply-To: <20231117114011.834002-7-s.hanreich@proxmox.com> References: <20231117114011.834002-1-s.hanreich@proxmox.com> <20231117114011.834002-7-s.hanreich@proxmox.com> Date: Fri, 17 Nov 2023 15:13:04 +0100 Message-ID: <8734x431u7.fsf@gmail.com> MIME-Version: 1.0 Content-Type: text/plain X-SPAM-LEVEL: Spam detection results: 0 AWL 0.065 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 SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record T_SCC_BODY_TEXT_LINE -0.01 - Subject: Re: [pve-devel] [PATCH v4 pve-network 06/33] subnet: vnet: refactor IPAM related methods 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: , X-List-Received-Date: Fri, 17 Nov 2023 14:13:35 -0000 Stefan Hanreich writes: > @@ -230,10 +227,28 @@ sub next_free_ip { > my $plugin_config = $ipam_cfg->{ids}->{$ipamid}; > my $plugin = PVE::Network::SDN::Ipams::Plugin->lookup($plugin_config->{type}); > eval { > - $cidr = $plugin->add_next_freeip($plugin_config, $subnetid, $subnet, $hostname, $mac, $description); > - ($ip, undef) = split(/\//, $cidr); > + if ($dhcprange) { > + my $data = { > + mac => $mac, > + hostname => $hostname, > + vmid => $vmid, > + }; > + > + my $dhcp_ranges = PVE::Network::SDN::Subnets::get_dhcp_ranges($subnet); > + > + foreach my $range (@$dhcp_ranges) { > + $ip = $plugin->add_range_next_freeip($plugin_config, $subnet, $range, $data); > + next if !$ip; If an IP was found, the loop will just start again. This should be (tested): last if $ip; > + } > + } else { > + $ip = $plugin->add_next_freeip($plugin_config, $subnetid, $subnet, $hostname, $mac, $vmid); > + } > }; > + > die $@ if $@; > + > + eval { PVE::Network::SDN::Ipams::add_cache_mac_ip($mac, $ip); }; > + warn $@ if $@; > } > > eval {