From b945a341b3b523cd43a2adb58159359283d08d7c Mon Sep 17 00:00:00 2001 From: Rob Bradford Date: Mon, 26 Apr 2021 16:30:44 +0100 Subject: [PATCH] net_util: Don't always set the tap offload Setting the tap offload should only be done based on the features that are acked by the guest. Therefore it is incorrect to set these upon opening the tap. Signed-off-by: Rob Bradford --- net_util/src/open_tap.rs | 3 --- net_util/src/tap.rs | 3 --- 2 files changed, 6 deletions(-) diff --git a/net_util/src/open_tap.rs b/net_util/src/open_tap.rs index c162f967a..a886ca58d 100644 --- a/net_util/src/open_tap.rs +++ b/net_util/src/open_tap.rs @@ -70,7 +70,6 @@ pub fn open_tap( let mut taps: Vec = Vec::new(); let mut ifname: String = String::new(); let vnet_hdr_size = vnet_hdr_len() as i32; - let flag = net_gen::TUN_F_CSUM | net_gen::TUN_F_UFO | net_gen::TUN_F_TSO4 | net_gen::TUN_F_TSO6; // In case the tap interface already exists, check if the number of // queues is appropriate. The tap might not support multiqueue while @@ -98,7 +97,6 @@ pub fn open_tap( *host_mac = Some(tap.get_mac_addr().map_err(Error::TapGetMac)?) } tap.enable().map_err(Error::TapEnable)?; - tap.set_offload(flag).map_err(Error::TapSetOffload)?; tap.set_vnet_hdr_size(vnet_hdr_size) .map_err(Error::TapSetVnetHdrSize)?; @@ -106,7 +104,6 @@ pub fn open_tap( ifname = String::from_utf8(tap.get_if_name()).unwrap(); } else { 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) .map_err(Error::TapSetVnetHdrSize)?; diff --git a/net_util/src/tap.rs b/net_util/src/tap.rs index bb45bb890..b074b71e4 100644 --- a/net_util/src/tap.rs +++ b/net_util/src/tap.rs @@ -191,10 +191,7 @@ impl Tap { } let tap = Tap { tap_file, if_name }; - let offload_flags = - net_gen::TUN_F_CSUM | net_gen::TUN_F_UFO | net_gen::TUN_F_TSO4 | net_gen::TUN_F_TSO6; let vnet_hdr_size = vnet_hdr_len() as i32; - tap.set_offload(offload_flags)?; tap.set_vnet_hdr_size(vnet_hdr_size)?; Ok(tap)