Commit Graph

65848 Commits

Author SHA1 Message Date
prplbot
d13f9e64df profiles: prpl_core.yml: feed_prplos: tr181-firewall: skip getprotobynumber() for numeric protocol values
Integrates following changes:
- tr181-firewall: skip getprotobynumber() for numeric protocol values (c7c5fc33)

References: PPW-2026
Signed-off-by: prplbot <bot@prplfoundation.org>
Signed-off-by: FAOUZI YAHYA <faouzi.yahya_ext@softathome.com>
2026-08-12 09:36:00 +01:00
Tim Hsu
cf58abc4ea ci: cram: freedom: expect kmod-input-gpio-keys-polled in build config
The WPS button now uses a gpio-keys-polled node, which pulls in
kmod-input-gpio-keys-polled, so it appears in the build .config.

Add it to the expected package list in 005-build-config.t.

Fixed: PCF-2655

Signed-off-by: Tim Hsu <tim.hsu@wnc.com.tw>
Signed-off-by: Petr Štetiar <petr.stetiar@prplfoundation.org> [rebased]
2026-08-11 14:03:01 +00:00
Tim Hsu
741840c473 ci: cram: freedom: point WPS gpio-key check at gpio-keys-polled node
WPS button moved from the gpio-keys edge-IRQ node to a separate gpio-keys-polled node to avoid the GPIO12 pad-leakage IRQ storm.

015-platform.t still read soc@0/gpio_keys/button@1, which no longer exists, so the WPS label and linux,code checks failed.

Point both at soc@0/gpio_keys_polled/button@1; reset stays at gpio_keys/button@2 and linux,code is unchanged (0x0211).

Fixed: PCF-2655

Signed-off-by: Tim Hsu <tim.hsu@wnc.com.tw>
Signed-off-by: Petr Štetiar <petr.stetiar@prplfoundation.org> [rebased]
2026-08-11 14:03:01 +00:00
Tim Hsu
6d3667850a profiles: qca_ipq95xx: switch Freedom WPS button to gpio-keys-polled
On Freedom boards, GPIO12 (WPS button) pad leakage lets the pin
linger near the switching threshold during cold boot, so the mainline
gpio-keys edge IRQ (IRQ36) storms at hundreds of thousands to millions
of edges per second, all pinned to CPU0.

CPU0 gets wedged in hardirq context, stops reporting RCU quiescent states,
and the resulting rcu_preempt stall blocks any driver bring-up that waits on synchronize_rcu(),
stalling i2c-mux/expander/LED probe and locking the board up.

Move the WPS button to a separate gpio-keys-polled node so it no longer requests an edge IRQ,
decoupling it from the pad leakage entirely.

Fixes: PCF-2655

Signed-off-by: Tim Hsu <tim.hsu@wnc.com.tw>
Signed-off-by: Petr Štetiar <petr.stetiar@prplfoundation.org> [rebased, removed PCI fix]
2026-08-11 14:03:01 +00:00
FAOUZI YAHYA
0f3ea5734e ci: cram: replace X_PRPLWARE-COM_ForceSolicitPolicy with ForceSolicitPolicy
Integrates:
-replace X_PRPLWARE-COM_ForceSolicitPolicy with ForceSolicitPolicy

References: PCF-2540, PPW-1892
Signed-off-by: FAOUZI YAHYA <faouzi.yahya_ext@softathome.com>
2026-08-11 14:24:46 +01:00
Alexandre Fiset
a2fdadb0f2 ci: cram: dhcpv6-forcesolicite: drop vendor prefix from parameter name
ForceSolicitPolicy is now a standard TR-181 parameter with no vendor
prefix. Update the cram test accordingly.

Signed-off-by: Alexandre Fiset <alexandre.fiset@softathome.com>
2026-08-11 14:24:46 +01:00
prplbot
5465118ef8 profiles: prpl_core.yml: feed_prplos: tr181-dhcpv6client: remove vendor prefix from DHCPv6 ForceSolicitPolicy DM
Integrates following changes:
- tr181-dhcpv6c: doc: update README (f47b739a)
- tr181-dhcpv6c: use standard ForceSolicitPolicy parameter (d8b80b1a)
- tr181-dhcpv6c: odl: drop vendor prefix from ForceSolicitPolicy (bc497d37)

References: PPW-1892, PCF-2540
Signed-off-by: prplbot <bot@prplfoundation.org>
2026-08-11 14:24:15 +01:00
Alexandre Fiset
4a04ad1192 PROVISORY: profiles: prpl_core.yml: feed_prplos: pin ethernet-manager revert
DROP BEFORE MERGE.

Pins feed_prplos at feed-prplos !1014, which reverts ethernet-manager
v1.38.1 back to v1.37.0. The pinned commit is exactly one revert on top
of 7ad2df9d, the revision this branch already carried, so the only
delta in the resulting image is the ethernet-manager version.

