diff --git a/net_util/src/open_tap.rs b/net_util/src/open_tap.rs index 95f10ee23..c162f967a 100644 --- a/net_util/src/open_tap.rs +++ b/net_util/src/open_tap.rs @@ -65,6 +65,7 @@ pub fn open_tap( netmask: Option, host_mac: &mut Option, num_rx_q: usize, + flags: Option, ) -> Result> { let mut taps: Vec = Vec::new(); let mut ifname: String = String::new(); @@ -82,7 +83,7 @@ pub fn open_tap( let tap: Tap; if i == 0 { tap = match if_name { - Some(name) => Tap::open_named(name, num_rx_q, None).map_err(Error::TapOpen)?, + Some(name) => Tap::open_named(name, num_rx_q, flags).map_err(Error::TapOpen)?, None => Tap::new(num_rx_q).map_err(Error::TapOpen)?, }; if let Some(ip) = ip_addr { @@ -104,7 +105,7 @@ pub fn open_tap( ifname = String::from_utf8(tap.get_if_name()).unwrap(); } else { - tap = Tap::open_named(ifname.as_str(), num_rx_q, None).map_err(Error::TapOpen)?; + tap = Tap::open_named(ifname.as_str(), num_rx_q, flags).map_err(Error::TapOpen)?; tap.set_offload(flag).map_err(Error::TapSetOffload)?; tap.set_vnet_hdr_size(vnet_hdr_size) diff --git a/vhost_user_net/src/lib.rs b/vhost_user_net/src/lib.rs index 5555cd62b..d79d7deba 100644 --- a/vhost_user_net/src/lib.rs +++ b/vhost_user_net/src/lib.rs @@ -143,6 +143,7 @@ impl VhostUserNetBackend { Some(netmask), &mut Some(host_mac), num_queues / 2, + None, ) .map_err(Error::OpenTap)?; diff --git a/virtio-devices/src/net.rs b/virtio-devices/src/net.rs index 9d00ac77d..265a4e77f 100644 --- a/virtio-devices/src/net.rs +++ b/virtio-devices/src/net.rs @@ -283,7 +283,7 @@ impl Net { queue_size: u16, seccomp_action: SeccompAction, ) -> Result { - let taps = open_tap(if_name, ip_addr, netmask, host_mac, num_queues / 2) + let taps = open_tap(if_name, ip_addr, netmask, host_mac, num_queues / 2, None) .map_err(Error::OpenTap)?; Self::new_with_tap(