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>
This commit is contained in:
Mihai Parparita
2023-03-07 16:29:41 -08:00
committed by Mihai Parparita
parent 6eca47b16c
commit f4f8ed98d9
5 changed files with 106 additions and 19 deletions

View File

@@ -1 +1 @@
fb11c0df588717a3ee13b09dacae1e7093279d67
db4dc9046c93dde2c0e534ca7d529bd690ad09c9