feat(openwrt): declarative wireless scope + move 5GHz to DFS ch100 #100
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "feat/openwrt-declarative-wireless"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
What
Adds a
wirelessscope to the declarative OpenWrt manager (infrastructure/openwrt/), mirroring the existing dns/firewall subsystems, and moves the 5GHz radio to clean spectrum.Why
Investigating whether smart plugs were hurting WiFi surfaced the real issue: the single AP (ASUS TUF-AX6000) had its 5GHz on ch36/HE80, whose 80MHz block overlaps a 14-AP neighbor on ch44. A scan found the DFS band completely empty. The router was also on the world regdomain (
country 00), which is a misconfig and blocks DFS AP transmit.Changes
wireless.yaml(new) — per-radiochannel/htmode/country, keyed by band.openwrt.sh—wirelesswired into bootstrap/validate/diff/sync/export/status/restore. Applies viawifi reload.README.md— scope + secret caveat, DFS/regdomain note (ch149/HE40 fallback), device→band routing table.Scope guarantee
Manages only
wifi-deviceradio sections — neverwifi-iface(SSIDs/keys/PSKs stay out of git).Intent applied
country=US.country=USunlocks DFS transmit.Verification
openwrt validate→ 0 errors.openwrt diff wireless→ shows exactly:2g.country -> US,5g.channel 36 -> 100,5g.country -> US.openwrt sync wireless, confirmiwinfo phy1-ap0 inforeports ch100 after DFS CAC, watchlogreadfor radar events.Extend the declarative OpenWrt manager with a `wireless` subsystem, mirroring the existing dns/firewall pattern: bootstrap/validate/diff/sync/export/status/ restore all learn a `wireless` scope backed by a new `wireless.yaml`. Scope is deliberately narrow — per-radio channel/htmode/country only, keyed by band and resolved to the wifi-device section by its own `band`. It never touches wifi-iface sections, so SSIDs/keys/PSKs stay out of git. Wireless intent: - 2.4GHz: keep ch6/HE20 (least-congested of {1,6,11} by scan); set country=US. - 5GHz: move ch36→100 (DFS/UNII-2C, scanned empty; off the congested 36-48 block that overlapped a 14-AP neighbor). country=US unlocks DFS AP transmit (world domain forbids it via no-IR). README documents the scope, the DFS/regdomain caveat + ch149/HE40 fallback, and a device→band routing table (5GHz for phones/laptops, 2.4GHz reserved for IoT). Applied via `openwrt sync wireless` (wifi reload; DFS adds ~60s CAC).