tailscale/ipn
Mihai Parparita f4f8ed98d9 sockstats: add validation for TCP socket stats
We can use the TCP_CONNECTION_INFO getsockopt() on Darwin to get
OS-collected tx/rx bytes for TCP sockets. Since this API is not available
for UDP sockets (or on Linux/Android), we can't rely on it for actual
stats gathering.

However, we can use it to validate the stats that we collect ourselves
using read/write hooks, so that we can be more confident in them. We
do need additional hooks from the Go standard library (added in
tailscale/go#59) to be able to collect them.

Updates tailscale/corp#9230
Updates #3363

Signed-off-by: Mihai Parparita <mihai@tailscale.com>
2023-03-08 13:39:30 -08:00
..
ipnauth all: update copyright and license headers 2023-01-27 15:36:29 -08:00
ipnlocal sockstats: add validation for TCP socket stats 2023-03-08 13:39:30 -08:00
ipnserver all: update copyright and license headers 2023-01-27 15:36:29 -08:00
ipnstate ipn/ipnstate: update field docs on PeerStatus. 2023-02-08 15:23:05 -08:00
localapi wgengine/magicsock: track per-endpoint changes in ringbuffer 2023-03-07 13:53:03 -05:00
policy all: update copyright and license headers 2023-01-27 15:36:29 -08:00
store all: use Go 1.20's bytes.Clone 2023-02-01 17:39:18 -08:00
backend.go all: update copyright and license headers 2023-01-27 15:36:29 -08:00
doc.go all: update copyright and license headers 2023-01-27 15:36:29 -08:00
fake_test.go all: update copyright and license headers 2023-01-27 15:36:29 -08:00
ipn_clone.go all: update copyright and license headers 2023-01-27 15:36:29 -08:00
ipn_view.go all: update copyright and license headers 2023-01-27 15:36:29 -08:00
prefs_test.go all: update copyright and license headers 2023-01-27 15:36:29 -08:00
prefs.go all: update copyright and license headers 2023-01-27 15:36:29 -08:00
serve.go all: update copyright and license headers 2023-01-27 15:36:29 -08:00
store.go ipn: remove unused NLKeyStateKey constant 2023-02-08 11:19:28 -08:00