Skip to content

CI test: prplmesh-stock rework (final head) - #3

Closed
krotname wants to merge 2 commits into
masterfrom
ci/prplmesh-forkci
Closed

CI test: prplmesh-stock rework (final head)#3
krotname wants to merge 2 commits into
masterfrom
ci/prplmesh-forkci

Conversation

@krotname

Copy link
Copy Markdown
Owner

Fork-internal multi-arch run of openwrt#30071 head 436095f (Makefile review fixes); the extra commit only strips the upstream-only FormalityCheck wait. Will be closed after CI.

@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: 436095feac

ℹ️ 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 thread net/prplmesh-stock/files/prplmesh.init Outdated
Comment on lines +22 to +23
interfaces="$(uci -q get prplmesh.config.mandatory_interfaces)"
[ -n "$interfaces" ] || return 1

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 Allow controller-only startup without radio sockets

When management_mode is configured for a standalone controller, requiring a nonempty mandatory_interfaces list prevents the service from starting on a device without local radios; the subsequent socket checks have the same effect. This contradicts the controller-side support added in 100-stock-platform.patch for running without a local agent, so the preflight and process registration should depend on the selected management mode.

Useful? React with 👍 / 👎.

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

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

Fixed in 4f2f078: the init is now management-mode aware — Multi-AP-Controller starts transport+controller without any interface or socket requirements, Multi-AP-Agent skips the controller, everything else keeps both.

Comment thread net/prplmesh-stock/files/prplmesh.init Outdated
IFS=,
for interface in $interfaces; do
[ -n "$interface" ] || continue
[ -S "/var/run/hostapd/$interface" ] || {

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 Retry startup while hostapd sockets are unavailable

On boot or a wireless reload where hostapd has not finished recreating its sockets, this check makes start_service return before registering any procd instances. Because there is then no process for the configured respawn policy to monitor and no runtime interface-up trigger, an enabled service can remain stopped indefinitely after this transient race; startup should wait/retry or register a supervised process that waits for hostapd.

Useful? React with 👍 / 👎.

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

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

Fixed in 4f2f078: the socket check moved out of the fail-the-start path — the agent instance is registered as a procd-supervised wrapper that waits for the hostapd control sockets of all mandatory interfaces and then execs beerocks_agent, so boot races and wireless reloads self-heal.

Comment on lines +106 to +108
+ if (configuration.ssid.empty() || configuration.operating_class.empty() ||
+ configuration.authentication_type == WSC::eWscAuth::WSC_AUTH_INVALID ||
+ configuration.encryption_type == WSC::eWscEncr::WSC_ENCR_INVALID) {

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 Reject secured BSS profiles without a key

For an explicit profile using psk2, sae, or sae-mixed, omitting or emptying option key still passes this validation because only the SSID, band, and enum mappings are checked. The resulting secured profile has an empty network_key and cannot be provisioned as valid WPA2/SAE credentials, so validation should require an appropriately valid key whenever authentication is not open.

Useful? React with 👍 / 👎.

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

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

Fixed in 4f2f078 (patch 110): profiles whose authentication is not open are now rejected unless the key is 8..64 characters, matching hostapd's passphrase/PSK bounds.

krotname added 2 commits July 27, 2026 21:50
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, helper scripts and static data
install under /usr/libexec/prplmesh, shared libraries under /usr/lib,
configuration under /etc/config/prplmesh.

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 <a@krot.name>
@krotname
krotname force-pushed the ci/prplmesh-forkci branch from e7847e4 to 16d3d3f Compare July 27, 2026 18:51
@krotname krotname closed this Jul 27, 2026
@krotname
krotname deleted the ci/prplmesh-forkci branch July 27, 2026 19:30
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