Lab / / experiment

A control that proves the faults landed

"Every recoverable packet came back" is a claim a broken injector could also make. Running the same seeds with retransmission off left 19 / 113 / 314 permanent holes.

Controls, WebRTC, Measurement methodologyKeryx
Machine
UNKNOWN — the integration tests do not state one
Commit
`cacb70c`, 2026-08-25
Stream
2,098 packets
Permanent holes, retransmission off
19 / 113 / 314 at 1% / 5% / 15% loss
Repairs, retransmission on
every packet the receiver could detect as missing

The fault injector splices in under the sender's SRTP and drops, duplicates, reorders and delays media datagrams while STUN, DTLS and RTCP pass through untouched. That placement is the design: injecting loss below SRTP makes the fault indistinguishable from a real network to everything above it, and injecting only into media datagrams keeps the handshake healthy, so the test measures the media path rather than whether the connection survived.

At 1%, 5% and 15% uniform loss and under ten-packet bursts, every packet the receiver could detect as missing came back. That is the claim. It is also a claim a completely broken injector could satisfy, because an injector that injects nothing loses nothing.

So I ran it again with retransmission off

Same seeds, retransmission switched off: exactly those packets stay lost. On a 2,098-packet stream that is 19 / 113 / 314 permanent holes, monotonically increasing with the loss rate, as it must.

ArmResult
retransmission onevery detectable missing packet returned
retransmission off, 1% / 5% / 15%19 / 113 / 314 permanent holes
stream size2,098 packets
Direction: the repair arm is a recovery count, where higher is better. The hole counts are a control rather than a product result — they are packets that never came back, and they are the evidence that the faults were real.