wgengine/netstack/gro: permit building without GRO

This only saves ~32KB in the minimal linux/amd64 binary, but it's a
step towards permitting not depending on gvisor for small builds.

Updates #17283

Change-Id: Iae8da5e9465127de354dbcaf25e794a6832d891b
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
This commit is contained in:
Brad Fitzpatrick
2025-09-25 13:19:11 -07:00
committed by Brad Fitzpatrick
parent f2b8d37436
commit b3ae1cb0cc
9 changed files with 51 additions and 8 deletions
@@ -0,0 +1,13 @@
// Copyright (c) Tailscale Inc & AUTHORS
// SPDX-License-Identifier: BSD-3-Clause
// Code generated by gen.go; DO NOT EDIT.
//go:build ts_omit_gro
package buildfeatures
// HasGRO is whether the binary was built with support for modular feature "Generic Receive Offload support (performance)".
// Specifically, it's whether the binary was NOT built with the "ts_omit_gro" build tag.
// It's a const so it can be used for dead code elimination.
const HasGRO = false
@@ -0,0 +1,13 @@
// Copyright (c) Tailscale Inc & AUTHORS
// SPDX-License-Identifier: BSD-3-Clause
// Code generated by gen.go; DO NOT EDIT.
//go:build !ts_omit_gro
package buildfeatures
// HasGRO is whether the binary was built with support for modular feature "Generic Receive Offload support (performance)".
// Specifically, it's whether the binary was NOT built with the "ts_omit_gro" build tag.
// It's a const so it can be used for dead code elimination.
const HasGRO = true
+1
View File
@@ -106,6 +106,7 @@ var Features = map[FeatureTag]FeatureMeta{
},
"desktop_sessions": {"DesktopSessions", "Desktop sessions support", nil},
"drive": {"Drive", "Tailscale Drive (file server) support", nil},
"gro": {"GRO", "Generic Receive Offload support (performance)", nil},
"kube": {"Kube", "Kubernetes integration", nil},
"linuxdnsfight": {"LinuxDNSFight", "Linux support for detecting DNS fights (inotify watching of /etc/resolv.conf)", nil},
"oauthkey": {"OAuthKey", "OAuth secret-to-authkey resolution support", nil},