You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
FreeDMR/docs/freedmr-2/adr/0001-protected-model-not-hb...

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.

Powered by TurnKey Linux.