Since v1.38.1 landed, every "run test MXL25641-HDK-6 with system on
eMMC" job on latest-24.10 dies at DUT bring-up: check_network --network
lan times out after 180s with the LAN datamodel reporting Status="Up"
while every ping to the test host returns "Destination Host
Unreachable". v1.38.1 pulls in tr181-ethernet 220eb0a7c, which writes
speed/duplex, EEE and EDPD to the PHY on every link-up and applies EDPD
for the first time; a PHY with EEE/EDPD newly applied shows carrier but
passes no traffic.

This commit only exists to prove that on CI. Drop it and let prplbot
bump feed_prplos normally once the revert has landed on feed main.

Integrates:
- 7f0c9c5: ("Revert "tr181-ethernet: preserve configured energy settings across init and link changes"", 2026-06-17)

Refernces: PCF-2584
Signed-off-by: Alexandre Fiset <alexandre.fiset@softathome.com>
2026-08-11 11:13:56 +01:00
Hela Saadani
09dda2b695 profiles: prpl-core: Add back changes deleted by prplbot
prplbot deleted some changes made in prpl-core file.
Readd thise changes to fix the briken version.

- Add IPsec support and netmodel-ipsec
- Add wireguard, netmodel-wireguard and libwireguard
- Add netmodel-tuntap and tr181-tuntap

References: PCF-2467, PCF-2023, PCF-2469, Feat-150
Signed-off-by: Hela Saadani <hela.saadani_ext@softathome.com>
2026-08-11 11:07:46 +01:00
prplbot
01f4399f50 profiles: prpl_core.yml: feed_amx: libamxp: correctly set CoreDump flag based on WCOREDUMP status
Integrates following changes:
- libamxp: Correctly set CoreDump flag based on WCOREDUMP status (ed282fc1)

References: PPW-1141
Signed-off-by: prplbot <bot@prplfoundation.org>
Signed-off-by: FAOUZI YAHYA <faouzi.yahya_ext@softathome.com>
2026-08-10 15:20:55 +01:00
prplbot
c37b52d410 profiles: prpl_core.yml: feed_prplos: mod-amxb-usp: amxb_usp: fix coverity, uncheked return value
Integrates following changes:
- amxb_usp: fix coverity, uncheked return value (d328d1d4)

References: CID-28954, PPW-1562
Signed-off-by: prplbot <bot@prplfoundation.org>
Signed-off-by: FAOUZI YAHYA <faouzi.yahya_ext@softathome.com>
2026-08-10 12:00:30 +01:00
Iacob Juc
94eeb97c94 profile: prpl_core.yml: feed-prplmesh: beacon WiFi 7 EHT IEs without setting MLDUnit
Integrates:
- b64d1da: ("pwhm-mapping: Hide Radio.IEEE80211be object", 2026-08-04)
- d73696488: ("mld: add unit test for Radio.IEEE80211be.MLDUnitSetting", 2026-04-30)
- 15623a0d0: ("mld: add (%string) IEEE80211be.MLDUnitSetting", 2026-03-23)
- 3f81fdb6: pwhm: deploy default value for MLDUnitSetting

Issue: PPM-3545
Signed-off-by: Iacob Juc <iacob.juc_ext@softathome.com>
Signed-off-by: FAOUZI YAHYA <faouzi.yahya_ext@softathome.com>
2026-08-07 16:16:23 +00:00
Iacob Juc
42e6ebcb32 cram: add cram test for Radio.IEEE80211be.MLDUnitSetting
Testing Various valid combinations on 6GHz PrivateVAP

side-effect: default value of MLDUnitSetting changes behavior of PWHM

i.e. new parameter:
Radio.{i}.IEEE80211be.MLDUnitSetting=Assumed
is expected to invalidate current apmld tests
Reset it to Required, the value that keeps old pwhm behavior

OBUSPA:
Prefix IEEE80211be.MLDUnitSetting with X_PRPLWARE-COM_
and add it to obuspa.expected datamodel dump

testbed.yml : increase timeout by 2min (nominal execution time : 1m50s)

Issue: PPM-3545
Signed-off-by: Iacob Juc <iacob.juc_ext@softathome.com>
2026-08-07 16:16:23 +00:00
Hela Saadani
c3f756c8c4 ci: cram: ubus-datamodel: add DNSSD.Scan
Update ubus-datamodel to add DNSSD.Scan

References: PPW-1676
Signed-off-by: Hela Saadani <hela.saadani_ext@softathome.com>
2026-08-07 16:06:20 +01:00
Yousfi Neji
2b33b01372 ci: cram: fix issue where services were not removed from the data model
Issue:
With the introduction of cache services and a configurable removal timeout (PPW-1676),
services are no longer removed immediately when they are no longer detected.
Instead, a timer is started based on the new RemoveServiceTimeout parameter.
If the service is rediscovered before the timer expires, it remains in the data model.
The default timeout value is set to 300000 ms (5 minutes).

Fix:
The fix involves modifying the cram test to lower the RemoveServiceTimeout to 5000 ms (5 second)
for quicker testing.

