Skip to content

Latest commit

 

History

History
40 lines (34 loc) · 1.47 KB

File metadata and controls

40 lines (34 loc) · 1.47 KB

Architecture

Layering

Application:  messaging, voice, cli, telemetry, localization
Transport:    ACK, retransmit, fragmentation, priority queue, dedup
Network:      mesh routing (HELLO + AODV-lite), TTL, store-and-forward
Security:     AES-128-CCM, KDF, replay, IDS (cross-cutting)
MAC:          CSMA-CA / LBT, duty-cycle limiter, framing, CRC
HAL:          radio_if, timer_if, rng_if, storage_if, power_if

Each layer is a header in include/altnet/ and an implementation in src/. The HAL is interface-only — concrete implementations live in src/hal/<platform>/.

Memory budgets (target)

Item AVR (Uno) ESP12F
Static RAM ≤ 1.5 KB ≤ 24 KB
Stack peak ≤ 256 B ≤ 2 KB
Flash ≤ 24 KB ≤ 256 KB
Neighbor table 8 entries 32 entries
Route table 8 32
Reassembly slots 1 4
Voice buffer n/a (ADPCM 256 B) 4 KB jitter

Threading model

  • AVR: cooperative; one altnet_loop() call per Arduino loop().
  • ESP8266: cooperative on the same core; integrates with yield() and WiFi event loop.
  • No RTOS dependency; all timers are derived from timer_if::millis().

Build matrix

  • Host (Linux/macOS) — for unit tests + simulator (-DALTNET_HOST=1).
  • AVR (-DALTNET_AVR=1) — Uno/Nano/Pro Mini.
  • ESP8266 (-DALTNET_ESP8266=1) — ESP12F, NodeMCU.

See PROTOCOL.md, SECURITY.md, ROADMAP.md, TESTING.md.