diff options
| author | Luke Hoersten <[email protected]> | 2026-07-15 18:04:31 -0500 |
|---|---|---|
| committer | Luke Hoersten <[email protected]> | 2026-07-15 18:04:31 -0500 |
| commit | 6ee12595d339eeafc7fdc7dbb9ba4c4c757f3565 (patch) | |
| tree | f83470042963c24b2eef87b54d7d484ff0ca11be /main/jpeg_decoder.h | |
| parent | 55303088ea499017c75203eef71588d18609f124 (diff) | |
stream: instrument TCP-window decomposition (wire kbps, hdr_gap, pend_age)
Before touching CONFIG_LWIP_TCP_WND_DEFAULT, make the window question
decidable from the logs. New per-window metrics in the stream log,
/state, and stats struct:
- wire min/avg/max kbps: instantaneous throughput while each body
drained (jpeg_len/recv_us). Ceiling ~= TCP_WND/RTT, so it scales
with the window iff the window is the limiter.
- hdr_gap min/avg/max us: time blocked waiting for the next header
after finishing a body. Large = sender-paced; ~0 = receive path
is the bottleneck.
- pend_age min/avg/max us: publish->claim latency of painted frames.
Growing across windows = queue backlog building, the failure mode
that killed the previous WND=65535 attempt.
Together with recv/dec/paint the frame interval is now fully
decomposable: interval ~= hdr_gap + recv + pend_age + dec + paint.
Also stamp TCP_WND/TCP_MSS/RECVMBOX into the client-connect log line
so every capture is self-labeled with the config it ran under.
Diffstat (limited to 'main/jpeg_decoder.h')
0 files changed, 0 insertions, 0 deletions