Tracked-by: PPW-1676
Signed-off-by: Yousfi Neji <yousfi.neji_ext@softathome.com>
2026-08-07 16:06:20 +01:00
prplbot
e4098da288 profiles: prpl_core.yml: feed_prplos: tr181-dnssd: Fix DNSSD entries population issue
Integrates following changes:
- tr181-dnssd: increase maximum Service instance limit (d9b67836)
- tr181-dnssd: fix reserved bit count in intf_flags struct (03118b63)
- tr181-dnssd: rename misspelled files and clean up events handler (f08cb7ea)
- tr181-dnssd: avoid unnecessary copy of service_htable (85fcc6ec)
- tr181-dnssd: implement DNSSD.Scan data model (7057dd18)
- tr181-dnssd: cache services with configurable removal timeout (e5b1e471)
- tr181-dnssd: remove stale services on IP address change (06dfe2e1)
- tr181-dnssd: fix IP version detection using IPAddresses (443985b5)
- tr181-dnssd: expose IPAddresses in Scan event notification (959fb531)
- tr181-dnssd: fix NULL Host when TR-181 path lookup fails (8628544e)
- tr181-dnssd: remove @version tags from non standard parameters (241462e7)
- tr181-dnssd: implement DNSSD.Scan data model (160ea637)
- tr181-dnssd: remove stale services on IP address change (c23d7ce2)

References: PPW-1676
Signed-off-by: prplbot <bot@prplfoundation.org>
signed-off-by: Hela Saadani <hela.saadani_ext@softathome.com>
2026-08-07 16:05:15 +01:00
Maarten De Decker
8691dc5615 profiles: prpl: prplMesh: bump to master-2026-07-30
Integrates following changes:
- common: bwl: whm: stop retrying client event generation for stale VAPs (19c9aeee2)
- framework: bpl: add cfg backend/service scaffolding and route bpl init/close lifecycle (617b6e2eb)
- son_actions : send_ap_config_renew_msg (a38cc0e8a)
- agent: common: resend capabilities on OperatingStandards change (54e8a84dd)
- controller: fix UnassociatedSTA not working (c9d78df04)
- CI: enable 2.4 GHz HT for R4 capability tests (929f5d00c)
- common: agent: controller: Remove duplicates of eMLOModes enum (eda287512)
- agent: channel_selection_task: handle multiple Channel Preference TLVs (b5cec6867)
- multi_vendor: tlvf_airties_utils: add guard for TLVFs (52bf9c927)
- agent: preserve active scan context when reporting stored results (786c57f99)
- agent: retry failed platform configuration (d380e42db)
- multi_vendor: tlvf_airties_utils: add nullptr check (40669fb36)
- agent: add nullptr check in fh manager monitor (2f9319172)

References:  PPM-4175, PPM-3921, PPM-4162, PPM-4133, PPM-4144, PPM-3879,
             PPM-4043, PPM-4161, PPM-4154, PPM-4152, PPM-4155, PPM-4147,
             PPM-4131
Signed-off-by: Maarten De Decker <maarten.dedecker@mind.be>
2026-08-06 09:44:32 +01:00
prplbot
9d73e2ab5a profiles: prpl_core.yml: feed_amx: libamxd: fix coverity, resource not released
Integrates following changes:
- libamxd: fix coverity, resource not released (94ff82af)

References: PPW-1842
Signed-off-by: prplbot <bot@prplfoundation.org>
Signed-off-by: FAOUZI YAHYA <faouzi.yahya_ext@softathome.com>
2026-08-06 09:12:44 +01:00
prplbot
0a43b5e3f8 profiles: prpl_core.yml: feed_prplos: SFP Manager: fix doxygen and unit test documentation
Integrates following changes:
tr181-sfp:
- 55e90d1: ("doc/Doxyfile: add mod-sfp-type/src to INPUT and document remaining functions", 2026-07-13)
- bd45466: ("mod_sfp-type.c: document sfptype_poll()", 2026-07-13)
wan-manager:
- doc: Fix empty doxygen main page and missing static documentation (ad0a05e8)
ethernet-manager:
- tr181-ethernet: preserve configured energy settings across init and link changes (220eb0a7)
- doc: Fix doxygen not covering the plugin and module sources (b054726a)
ip-manager:
- doc: Enable doxygen documentation generation (8db7efcd)
- Unit-test: cover setting IP flags on enabled NetModel interfaces (afc6dd65)
tr181-xpon:
- README.md: add doc about default value for SFPReferenceList (ff57fd4e)
- src: add doxygen doc for remaining undocumented function parameters (4e63ad73)
- doc/Doxyfile: use README.md as doxygen main page (2342bda5)
mod-xpon-prpl:
- doc: Fix empty doxygen output (5de49c56)
- test: cover XPON.ONU.1.ANI.1 in get_object_content (52a2df1a)
- test: move the amxb wrapper test double out of src (2e17a583)
mod-wanmgr-system-ospv2:
- doc: Fix empty doxygen output (f22e98d1)
mod-wanmgr-system:
- doc: Fix empty doxygen output (ad5cec62)

