c87033f74c
The relay now applies a small token bucket to broadcast and multicast frames originating from remote clients. Those frames are necessary for ARP, DHCP, and LAN discovery, but they are also the easiest way for one remote peer to flood every participant and the LAN gateway. When a client exceeds the burst budget, the relay returns a rate-limited forwarding decision instead of forwarding the frame. This is intentionally only the first rate-limit slice from PLAN.md. Unknown unicast limits and total bandwidth limits remain separate follow-up work. The limiter lives in room state because forwarding policy already knows the ingress role, destination MAC, and room membership, and tests can drive it with explicit Instants without involving QUIC timing. Test Plan: - cargo fmt --check - cargo test -p lanparty-relay - cargo clippy -p lanparty-relay --all-targets -- -D warnings - cargo test --workspace - cargo clippy --workspace --all-targets -- -D warnings - git diff --check Refs: PLAN.md