https://gitlab.synchro.net/main/sbbs/-/commit/5c5ad4d427e47dce536082cc
Added Files:
src/bench/zmodem/README.md fixA.patch fixB.patch matrix.sh zbench.py zbench_pty.py zbench_sock.py ztx_buf.c
Log Message:
bench/zmodem: add the ZMODEM benchmark harness
Tooling behind docs/zmodem_comparison.md and the (reverted) sexyz
throughput work, kept for the eventual redesign tracked in GitLab #1195:
- zbench_sock.py: the main harness (userspace relay with latency,
bandwidth-asymmetry, and forward bit-corruption injection; one
bidirectional socket per endpoint so it drives sexyz, lrzsz, and
Forsberg sz).
- zbench_pty.py / zbench.py: pty and two-pipe variants.
- ztx_buf.c: a SyncTERM-model sender linking the real zmodem.o behind a
buffered send_byte, to separate the zmodem.c cost from the sexyz.c cost.
- matrix.sh: block-size / CRC / latency / bandwidth / error sweeps.
- fixA.patch, fixB.patch: the reverted batching prototypes.
The README captures the design constraint the first attempt missed: a
correct batched sender must keep servicing the back-channel while sending
(the reverted prototypes blocked on a whole-subpacket flush and starved
ZRPOS handling under errors), and it must be gated on multi-run
error-recovery, not a single pass.
Co-Authored-By: Claude Opus 4.8 (1M context) <
noreply@anthropic.com>
--- SBBSecho 3.37-Linux
* Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)