]> git.proxmox.com Git - pve-container.git/blobdiff - src/lxc-pve-prestart-hook
Merge branch 'sdn/dhcp-support'
[pve-container.git] / src / lxc-pve-prestart-hook
index 438ffad8c6b251bbdc90ed05996a787721589d6c..ab357743c86e08e60f933af3d2039b7fe551d8d7 100755 (executable)
@@ -22,6 +22,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) = @_;
@@ -198,6 +204,15 @@ PVE::LXC::Tools::lxc_hook('pre-start', 'lxc', sub {
        }
        PVE::Tools::file_set_contents("/var/lib/lxc/$vmid/passthrough/devices", $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