Repository navigation
CI test: prplmesh init preflight + fchmod restore - #13
Conversation
Add the prplMesh 6.0.1 EasyMesh controller and agent for stock OpenWrt. The package keeps the installed hostapd/wpad stack and drives it over the existing UCI, ubus, nl80211 and hostapd control sockets. The hostapd control interface client is a small self-contained implementation added by patch 120, so no hostapd source tree is downloaded, bundled or duplicated at build time and the system hostapd stays the only hostapd. Binaries install under /usr/libexec/prplmesh, read-only data under /usr/share/prplmesh, shared libraries under /usr/lib, configuration under /etc/config/prplmesh. Of the prplOS helper scripts only prplmesh_utils.sh is installed: patch 161 teaches its platform guard stock OpenWrt and the init's daily log roller invokes it; the other helpers stay uninstalled. Stock builds run without NBAPI, so the controller skips the CurrentOperatingClassProfile data-model cleanup for radios without a data model path, and legacy vendor diagnostic measurements default to off while standard EasyMesh metrics stay enabled. The controller also registers radios that appear only in Topology Responses: some stock agents never run WSC onboarding for a band (Wi-Fi 7 units and their 6 GHz radio), and such radios, their BSSes and their clients stayed invisible otherwise. The init preflights every binary the selected management mode needs before registering any procd instance, and the example credentials ship empty so an enabled but unconfigured service fails validation loudly instead of deploying a published passphrase. A test-version.sh verifies the installed version from the shipped version file instead of probing daemons. Production log levels default to error, info, warning and fatal for file and syslog output of both daemons, log retention is enforced by the upstream roll helper (its platform guard now accepts openwrt) driven from a procd-supervised daily roller, and link-metrics reporting no longer warns about wireless-capable radios deliberately not used for backhaul. An earlier revision of this integration, differing only in the wpa_ctrl client origin and the install prefix, runs on OpenWrt 25.12.5 mediatek/mt7622 with two Ethernet-connected EasyMesh agents. Signed-off-by: Andrei Ovcharenko <[email protected]>
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 40c5c9fe11
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| + if (!m_handled_clients.insert(sta_mac).second) { | ||
| + continue; // seen earlier in this sweep | ||
| + } | ||
| + if (!associated) { | ||
| + continue; // authenticated but not associated |
There was a problem hiding this comment.
Exclude unassociated stations from the handled set
When a previously tracked client remains in hostapd as authenticated but no longer associated and its disconnect event was missed, this inserts its MAC into m_handled_clients before checking associated. The reconciliation loop then treats that MAC as still present and suppresses the stale-disconnect notification, so m_connected_clients and the controller topology can retain the disconnected client across every periodic sweep. Only associated stations should enter the set used to suppress reconciliation.
Useful? React with 👍 / 👎.
Fork matrix for PR head e00f415 (openwrt#30071): helper preflight before any procd registration, fchmod-before-bind restored per review, upstream-reference headers, trimmed package test. CI validation only.