From 7f9cdf1183992807639cb2006c4bf1282b18376c Mon Sep 17 00:00:00 2001 From: Rob Bradford Date: Wed, 16 Dec 2020 17:31:10 +0000 Subject: [PATCH] vmm: device_manager: Create a virtio-net device from TAP fd If a TAP fd is supplied then create an virtio-net device using that TAP fd. Fixes: #2052 Signed-off-by: Rob Bradford --- vmm/src/device_manager.rs | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/vmm/src/device_manager.rs b/vmm/src/device_manager.rs index 621bd526f..fae3835df 100644 --- a/vmm/src/device_manager.rs +++ b/vmm/src/device_manager.rs @@ -1809,6 +1809,18 @@ impl DeviceManager { ) .map_err(DeviceManagerError::CreateVirtioNet)?, )) + } else if let Some(fd) = net_cfg.fd { + Arc::new(Mutex::new( + virtio_devices::Net::from_tap_fd( + id.clone(), + fd, + Some(net_cfg.mac), + net_cfg.iommu, + net_cfg.queue_size, + self.seccomp_action.clone(), + ) + .map_err(DeviceManagerError::CreateVirtioNet)?, + )) } else { Arc::new(Mutex::new( virtio_devices::Net::new(