From 19e04db115d3d0b70c340ca05d14f94fd71d981f Mon Sep 17 00:00:00 2001 From: Jack Doan Date: Mon, 24 Aug 2026 12:33:08 -0500 Subject: [PATCH] disable offloads by default for first release (#1858) --- examples/config.yml | 4 ++-- main.go | 2 +- overlay/tun_linux.go | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/examples/config.yml b/examples/config.yml index fc0282a9..20a85883 100644 --- a/examples/config.yml +++ b/examples/config.yml @@ -173,7 +173,7 @@ listen: # This setting is reloadable. #so_mark: 0 # the udp_offloads setting controls if Nebula will attempt to enable GSO and GRO for its UDP socket(s). Linux only, not reloadable. - # udp_offloads: true + # udp_offloads: false # Routines is the number of thread pairs to run that consume from the tun and UDP queues. # Currently, this defaults to 1 which means we have 1 tun queue reader and 1 @@ -268,7 +268,7 @@ tun: mtu: 1300 # the use_offloads setting controls if Nebula will attempt to enable GSO and GRO for the tun device. Linux only, not reloadable. - #use_offloads: true + #use_offloads: false # Linux only. pin_threads pins each tun reader/encrypt OS thread to a single CPU. This keeps every goroutine's # batched sends flowing through one XPS-selected NIC TX ring, so packets within a flow stay ordered on the wire diff --git a/main.go b/main.go index 1c243332..10de68b3 100644 --- a/main.go +++ b/main.go @@ -188,7 +188,7 @@ func Main(c *config.C, configTest bool, buildVersion string, l *slog.Logger, dev Listen: listen, Multi: routines > 1, Batch: batchSize, - Offloads: c.GetBool("listen.udp_offloads", true), + Offloads: c.GetBool("listen.udp_offloads", false), } udpServer, err := udp.NewListener(l, udpSettings) if err != nil { diff --git a/overlay/tun_linux.go b/overlay/tun_linux.go index 9b39458b..82d632d3 100644 --- a/overlay/tun_linux.go +++ b/overlay/tun_linux.go @@ -133,7 +133,7 @@ func newTun(c *config.C, l *slog.Logger, vpnNetworks []netip.Prefix, multiqueue baseFlags |= unix.IFF_MULTI_QUEUE } nameStr := c.GetString("tun.dev", "") - useOffloads := c.GetBool("tun.use_offloads", true) + useOffloads := c.GetBool("tun.use_offloads", false) var fd int var name string