Skip to content

sana2loop v1.0

Choose a tag to compare

@github-actions github-actions released this 31 Jul 16:18
· 13 commits to main since this release

sana2loop builds loopback.device, a hardware-free SANA-II network
device for AmigaOS: echo, crossover, and pcap replay/capture modes,
plus companion Shell tools (SanaInfo, SanaDump, SanaSend, SanaConform).
No null/dummy SANA-II device has ever existed before this, despite
being the obvious first tool for testing any network stack, shim, or
driver-consuming software - deterministically, with zero hardware and
zero emulator network support required.

Features:

  • Echo mode: a CMD_WRITE is delivered straight back to a matching queued
    CMD_READ (typed, orphan, or a bounded rxqueue), with real SANA-II
    src/dst address semantics.
  • Crossover mode: pair two units so traffic written to one is
    delivered to the other, with real unswapped addressing and
    unicast/broadcast/multicast/promiscuous receive filtering.
  • Real SANA-II buffer-management hooks (S2_CopyToBuff/CopyFromBuff/
    PacketFilter), broadcast/multicast writes and group membership,
    S2_ONEVENT, global/type/special stats, and per-unit config files
    (ENV:/S: sana2loop/unitN.config).
  • Fault injection pipeline, all off by default: packet drop, duplicate,
    truncate, reorder, forced online/offline flapping, and an
    "oversilent" PMTUD black hole - an overlong crossover write
    vanishes silently instead of erroring, so a stack's actual PMTUD
    black-hole detection/recovery can be tested, not just assumed - all
    seeded and reproducible.
  • pcap replay (on-demand or real-time VBlank-scheduled) and pcap
    recording, both driven off a hand-rolled classic pcap reader/writer
    with no host dependency.
  • SANA-II Rev 2/3/4/7 conformance: wider buffer-management hooks
    (S2_CopyToBuff16/32, genuinely invoked, not just accepted),
    S2_GETPEERADDRESS/S2_GETDNSADDRESS, Sana2DeviceQuery.RawMTU, and Rev 7
    DMA hook negotiation (accepted and counted, gracefully never invoked).
  • Companion Shell tools: SanaInfo (open/query/online-offline a unit),
    SanaDump (capture a unit's traffic to a pcap file), SanaSend (replay a
    pcap file's frames onto a unit), SanaConform (probes a unit's SANA-II
    Rev 2/3/4/7 conformance and reports what it finds).
  • Targets plain 68000 and Kickstart 1.3 for the device itself - a test
    tool's value is universality, and nothing here needs more.

See docs/PLAN.md for the full milestone history and the full documentation site (also included as sana2loop.guide in this release's archive).