You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tailscale/wgengine
Brad Fitzpatrick 36b1b4af2f wgengine/filter: split local+logging lookups by IPv4-vs-IPv6
If we already know it's an incoming IPv4 packet, no need to match
against the set of IPv6s and vice versa.

    goos: darwin
    goarch: arm64
    pkg: tailscale.com/wgengine/filter
                                         │   before    │                after                │
                                         │   sec/op    │   sec/op     vs base                │
    FilterMatch/not-local-v4-8             21.40n ± 3%   16.04n ± 1%  -25.09% (p=0.000 n=10)
    FilterMatch/not-local-v6-8             20.75n ± 9%   15.71n ± 0%  -24.31% (p=0.000 n=10)
    FilterMatch/no-match-v4-8              81.37n ± 1%   78.57n ± 3%   -3.43% (p=0.005 n=10)
    FilterMatch/no-match-v6-8              77.73n ± 2%   73.71n ± 3%   -5.18% (p=0.002 n=10)
    FilterMatch/tcp-not-syn-v4-8           21.41n ± 3%   16.86n ± 0%  -21.25% (p=0.000 n=10)
    FilterMatch/tcp-not-syn-v4-no-logs-8   10.04n ± 0%   10.05n ± 0%        ~ (p=0.446 n=10)
    geomean                                29.07n        25.05n       -13.84%

Updates #12486

Change-Id: I70e5024af03893327d26629a994ab2aa9811f4f3
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
2 years ago
..
bench ipn/ipnlocal, all: plumb health trackers in tests 2 years ago
capture various: add golangci-lint, fix issues (#7905) 3 years ago
filter wgengine/filter: split local+logging lookups by IPv4-vs-IPv6 2 years ago
magicsock wgengine/magicsock: use math/rands/v2 2 years ago
netlog wgengine: add exit destination logging enable for wgengine logger (#11952) 2 years ago
netstack wgengine/netstack: add test for #12448 2 years ago
router health: begin work to use structured health warnings instead of strings, pipe changes into ipn.Notify (#12406) 2 years ago
wgcfg ipn,wgengine: remove vestigial Prefs.AllowSingleHosts 2 years ago
wgint wgengine{,/wgint}: add wgint.Peer wrapper type, add to wgengine.Engine 2 years ago
wglog all: use Go 1.22 range-over-int 2 years ago
winnet all: update copyright and license headers 3 years ago
mem_ios.go all: update copyright and license headers 3 years ago
pendopen.go wgengine: make pendOpen time later, after dup check 2 years ago
userspace.go net/dns: don't set MatchDomains on Apple platforms when no upstream nameservers available (#12334) 2 years ago
userspace_ext_test.go ipn/ipnlocal, all: plumb health trackers in tests 2 years ago
userspace_test.go ipn/ipnlocal, all: plumb health trackers in tests 2 years ago
watchdog.go ipn/ipnlocal,net/tstun,wgengine: create and plumb jailed packet filter 2 years ago
watchdog_js.go all: update copyright and license headers 3 years ago
watchdog_test.go ipn/ipnlocal, all: plumb health trackers in tests 2 years ago
wgengine.go ipn/ipnlocal,net/tstun,wgengine: create and plumb jailed packet filter 2 years ago