References: PPW-1836
Signed-off-by: prplbot <bot@prplfoundation.org>
Signed-off-by: FAOUZI YAHYA <faouzi.yahya_ext@softathome.com>
2026-08-05 16:05:27 +01:00
Hela Saadani
0a4df68dfe profiles: prpl-core: feed-prplos: Unprivileged Containers: VPN Tunnel Creation. LCM8.4
Integrates:
netmodel:
- netmodel-gre: add NetModel GRE support (d2bbd71e)
- mib: add wireguard (b6a39694)
- netmodel-tuntap: add NetModel TUNTAP support (3282539d)
- dm_intf: Unload mibs before removing an Intf (dcdd7b66)
- unit_tests: Add test scenario for mib unloading at intf removal (f2a49b18)
- mib: add ipsec (ab0e99df)
- doc: add mibs to the generated documentation (ca0f38a2)

tr181-gre:
- e38016b: ("gre: add netmodel-gre as runtime dependency", 2026-07-24)
- 6184a8a: ("tr181-gre: initial implementation", 2026-01-22)

tr181-ipsec:
- 72d2fc7: ("ipsec: add netmodel-ipsec as runtime dependency", 2026-07-24)
- 9fdab28: ("PROVISORY: unit tests: add unit test mocks to enable all ipsec_charon_daemon tests", 2026-05-12)
- c18f389: ("tr181-ipsec: Initial implementation", 2026-02-19)

mod-netmodel:
- e09baf1: ("unit_tests: Add test scenarios for interface removal", 2026-03-19)
- 07b8f41: ("mod_netmodel: Subscribe for interface removal", 2026-03-19)
- 7c9ade5: ("unit_tests: Add unit test for dynamic prefix generation", 2025-06-18)
- 5e1d3c4: ("mod_netmodel: Add dynamic prefix generation", 2025-06-17)

tr181-logical:
- tr181-logical: add missing usp registrations (d35fe68a)

netmodel-wiregard:
- 6378574: ("netmodel: wireguard: add WireGuard MIB client", 2026-06-09)

netmodel-tuntap:
- 2167774: ("netmodel-tuntap: add doxygen build", 2026-07-24)
- b927c26: ("netmodel-tuntap: add NetModel TUNTAP support", 2026-04-10)

netmodel-ipsec:
- 7688ff8: ("netmodel-client: Initial implementation", 2026-03-13)

tr181-wireguard:
- 062f440: ("tr181-wireguard: initial implementation of TR-181 WireGuard plugin", 2026-06-09)

tr181-tuntap:
- ce7614c: ("tuntap: add netmodel-tuntap as runtime dependency", 2026-07-24)
- 0aacc82: ("tr181-tuntap: initial implementation", 2026-02-09)

libwireguard:
- 09919b7: ("libwireguard: fix uncrustify conformance of doxygen comments", 2026-07-24)
- fce3626: ("libwireguard: wire up doxygen documentation generation", 2026-07-24)
- f6b2290: ("libwireguard: document structs, unions, enums, typedefs and defines", 2026-07-24)
- b2d0308: ("libwireguard: apply prpl license header and include path", 2026-07-23)
- 9114558: ("ci: baf: update autogenerated files", 2026-07-16)
- 80c12aa: ("libwireguard: add unit tests for interface up/down and operstate", 2026-07-16)
- 1082393: ("libwireguard: address Coverity findings (no functional change)", 2026-07-10)
- d802f98: ("libwireguard: add support to bring interface up/down and get operational status", 2026-03-17)
- d93b1e3: ("libwireguard: apply prpl codestyle via uncrustify", 2026-03-16)
- de11d5b: ("libwireguard: add vanilla embeddable WireGuard library", 2026-03-04)

netmodel-gre:
- 438eeee: ("netmodel-gre: add unit tests for mib_added/mib_removed lifecycle", 2026-06-09)
- a7dcfb9: ("netmodel-gre: add NetModel GRE support", 2026-06-09)

Signed-off-by: Hela Saadani <hela.saadani_ext@softathome.com>
2026-08-05 14:16:15 +01:00
Alexandre Fiset
d5d0fae4bb ci: cram: update build config and tls expectations for VPN feature
prpl_core.yml now pulls strongswan-default and sixteen strongswan
modules for the IPsec datamodel. They drag in dependencies nothing
selects explicitly -- strongswan-ipsec via mod-stroke, and libgcrypt
plus libgpg-error via mod-gcrypt -- so every board that ships strongswan
sees a wider package set than its expected output records.

Refresh the expectations for the three boards that build strongswan:

- 005-build-config.t on mxl25641-hdk-6, wnc-freedom and urx851-b0-dk.
  urx851-b0-dk has no hardware test job, so its copy of the same
  expected output would have drifted unnoticed until the board is
  exercised again; keep the three in sync.
- 011-tls.t on mxl25641-hdk-6 and wnc-freedom. The grep pattern and the
  version-tolerant libopenssl / libustream-openssl regexes are left
  untouched; only strongswan-mod-openssl is added. Enumerating the whole
  strongswan package set belongs in 005-build-config.t, not in a test
  whose subject is the single TLS library.

