diff --git a/host/commands/launch/main.cc b/host/commands/launch/main.cc
index 7e45b47..d72280e 100644
--- a/host/commands/launch/main.cc
+++ b/host/commands/launch/main.cc
@@ -148,6 +148,8 @@
 std::string g_default_wifi_interface{GetPerInstanceDefault("cvd-wifi-")};
 DEFINE_string(wifi_interface, g_default_wifi_interface.c_str(),
               "Network interface to use for wifi");
+DEFINE_string(wifi_tap_name, GetPerInstanceDefault("awifi"),
+              "The name of the tap interface to use for wifi");
 // TODO(b/72969289) This should be generated
 DEFINE_string(dtb, DefaultHostArtifactsPath("config/cuttlefish.dtb"),
               "Path to the cuttlefish.dtb file");
@@ -536,6 +538,9 @@
   config->set_mobile_bridge_name(FLAGS_mobile_interface);
   config->set_mobile_tap_name(FLAGS_mobile_tap_name);
 
+  config->set_wifi_bridge_name(FLAGS_wifi_interface);
+  config->set_wifi_tap_name(FLAGS_wifi_tap_name);
+
   config->set_wifi_guest_mac_addr(FLAGS_guest_mac_address);
   config->set_wifi_host_mac_addr(FLAGS_host_mac_address);
 
diff --git a/host/libs/config/cuttlefish_config.cpp b/host/libs/config/cuttlefish_config.cpp
index ea0d5db..178ff0f 100644
--- a/host/libs/config/cuttlefish_config.cpp
+++ b/host/libs/config/cuttlefish_config.cpp
@@ -99,6 +99,8 @@
 
 const char* kMobileBridgeName = "mobile_bridge_name";
 const char* kMobileTapName = "mobile_tap_name";
+const char* kWifiBridgeName = "wifi_bridge_name";
+const char* kWifiTapName = "wifi_tap_name";
 const char* kWifiGuestMacAddr = "wifi_guest_mac_addr";
 const char* kWifiHostMacAddr = "wifi_host_mac_addr";
 const char* kEntropySource = "entropy_source";
@@ -295,6 +297,14 @@
   (*dictionary_)[kMobileBridgeName] = mobile_bridge_name;
 }
 
+std::string CuttlefishConfig::wifi_bridge_name() const {
+  return (*dictionary_)[kWifiBridgeName].asString();
+}
+void CuttlefishConfig::set_wifi_bridge_name(
+    const std::string& wifi_bridge_name) {
+  (*dictionary_)[kWifiBridgeName] = wifi_bridge_name;
+}
+
 std::string CuttlefishConfig::wifi_guest_mac_addr() const {
   return (*dictionary_)[kWifiGuestMacAddr].asString();
 }
@@ -318,6 +328,13 @@
   (*dictionary_)[kMobileTapName] = mobile_tap_name;
 }
 
+std::string CuttlefishConfig::wifi_tap_name() const {
+  return (*dictionary_)[kWifiTapName].asString();
+}
+void CuttlefishConfig::set_wifi_tap_name(const std::string& wifi_tap_name) {
+  (*dictionary_)[kWifiTapName] = wifi_tap_name;
+}
+
 std::string CuttlefishConfig::entropy_source() const {
   return (*dictionary_)[kEntropySource].asString();
 }
diff --git a/host/libs/config/cuttlefish_config.h b/host/libs/config/cuttlefish_config.h
index 9c1f53f..4451653 100644
--- a/host/libs/config/cuttlefish_config.h
+++ b/host/libs/config/cuttlefish_config.h
@@ -136,6 +136,12 @@
   std::string mobile_tap_name() const;
   void set_mobile_tap_name(const std::string& mobile_tap_name);
 
+  std::string wifi_bridge_name() const;
+  void set_wifi_bridge_name(const std::string& wifi_bridge_name);
+
+  std::string wifi_tap_name() const;
+  void set_wifi_tap_name(const std::string& wifi_tap_name);
+
   std::string wifi_guest_mac_addr() const;
   void set_wifi_guest_mac_addr(const std::string& wifi_guest_mac_addr);
 
diff --git a/host/libs/vm_manager/libvirt_manager.cpp b/host/libs/vm_manager/libvirt_manager.cpp
index a1c830d..bebe12d 100644
--- a/host/libs/vm_manager/libvirt_manager.cpp
+++ b/host/libs/vm_manager/libvirt_manager.cpp
@@ -316,6 +316,8 @@
 
   ConfigureNIC(devices, config->mobile_tap_name(), config->mobile_bridge_name(),
                vsoc::GetInstance(), 1);
+  ConfigureNIC(devices, config->wifi_tap_name(), config->wifi_bridge_name(),
+	       vsoc::GetInstance(), 2);
   ConfigureHWRNG(devices, config->entropy_source());
 
   xmlChar* tgt;
