Skip to content

openwrt: wifi roaming profile is hand-duplicated across router and AP #48

Description

@fosskar

From architecture review 2026-07-10.

Problem

The main wifi-iface profile (network=lan, mode=ap, ssid/key placeholders, encryption=sae-mixed, ieee80211r=1, ieee80211k=1, bss_transition=1) is written 4 times — router main_2g/main_5g (openwrt/devices/router/config.nix:160-217) + ap main0_2g/main1_5g (openwrt/devices/ap/config.nix:103-149). The usteer block is byte-identical in both files (router:78-82, ap:64-68), and the usteer/wpad package lists (plus the wpad-basic removePackages comment) are duplicated verbatim.

802.11r/k fast roaming + usteer band-steering only work if SSID, encryption, and the r/k/bss_transition flags match on every radio of every device — drift produces no error, just broken handoffs. Adding AP #3 means copying the whole 157-line ap/config.nix and tweaking IP + channels.

Direction

A shared roaming-profile attrset (and a dumb-AP base) under openwrt/ that both device configs import, so the cross-device roaming contract is stated once. This is a shared correctness invariant with two concrete consumers today, not cosmetic boilerplate — it passes the repo's bar for helper extraction (net lines deleted, second consumer exists).

Wins

  • the roaming contract has one source
  • adding an AP: IP + channels, not a 157-line copy
  • silent handoff breakage class removed

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    architectureArchitecture review findings

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions