feat(obs): report broadcast frame counters

PLAN.md calls out "Broadcast traffic flowing" as a user-facing diagnostic.
The tunnel stats only reported total Ethernet frame counts, so the client
could not distinguish whether broadcast traffic was actually crossing the
tunnel.

Add defaulted broadcast tx/rx counters to TunnelStats while preserving the
existing constructor and old JSON compatibility. Client and gateway accounting
now increments those counters from validated Ethernet frames, and the client
diagnostics line reports the broadcast flow next to total frame counts.

Relay peer stats logs include the new counters so operators can see broadcast
activity from forwarded stats snapshots too.

Test Plan:
- cargo fmt --check
- cargo test -p lanparty-obs -p lanparty-client-core -p lanparty-gateway \
  -p lanparty-client-win -p lanparty-relay
- cargo test --workspace
- cargo clippy --workspace --all-targets -- -D warnings
- git diff --check

Refs: PLAN.md
This commit is contained in:
2026-05-21 21:54:35 +02:00
parent 9722adbd70
commit 21a69626e0
8 changed files with 180 additions and 38 deletions
+6 -6
View File
@@ -203,9 +203,9 @@ adapter may need to be disabled/enabled or reinstalled before it reloads the
configured `NetworkAddress`.
It prints and reports client diagnostics snapshots with relay reachability,
LAN-gateway presence, route-pinning, QUIC datagram budget, TAP status/IP,
frame/datagram counters, and drops. The periodic diagnostics refresh the TAP
unicast IP so DHCP results that arrive after bridging starts become visible in
later status lines. Relay lifecycle events are logged as they arrive, including
gateway joins and peer leaves. The client remembers peer identities from join
and catch-up events so later leave logs can identify a disconnected LAN gateway
or client MAC when that peer was known.
broadcast frame flow, frame/datagram counters, and drops. The periodic
diagnostics refresh the TAP unicast IP so DHCP results that arrive after
bridging starts become visible in later status lines. Relay lifecycle events
are logged as they arrive, including gateway joins and peer leaves. The client
remembers peer identities from join and catch-up events so later leave logs can
identify a disconnected LAN gateway or client MAC when that peer was known.