]> git.proxmox.com Git - pve-container.git/commitdiff
lxc-pve-prestart-hook : add_dhcp_mapping
authorAlexandre Derumier <aderumier@odiso.com>
Fri, 17 Nov 2023 11:40:10 +0000 (12:40 +0100)
committerWolfgang Bumiller <w.bumiller@proxmox.com>
Tue, 21 Nov 2023 08:26:08 +0000 (09:26 +0100)
Signed-off-by: Alexandre Derumier <aderumier@odiso.com>
src/lxc-pve-prestart-hook

index 936d0bfe8ee7f0bffdbbb107cb00f16afe3289fe..fc577e4aba24af6279ef6dfd4cdf914e3510894b 100755 (executable)
@@ -21,6 +21,12 @@ use PVE::Storage;
 use PVE::Syscall qw(:fsmount);
 use PVE::Tools qw(AT_FDCWD O_PATH);
 
+my $have_sdn;
+eval {
+    require PVE::Network::SDN::Vnets;
+    $have_sdn = 1;
+};
+
 my $WARNFD;
 sub log_warn {
     my ($vmid, $message) = @_;
@@ -140,6 +146,15 @@ PVE::LXC::Tools::lxc_hook('pre-start', 'lxc', sub {
        }
        PVE::Tools::file_set_contents($devlist_file, $devlist);
     }
+
+    if ($have_sdn) {
+       for my $k (keys %$conf) {
+           next if $k !~ /^net(\d+)/;
+           my $net = PVE::LXC::Config->parse_lxc_network($conf->{$k});
+           next if $net->{type} ne 'veth';
+           PVE::Network::SDN::Vnets::add_dhcp_mapping($net->{bridge}, $net->{hwaddr});
+       }
+    }
 });
 
 # Leftover cgroups prevent lxc from starting without any useful information