aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/drivers/net/wireguard/device.c
diff options
context:
space:
mode:
authorDaniel Borkmann <daniel@iogearbox.net>2024-11-17 22:20:30 +0100
committerJakub Kicinski <kuba@kernel.org>2024-11-18 19:32:27 -0800
commit06a34f7db773e01efa8a90c5b4d912207a80dd60 (patch)
tree307759d8d81b3c2634b203c4d9019970fe87da59 /drivers/net/wireguard/device.c
parentwireguard: selftests: load nf_conntrack if not present (diff)
downloadwireguard-linux-06a34f7db773e01efa8a90c5b4d912207a80dd60.tar.xz
wireguard-linux-06a34f7db773e01efa8a90c5b4d912207a80dd60.zip
wireguard: device: support big tcp GSO
Advertise GSO_MAX_SIZE as TSO max size in order support BIG TCP for wireguard. This helps to improve wireguard performance a bit when enabled as it allows wireguard to aggregate larger skbs in wg_packet_consume_data_done() via napi_gro_receive(), but also allows the stack to build larger skbs on xmit where the driver then segments them before encryption inside wg_xmit(). We've seen a 15% improvement in TCP stream performance. Signed-off-by: Daniel Borkmann <daniel@iogearbox.net> Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com> Link: https://patch.msgid.link/20241117212030.629159-5-Jason@zx2c4.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'drivers/net/wireguard/device.c')
-rw-r--r--drivers/net/wireguard/device.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/net/wireguard/device.c b/drivers/net/wireguard/device.c
index a2ba71fbbed4..6cf173a008e7 100644
--- a/drivers/net/wireguard/device.c
+++ b/drivers/net/wireguard/device.c
@@ -302,6 +302,8 @@ static void wg_setup(struct net_device *dev)
/* We need to keep the dst around in case of icmp replies. */
netif_keep_dst(dev);
+ netif_set_tso_max_size(dev, GSO_MAX_SIZE);
+
wg->dev = dev;
}