#17's time_scale runs the audio pipeline N× faster than wall clock and works for receive-path/mixer experiments, but measured end-to-end with ACKMODE hosts it desyncs: samoyed paces transmissions in wall-clock time (xmit_ax25_frames' real-airtime sleep before PTT release, plus CSMA persist/slottime waits), so the TNC transmits at 1× while the channel consumes at N×. TX throughput stays wall-clock-bound and ACKMODE echoes (correctly delivered at PTT release since packet-net/samoyed#1) arrive N× late relative to a host whose protocol timers are scaled to match. Measured with packet.net's Packet.LinkBench at time_scale 5: every transfer failed; dropping to 1.0 restored correct behaviour. README documents the limitation as of #17.
Fix direction: a samoyed-side speed factor (scale the wait_more sleep + CSMA waits by 1/N; rendering is already sample-count-driven), passed down by net-sim alongside time_scale — then accelerated full-stack testing is sound and a 10-minute sustained-transfer run becomes ~1 minute at ×10. (Filed here because the samoyed fork has issues disabled; the net-sim side would also need to plumb the factor into the generated TNC config/flags.)
🤖 Generated with Claude Code
#17's
time_scaleruns the audio pipeline N× faster than wall clock and works for receive-path/mixer experiments, but measured end-to-end with ACKMODE hosts it desyncs: samoyed paces transmissions in wall-clock time (xmit_ax25_frames' real-airtime sleep before PTT release, plus CSMA persist/slottime waits), so the TNC transmits at 1× while the channel consumes at N×. TX throughput stays wall-clock-bound and ACKMODE echoes (correctly delivered at PTT release since packet-net/samoyed#1) arrive N× late relative to a host whose protocol timers are scaled to match. Measured with packet.net's Packet.LinkBench at time_scale 5: every transfer failed; dropping to 1.0 restored correct behaviour. README documents the limitation as of #17.Fix direction: a samoyed-side speed factor (scale the wait_more sleep + CSMA waits by 1/N; rendering is already sample-count-driven), passed down by net-sim alongside time_scale — then accelerated full-stack testing is sound and a 10-minute sustained-transfer run becomes ~1 minute at ×10. (Filed here because the samoyed fork has issues disabled; the net-sim side would also need to plumb the factor into the generated TNC config/flags.)
🤖 Generated with Claude Code