The same module set also widens what charon advertises through the IPsec
root object. Rather than track those capability strings, 133-tr181-ipsec.t
now asserts only that the datamodel starts with no entries, so the
expectation no longer moves with the strongswan module selection.

Also drop CONFIG_VERSION_CODE_FILENAMES from the wnc-freedom expected
build config. The symbol is no longer emitted, which is OpenWrt base
drift rather than a VPN change, but the expectation cannot pass while it
is listed.

References: FEAT-150, PCF-2467
Signed-off-by: Alexandre Fiset <alexandre.fiset@softathome.com>
2026-08-05 14:16:15 +01:00
Alexandre Fiset
1279782024 ci: cram: freedom: swupdate: cleanup /tmp after the dry-run tests
The .swu firmware image (~80MB) and temporary PEM keys generated during
the wrong-key test were never removed from DUT /tmp, leaving the
partition nearly full for the tests that run afterwards.

Delete the .swu image and the generated PEM files at the end of the
test.

References: PCF-2469, PPW-2134
Signed-off-by: Alexandre Fiset <alexandre.fiset@softathome.com>
2026-08-05 14:16:15 +01:00
Alexandre Fiset
6d6bad2044 config: x86_64: increase image size
With VPN features the rootfs is now too smal, increase it to make more
rooms as this is mainly use for qemu system where roots don't have hard
constrain.

References: PCF-2469, PCF-2467, PCF-2294, PCF-2023
Signed-off-by: Alexandre Fiset <alexandre.fiset@softathome.com>
2026-08-05 14:16:15 +01:00
Alin Nastac
306a6c7aa9 ci: cram: tr181-ipsec initial tests
Add initial cram tests for tr181-ipsec, including an end-to-end test with
IKEv2 certificate authentication: a dedicated strongSwan charon instance
runs inside a network namespace (with a private /var/run tmpfs to isolate
it from the CPE charon) behind a veth pair emulating the WAN link, so the
test is self-contained and is not tied to a specific board. Certificates
are generated on the DUT: a self-signed one for the CPE, and for the peer
an end entity certificate issued by a dedicated CA, since
IKEv2RemoteAuthenticationMethod designates the authority the peer is
validated against rather than the peer certificate itself. They are
imported through /etc/config/autocert into Security.Certificate, and
referenced from an IPsec.Profile/Filter pair. The end-to-end test verifies
the IKEv2 SA and Child SA come up and that protected traffic flows.

References: PCF-2469, FEAT-150
Signed-off-by: Alin Nastac <alin.nastac@softathome.com>
Signed-off-by: Alexandre Fiset <alexandre.fiset@softathome.com>
2026-08-05 14:16:15 +01:00
Patrick Havelange
8b52032bc4 ci: cram: tr181-wireguard initial tests
Add initial cram tests for tr181-wireguard, including an end-to-end tunnel
test: the remote peer lives in a network namespace behind a veth pair
emulating the WAN link and is configured with wireguard-tools, so the
test is self-contained and is not tied to a specific board. The
end-to-end test drives the CPE side through the data
model (WireGuard.Tunnel/Peer + IP.Interface + Firewall.Service), verifies
the handshake on the peer, ping in both directions, a short iperf3 session
and the NetModel flags.

Implements: PCF-2023
References: FEAT-150
Signed-off-by: Patrick Havelange <patrick.havelange_ext@softathome.com>
Signed-off-by: Alexandre Fiset <alexandre.fiset@softathome.com>
2026-08-05 14:16:15 +01:00
Khaled Hasni
737f390651 ci: cram: tr181-tuntap initial tests
Add CRAM tests for tr181-tuntap.

References: PCF-2467, FEAT-150
Signed-off-by: Khaled Hasni <khaled.hasni_ext@softathome.com>
2026-08-05 14:16:15 +01:00
Khaled Hasni
bd85d5aa3e ci: cram: tr181-gre initial tests
Add CRAM tests for tr181-gre, including an end-to-end tunnel test: the
remote peer lives in a network namespace behind a veth pair emulating
the WAN link, so the test is self-contained and is not tied to a
specific board. The end-to-end test drives the tunnel
through the data model (GRE.Tunnel + Interface + IP.Interface), verifies
the kernel route, reply behaviour with and without a peer return route,
the UseSequenceNumber/UseChecksum toggles and runs a short iperf3 session
through the tunnel.

References: PCF-2294, FEAT-150
Signed-off-by: Khaled Hasni <khaled.hasni_ext@softathome.com>
Signed-off-by: Alexandre Fiset <alexandre.fiset@softathome.com>
2026-08-05 14:16:15 +01:00
Petr Štetiar
23e82ac48a ci: cram: stop ssh from consuming script input
Cram supplies each generated test script to the shell through standard
input. The shared SSH command inherits that input and consumes the
remaining script, leaving the shell at EOF inside a quoted command.

