Link TAP interface to VM
Bug: 340376951
Test: adb shell /apex/com.android.virt/bin/vm run-microdroid
--network-supported
Change-Id: I1937d9bd7393942541aa8c8e545a2aa7704de501
diff --git a/virtualizationmanager/src/crosvm.rs b/virtualizationmanager/src/crosvm.rs
index d48ef7b..f73a977 100644
--- a/virtualizationmanager/src/crosvm.rs
+++ b/virtualizationmanager/src/crosvm.rs
@@ -122,6 +122,7 @@
pub display_config: Option<DisplayConfig>,
pub input_device_options: Vec<InputDeviceOption>,
pub hugepages: bool,
+ pub tap: Option<File>,
}
#[derive(Debug)]
@@ -979,7 +980,7 @@
}
if cfg!(paravirtualized_devices) {
- // TODO(b/325929096): Need to set up network from the config
+ // TODO(b/340376951): Remove this after tap in CrosvmConfig is connected to tethering.
if rustutils::system_properties::read_bool("ro.crosvm.network.setup.done", false)
.unwrap_or(false)
{
@@ -987,6 +988,14 @@
}
}
+ if cfg!(network) {
+ if let Some(tap) = &config.tap {
+ let tap_fd = tap.as_raw_fd();
+ preserved_fds.push(tap_fd);
+ command.arg("--net").arg(format!("tap-fd={}", tap_fd));
+ }
+ }
+
if cfg!(paravirtualized_devices) {
for input_device_option in config.input_device_options.iter() {
command.arg("--input");