tailscale/net/tstun
Jordan Whited df6014f1d7
net/tstun,wgengine{/netstack/gro}: refactor and re-enable gVisor GRO for Linux (#13172)
In 2f27319baf we disabled GRO due to a
data race around concurrent calls to tstun.Wrapper.Write(). This commit
refactors GRO to be thread-safe, and re-enables it on Linux.

This refactor now carries a GRO type across tstun and netstack APIs
with a lifetime that is scoped to a single tstun.Wrapper.Write() call.

In 25f0a3fc8f we used build tags to
prevent importation of gVisor's GRO package on iOS as at the time we
believed it was contributing to additional memory usage on that
platform. It wasn't, so this commit simplifies and removes those
build tags.

Updates tailscale/corp#22353
Updates tailscale/corp#22125
Updates #6816

Signed-off-by: Jordan Whited <jordan@tailscale.com>
2024-08-20 15:22:19 -07:00
..
fake.go cmd/tailscaled,net/tstun: fix data race on start-up in TUN mode 2023-10-14 08:54:30 -07:00
ifstatus_noop.go all: update copyright and license headers 2023-01-27 15:36:29 -08:00
ifstatus_windows.go all: update copyright and license headers 2023-01-27 15:36:29 -08:00
linkattrs_linux.go all: update copyright and license headers 2023-01-27 15:36:29 -08:00
linkattrs_notlinux.go all: update copyright and license headers 2023-01-27 15:36:29 -08:00
mtu_test.go disco,net/tstun,wgengine/magicsock: probe peer MTU 2023-10-09 01:57:12 -07:00
mtu.go disco,net/tstun,wgengine/magicsock: probe peer MTU 2023-10-09 01:57:12 -07:00
tap_linux.go go.mod,*: bump gvisor 2023-09-28 16:17:16 -07:00
tap_unsupported.go all: update copyright and license headers 2023-01-27 15:36:29 -08:00
tstun_stub.go cmd/tailscaled, net/tstun: build for aix/ppc64 2024-04-13 11:03:22 -07:00
tun_features_linux.go net/tstun: implement env var for disabling UDP GRO on Linux (#11924) 2024-04-30 09:14:02 -07:00
tun_features_notlinux.go net/tstun: implement env var for disabling UDP GRO on Linux (#11924) 2024-04-30 09:14:02 -07:00
tun_linux.go all: update copyright and license headers 2023-01-27 15:36:29 -08:00
tun_macos.go all: update copyright and license headers 2023-01-27 15:36:29 -08:00
tun_notwindows.go all: update copyright and license headers 2023-01-27 15:36:29 -08:00
tun_windows.go all: update copyright and license headers 2023-01-27 15:36:29 -08:00
tun.go net/tstun: implement env var for disabling UDP GRO on Linux (#11924) 2024-04-30 09:14:02 -07:00
wrap_test.go net/tstun,wgengine{/netstack/gro}: refactor and re-enable gVisor GRO for Linux (#13172) 2024-08-20 15:22:19 -07:00
wrap.go net/tstun,wgengine{/netstack/gro}: refactor and re-enable gVisor GRO for Linux (#13172) 2024-08-20 15:22:19 -07:00