1.3 KiB
ADR 0001: Protected Model, Not HBLink Structure
Status
Proposed
Context
FreeDMR current code is HBLink-derived and centred around bridge_master.py, hblink.py, configured MASTER/SYSTEM stanzas, global BRIDGES, Twisted, and the current dashboard/report model.
The valuable part is the operating model learned from real deployments: packet semantics, dial-a-TG, TG/DMR-ID-centric routing, loop control, source quench, mesh behaviour, RF-side tolerance, data forwarding, and practical amateur-radio interoperability.
Decision
The protected asset is FreeDMR behaviour/model, not the HBLink-derived object layout.
Rationale
HBLink-era structure blocks clarity, scaling, multi-client listeners, and testability. FreeDMR 2 should preserve validated packet behaviour while allowing cleaner internal models.
Consequences
FreeDMR 2 may replace legacy internal structures. Behaviour changes still require tests and live validation where protocol-visible.
Compatibility
Compatibility views may expose old shapes such as BRIDGES, MASTER, SYSTEM, or # reflector names, but they are adapters, not authoritative core state.
Testing Requirements
Regression tests must cover routing, dial-a-TG, loop control, source quench, data forwarding, and packet rewrite behaviour before internal models are replaced.