Currently when updating the network configuration of a container, SDN would always create a new entry in the IPAM. Only create a new entry when the bridge or MAC changes or the NIC is completely new.
Signed-off-by: Stefan Hanreich <s.hanre...@proxmox.com> --- src/PVE/LXC/Config.pm | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/PVE/LXC/Config.pm b/src/PVE/LXC/Config.pm index 823a2b9..53662b7 100644 --- a/src/PVE/LXC/Config.pm +++ b/src/PVE/LXC/Config.pm @@ -1500,13 +1500,15 @@ sub vmconfig_apply_pending { my $net = $class->parse_lxc_network($conf->{pending}->{$opt}); $conf->{pending}->{$opt} = $class->print_lxc_network($net); if ($have_sdn) { - if($conf->{$opt}) { + if ($conf->{$opt}) { my $old_net = $class->parse_lxc_network($conf->{$opt}); if ($old_net->{bridge} ne $net->{bridge} || $old_net->{hwaddr} ne $net->{hwaddr}) { PVE::Network::SDN::Vnets::del_ips_from_mac($old_net->{bridge}, $old_net->{hwaddr}, $conf->{name}); + PVE::Network::SDN::Vnets::add_next_free_cidr($net->{bridge}, $conf->{hostname}, $net->{hwaddr}, $vmid, undef, 1); } + } else { + PVE::Network::SDN::Vnets::add_next_free_cidr($net->{bridge}, $conf->{hostname}, $net->{hwaddr}, $vmid, undef, 1); } - PVE::Network::SDN::Vnets::add_next_free_cidr($net->{bridge}, $conf->{hostname}, $net->{hwaddr}, $vmid, undef, 1); } } }; -- 2.39.2 _______________________________________________ pve-devel mailing list pve-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel