tailscale/shell.nix
Brad Fitzpatrick 5e33c4125f tstest/natlab/vmtest: add buggy Linux 7.0 gokrazy repro
Add a GokrazyBuggyLinux70 VM image that boots the Linux 7.0 kernel
package from github.com/tailscale/gokrazy-kernel-buggy-linux-7_0 under
QEMU q35 with the emulated igb NIC. The image lets vmtest exercise the
UDP GSO regression independently of the host kernel version.

Add TTA helpers to report ethtool netdev features and to run a TCP
bulk-send probe between VMs. The diagnostic test verifies that QEMU's
igb path exposes tx-udp-segmentation and tx-gso-partial.

The mitigation test boots a buggy gokrazy node and a regular gokrazy
node, demonstrates that a TCP transfer stalls without
never-gso-equal-tail, then applies the node attribute and verifies the
same transfer succeeds.

Updates #19777

Change-Id: I21f1e5dc85d556eb514ffa361ee39aad142b7f2b
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
2026-05-29 21:16:50 +00:00

20 lines
788 B
Nix

# This is a shell.nix file used to describe the environment that
# tailscale needs for development.
#
# For more information about this and why this file is useful, see here:
# https://nixos.org/guides/nix-pills/developing-with-nix-shell.html
#
# Also look into direnv: https://direnv.net/, this can make it so that you can
# automatically get your environment set up when you change folders into the
# project.
(import (
let
lock = builtins.fromJSON (builtins.readFile ./flake.lock);
in fetchTarball {
url = "https://github.com/edolstra/flake-compat/archive/${lock.nodes.flake-compat.locked.rev}.tar.gz";
sha256 = lock.nodes.flake-compat.locked.narHash; }
) {
src = ./.;
}).shellNix
# nix-direnv cache busting line: sha256-GT74VncdnlHQS8aExeOB4oJrGXAkllRBcfNkvAmMjt0=