tailscale/wgengine
James Tucker 4903d6c80b wgengine/netstack: block link writes when full rather than drop
Originally identified by Coder and documented in their blog post, this
implementation differs slightly as our link endpoint was introduced for
a different purpose, but the behavior is the same: apply backpressure
rather than dropping packets. This reduces the negative impact of large
packet count bursts substantially. An alternative would be to swell the
size of the channel buffer substantially, however that's largely just
moving where buffering occurs and may lead to reduced signalling back to
lower layer or upstream congestion controls.

Updates #9707
Updates #10408
Updates #12393
Updates tailscale/corp#24483
Updates tailscale/corp#25169

Signed-off-by: James Tucker <james@tailscale.com>
2025-02-06 16:17:25 -08:00
..
bench ipn/ipnlocal, all: plumb health trackers in tests 2024-05-07 22:22:10 -07:00
filter wgengine/filter: add check for unknown proto 2025-01-24 12:20:44 +01:00
magicsock feature/capture: move packet capture to feature/*, out of iOS + CLI 2025-01-24 17:52:43 -08:00
netlog wgengine: add exit destination logging enable for wgengine logger (#11952) 2024-05-02 13:55:05 -04:00
netstack wgengine/netstack: block link writes when full rather than drop 2025-02-06 16:17:25 -08:00
router wgengine/router: refactor udm-pro into broader ubnt support 2025-01-03 13:06:16 -05:00
wgcfg wgengine/wgcfg/nmcfg: coalesce, limit some debug logs 2025-02-03 10:36:36 -08:00
wgint wgengine{,/wgint}: add wgint.Peer wrapper type, add to wgengine.Engine 2024-02-28 09:50:18 -08:00
wglog all: use Go 1.22 range-over-int 2024-04-16 15:32:38 -07:00
winnet all: add test for package comments, fix, add comments as needed 2024-07-10 09:57:00 -07:00
mem_ios.go all: update copyright and license headers 2023-01-27 15:36:29 -08:00
pendopen.go all: add Node.HomeDERP int, phase out "127.3.3.40:$region" hack [capver 111] 2025-01-14 12:27:14 -08:00
userspace_ext_test.go util/usermetrics: make usermetrics non-global 2024-09-25 15:57:00 +02:00
userspace_test.go util/usermetrics: make usermetrics non-global 2024-09-25 15:57:00 +02:00
userspace.go feature/capture: move packet capture to feature/*, out of iOS + CLI 2025-01-24 17:52:43 -08:00
watchdog_js.go all: update copyright and license headers 2023-01-27 15:36:29 -08:00
watchdog_test.go util/usermetrics: make usermetrics non-global 2024-09-25 15:57:00 +02:00
watchdog.go feature/capture: move packet capture to feature/*, out of iOS + CLI 2025-01-24 17:52:43 -08:00
wgengine.go feature/capture: move packet capture to feature/*, out of iOS + CLI 2025-01-24 17:52:43 -08:00