Commit 5fd42aa540 ("ci: cram: use legacy SCP protocol for remote
copies") rewrote CRAM_REMOTE_COMMAND while adding legacy SCP support and
dropped the -n option added for PCF-2222. Job 15640024463 then failed
130-periodicfileupload.t with:

/bin/sh: 152: Syntax error: Unterminated quoted string (no-eol)

Job 15640024462 leaked this salt marker in the same test:

CRAM1 (no-eol)

Restore -n so SSH reads from /dev/null instead of the generated test
script.

Assisted-by: codex:gpt-5.6-sol
Assisted-by: claude:opus-5:1m-context
Signed-off-by: Petr Štetiar <petr.stetiar@prplfoundation.org>
Fixes: 5fd42aa540 ("ci: cram: use legacy SCP protocol for remote copies")
References: PCF-2222
2026-08-05 12:56:30 +00:00
Lu Dai
9f7218c2bc profile:prpl-core:feed-prplmesh: add tr181-syslog odl
add tr181-syslog odl for prplmesh usage, to generate syslog-ng configs

Integrates:
- e687713: ("prplmesh: add tr181-syslog odl for syslog-ng dispatcher", 2026-04-09)

Reference: PPM-3953
Signed-off-by: Lu Dai <lu.dai@mind.be>
Signed-off-by: Hela Saadani <hela.saadani_ext@softathome.com>
2026-08-04 14:38:18 +00:00
prplbot
2344e4495a profiles: prpl_core.yml: feed_prplos: tr181-led: bump to PPW-2089/fix_log_flooding
Integrates following changes:
- led_device: remove flooding log on led deviceinfo (a0bcdd0f)

References: PPW-2089
Signed-off-by: prplbot <bot@prplfoundation.org>
2026-08-04 15:28:00 +01:00
Houssem Dafdouf
840cf16690 ci: cram: fix quoting of expanded function substitutions
Quote expanded command substitutions in remote logger commands
to ensure the expanded value is passed as a single literal
argument and prevent remote shell interpretation of special
characters.

Closes: PPW-1315
Signed-off-by: Houssem Dafdouf <houssem.dafdouf_ext@softathome.com>
2026-07-31 13:00:20 +00:00
prplbot
bd9b66cfbb profiles: prpl_core.yml: feed_prplos: libtr69-engine: fix coverity, invalid type in argument to print format specifier
Integrates following changes:
- libtr69-engine: fix coverity, invalid type in argument to print format specifier (24779cf8)

References: CID-29388, PPW-1750, CID-29509
Signed-off-by: prplbot <bot@prplfoundation.org>
Signed-off-by: FAOUZI YAHYA <faouzi.yahya_ext@softathome.com>
2026-07-31 10:44:25 +01:00
prplbot
cd5fad160d profiles: prpl_core.yml: feed_prplmesh: wifi-sensing: update global prefix when invoking pWHM Sensing object
Integrates following changes:
- wifi-sensing: update global prefix when invoking pWHM Sensing object (88eeed41)

References: PPW-1543
Signed-off-by: prplbot <bot@prplfoundation.org>
Signed-off-by: FAOUZI YAHYA <faouzi.yahya_ext@softathome.com>
2026-07-29 15:13:54 +01:00
Mykola Hlukhenkyi
004a6ad64e ci: cram: lcm: update TrustedProvider service version
Currently, the 036-lcm-usp-restrictions test fails during the
TrustedProvider model validation; this happened because
TrustedProvider required some time (up to 5 seconds) to register its model:
da53b18a65/src/main.c (L159)

New version of TrustedProvider service registers data model over ODL and
amxrt mechanism and does not contain the registration timeouts.

Fixes: PPW-2037
References: FEAT-28, FEAT-120
Signed-off-by: Mykola Hlukhenkyi <m.hlukhenkyi@inango-systems.com>
Signed-off-by: Artem Trokhymchuk <a.trokhymchuk@inango-systems.com>
2026-07-29 13:51:36 +00:00
prplbot
4b83b84ea6 profiles: prpl_core.yml: feed_prplos: tr181-qos: fix coverity, unused value
Integrates following changes:
- tr181-qos: fix coverity, unused value (dda7c53c)

References: FEAT-102, CID-29664, PPW-2070, PPW-1742, CID-29663
Signed-off-by: prplbot <bot@prplfoundation.org>
Signed-off-by: FAOUZI YAHYA <faouzi.yahya_ext@softathome.com>
2026-07-28 11:00:01 +01:00
FAOUZI YAHYA
5154d52915 ci: cram: add Device.BulkData.Profile.{i}.HTTP.X_PRPLWARE-COM_CABundle
Integrates:
-add Device.BulkData.Profile.{i}.HTTP.X_PRPLWARE-COM_CABundle

References: PPW-1962
Signed-off-by: FAOUZI YAHYA <faouzi.yahya_ext@softathome.com>
2026-07-28 10:35:34 +01:00
prplbot
0305c8895e profiles: prpl_core.yml: feed_prplos: tr181-bulkdata: bump to v0.9.1
Integrates following changes:
- tr181-bulkdata: vendor extension is missing in BulkData (f0e3fb2c)

References: PPW-1962, TR-181
Signed-off-by: prplbot <bot@prplfoundation.org>
2026-07-28 09:30:36 +00:00
Petr Štetiar
4e07a8fbea ci: cram: provide TLS certificate to servefile
Debian 13 ships pyOpenSSL without the deprecated X509Req API used by
servefile certificate generation.

Generate a short-lived certificate with openssl and pass it to both
HTTPS server instances.

Assisted-by: codex:gpt-5
Signed-off-by: Petr Štetiar <petr.stetiar@prplfoundation.org>
References: PPW-1258
2026-07-28 10:19:05 +01:00
Petr Štetiar
74447b9463 ci: cram: run host ping with raw-socket privilege
The Debian 13 testbed image runs cram as an unprivileged user, so its
ping process cannot open a raw socket with the executor capabilities.
Use the existing passwordless sudo setup for the host-side probe.

GitLab runner hostnames are not present in the container hosts file,
so sudo also emits a lookup warning before the asserted ping result.
Discard stderr while retaining the ping and grep exit behavior.

Assisted-by: codex:gpt-5
Signed-off-by: Petr Štetiar <petr.stetiar@prplfoundation.org>
References: PPW-1258
2026-07-28 10:19:05 +01:00
Petr Štetiar
38c51e4976 ci: cram: accept any MiniDLNA server version
The separately released testbed image can update MiniDLNA without
changing the behavior under test. Matching one package version makes
the DUT discovery test fail whenever that host-side fixture changes.

Keep the server description fields exact, but match the MiniDLNA
version with a cram glob. This verifies that the DUT discovers the
fixture without coupling the expectation to a Debian package version.

Assisted-by: codex:gpt-5
Signed-off-by: Petr Štetiar <petr.stetiar@prplfoundation.org>
References: PPW-1258
2026-07-28 10:19:05 +01:00
Petr Štetiar
5fd42aa540 ci: cram: use legacy SCP protocol for remote copies
OpenSSH in the Debian 13 testbed container uses SFTP for scp transfers
by default, while the DUT images do not provide an SFTP server.

Force the legacy SCP protocol in the shared cram copy command, the
security certificate fixture, and the remaining direct scp calls so
every test can stage its helper files and packages.

Assisted-by: codex:gpt-5
Signed-off-by: Petr Štetiar <petr.stetiar@prplfoundation.org>
Fixes: 854ef0eafb ("ci: cram: add new LCM tests")
References: PPW-1258
2026-07-28 10:19:01 +01:00
Petr Štetiar
f414d6aed2 ci: testbed: stop installing packages at runtime
The shared testbed setup installs MiniDLNA, Avahi, and dbus before
every cram and CDRouter job. This adds network and package mirror
dependencies to hardware tests and allows the runtime environment to
drift independently of the selected image.

The separately released testbed image now carries these packages,
together with the Python dependencies used by cram. Remove the runtime
apt update and install command so jobs consume only the image contents.

Assisted-by: codex:gpt-5
Signed-off-by: Petr Štetiar <petr.stetiar@prplfoundation.org>
Fixes: 6792ba6b95 ("PROVISORY: ci: testbed: install minidlna and avahi packages at runtime")
References: PPW-1258
2026-07-28 10:14:51 +01:00
Petr Štetiar
30185bbbaf ci: testbed: stop rewriting Debian package sources
The testbed setup rewrites the Debian mirror to archive.debian.org
before installing runtime cram dependencies. This was needed for the
old Buster container, but Debian 13 uses current mirrors and stores its
configuration in deb822 files instead of /etc/apt/sources.list.

Both focused cram jobs stop at the first rewrite before DUT bring-up:

```text
$ sudo sed -i 's|http://deb.debian.org/debian|http://archive.debian.org/debian|g' /etc/apt/sources.list 2>/dev/null
Running after_script
```

Remove both obsolete rewrites and let apt use the sources supplied by
the versioned Debian 13 testbed image.

Assisted-by: codex:gpt-5
Signed-off-by: Petr Štetiar <petr.stetiar@prplfoundation.org>
Fixes: 6792ba6b95 ("PROVISORY: ci: testbed: install minidlna and avahi packages at runtime")
References: PPW-1258
2026-07-28 10:14:51 +01:00
Petr Štetiar
3225ea1c95 ci: cram: stop installing Python tools at runtime
Debian 13 marks its system Python environment as externally managed,
so cram-time pip installs fail before the tests can exercise the DUT.
Python 3.13 also removed cgi, which the preinstalled servefile 0.5.4
still imports.

Use async-upnp-client, servefile, scapy, and legacy cgi from the
testbed image. Remove the per-test pip calls and PATH overrides, and
document that scapy is an image dependency. Preserve the newer
CABundle fixture setup from the source change.

The later 018-dhcpv4-client-options.t test reintroduced the same pip
call, so give it the same treatment.

Assisted-by: codex:gpt-5
Assisted-by: claude:opus-5:orchestrator
Assisted-by: codex:gpt-5.6-sol:medium-fast
Signed-off-by: Petr Štetiar <petr.stetiar@prplfoundation.org>
References: PPW-1258
2026-07-28 10:14:51 +01:00
Petr Štetiar
ab855504b5 ci: cram: accept ntpsec ntpdate output
ntpsec-ntpdate 1.2.3 reports successful queries as a timestamp
followed by numeric offset and uncertainty values instead of the
former textual offset wording.

Match the numeric ntpsec query format so the time test accepts the
output provided by the Debian 13 testbed image.

Assisted-by: codex:gpt-5
Signed-off-by: Petr Štetiar <petr.stetiar@prplfoundation.org>
References: PPW-1258
2026-07-28 10:14:51 +01:00
Petr Štetiar
fff3204ae2 ci: docker: drop the in-tree testbed container
The testbed container now has its own prpl Foundation project, release
pipeline, and versioned registry image. Keeping the old Debian Buster
image in prplos leaves two sources for the same CI runtime and continues
to expose obsolete build, test, and deploy jobs.

Remove the in-tree Dockerfile and its CI job definitions. Drop the root
include because the testbed and CDRouter templates now consume the
external containers/testbed release directly.

Assisted-by: codex:gpt-5
Signed-off-by: Petr Štetiar <petr.stetiar@prplfoundation.org>
References: PPW-1258
2026-07-28 10:14:51 +01:00
Petr Štetiar
5c97fa5a41 ci: testbed: consume the ci/containers/testbed v1.3.0 image
The testbed and CDRouter templates currently derive their image from the
designated prplos branch. This couples image changes to an in-tree build
and prevents consumers from using the separately released container.

Use the released ci/containers/testbed v1.3.0 image in both templates,
pinning it to its published immutable manifest digest. This keeps cram
and CDRouter on the same Debian 13 environment with the runtime test
dependencies preinstalled, while every pipeline pulls the exact released
content.

The previous image declared /home/testbed as a volume. GitLab's Docker
executor replaced it with an empty, root-owned, persistent runner cache
that shadowed the writable home created in the image. OpenSSH resolves
~/.ssh through the passwd database instead of $HOME, so redirecting HOME
could not make bare ssh read the host key written by ssh-keyscan.

The v1.3.0 image drops that volume. Remove the ineffective HOME
overrides while retaining the .ssh directory setup that ssh-keyscan
needs.

Assisted-by: codex:gpt-5
Signed-off-by: Petr Štetiar <petr.stetiar@prplfoundation.org>
References: PPW-1258
2026-07-28 10:14:51 +01:00
Petr Štetiar
cbc87d14e0 ci: cram: 130-periodicfileupload.t: restore the canonical R alias
Cram tests conventionally define R directly from CRAM_REMOTE_COMMAND.
Commit 43f1696033 ("ci: cram: periodicfileupload tests sometimes fails
(PPW-1766)") introduced a sed pipeline for this test.

The substitution only matches ssh when it has a leading space, while
CRAM_REMOTE_COMMAND begins with ssh. The pipeline is therefore a silent
no-op.

Keeping a per-test rewrite would duplicate the stdin handling. The
preceding "ci: cram: keep remote commands off the script stdin" puts
ssh -n into CRAM_REMOTE_COMMAND at its source for every test.

Restore the canonical alias so this test follows the suite convention
and relies on the centralized remote command definition.

References: PCF-2222, PPW-1766
Assisted-by: claude:opus-5:orchestrator
Assisted-by: codex:gpt-5.6-sol:medium-fast
Fixes: 43f1696033 ("ci: cram: periodicfileupload tests sometimes fails (PPW-1766)")
Signed-off-by: Petr Štetiar <petr.stetiar@prplfoundation.org>
2026-07-28 09:03:45 +00:00
Petr Štetiar
3723a2793b ci: cram: keep remote commands off the script stdin
Cram supplies the complete generated test script through the shell's
stdin. SSH inherits that input from the shared remote-command alias and
drains the script beyond the shell's read-ahead buffer. The shell then
reaches EOF in the middle of a quoted command near byte 8,192:

```text
/bin/sh: 74: Syntax error: Unterminated quoted string
```

This is independent of the Python interpreter. Freedom job 15484314070
failed the 49-command probe at chunk 0036 under Python 3.14.6. With the
same probe and firmware, job 15484856804 passed all 49 chunks under
Python 3.13 after adding the SSH stdin protection.

Pass -n to the shared SSH command so it reads from /dev/null instead of
the test script. Apply the same safe default to the MXL fallback alias.

Assisted-by: codex:gpt-5
Signed-off-by: Petr Štetiar <petr.stetiar@prplfoundation.org>
References: PCF-2222
2026-07-28 09:03:45 +00:00
prplbot
040e8a69f8 profiles: prpl_core.yml: feed_prplmesh: pwhm: resolve Coverity warnings from May 11-14 scans
Integrates following changes:
- wifiGen: resolve Coverity warnings from May 11-14 scans (9d3c8fe1)

References: PPW-1948
Signed-off-by: prplbot <bot@prplfoundation.org>
2026-07-27 11:42:20 +01:00