Skip to content

CI test: prplmesh formatting round - #16

Merged
krotname merged 2 commits into
masterfrom
ci/prplmesh-forkci
Aug 16, 2026
Merged

krotname merged 2 commits into
masterfrom
ci/prplmesh-forkci

Conversation

@krotname

Copy link
Copy Markdown
Owner

Fork-CI matrix for openwrt#30071 head 92d50f6. Not for merge.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 26baefbdce

ℹ️ 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".

Comment on lines +352 to +354
+ // Only an empty reply is a clean end-of-list; FAIL past the
+ // restart budget leaves the VAP only partially walked.
+ vap_enumerated = text.empty();

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Treat hostapd FAIL as normal station-list termination

When STA-FIRST finds no station, or STA-NEXT reaches the end of a populated BSS, hostapd returns FAIL, not an empty reply. This branch consequently retries normal completed walks and then leaves vap_enumerated false, so the later reconciliation skips that VAP and clients whose disconnect event was missed remain permanently recorded as connected. The normal end-of-list FAIL must be recognized, while handling a genuinely vanished cursor separately.

Useful? React with 👍 / 👎.

@krotname
krotname force-pushed the ci/prplmesh-forkci branch from 26baefb to aa540ea Compare August 13, 2026 19:39
@krotname krotname closed this Aug 13, 2026
@krotname krotname reopened this Aug 13, 2026
@krotname krotname closed this Aug 14, 2026
@krotname krotname reopened this Aug 14, 2026
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. Its option parsing
needs util-linux getopt (the busybox applet is off by default), hence
the getopt dependency.

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. Agents in turn import clients that are already
associated when the agent starts: patch 150 walks hostapd's
STA-FIRST/STA-NEXT list on the nl80211 AP and monitor HALs and
reconciles the result every 60 seconds, so stations that associated
while the agent was down appear without waiting for a reassociation,
and stale entries are disconnected only after a cleanly enumerated
sweep. 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, and a test.sh checks the
shipped log levels and the roll-helper install.

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):
the init prunes previous-boot logs once per boot before the daemons
come up (a /var/run stamp keeps procd reload triggers, which re-enter
start_service with the daemons live, from re-rolling their logs) and
a procd-supervised roller repeats the roll daily; an image stripped
of the helper runs without rotation instead of refusing to start.
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.

Ref: https://gitlab.com/prpl-foundation/prplmesh/prplMesh
Ref: https://gitlab.com/kreout/prpl-mesh-mercusys/-/merge_requests/1
Signed-off-by: Andrei Ovcharenko <[email protected]>
@krotname
krotname force-pushed the ci/prplmesh-forkci branch from aa540ea to 4fdfe78 Compare August 14, 2026 18:59
@krotname
krotname merged commit d12edbd into master Aug 16, 2026
10 checks passed
@krotname
krotname deleted the ci/prplmesh-forkci branch September 13, 2026 22:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant