Commit Graph

1174 Commits

Author SHA1 Message Date
Petr Štetiar
47caf3baaf ci: release: turris: fix swapped and incorrect asset link URLs
The Turris Omnia release asset links had their names swapped and the
sysupgrade URL pointed at a filename that was never uploaded:

  - "sysupgrade" linked to ...-initramfs-kernel.bin
  - "initramfs"  linked to ...-sysupgrade.img.gz, but the upload job
    publishes ...-squashfs-sysupgrade.img.gz, so that link 404s

Point each link at the file actually uploaded so the GitLab Release
has no dead assets.

Assisted-by: claude:opus-4-8:1m-context
Signed-off-by: Petr Štetiar <petr.stetiar@prplfoundation.org>
2026-07-07 09:45:27 +00:00
Petr Štetiar
189774a58e ci: release: add Valyrian, switch OSPv2/Freedom to SWU + bootstacks
prplWare 5.1.0 adds the Nokia Valyrian (airoha/an7581) device and moves
OSPv2 and Freedom to swupdate-based delivery. The build no longer emits
the previously published files, so the upload job would fail on the tag:

  OSPv2:   single-images/*_fullimage.fit  -> *-image.swu (+ *-ext4.img)
  Freedom: *-initramfs-uImage.itb         -> *-image.swu

Publish the new artifacts, mirroring the existing Mozart bootstack idiom:

  - Nokia Valyrian: initramfs, sysupgrade and an eMMC bootstack tarball
    (bl31-uboot.fip + preloader.bin), package nokia-valyrian
  - OSPv2 A/B-Step: per-step SWU image, ext4 rootfs and a bootstack
    tarball (both URX641 DDR U-Boot/SPL variants + update_script.itb)
  - WNC Freedom: SWU image and a bootstack tarball (U-Boot, .itb boot
    script and the kernel/rootfs netboot payload)

Filenames verified against the prplWare 5.1.0 pre-test builds in
pipeline 2644956474.

Assisted-by: claude:opus-4-8:1m-context
Signed-off-by: Petr Štetiar <petr.stetiar@prplfoundation.org>
2026-07-07 09:45:27 +00:00
Ruslana Popovych
91df8a912d ci: cram: update build config expectations for swupdate integration
Update the 005-build-config.t cram tests for both the mxl25641-hdk-6
and wnc-freedom boards to match the newly added firmware upgrade
packages and configurations.

- Add expectations for CONFIG_PACKAGE_mod-fwi-swupdate=y and
  CONFIG_PACKAGE_sysupgrade-prpl=y on both boards.
- Add board-specific expectations for CONFIG_SWUPDATE_TARGET_HW_VERSION.
- Expect CONFIG_FWI_FLASH_PARTITIONS="u-boot,kernel" on mxl25641-hdk-6.
- Add CONFIG_SAH_MOD_FW-AMX=y

Implements: PCF-2638
Tracked-by: FEAT-356, FEAT-357, FEAT-358
Signed-off-by: Ruslana Popovych <ruslana.popovych@globallogic.com>
signed-off-by: Hela Saadani <hela.saadani_ext@softathome.com>
2026-07-06 14:04:35 +01:00
Anatolii Rybchych
72e9afaa9d ci: cram: add sysupgrade-prpl failed-download (404) test
Verify the sysupgrade-prpl wrapper surfaces a failed firmware download:
a missing image (HTTP 404) dispatches Download() on the inactive bank
but ends in DownloadFailed with '404 Not Found' in the BootFailureLog -
no flash, no activation despite AutoActivate=1.

References: PCF-2401
Tracked-by: FEAT-356
Signed-off-by: Anatolii Rybchych <anatolii.rybchych@globallogic.com>
2026-07-06 14:04:35 +01:00
Anatolii Rybchych
d30402f2fe ci: cram: deviceinfo: add FirmwareImage Download()/Activate() failure tests
Added cram tests covering the negative/failure paths of the TR-181
Device.DeviceInfo.FirmwareImage Download() and Activate() RPCs on OSPv2:

- deviceinfo-firmware-download-failures: transfer/HTTP errors recorded in
  Status=DownloadFailed and BootFailureLog (connection refused, DNS failure,
  HTTP 401, HTTP 404).

- deviceinfo-firmware-download-active: Download() on the active bank is
  rejected (invalid argument; not supported with AutoActivate).

- deviceinfo-firmware-activate: Activate() argument and state guards

  (unavailable bank, bad Mode, Start>=End, invalid BootFirmwareImage,
  prevent disabling the active bank).

- deviceinfo-firmware-activate-active: re-activating the already-active bank
  does not switch the booted image.

- deviceinfo-usp-download-failure: the same download errors driven over USP
  (obuspa), exercising the OperationComplete-subscription requirement.

Implements: PCF-2638
Tracked-by: FEAT-356, FEAT-357, FEAT-358
Signed-off-by: Anatolii Rybchych <anatolii.rybchych@globallogic.com>
2026-07-06 14:04:34 +01:00
Mouna ALOUI
7d93582b6a ci: coverity: add lzop and libssl-dev to coverity job dependencies
The u-boot-freedom package requires lzop to compress the FIT DTB blob
(fit-dtb.blob.lzo) during the final build stage. The uboot-tools host
package requires OpenSSL headers to build. The regular build job has
these available via OpenWrt's host tools, but under Coverity's cov-build
wrapper they are not available, causing build failures:

  /bin/sh: 1: lzop: not found
  make[3]: *** [Makefile:1216: fit-dtb.blob.lzo] Error 127

  ERROR: package/feeds/feed_prplos/uboot-tools [host] failed to build.

Install lzop and libssl-dev via apt-get alongside the other Coverity
job dependencies.

Reference: PPW-2121

Signed-off-by: Mouna Aloui <mouna.aloui@softathome.com>
2026-07-02 06:57:27 +00:00
Peter Steinhaeuser
0155327bf6 PROVISORY: ci: cram: nokia-valyrian: skip known-failing tests until PCF-2669
The following cram tests fail on Nokia Valyrian and are skipped on this
platform (CI_JOB_NAME guard, exit 80) until addressed, matching the
existing per-platform skip convention:

  generic/acceleration-plan-components/046-qos-classification.t
  generic/lcm/038-lcm-pcm.t
  generic/lcm/042-lcm-usp-direct-connection.t
  generic/obuspa.t
  generic/verify-config-restore/020-verify-backup-restore-flags.t
  nokia-valyrian/100-pwhm_step_1.t
  nokia-valyrian/100-pwhm_step_2.t

The guards only skip on Valyrian; behaviour on other platforms is
unchanged. obuspa.t is a known flaky test (USP re-registration race after
obuspa restart) affecting all platforms; tracked separately.

References: PCF-2669
Signed-off-by: Peter Steinhaeuser <ps@embedd.com>
2026-07-01 15:11:27 +01:00
Peter Steinhaeuser
510fd00108 ci: cram: nokia-valyrian: add new build config packages to 005-build-config
The image-authentication feature and its dependencies (libbotan, librnp,
libsexpp) and timingila-rlyeh-security are now part of the Valyrian build.
Add them to the expected package list.

Signed-off-by: Peter Steinhaeuser <ps@embedd.com>
2026-07-01 15:11:27 +01:00
Peter Steinhaeuser
4178e14811 ci: cram: nokia-valyrian: fix VapType parameter name in 110-prplmesh-dataelements
The 110 test used the parameter name X_PRPLWARE_VapType, which the data
model does not define (amxd returns error_code 4, parameter not found),
so the ubus _set failed. The vendor parameter is X_PRPLWARE-COM_VapType,
as used by every other platform variant of this test. Correct the name in
both _set calls and align the expected output (name and key order) with
the device output.

Signed-off-by: Peter Steinhaeuser <ps@embedd.com>
2026-07-01 15:11:27 +01:00
Christian Marangi
582ccfd881 PROVISORY: ci: cram: skip USB power management test for Mozart and Valyrian
tr181-usb have a regression that makes this test fail from version 0.7.0+.
This was verified to be working with test 0.3.1 and it's a bug in tr181-usb
itself. Skip the test until it's fixed.

References: PCF-2617
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
Signed-off-by: Peter Steinhaeuser <ps@embedd.com>
2026-07-01 15:11:27 +01:00
Christian Marangi
33977c34b3 profiles: add Airoha/Nokia profile
Add Airoha/Nokia profile for the Valyrian board. Required packages
are imported from the feed-airoha repository.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
Signed-off-by: Peter Steinhaeuser <ps@embedd.com>
2026-07-01 15:11:24 +01:00
Christian Marangi
e342d3003e ci: cram: detach cellular specific element from generic ubus datamodel test
Some ubus datamodel are specific to devices with cellular support. Move
these element to the specific ubus datamodel test to fix the generic test
from failing.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
Signed-off-by: Peter Steinhaeuser <ps@embedd.com>
2026-07-01 15:10:02 +01:00
Christian Marangi
503d3daff1 ci: cram: Permit 37 additional queue in qdisc HTB regex
Some device (Nokia Valyrian) have up to 36 queues and on creating a new
one for HTB test, the returned value from tc qdisc show is now 37.

Update the generic test to address for this new device that define
additional HW queues.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
Signed-off-by: Peter Steinhaeuser <ps@embedd.com>
2026-07-01 15:05:53 +01:00
Petr Štetiar
8c8d6dbe84 Revert "PROVISORY: ci: cram: freedom: skip 5G modem tests until PCF-2663"
This reverts commit 370bbd875e.

PCF-2663 is fixed: the previous commit e3c5cc3b5a30 ("profiles:
qca_ipq95xx: extend PCIe link retries so the 5G modem enumerates")
raises link_retries_count so the controller waits long enough for the
Quectel RM520N-GL PCIe link to train. The modem enumerates on PCIe
again, so re-enable the full modem cram test suite on Freedom that was
provisionally skipped.

References: PCF-2663
Assisted-by: claude:opus-4-8:1m-context
Signed-off-by: Petr Štetiar <petr.stetiar@prplfoundation.org>
2026-07-01 09:29:41 +00:00
Houssem Dafdouf
e78ef81560 PROVISORY: ci: cram: pwhm: freedom: fix unexpected reconfigured links
Include all currently enabled non-TX BSS-related 6GHz links in the
expected output when disabling non-TX BSS links belonging to the same
MLD.

Due to a hostapd limitation (PCF-2595), non-TX BSS links cannot be
dynamically reconfigured and therefore must be re-added.

Context:
This limitation could be workarounded by setting WiFi.Radio.3.IEEE80211ax.MBSSIDAdvertisementMode
to "Off", which was temporarily done through the feed config in the
context of PCF-2539. Now as PCF-2539 in fixed and the config is set
back to Auto, we need to update the expected output.

References: FEAT-389,PCF-2595,PCF-2539
Signed-off-by: Houssem Dafdouf <houssem.dafdouf_ext@softathome.com>
2026-06-29 16:46:38 +01:00
Hela Saadani
fbd87e9082 ci: cram: obuspa: add MSCS/SCS QoS Management support for AccessPoint
References: PPM-3963
Signed-off-by: Hela Saadani <hela.saadani_ext@softathome.com>
2026-06-29 15:30:11 +01:00
Maarten De Decker
26a84617ac profiles: prpl: prplMesh: bump to prplMesh v6.0.1 (prplware-5.0-2026-06-25)
Integrates following changes:
- ci: remove wireless credential before starting test (5cbbf2071)
- ci: install lzop and libbsd-dev in builder image (8f684724b)
- fronthual: fix csa_notification_timer fd leakage (235601c02)
- Boardfarm: fix importerror for module pytz (60f778ad9)
- common: optimize base_wlan_hal_whm::refresh_radio_info() (9580484d6)
- agent: fix invalid STA in unassoc link metrics resp (6dbbd3f95)
- conn_map: summarize agent classifications (63b67bd9e)
- controller: use AL-MAC for prplMesh classification (ee1b9563e)
- agent: reapply TS VLAN changes (d7a1e7d87)
- tlvf: accept variable-length WSC public keys (23d97f397)

References:  PPM-4118, PPM-4130, PPM-4129, PPM-4077, PPM-4111, PPM-4001,
             PPM-4034, PPM-4083, PPM-4108
Signed-off-by: Maarten De Decker <maarten.dedecker@mind.be>
2026-06-29 13:56:48 +00:00
Bhavesh Bharadiya
26e2bdfbe1 profiles: mxl_x86_osp_tb341_v2: upstep to the latest UPDK 9.2.10 ER
Fixes below issues:
* WLAN interface does not come up after changing the configuration from hidden SSID to non-hidden SSID
* Stability issue causing WLAN interfaces to go down after approximately 15 hours in a multi-client setup
* Hostapd crashes randomly when WLAN radio configurations are applied after boot
* tc commands failing when trying to create WMM stat queues
* lighttpd configuration fails when configured with PKCS#11 URI
* Default sessions cache not refreshed on netif status change

Enhancements:
* debugfs support for static pp session
* Configure MTU for VEIP interface to max available value

Signed-off-by: Bhavesh Bharadiya <bnbharadiya@maxlinear.com>
2026-06-29 10:06:59 +00:00
Patrick ROGIER
4b6b20a139 cram: add manual tests for WAN modes on OSPv2 B-step board
Add 3 manual cram tests:
- manual_test_ethernet_dhcp.t
- manual_test_gpon_dhcp.t
- manual_test_gpon_onboard_dhcp.t

They respectively test following WAN modes:
- Ethernet_DHCP
- GPON_DHCP
- GPON_ONBOARD_DHCP

Those tests should not be part of ci. Each of them requires the user to
create the proper setup manually before.

cram tests cannot pause mid-test and interactively ask a human for
input. And testing those WAN modes requires unplugging and replugging
SFPs. Therefore it's difficult to write automatic cram tests which are
part of ci to test those WAN modes.

References: PCF-2549, FEAT-287
Signed-off-by: Patrick ROGIER <patrick.rogier_ext@softathome.com>
2026-06-24 11:31:10 +01:00
Théo-Paul Bodin
43f1696033 ci: cram: periodicfileupload tests sometimes fails (PPW-1766)
Problem: Some expected errors are randomly different

Cause: sleep duration was too short for serveile to start correctly
resulting in a 9015 error instead of a 9012

Solution: Increase sleep duration and change how the CABundle is added
to avoid unexpected error

References: PPW-1766, PPW-1632
Signed-off-by: Théo-Paul Bodin <theo-paul.bodin@softathome.com>
2026-06-23 15:38:09 +00:00
Petr Štetiar
370bbd875e
PROVISORY: ci: cram: freedom: skip 5G modem tests until PCF-2663
After migrating Freedom to the new SFL/SMD secure-boot layout, the Quectel
RM520N-GL 5G modem is no longer enumerated on the PCIe bus: its PCIe
controller PHY link never trains in time, so mhi-pci-generic never binds
(the modem stays reachable only over USB). Every modem-dependent cram test
therefore fails on Freedom.

Provisionally skip the modem test suite on Freedom (DUT_BOARD=wnc-freedom)
until PCF-2663 is fixed, keeping the rest of the platform coverage intact:

- generic/cellular-manager/*.t (all 10) -- exit 80 guard
- generic/acceleration-plan-components/50-cellular-offline.t -- exit 80 guard
- generic/acceleration-plan-components/018-cellular-trusted-elements.t -- exit 80 guard
- wnc-freedom/015-platform.t -- drop the PCI / mhi-pci-generic assertion only;
  the USB-modem, ethernet-alias and WPS/reset GPIO checks keep running

Revert this commit once the modem is back on PCIe (PCF-2663).

References: PCF-2663, PCF-2643
Assisted-by: claude:opus-4-8:1m-context
Signed-off-by: Petr Štetiar <petr.stetiar@prplfoundation.org>
2026-06-23 10:57:10 +02:00
Petr Štetiar
78b11d2d5b
ci: testbed: labgrid: flash OSPv2 and Freedom via FEAT-29 update_prpl
Switch the OSPv2 (mxl25641-hdk-6) and Freedom (wnc-freedom) eMMC flash
flow to the FEAT-29 U-Boot update script, replacing the legacy OSPv2
update_fullimage path and the Freedom untar/flash sysupgrade path. This
exercises the image/update tooling introduced in prplos!1964.

The flow tftpboots the per-board update_script.itb, sources it and runs
update_prpl against the FEAT-29 OS artifacts:
- OSPv2: PRPL_OSP_v2-wgrtd159be_b_wav700-ext4.img (4G variant)
- Freedom: prpl_freedom-kernel.itb + prpl_freedom-rootfs.itb

update_rescue_bank is set to yes so both OS banks carry the same image
and a bank failover cannot boot a stale rootfs. U-Boot/RBE/XBL/SMD are
left unset: those are one-time migration inputs and must not be
reflashed on every refresh. Boards are expected to already be on the
prpl flash layout. Hand-off to Linux uses run bootcmd (bootprpl/bootipq)
instead of reset, which avoids a power cycle and the labgrid autoboot
re-interrupt hazard.

init_command_timeout bounds the whole init_commands sequence and is set
deliberately tight, per board, so a network/perf regression (e.g. image
TFTP throughput roughly halving) trips the timeout instead of silently
passing, while still absorbing TFTP first-packet jitter. Validated runs
executed the init_commands in:
- OSPv2:   ~30s (update_script TFTP ~10s + update_prpl ~18s)   -> 60s
- Freedom: ~37s (sleep 5 + update_script TFTP ~3.5s + update_prpl ~24s,
                 two images to both banks)                     -> 75s

The rootfs_data overlay is erased before update_prpl so every refresh
boots from a clean overlay; update_prpl itself leaves rootfs_data
untouched. The block offsets are hardcoded from each board's GPT because
the target U-Boot has no part command to derive them:
- OSPv2:   mmc erase 0x86c00 0x10000   (32 MiB, UPDK 9.2.0)
- Freedom: mmc erase 0x534022 0x40000  (128 MiB)

Because update_prpl needs both the update script and the OS image over
TFTP, generalise the testbed/cdrouter firmware copy to a list via the
new TFTP_IMAGE_FILENAMES variable (falling back to TFTP_IMAGE_FILENAME),
rather than overloading TFTP_IMAGE_UNPACK_COMMAND. The Freedom testbed
job now drives the wnc-freedom-emmc target instead of initramfs, so the
now-unused wnc-freedom-initramfs labgrid target is dropped.

Flip the wnc-freedom and mxl25641-hdk-6 testbed runner tags to the -sfl
variant (dut-wnc-freedom-sfl, dut-mxl25641-hdk-6-b-sfl), to make it
clear, that those devices are converted to the prpl Standard Flash
Layout.

References: FEAT-29
Closes: PCF-2644, PCF-2645
Assisted-by: claude:opus-4-8:1m-context
Signed-off-by: Petr Štetiar <petr.stetiar@prplfoundation.org>
2026-06-23 10:57:09 +02:00
Paul HENRYS
a4c008ca07
ci: cram: ospv2: test reading the FIT version using get_fit_version.sh
Test reading the FIT version from u-boot-active and kernel-active
partitions and compare it against the version stored in /etc/os-release.

cram file:
  212-read-fit-version.t

Implements: PCF-2606
Tracked-by: FEAT-29
Signed-off-by: Paul HENRYS <paul.henrys_ext@softathome.com>
Signed-off-by: Petr Štetiar <petr.stetiar@prplfoundation.org> [cram fixes]
2026-06-23 10:57:08 +02:00
Paul HENRYS
c7d6b1daa1
ci: cram: freedom: test reading the FIT version using get_fit_version.sh
Test reading the FIT version from u-boot-active, kernel-active and rootfs-active
partitions and compare it against the version stored in /etc/os-release.

cram file:
  212-read-fit-version.t

Implements: PCF-2606
Tracked-by: FEAT-29
Signed-off-by: Paul HENRYS <paul.henrys_ext@softathome.com>
Signed-off-by: Petr Štetiar <petr.stetiar@prplfoundation.org> [cram fixes]
2026-06-23 10:57:07 +02:00
yan wang
b3e49c68ce
ci: cram: freedom: test reading a register with sysregister driver
Read and write the bootcount register using sysregister driver.

Implements: PCF-2098, PCF-2099, PCF-2289
Tracked-by: FEAT-29
Signed-off-by: yan wang <yan.wang@softathome.com>
2026-06-23 10:57:06 +02:00
yan wang
b167370b0a
ci: cram: ospv2: test the upgrade with swupdate in Linux
Run upgrades in dry-mode with a correctly signed image and another one
where the keys to sign the .swu image and to authenticate the image
before the upgrade are different.
This last test also covers the case where the image is corrupted.

Implements: PCF-1876, PCF-1878
Tracked-by: FEAT-29
Signed-off-by: yan wang <yan.wang@softathome.com>
Signed-off-by: Petr Štetiar <petr.stetiar@prplfoundation.org> [cram fixes]
2026-06-23 10:57:05 +02:00
yan wang
1ecd787249
ci: cram: freedom: test the upgrade with swupdate in Linux
Run upgrades in dry-mode with a correctly signed image and another one
where the keys to sign the .swu image and to authenticate the image
before the upgrade are different.
This last test also covers the case where the image is corrupted.

Implements: PCF-1876, PCF-1878
Tracked-by: FEAT-29
Signed-off-by: yan wang <yan.wang@softathome.com>
Signed-off-by: Petr Štetiar <petr.stetiar@prplfoundation.org> [cram fixes]
2026-06-23 10:57:04 +02:00
yan wang
c317151364
ci: cram: ospv2: SMD reading
Test reading a non encrypted field and an encrypted one in Linux.

Implements: PCF-2103
Tracked-by: FEAT-29
Signed-off-by: yan wang <yan.wang@softathome.com>
Signed-off-by: Petr Štetiar <petr.stetiar@prplfoundation.org> [cram fixes]
2026-06-23 10:57:03 +02:00
yan wang
f0aa151d7b
ci: cram: freedom: SMD reading
Test reading a non encrypted field and an encrypted one in Linux.

Implements: PCF-2103
Tracked-by: FEAT-29
Signed-off-by: yan wang <yan.wang@softathome.com>
Signed-off-by: Petr Štetiar <petr.stetiar@prplfoundation.org> [cram fixes]
2026-06-23 10:57:02 +02:00
Bhavesh Bharadiya
e75f6cf681
ci: cram: ospv2: disable devmem
Disable devmem related options in the Linux kernel and Busybox.

Implements: PCF-1854
Tracked-by: FEAT-29
Signed-off-by: Bhavesh Bharadiya <bnbharadiya@maxlinear.com>
Signed-off-by: Petr Štetiar <petr.stetiar@prplfoundation.org> [cram fixes]
2026-06-23 10:57:01 +02:00
Paul HENRYS
89191fbc7f
ci: build: exclude non required images from the artifact
Exclude from the artifact images that are not required for prpl upgrade
This is a temporary workaround while waiting for MaxLinear to build and
copy only the required images.

Fixes: PCF-1854
Tracked-by: FEAT-29
Signed-off-by: Paul HENRYS <paul.henrys_ext@softathome.com>
2026-06-23 10:56:41 +02:00
Paul HENRYS
45ed7e2978
ci: build: install libpython3-dev in the Docker image before building
libpython3-dev provides Python header files required to build U-Boot tools.

Fixes: PCF-2606
Tracked-by: FEAT-29
Signed-off-by: Paul HENRYS <paul.henrys_ext@softathome.com>
2026-06-23 10:56:40 +02:00
Paul HENRYS
98562185be
profiles: mxl_x86_osp_tb341_v2: enable imagegenerator target package
imagegenerator is both a target and host package. Enable the target
package that installs public keys in the rootfs of the targets.

Implements: PCF-1874, PCF-1885, PCF-2141
Tracked-by: FEAT-29
Signed-off-by: Paul HENRYS <paul.henrys_ext@softathome.com>
2026-06-23 10:56:21 +02:00
Paul HENRYS
6ecd84b713
ci: build: install libssl-dev in the Docker image before building
OpenWrt does not provide an host package for OpenSSL but OpenSSL headers
files are required to build U-Boot hosttools. libssl-dev is therefore
installed in the Docker prior to launching the build.

Implements: PCF-1874
Tracked-by: FEAT-29
Signed-off-by: Paul HENRYS <paul.henrys_ext@softathome.com>
2026-06-23 10:04:23 +02:00
Mohamed-nour Toumi
7df7836e9b
profiles: qca_ipq95xx: add packages and update config to support an initramfs
* Add packages required by secure initramfs and LVM/dm:
    initramfs-generator, lvm2, kmod-dm, blkid/libblkid, libuuid,
    libcomerr, libext2fs, libfdisk, libfdt, fdt-utils.
  * Default to GZIP initramfs compression.
  * Enable secure initramfs and initramfs-generator options (eMMC,
    rootfs signature preload (+mandatory), dm-crypt, board id,
    swupdate handlers, busybox utils).

Closes: PCF-1893
Tracked-by: FEAT-29
Signed-off-by: Mohamed-nour Toumi <mohamed.toumi_ext@softathome.com>
Signed-off-by: Petr Štetiar <petr.stetiar@prplfoundation.org> [cram fixes]
2026-06-23 10:04:18 +02:00
yan wang
1f589f2e4e
ci: build: install libbsd-dev and lzop packages before build
libbsd and lzop are required by u-boot-qca-freedom.

Implements: PCF-1869
Tracked-by: FEAT-29
Signed-off-by: yan wang <yan.wang@softathome.com>
2026-06-22 18:20:33 +02:00
Igor Plesser
baf7466687 ci: cram: use prplmesh-process-monitor DM to check prplMesh status
Change the way to check the prplMesh status from the `ps` command to the
check X_PRPLWARE-COM_ProcessManager.PrplMesh.Status.

Affected cram tests:
* arcadyan-mozart/110-prplmesh-dataelements.t
* prpl-haze/100-prplmesh.t
* turris-omnia/100-prplmesh.t
* wnc-freedom/102-pwhm-static-puncturing.t

Closes: PPM-4071
Signed-off-by: Igor Plesser <i.plesser@inango-systems.com>
2026-06-19 09:00:47 +00:00
Roman Shcherbakov
dee52a81bf ci: cram: use prplmesh-process-manager DM to check prplMesh status
Change the way to check the prplMesh status from the `ps` command to the
check X_PRPLWARE-COM_ProcessManager.PrplMesh.Status.

Affected cram tests (Freedom):
* 102-pwhm-static-puncturing.t;
* 126-wifi-radio-capability.t.

Closes: PPW-1862
Signed-off-by: Roman Shcherbakov <r.shcherbakov@inango-systems.com>
2026-06-19 08:52:33 +00:00
Nabil BIZID
f6f1fe5418 cram: add test to for https schema
Adding a new test to validate support of the https schema

References: PPW-1525
Signed-off-by: Nabil BIZID <nabil.bizid@softathome.com>
2026-06-12 14:54:46 +00:00
FAOUZI YAHYA
9f3999fb09 ci: cram: obuspa.expected: add Device.DNS.Diagnostics.NSLookupDiagnostics
Integrate following changes:
-add Device.DNS.Diagnostics.NSLookupDiagnostics

Reference: PCF-2486
Signed-off-by: FAOUZI YAHYA <faouzi.yahya_ext@softathome.com>
2026-06-12 15:01:41 +01:00
FAOUZI YAHYA
3fc4c13d88 ci: cram: ubus-datamodel-list.t: add DNS.Relay.Config.Unbound
Integrate following changes:
-add DNS.Relay.Config.Unbound

Reference: PCF-2486
Signed-off-by: FAOUZI YAHYA <faouzi.yahya_ext@softathome.com>
2026-06-12 15:01:41 +01:00
Houssem Dafdouf
e96f74ca65 ci: cram: freedom: update bstamld test script
Update the test script with the following test cases:

- Move all endpoints to a new MLDUnit
- Verify the data model after clearing MLDUnit

References: FEAT-488
Signed-off-by: Houssem Dafdouf <houssem.dafdouf_ext@softathome.com>
2026-06-12 13:06:52 +00:00
Artem Trokhymchuk
bbd88ee342 ci: cram: don't override the usp-cli configs in the LCM tests
To overcome the known USP events limitation in OBUSPA (PCF-1287), the LCM cram
tests created and used an amx cli configuration (`usp-cli`) that connects
exclusively to the USP broker. This configuration allows creating a subscription
to OBUSPA with a specific EndpointID (`proto::local_controller`), and
notifications are handled by a Lua event script.

After integrating FEAT-27, a default amx cli called `usp-cli` (same name as used
by the LCM tests) is added as part of prplOS configuration. This leads to a
conflict between the configuration defined by the cram tests and the new default
configuration regarding the USP EndpointID (`proto::usp-cli` vs.
`proto::local_controller`).

If the event script hangs, the usp-cli becomes unusable, as two USP controllers
cannot connect to OBUSPA with the same EndpointID.

To fix this, the amx cli configuration required for the test will be installed
using a different name (`usp-test-cli`), as done in recent LCM scripts
(040-lcm-security-part1.t and 040-lcm-security-part2.t), avoiding any conflict
with the default integrated `usp-cli`.

Tests that only require a normal usp cli (no specific config) do not need to
install the cli configuration, as it is now part of the default prplOS
configuration after integrating FEAT-27.

Closes: PPW-1900
References: FEAT-27
Signed-off-by: Artem Trokhymchuk <a.trokhymchuk@inango-systems.com>
2026-06-12 12:59:24 +00:00
Patrick ROGIER
593a5edb54
ci: cram: test blocking and allowing of an SFP
Add allow_block_sfp.t: it tests allowing and blocking of a copper
Ethernet SFP.

References: PCF-2253, PCF-2524, FEAT-376
Signed-off-by: Patrick ROGIER <patrick.rogier_ext@softathome.com>
2026-06-05 18:42:45 +02:00
Patrick ROGIER
6c9a191bf1 ci: cram: ubus-datamodel-list: add SFPs.AllowedSFPs
FEAT-376 adds support to allow/block SFPs. It includes the addition of a
new object to the BBF TR-181 SFPs datamodel. Adapt ubus-datamodel-list.t
accordingly.

References: PCF-2253, FEAT-376
Signed-off-by: Patrick ROGIER <patrick.rogier_ext@softathome.com>
(cherry picked from commit 3523aa7f6e8dc88b498b7048aa595aec7e437d8b)
2026-06-05 15:20:09 +01:00
Toon Caeyers
24eb939ad4 ci: cram: obuspa: Add new AllowedSFP parameters
FEAT-376 adds support to allow/block SFPs.
To achieve this, a new object and a few new parameters where added to the SFPs datamodel in tr181.

These new parameters need to be added to the expected output of the obuspa test accordingly

References: PCF-2253, FEAT-376
Signed-off-by: Toon Caeyers <toon.caeyers_ext@softathome.com>
(cherry picked from commit 21c3031dfb2497639f34cba02e05ffe659a75264)
2026-06-05 15:20:09 +01:00
Matthias Franck
3218e1024b Revert "PROVISORY: ci: 095-reboot-service.t: disable test on Freedom board because this board doesn't support ll-api bootstatus"
After the integration of PCF-2288, this test needs to be enabled again.

This reverts commit 16151853e4.

References: PPW-2015
Signed-off-by: Matthias Franck <matthias.franck@softathome.com>
2026-06-05 11:43:33 +00:00
Nabil BIZID
8bcbeb1152 ci: cram: split lcm security tests
Split the LCM security tests into two separate subsets.

The first subset is responsible for testing signature authentication methods,
supported protocols for the authentication server, and support for customizing
the User-Agent.

The second subset tests server (signature/registry) validation through CABundles
as well as mTLS.

Splitting the tests is required due to a limitation in cram, which impacts the
tests and causes failures when a test starts by executing a remote command (over
SSH) followed by a number of additional commands (even local ones). After a
certain number of commands, cram's behavior becomes unpredictable and the last
part of the test is ignored.

To reproduce this issue, the cram test pattern should be:
  $ alias R="${CRAM_REMOTE_COMMAND:-}"
  $ R logger -t cram "Starting LCM security test"

  Echo a line:

    $ echo "testing cram limitation"
    testing cram limitation

  Repeat the above test lines (e.g., 200 times) in the same cram test file.

References: PCF-2279, FEAT-300
Signed-off-by: Nabil BIZID <nabil.bizid@softathome.com>
2026-06-05 12:40:02 +01:00
Nabil BIZID
53c2297f54 ci: cram: add test for basic authentication with wrong password
Add a test to check signature server Basic authentication with
a wrong password.
This complements the existing tests that verify authentication
with a correct password.

References: PCF-2279, FEAT-300
Signed-off-by: Nabil BIZID <nabil.bizid@softathome.com>
2026-06-05 12:40:02 +01:00
Nabil BIZID
9b943bbaab ci: cram: add support for lcm security test
Adding support for using CABundle/Certificates as defined by
TR181 for both remote registry and signature server.
Adding support for signature server authentication (username/password)
Adding support for setting custom User-Agent

References: PCF-2279, FEAT-300
Signed-off-by: Nabil BIZID <nabil.bizid@softathome.com>
2026-06-05 12:40:02 +01:00
Nabil BIZID
2c14cd7d14 ci: cram: update expected datamodel and configs
Add the new expected object and parameters introduced by the PCF-2279 feature.
Add the new expected components introduced by the PCF-2279 feature.

References: PCF-2279, FEAT-300
Signed-off-by: Nabil BIZID <nabil.bizid@softathome.com>
2026-06-05 12:40:02 +01:00
Houssem Dafdouf
c73a23a6ab ci: cram: pwhm-usp.t test script is executed twice
Problem:

The revert of MR !2395 is incomplete. It added the new
103-pwhm-usp.t symlink but kept the previous 102-pwhm-usp.t symlink.

As a result, both symlinks point to the same script, causing the
pwhm-usp test to be executed twice in the same test run. Running the
script twice in a row without delay is unreliable and may lead to some
failures.

Solution:

- Remove the obsolete 102-pwhm-usp.t symlink so only 103-pwhm-usp.t
remains.
- Ensure the AccessPoint is disabled before starting the test.

Closes: PPW-2036
Signed-off-by: Houssem Dafdouf <houssem.dafdouf_ext@softathome.com>
2026-06-04 22:49:15 +02:00
Volodymyr Pavlenko
5f4f7d7b11 ci: cram: update prplMesh DM field names
Changed VapType, Group and GroupName fields parameter names:
 X_PRPLWARE_VapType   -> X_PRPLWARE-COM_VapType
 X-PRPL_ORG_Group     -> X_PRPLWARE-COM_Group
 X-PRPL_ORG_GroupName -> X_PRPLWARE-COM_GroupName

Signed-off-by: Volodymyr Pavlenko <pavlenko.vv@pm.me>
2026-06-04 18:25:19 +03:00
Maarten De Decker
7cdbf7cc3b
profiles: prpl: prplMesh: bump to prplMesh v6.0.0 (prplware-5.0-2026-06-04)
Integrates following changes:
- Fix for bSTA MLD Info empty during R6 certification (cffe57f77)
- bwl: whm: bSTAMLD API implementation (cf3753d2d)
- Add MLO Affiliated STA Link Change Detection (1c730ddd4)
- agent: enhance tc qos filter handling (ac752e26b)
- easylogging: trigger exit instead of abort when FATAL arrives (f4fd976cf)
- agent: add reconfigure flag to ap mld update request (8c6ad108f)
- agent: common: fix issues reported by coverity (c8c85f6fb)
- bcl: son_wireless_utils: avoid copying channels tables on every call (397320231)
- agent:  add ap mld mac in disassoc event (744b36bd2)
- controller: SCS/MSCS, descriptors, and settings (295e2e86a)
- agent: common: controller: vendor_message: fix coverity issues (e7e7eec98)
- agent: remove duplicate link metrics reporting (d405c9e36)
- agent: don't abort Link Metric Response on partial failures (5589184c8)
- controller: fallback to non-prplMesh onboarding on VS TLV mismatch (dfb772f38)
- agent: separate BSS active from enabled state (a72d048b4)
- Removal of X-PRPL_ORG_ in prplMesh DMs (f6df89979)
- agent: channel_scan_task: send report for all scan states (1914c5d78)
- agent:  add bsta capabilities in topology response (3ce403249)
- traffic_separation: handle wds and fh ifaces events (a5aaf4018)

References:  PPM-4091, PPM-3987, PPM-3648, PPM-4019, PPM-4030, PPM-3772,
             PPM-3912, PPM-4062, PPM-4064, PPM-4003, PPM-3917, PPM-3567,
             PPM-4028, PPM-3993, PPM-4035, PPM-3488, PPM-3794, PPM-4018,
             PPM-3905

Signed-off-by: Maarten De Decker <maarten.dedecker@mind.be>
Signed-off-by: Petr Štetiar <petr.stetiar@prplfoundation.org> [cram DM update]
2026-06-04 16:09:40 +02:00
Alexandre Fiset
951c2d1d74 ci: cram: add DHCPv4 Force option cram tests
Test the Force parameter of Device.DHCPv4.Server.Pool.{i}.Options.{i} to
force an option when ever it is not requested by the client

Closes: PCF-2462
Signed-off-by: Alexandre Fiset <alexandre.fiset@softathome.com>
2026-06-02 17:59:31 +01:00
Sathishkumar Selvam
367d98af02 cram: 50-cellular-offline.t : Fix InternalName failure in 50-cellular-offline.t with prioritizing cellular-trusted-elements.t cram
-  Prioritize cellular-trusted-elements.t cram run to fix internal name verification failure. This ensures cellular-trusted-elements.t executes before 50-cellular-offline.t so that SIMReferenceList and Trusted Elements are configured early. This enables proper internal name resolution required for FEAT-9, where the cellular interface is unavailable until these prerequisites are met.

- Removed unnecessary skip for the test `cellular-trusted-elements.t` on test-bed-02 since it is not impacted by PCF-2585

References: PPW-1779
Signed-off-by: Sathishkumar Selvam <sathishkumar.selvam@capgemini.com>
2026-06-02 15:16:11 +01:00
Sathishkumar Selvam
edc9b1b3f6 ci: cram: obuspa: update expected DM & datamodel-dump script to scope with FEAT-9 integration
- Restored obuspa-cellular.t to version before FEAT-9 which got messed during the rebase with its integration
- With FEAT-9 integration, Modified the obuspa-cellular.expected to align with updated datamodel changes
- Fixed obuspa-datadump-model to include updated datamodels in cellular-mode and exclude them in other modes to resolve FEAT-9 integration failures

References: PPW-1779
Signed-off-by: Sathishkumar Selvam <sathishkumar.selvam@capgemini.com>
2026-06-02 15:16:11 +01:00
Ahmed Amine HAOUES
85544abdad ci: cram: freedom: check rad/vap status after changing radio operating Standard
- Adapt both cram test 106-pwhm-get-eht-caps to check radio and vap
status after changing the radio operating standards
- wait some time before the checking, to consider delay needed to propagate
ML Update in beacons before applying config
- This checking was failing before pwhm fix

References: PPW-2020
Signed-off-by: Ahmed Amine HAOUES <ahmed-amine.haoues_ext@softathome.com>
2026-06-02 14:27:56 +01:00
Artem Trokhymchuk
d0bc0e2351 ci: cram: generic: ubus-datamodel-list.t: ignore '^WiFi.Vendor.MLO.' object on ubus
Since pwhm still registered private datamodel on ubus, it should be ignored in the ubus datamodel list test.
'Device.WiFi.Vendor.MLO.' is _not_ ignored, only private (e.g. without Device.).

Closes: PPW-1996
References: FEAT-27
Signed-off-by: Artem Trokhymchuk <a.trokhymchuk@inango-systems.com>
2026-06-02 10:51:41 +01:00
Artem Trokhymchuk
2f4e80646c ci: cram: generic: obuspa.t: remove Device.WiFi.Vendor. exepcted datamodel
Remove expected Device.WiFi.Vendor. registered object as it is privated and now hidden by mapper.

Closes: PPW-1996
References: FEAT-27
Signed-off-by: Artem Trokhymchuk <a.trokhymchuk@inango-systems.com>
2026-06-02 10:51:41 +01:00
Artem Trokhymchuk
bf3cab8bf6 Revert "PROVISORY: ci: cram: temporarily filter MLO vendor datamodels"
This reverts commit 436db5fd76.

prplmesh-dm-mapper now hides Device.WiFi.Vendor. object
completely, so the provisory commit is not needed anymore.

Closes: PPW-1996
References: FEAT-27
Signed-off-by: Artem Trokhymchuk <a.trokhymchuk@inango-systems.com>
2026-06-02 10:51:41 +01:00
Artem Trokhymchuk
7381126508 ci: cram: use amx_poll_object script in the static puncturing test to wait for the USP datamodel arrival
Replace 'amx_wait_for' using private datamodel with amx_poll_object script
using public USP datamodel. This change allowed continuing tests _after_
the prplMesh datamodel is registerd through mapper and also to specify
timeout for the datamodel waiting.

Closes: PPW-1903
References: FEAT-27
Signed-off-by: Artem Trokhymchuk <a.trokhymchuk@inango-systems.com>
2026-06-02 09:27:17 +00:00
Sathishkumar Selvam
2107cfa9e1 ci: cram: call reset, make TestIntervalMultiplier as 1 & MaxFailNum to 30 on avoiding high recover/failure cases for cram
- Calling amx-processmonitor reset calls on cram processes to avoid any intermittent failures if applicable before starting cram

- amx-processmonitor currently uses TestIntervalMultiplier defaults to 2 for providing more recovery time from failure, But its not required in case of cram run to avoid time consumption with verification, Hence changed back to 1

- As a precautionary step, Making MaxFailNum as 30 to avoid any restarts with test kill and reverting back to 2 once those test cases done, This ensures no failure action made for our test runs

References: PPW-1779
Signed-off-by: Sathishkumar Selvam <sathishkumar.selvam@capgemini.com>
2026-06-02 10:17:54 +01:00
KARMENI Mohamed Karim
f18ebeab47 cram: acceleration-plan-components: make syslog log marker checks rotation-safe
Problem:
=======
The syslog test could fail randomly when logrotate moved the marker
from /var/log/messages to a rotated messages file before the grep check.

Solution:
========
Search both active and rotated messages logs, and use unique markers per
test run to avoid matching stale entries.

Fixes: PPW-1013
References: PCF-2044
Signed-off-by: KARMENI Mohamed Karim <Mohamed-Karim.karmeni_ext@softathome.com>
2026-06-01 15:03:42 +00:00
Petr Štetiar
5c4d350c62 ci: cram: 110-prplmesh-dataelements: fix assert agent count per testbed
Currently the cram test fails to assert the correct connected agent
count as the previous change in commit c5824479fc ("ci: cram:
110-prplmesh-dataelements: assert agent count per testbed") was pushed
by accident without being properly tested.

The output of prplmesh_cli prefixes the line containing the connected
agent count with a tab character, meaning there is no literal space
character before the digit. Since the sed regex pattern requires a
literal space, the pattern match fails, leaving the extracted agent
count empty.

 --- .gitlab/tests/cram/wnc-freedom/110-prplmesh-dataelements.t
 +++ .gitlab/tests/cram/wnc-freedom/110-prplmesh-dataelements.t.err
 @@ -215,6 +215,7 @@
   >     | sed -nE 's/.* ([0-9]+) agent\(s\) connected.*/\1/p')
   $ if echo "$CI_RUNNER_DESCRIPTION" | grep -q testbed-02; then EXP=2; else EXP=1; fi
   $ test "$ACT" = "$EXP" || echo "agent count mismatch: actual=$ACT expected=$EXP"
 +  agent count mismatch: actual= expected=2

So lets fix this by replacing the sed extraction pattern with a simpler
awk command, which has been verified locally on OSPv2. Since awk's
default field separator handles whitespace (both spaces and tabs)
uniformly, it successfully extracts the agent count.

Apply the same per-testbed agent-count assertion to the OSPv2
(mxl25641-hdk-6) and arcadyan-mozart boards, which had the count
hardcoded to 1 and thus hit the identical failure on testbed-02 where
prplmesh_cli now reports 2 connected agents (HomePlug-backhauled
TL-WPA7817, PCF-2504):

 --- .gitlab/tests/cram/mxl25641-hdk-6/110-prplmesh-dataelements.t
 +++ .gitlab/tests/cram/mxl25641-hdk-6/110-prplmesh-dataelements.t.err
 @@ -179,7 +179,7 @@
    Mode: Agent+Controller
    Controller:
            bridge MAC: (4C:BA:7D|A8:C2:46|AC:9A:96):[0-9A-F]{2}:[0-9A-F]{2}:[0-9A-F]{2} (re)
 -          1 agent(s) connected
 +          2 agent(s) connected

Fixes: PCF-2578
Closes: PPW-1981
References: PCF-2504
Assisted-by: claude:opus-4-8:1m-context
Link: https://gitlab.com/prpl-foundation/prplos/prplos/-/jobs/14374275747#L951
Link: https://gitlab.com/prpl-foundation/prplos/prplos/-/jobs/14527766714#L955
Fixes: c5824479fc ("ci: cram: 110-prplmesh-dataelements: assert agent count per testbed")
Signed-off-by: Petr Štetiar <petr.stetiar@prplfoundation.org>
2026-06-01 14:39:29 +00:00
Petr Štetiar
e893e4d4f2 profiles: prpl_core.yml: feed_amx: amx-cli: bump stdin fix
Bump feed_amx to f44cd0908bf6 ("amx-cli: bump to PCF-2445 stdin fix")
so prpl_core uses the amx-cli PCF-2445 MR head.

This brings the reviewed runtime change series:
- 7c78345ad543 ("ci: enable support for Cobertura XML report generation")
- 93740e7127a4 ("include_priv: align private header guards")
- 6f245591b78e ("amx-cli: ignore stdin after positional command")

The amx-cli change makes positional amx-cli and ba-cli commands exit
after the requested command instead of reading inherited stdin. This
prevents cram-over-ssh scripts from having their remaining test input
consumed by ba-cli.

Add a generic cram regression test that verifies positional ba-cli
commands preserve inherited stdin and do not wait on an open stdin pipe,
while explicit automated stdin-script mode still reads stdin.

The cram expectations for existing ba-cli calls still modeled the old
interactive output shape: prompt/header text, command output, and a
trailing prompt or blank line from the inherited stdin session. After
the stdin fix, one-shot ba-cli commands emit only command output, so
those filters either drop real data or keep obsolete blank-line
expectations.  Adjust the affected tests to filter only prompts and
empty lines so they match the corrected one-shot contract.

One syslog cram check also reuses the TR-181 PatternMatch value as a
grep -E expression. That value is stored with syslog-ng/basic-regex
escaped grouping, so the prompt cleanup left grep -E comparing DHCP log
lines against \(o|tr181-|dnsmasq-\)?dhcp. Extract only the PatternMatch
assignment and translate escaped parentheses before using the value as an
ERE, otherwise valid DHCP log lines are reported as unexpected output.

References: PCF-2445, PCF-2495, PPM-4088
Signed-off-by: Petr Štetiar <petr.stetiar@prplfoundation.org>
signed-off-by: Hela Saadani <hela.saadani_ext@softathome.com>
2026-06-01 10:41:21 +00:00
Jef Steelant
5c664a92d9 ci: cram: add new tests for inter container communication
Validate the inter-process communication using raw sockets or a direct
usp connection

References: PCF-2345
Signed-off-by: Jef Steelant <jef.steelant_ext@softathome.com>
2026-06-01 08:19:17 +02:00
Houssem Dafdouf
c4bf027183 PROVISORY: ci: cram: freedom: disable 127-wifi-mlo-over-mesh.t cram test
Some actions performed by 127-wifi-mlo-over-mesh.t cram test are
triggering hostapd crashes.

Temporarily disable the test until the root cause(s) is(are) identified

References: PPW-2014
Signed-off-by: Houssem Dafdouf <houssem.dafdouf_ext@softathome.com>
2026-05-26 17:03:22 +01:00
Houssem Dafdouf
201b56bea0 ci: cram: prplmesh_ap_mld.sh: fix wrong default MLDUnits
Correct the default MLDUnit values restored by
prplmesh_revert_mlo_to_defaults to avoid creating an
unsupported MLD configuration mixing BH and Guest VAPs
across four links, which may lead to a hostapd crash.

Closes: PPW-1997
References: FEAT-144,PPM-3930
Signed-off-by: Houssem Dafdouf <houssem.dafdouf_ext@softathome.com>
(cherry picked from commit 49137e8bb0bf2d6f60e6241c2f4599b1cc01c90f)
Signed-off-by: Cihangir Odabas <cihangir.odabas@prplfoundation.org>
2026-05-26 17:03:22 +01:00
Houssem Dafdouf
e8d94a0b05 ci: cram: obuspa: update expected DM
Add Device.WiFi.Radio.{i}.IEEE80211be. new object which was introduced
by FEAT-389.

References: FEAT-389
Closes:PPM-3772
Signed-off-by: Houssem Dafdouf <houssem.dafdouf_ext@softathome.com>
2026-05-26 17:03:22 +01:00
Houssem Dafdouf
efd6030833 ci: cram: pwhm: update pwhm test with FEAT-389 requirements
FEAT-389 requires that link removal or addition must not
trigger interface reconfiguration.

This test update verifies that no interface reconfiguration
occurs by checking the ifindex value from the iw output.

References: FEAT-389,PPM-3772
Signed-off-by: Houssem Dafdouf <houssem.dafdouf_ext@softathome.com>
2026-05-26 17:03:22 +01:00
Petr Štetiar
dd6f757ff6 PROVISORY: ci: cdrouter: OSPv2: switch CDRouter-UPnP-IPv46 USP MTP from MQTTv5 to WebSocket
On the MXL25641-HDK-6 CDRouter-UPnP-IPv46 (generic-ipv6-upnp) package the
job is killed by the 52-min CDRouter cutoff at ~test 61/81 (ipv6_upnp_210),
even though Mozart and Freedom complete the same 81-test package on the
same pipeline / same MR in ~45 min. The killed test was healthy and would
have passed in another ~42 s; only OSPv2 is affected.

Per-test execution times on OSPv2 are essentially identical to the last
known-good run on this job (72f7f516..bd9b1d94 bisect window) - the
regression is not in the tests themselves. CDRouter logs show that on
OSPv2, between every IGD2 and IPv6 test, CDRouter prints

  NOTICE: The EUT is not connected to the test controller
  NOTICE: The EUT did not reconnect within 30 seconds

before starting the next test. ~38 such 30-second waits accumulate
~18.5 min of dead time on top of the otherwise normal ~33-min runtime,
exactly closing the gap to the 52-min cutoff. The regression bisects to
e266163bea ("ci: cdrouter: switch USP testing from STOMP to MQTTv5 as
primary MTP", MR #2579) - the same change that exposed the half-dead
MQTTv5 socket bug tracked in PPW-1837. The CDRouter test controller
reaches the EUT via the configured USP MTP between tests; with MQTTv5 the
socket goes silently half-dead and the reachability probe times out at
30 s before CDRouter gives up and proceeds.

So lets workaround it by switching this one job (and its -Failing sibling
which runs the same package) to WebSocket MTP, mirroring what the
certification jobs already do (see 99912e34). Mozart and Freedom run the
same package without any inter-test waits and are intentionally left
untouched.

Revert this block once the system-level fix for the half-dead MQTTv5
socket (PPW-1837) lands.

References: PPW-1897, PPW-1837, PCF-2565
Assisted-by: claude:opus-4-7:1m-context
Signed-off-by: Petr Štetiar <petr.stetiar@prplfoundation.org>
2026-05-22 13:33:05 +00:00
Petr Štetiar
accd15a3eb ci: testbed,cdrouter: add opt-in obuspa debug logging
Currently the testbed and cdrouter jobs need an opt-in way to raise
OBUSPA logging when debugging intermittent USP and MTP issues such as
PPW-1897, PPW-1837 and PCF-2565. The normal CI path should keep the DUT
at firmware defaults and avoid editing /etc/init.d/obuspa unless a debug
run asks for extra logging.

So lets add DUT_OBUSPA_VERBOSE_LEVEL and DUT_OBUSPA_PROTOCOL_TRACE as
empty-by-default CI variables. The CI templates call the OBUSPA debug
helper only when either variable is non-empty, so normal runs leave the
DUT unchanged.

DUT_OBUSPA_VERBOSE_LEVEL configures runtime verbosity and the persisted
-v init-script argument. DUT_OBUSPA_PROTOCOL_TRACE configures runtime
prototrace and the persisted -p init-script argument for later OBUSPA
restarts. Invalid values fail before SSH so typoed CI variables do not
partially mutate the DUT.

DUT_OBUSPA_VERBOSE_LEVEL=3 enables the info-level OBUSPA logging useful
for USP controller and MTP debugging. DUT_OBUSPA_PROTOCOL_TRACE=1
enables protocol-level tracing when the CI run needs message-level
visibility.

Assisted-by: codex:gpt-5.5:xhigh
References: PPW-1897, PPW-1837, PCF-2565
Signed-off-by: Petr Štetiar <petr.stetiar@prplfoundation.org>
2026-05-22 13:33:05 +00:00
Benamor Imene
ca1682f8de ci: cram: 154-tr181-schedules.t: fix X_PRPLWARE-COM_ test expectations
Problem: The Status field prefix was changed to use the correct X_PRPLWARE-COM_ vendor prefix.
The cram test was not updated to reflect this change and needs to be aligned.

Solution: Update the cram test expected values to use the correct X_PRPLWARE-COM_ prefix.

References: PPW-1990
Signed-off-by: Benamor Imene <imene.benamor_ext@softathome.com>
2026-05-22 13:06:17 +00:00
Mykola Hlukhenkyi
7752024bd2 ci: testbed: increase timeout up to 80 min
Increase the CI timeout for added LCM USP restriction tests

References: PCF-2442, FEAT-28, FEAT-120
Signed-off-by: Mykola Hlukhenkyi <m.hlukhenkyi@inango-systems.com>
signed-off-by: Hela Saadani <hela.saadani_ext@softathome.com>
2026-05-22 09:50:54 +00:00
Mykola Hlukhenkyi
1517167df4 ci: tests: cram: USP authentication tests
Modify script_functions to add new parameters for install_ctr function
Add cram test for USP authentication
Add cram test to check USP restrictions
Modify 030-lcm-general CRAM test to check Cthulhu datamodel
Fill obuspa datamodel with new expected parameters and objects

References: PCF-2442, FEAT-28, FEAT-120
Signed-off-by: Mykola Hlukhenkyi <m.hlukhenkyi@inango-systems.com>
Co-Authored-by: Artem Trokhymchuk <a.trokhymchuk@inango-systems.com>
Signed-off-by: Artem Trokhymchuk <a.trokhymchuk@inango-systems.com>
2026-05-22 09:50:54 +00:00
Petr Štetiar
436db5fd76 PROVISORY: ci: cram: temporarily filter MLO vendor datamodels
Currently the generic cram data-model checks compare shared ubus and
obuspa output with fixed baselines.  These checks already filter WiFi
Vendor objects that are platform specific, because the generic tests
should not fail just because one target exposes extra vendor internals.

The MXL25641-HDK-6 jobs now expose Device.WiFi.Vendor.MLO through both
obuspa and ubus.  That is unexpected: prplmesh-dm-mapper lists the MLO
subtree in dmm-object-hide, so these objects should be hidden from the
public data-model listings in the first place.

So lets add provisional test-side filters for the MLO vendor subtree.
This keeps the generic tests board-neutral while the mapper visibility
issue is investigated.  The filters should be removed again once hidden
MLO objects no longer leak into the obuspa and ubus listings.

Link: e39c50857f/odl/prplmesh-pwhm-mapping.odl (L601)
Link: https://gitlab.com/prpl-foundation/prplos/prplos/-/jobs/14478170366#L882
Link: https://gitlab.com/prpl-foundation/prplos/prplos/-/jobs/14492345808#L1333
References: PPW-1996
Assisted-by: gpt-5.5:high:fast
Signed-off-by: Petr Štetiar <petr.stetiar@prplfoundation.org>
2026-05-22 08:46:24 +01:00
Bhavesh Bharadiya
477583f26a PROVISORY: profiles: mxl_x86_osp_tb341_v2: Enabling CONFIG_KERNEL_DEVMEM
This is just enabled temporarily to reset bootcount register value.
Once FEAT-29 merges, sysregister driver will perform this reset and
we can disable this.

Revert this once FEAT-29 merge completes.

Signed-off-by: Bhavesh Bharadiya <bnbharadiya@maxlinear.com>
Signed-off-by: Petr Štetiar <petr.stetiar@prplfoundation.org> [squash]
2026-05-22 08:46:24 +01:00
Bhavesh Bharadiya
80461cfb99 profiles: mxl_x86_osp_tb341_v2: update BSP to UPDK 9.2.10 ED release
Update OSPv2 profiles for below changes:

 * Bump to UPDK 9.2.10
 * PON subsystem version bump to 2.1.5
 * Linux kernel minor version upgrade from 5.15.194 to 5.15.200
 * RAM Optimization changes
 * Boot flow : Adapted prpl boot flow required for FEAT-29
 * pon_hgu_vuni LKM shall be used instead of in-tree LKM mxl_pon_hgu_vuni_lgm
 * Corrected certain transceiver parameters names in ONU HAL agent
 * Enabled conntrack-tools package for 'nfct' binary
 * Added Madvise Config via Kernel and reverted from uboot config
 * Enabled CONFIG_XFRM_INTERFACE kernel support
 * Removed ebtables with mxl patches feed from mxl repository

Update WLAN profiles for below changes:

Fixed:
 * EMR6 - MAP 4.2.5, MAP 4.2.7_ETH and MAP 4.3.5_ETH certification tests are passing
 * MLO, RSN override for MLO, WPA3 compatibility mode with standard hostapd interface- Very limited testing
   covered so there might be issues.
 * WiFi BSP as a full OpenSource

Pending:
 * Northbound API+QoSv2+flow deny - dependency on PPM-3963

Fixed Issues: PPW-1580, PCF-2204, PCF-2315, PCF-2506 and PCF-2523
Known Issues: PCF-2256, PCF-2350, PCF-2356, PCF-2389, PCF-2444 and PCF-2503

Signed-off-by: Bhavesh Bharadiya <bnbharadiya@maxlinear.com>
2026-05-22 08:44:10 +01:00
Houssem Dafdouf
4fd118bb30 ci: testbed: Increase timeout up to 76 min
Pipelines are now timing out on freedom, and stops at
120-prplmesh-static-puncturing test. Let's add extra 2 minutes to the
timeout.

Reference: FEAT-116, FEAT-480
Signed-off-by: Houssem Dafdouf <houssem.dafdouf_ext@softathome.com>
signed-off-by: Hela Saadani <hela.saadani_ext@softathome.com>
2026-05-21 16:54:21 +01:00
Houssem Dafdouf
8ec442dc36 PROVISORY: ci: cram: wifi-apmld: split script
With the new test cases added to cover bstamld feature, we are hitting
PCF-2222. So let's split the script.

References: PCF-2222, FEAT-116
Signed-off-by: Houssem Dafdouf <houssem.dafdouf_ext@softathome.com>
2026-05-21 16:52:59 +01:00
Houssem Dafdouf
1437f84cb8 ci: cram: obuspa.t: update script with latest pwhm changes
Update script with new objects introduced by TID-to-Link feature.

Closes: PPM-3348
References: FEAT-116, FEAT-480
Signed-off-by: Houssem Dafdouf <houssem.dafdouf_ext@softathome.com>
2026-05-21 16:52:59 +01:00
Houssem Dafdouf
8ccd889114 ci: cram: add cram tests for pwhm TID-to-Link feature
Update apmld test script to cover TID-to-Link feature.
Actually only freedom supports it.

Test cases:

- Check default config
- Set advertised mode on private MLD
- Force 2.4GHz link usage
- Check LinkMaps accordingly
- Disable TID-to-Link mapping on private MLD

Misc:

- move wifi-apmld.t to wnc DUT folder as it's releveant only to freedom
(ex. uses hardcoded wlan indexes)

Closes: PPM-3348
References: FEAT-116, FEAT-480
Signed-off-by: Houssem Dafdouf <houssem.dafdouf_ext@softathome.com>
2026-05-21 16:52:59 +01:00
Alexandre Fiset
2f790c13a2 ci: cram: Add cram tests for tr181-schedules
Problem: Cram tests should be added to cover tr181-schedules plugin

References: PCF-2297
Signed-off-by: Alexandre Fiset <alexandre.fiset@softathome.com>
2026-05-20 11:33:31 +01:00
Richard Holme
215ec8a326 profiles: prpl_core: obuspa: bump to v11.0.2
Updates OBUSPA to v11.0.2

Prpl specific updates:
* Updated
002-remove_broker_dm_elements_which_are_to_be_registered_by_USPService.patch,
as file being patched has changed in OBUSPA
* Updated 004-increase_max_USP_services_and_controllers.patch to fix
PPW-1867
* Renumbered 009-remove-device-security-certificate.patch, as patch
number collided with existing patch
* Renumbered 010-load_agent_cert_cb.patch, as patch number collided with
existing patch
* Added 013-untrusted_roles_parameter.patch to add UntrustedRole parameter

OBUSPA changes since v11.0.0:
Fixed
- Race hazard that could cause two Boot! events to be sent on STOMP MTP
- Failure to open factory reset database sqlite file
(FACTORY_RESET_FILE) should be caught when opening, rather than when
writing
- Multiple EndpointID or Password TLVs in UDS handshake frame should be
handled as protocol error (PPW-1816)
- USP Service is prevented from re-registering DM if it disconnects
while the USP Broker is waiting for a response from it
- Build failure in database.c on some platforms due to compiler type
size issues (PPW-1642)

Added
- IPLayerCapacity() Speed Test command (which uses OB-UDP-ST). Disabled
in the build by default

References: PCF-2550, PPW-1642, PPW-1816, PPW-1867
Signed-off-by: Richard Holme <richard.holme@vantiva.com>
2026-05-20 09:32:39 +01:00
Petr Štetiar
c5824479fc ci: cram: 110-prplmesh-dataelements: assert agent count per testbed
testbed-02 grew a HomePlug-backhauled TL-WPA7817 (PCF-2504), so
prplmesh_cli now reports 2 connected agents on that runner while
testbed-01 still has only the DUT. Loosen the agent-count line in the
operational-state block to a regex and add a separate assertion that
gates the expected count on $CI_RUNNER_DESCRIPTION, matching the
existing testbed-02 idiom in .gitlab/testbed.yml and
.gitlab/cdrouter.yml.

Fixes: PCF-2578
References: PCF-2504
Assisted-by: claude:opus-4-7:1m-context
Signed-off-by: Petr Štetiar <petr.stetiar@prplfoundation.org>
2026-05-19 17:29:37 +01:00
Petr Štetiar
fc1fb354be PROVISORY: ci: cram: cellular-manager:skip tests on testbed-02
MR !2468 adds generic/cellular-manager cram coverage for FEAT-9 and
PCF-2474. The tests validate BBF-2.20 cellular manager behavior
including TrustedElements SIM data, SIM selection, USIM data, roaming,
access points, data sessions, bearer and session behavior, access
technology, and SMS.

This is a provisory CI workaround for the testbed-02 cellular
infrastructure only. Currently these tests randomly timeouts on Data
Model Cellular.? access.

The cross-testbed analysis shows that the RF-dependent failures are
specific to testbed-02. The bad PCF-2588 and PCF-2589 jobs both ran on
testbed-02, while their good comparison jobs ran on testbed-01.

So lets add a provisory testbed-02 guard to these cellular-manager cram
files. When CI_RUNNER_DESCRIPTION contains testbed-02, cram exits with
code 80 before any DUT command runs and reports each file as skipped.
On testbed-01, and on any runner that does not identify itself as
testbed-02, the tests continue to run normally.

Revert this commit once PCF-2585 is resolved and testbed-02 provides
reliable 5G/SIM/modem/operator registration for unattended CI again.

Runtime evidence from MR !2468 pipeline 2520044849:

- job 14345308779, run test MXL25641-HDK-6 with system on eMMC
- job 14342893182, run test Freedom initramfs

Both junit/xUnit artifacts reported the new cellular-manager tests as
passed on testbed-01. Times are from cram-result-*.xunit.xml and are in
seconds.

Test                                      MXL25641-HDK-6  Freedom
                                          OSPv2 / eMMC    ipq95xx
----------------------------------------  --------------  --------
004-set-trusted-elements.t                31.239s         31.041s
007-debug-cellular.t                       5.457s          4.423s
010-verify-sim-selection.t                 1.810s          1.411s
020-verify-usim-data-elements.t            1.097s          0.860s
045-verify-roaming-upstream-status.t       1.030s          0.865s
060-verify-access-point.t                  1.309s          1.034s
070-verify-data-session.t                  1.129s          0.856s
100-bearer-session-disable.t               1.126s          0.877s
110-access-technology.t                    3.375s          2.360s
120-sms-storage.t                          0.654s          0.534s
130-sms-message-attributes.t               0.622s          0.520s
----------------------------------------  --------------  --------
Total                                     48.849s         44.781s

References: PCF-2474, PCF-2585, PCF-2588, PCF-2589, FEAT-9
Link: https://gitlab.com/prpl-foundation/prplos/prplos/-/jobs/14253838317
Link: https://gitlab.com/prpl-foundation/prplos/prplos/-/jobs/14314875035
Link: https://gitlab.com/prpl-foundation/prplos/prplos/-/jobs/14345308779
Link: https://gitlab.com/prpl-foundation/prplos/prplos/-/jobs/14342893182
Assisted-by: codex:gpt-5.5
Signed-off-by: Petr Štetiar <petr.stetiar@prplfoundation.org>
2026-05-19 17:29:37 +01:00
Hari Sriram
5d49ff4913 ci: cram: remove InternalName usage in 50-cellular-offline.t
Remove use of InternalName attribute refering to underlying
modem hardware through cellular manager data model - Cellular
from 50-cellular-offline.t testcase.

Underlying modem hardware can be accessed using mmli command.
Data model is neutral, common irrespective of underlying modem hardware.

References: PCF-2474, FEAT-9
Signed-off-by: Hari Sriram <hari.s@capgemini.com>
2026-05-19 17:29:37 +01:00
Hari Sriram
30d73416f3 ci: cram: add cellular-manager tests and increase cram test execution timeout
Adding cram test cases for cellular-manager.

Also increasing cram test execution timeout to 74 minutes (+2 minutes)
to execute all tests completly and collect the logs and avoid test
execution timeout. Currently test execution timeout is reached and fails
to collect logs from DUT.

Runtime evidence from MR !2468 pipeline 2520044849:

- job 14345308779, run test MXL25641-HDK-6 with system on eMMC
- job 14342893182, run test Freedom initramfs

Both junit/xUnit artifacts reported the new cellular-manager tests as
passed on testbed-01 before later unrelated target-specific cram
failures.

Times are from cram-result-*.xunit.xml and are in seconds.

Test                                      MXL25641-HDK-6  Freedom
                                          OSPv2 / eMMC    ipq95xx
----------------------------------------  --------------  --------
004-set-trusted-elements.t                31.239s         31.041s
007-debug-cellular.t                       5.457s          4.423s
010-verify-sim-selection.t                 1.810s          1.411s
020-verify-usim-data-elements.t            1.097s          0.860s
045-verify-roaming-upstream-status.t       1.030s          0.865s
060-verify-access-point.t                  1.309s          1.034s
070-verify-data-session.t                  1.129s          0.856s
100-bearer-session-disable.t               1.126s          0.877s
110-access-technology.t                    3.375s          2.360s
120-sms-storage.t                          0.654s          0.534s
130-sms-message-attributes.t               0.622s          0.520s
----------------------------------------  --------------  --------
Total                                     48.849s         44.781s

References: PCF-2474, FEAT-9
Link: https://gitlab.com/prpl-foundation/prplos/prplos/-/jobs/14345308779
Link: https://gitlab.com/prpl-foundation/prplos/prplos/-/jobs/14342893182
Signed-off-by: Hari Sriram <hari.s@capgemini.com>
Signed-off-by: Sathishkumar Selvam <sathishkumar.selvam@capgemini.com>
Signed-off-by: Petr Štetiar <petr.stetiar@prplfoundation.org> [test rebase fixes, timeout, description]
2026-05-19 17:29:37 +01:00
Chitprasong Vilaysack
32c7d84d1e ci: cram: qos classification output interface update
The X_PRPLWARE-COM_OutputInterface parameter change
was not covered by any cram test.

This commit adds a test to verify that changing X_PRPLWARE-COM_OutputInterface
on an existing QoS classification updates the iptables mangle rule immediately
without restarting tr181-qos.

References: PPW-1346
Signed-off-by: Chitprasong Vilaysack <chitprasong.vilaysack@softathome.com>
2026-05-19 16:13:57 +00:00
Marcel Danilewicz
3b33bb7fe3 ci: cram: Modify obuspa test
Add Security.Certificate.{i}.Alias introduced
by FEAT-416 to obuspa.expected fixture.

References: PCF-2487
Signed-off-by: Marcel Danilewicz <marcel.danilewicz@consult.red>
2026-05-14 14:51:33 +01:00
Radoslaw Martyniszyn
5cdae888fa ci: cram: Device.Security.CABundle dynamic implementation
Use Security.Certificate.CABundle in SoftHSM tests.
Update ca.crt path in tests to new filesystem location.
Add new field Alias in Security.Certificate to 020-security.t.

References: PCF-2487
Signed-off-by: Radek Martyniszyn <radek.martyniszyn@consult.red>
2026-05-14 14:51:33 +01:00
Iacob Juc
c4aa36c874 ci: cram: freedom: 110 remove duplicate secMode reset
Issue:PPW-1209
Signed-off-by: Iacob Juc <iacob.juc_ext@softathome.com>
2026-05-14 09:20:13 +00:00
Iacob Juc
8b443e862f ci: cram: Rename WPA2-WPA3-Personal to WPA3-Personal-Transition
per PPW-1209, rename WPA2-WPA3-Personal to WPA3-Personal-Transition

Issue:PPW-1209
Signed-off-by: Iacob Juc <iacob.juc_ext@softathome.com>
2026-05-14 09:20:13 +00:00
Iacob Juc
0669c4a3e6 PROVISORY: add WPA3-Personal-Compatibility to ModesAvailable on OSPv2 platform
see PCF-2259 for details

out of all wld_defaults in mod-whm-release/mod-whm-v3.0/oss_odl, only
32_wld-custom-vaps.odl
is present on DUT during cram tests
and is removing WPA3-Personal-Compatibility from
Security.ModesAvailable

Issue:PPW-1209
Signed-off-by: Iacob Juc <iacob.juc_ext@softathome.com>
2026-05-14 09:20:13 +00:00
Iacob Juc
e8856308e4 Revert "PROVISORY: ci: cram: OSPv2: add WPA3-Personal compatibility to the available security modes for 6GHz VAPs"
This reverts commit 831e5f1b0d.

References:PPM-3660
References:PCF-2259
References:PPW-1209

Signed-off-by: Iacob Juc <iacob.juc_ext@softathome.com>
2026-05-14 09:20:13 +00:00
Iacob Juc
4a62c12229 Revert "PROVISORY: ci: cram: ppm-3660 fix Security.ModesAvailabe"
This reverts commit 8530b611ee.

No longer needed on freedom platform
Still needed on OSPv2 through PCF-2259

Issue:PPW-1209
References:PCF-2259
References:PPM-3660
Signed-off-by: Iacob Juc <iacob.juc_ext@softathome.com>
2026-05-14 09:20:13 +00:00
Alexandre Fiset
54a1d5f526 ci: cram: add tests for WO parametere
Add cram tests for writte-once read only parameter by trying to writte a
already written WO parameter

Additionnaly adapt cram tests that were trying to writte a WO parameter.
For exemple the tests that are creating object and then changing the
Alias.

References: PCF-2321
Signed-off-by: Alexandre Fiset <alexandre.fiset@softathome.com>
2026-05-13 16:13:49 +01:00
Roman Shcherbakov
d9753d327e ci: cram: use prplmesh-process-monitor DM to check prplMesh status
Change the way to check the prplMesh status from the `ps` command to the
check X_PRPLWARE-COM_ProcessManager.PrplMesh.Status.

Affected cram tests (OSPv2, Freedom):
* 105-pwhm-wpa3-cm.t;
* 110-prplmesh-dataelements.t.

References: PPW-1862
Signed-off-by: Roman Shcherbakov <r.shcherbakov@inango-systems.com>
2026-05-13 17:45:41 +03:00
Ahmed Amine HAOUES
a6ece90189 PROVISORY: ci: cram: freedom: workaround rad2g bw 40MHz cold setting failure
Problem:
- cold applying rad2g bw 40MHz in cram script
106-pwhm-get-eht-caps_step_1.t is leading to systematic failure

Cause:
- overriding BSS coexistence is detected in the testing environnement,
leading to falling back to bw 20mhz in rad2g
- but the script is expecting 40mhz
- pwhm is re-applying the bw which keeps reduced

Workaround:
- set rad2g bw 20MHz in the initial cold apply setting
- set rad2g bw 40MHz later in warm apply setting (through CSA, not impacting
the hostapd initial setup)
- set back rad2g to bw 20MHz when setting 11ax

Expected fix:
- in pwhm: prevent forcing 40MHz when it was reduced to 20MHz by
hostapd/driver due to OBSS_COEX reason
- improve the cram script to consider current bw as applied by the
driver

References: PPM-4051, PPM-3950
Signed-off-by: Ahmed Amine HAOUES <ahmed-amine.haoues_ext@softathome.com>
2026-05-12 10:46:13 +01:00
Ahmed Amine HAOUES
d08ddc8c36 ci: cram: obuspa: align obuspa fixtures with new bSTAMLD WiFi params
Update obuspa fixtures to reflect new params
- Device.WiFi.SSID.{}.MLDLinkLocalMACAddress
- Device.WiFi.EndPoint.{}.PeerAffiliatedMacAddress

Relates: PPM-4014, PPM-3950
Signed-off-by: Ahmed Amine HAOUES <ahmed-amine.haoues_ext@softathome.com>
2026-05-12 10:46:13 +01:00
Oguzhan Kara
f373d25f80 ci: cram: [powerstatus] add cram test for PowerSensor
Add a cram test for Device.DeviceInfo.PowerStatus.PowerSensor.
The test covers instance creation, protected parameter configuration,
status transitions, value updates, multi-instance handling and cleanup.

References: PCF-1723
Signed-off-by: Oguzhan Kara <oguzhan.kara@softathome.com>
2026-05-06 13:29:17 +00:00
Igor Plesser
9f5e204655 ci: cram: obuspa: align obuspa fixtures with actual DM state
Related tasks added and moved several DM parameters. Update the
obuspa fixtures to reflect the current data model state.

Relates: PPM-4355, PPM-4325
Signed-off-by: Igor Plesser <i.plesser@inango-systems.com>
2026-05-06 08:57:56 +01:00
Oguzhan Kara
58363d6668 ci: cram: align USB tests with port auto-detection
Update USB cram expectations to avoid hardcoded host/port values now that USB ports are auto-detected.

Match USB devices across any host index and accept dynamic USB port numbers in the generic USB filter test. Also refresh the USB power-management test to expect the current invalid-value error status.

References: PCF-2318
Signed-off-by: Oguzhan Kara <oguzhan.kara@softathome.com>
2026-05-05 11:19:49 +01:00
Houssem Dafdouf
3c347e6126 PROVISORY: ci: cram: split bSTAMLD script
After adding new tests cases the script must be splitted to workaround
PCF-2222

References: PCF-2222
Signed-off-by: Houssem Dafdouf <houssem.dafdouf_ext@softathome.com>
2026-05-05 08:54:52 +01:00
Houssem Dafdouf
e1da2765cc ci: cram: update bSTAMLD cram test
- Test are now based on endpoints shared profiles feature
- Check links removal from MLD
- helper: add 'protected' option
- move script to DUT folder as we use now platfrom specific wlan names

References: PPM-3950, PPM-3989
Signed-off-by: Houssem Dafdouf <houssem.dafdouf_ext@softathome.com>
2026-05-05 08:54:52 +01:00
Petr Štetiar
49638f2e78 ci: cram: pwhm, prplmesh: accept testbed-02 OSPv2 backhaul OUI
Currently the MXL OSPv2 backhaul cram checks accept only the
4C:BA:7D and A8:C2:46 OUIs for generated backhaul SSIDs and
the prplMesh controller bridge MAC. That list was introduced by
commit 3350a8a5ba ("ci: cram: mxl25641-hdk-6: allow 2nd
vendor MAC OUI in backhaul SSID") for MR !2035.

That MR validated the new B-Step hardware on testbed-01, where
the target reported A8:C2:46. PPW-1893 keeps failing on
testbed-02, where the same target type reports AC:9A:96 instead.
The tests are target-generic, but the CI job result depends on
which physical testbed device is selected.

The failing job confirms that the runtime values are otherwise
well formed and only the OUI whitelist is stale:
.gitlab/tests/cram/mxl25641-hdk-6/100-pwhm_step_1.t: failed
-  backhaul_(4C:BA:7D|A8:C2:46):[0-9A-F]{2}:[0-9A-F]{2}:[0-9A-F]{2} (re)
+  backhaul_AC:9A:96:F0:E9:A0
.gitlab/tests/cram/mxl25641-hdk-6/110-prplmesh-dataelements.t: failed
-          bridge MAC: (4C:BA:7D|A8:C2:46):[0-9A-F]{2}:[0-9A-F]{2}:[0-9A-F]{2} (re)
+          bridge MAC: AC:9A:96:F0:E9:A1

So lets fix the stale whitelist by accepting AC:9A:96 in the
same MXL OSPv2 backhaul SSID and bridge MAC regexes, while
leaving the existing 4C:BA:7D and A8:C2:46 coverage intact.

Fixes: 3350a8a5ba ("ci: cram: mxl25641-hdk-6: allow 2nd vendor MAC OUI in backhaul SSID")
References: PPW-1893
Link: https://gitlab.com/prpl-foundation/prplos/prplos/-/merge_requests/2035
Link: https://gitlab.com/prpl-foundation/prplos/prplos/-/jobs/14162578476#L908
Assisted-by: codex:gpt-5.5:xhigh
Signed-off-by: Petr Štetiar <petr.stetiar@prplfoundation.org>
2026-05-02 07:08:38 +02:00
ahmed sassi
c7ea8021e0 Revert "ci: cram: reorganize pwhm usp tests"
This reverts commit 7560c16e81 (MR 2395,
PPW-1606), which moved the USP-related CRAM steps to new locations.

After merge the reorganization caused the MxL CRAM
120-prplmesh-static-puncturing.t step to fail consistently on pWHM
MRs, blocking the integration pipeline:

  Check that 5GHz private vap status:
    $ wifi_dm "AccessPoint.1.SSIDReference+.Status?"
    Device.WiFi.SSID.\d+.Status="Up" (re)
    Device.WiFi.SSID.1.Status="Down"

  Check the new SSID SSIDforStaticPunct is applied 1 time
    $ wifi_dm "AccessPoint.1.SSIDReference+.SSID?"
    Device.WiFi.SSID.\d+.SSID="SSIDforStaticPunct" (re)
    Device.WiFi.SSID.1.SSID="prplOSguest"

The same failure was visible pre-merge in MR 2395 review (note
3163142766 pointing at job 13373579057, line 426) but was assessed
as a stale dev-branch artifact and not addressed. After merge it
reproduced on many pWHM MRs (2560, 2589, 2338) and several jobs.
Reverting both MR 2395 commits restores a green pipeline; a proper
reorganization will be reattempted in a follow-up.

Fixes: PPW-1894
References: PPW-1606
Link: https://gitlab.com/prpl-foundation/prplos/prplos/-/merge_requests/2395
Link: https://gitlab.com/prpl-foundation/prplos/prplos/-/merge_requests/2395#note_3163142766
Link: https://gitlab.com/prpl-foundation/prplos/prplos/-/jobs/13373579057#L426
Link: https://gitlab.com/prpl-foundation/prplos/prplos/-/jobs/13807353002
Link: https://gitlab.com/prpl-foundation/prplos/prplos/-/jobs/14151633080
Link: https://gitlab.com/prpl-foundation/prplos/prplos/-/jobs/14141094752
Link: https://gitlab.com/prpl-foundation/prplos/prplos/-/jobs/14144894879
Link: https://gitlab.com/prpl-foundation/prplos/prplos/-/merge_requests/2599
Link: https://prplfoundationcloud.atlassian.net/browse/PPW-1894
Signed-off-by: ahmed sassi <ahmed.sassi_ext@softathome.com>
Signed-off-by: Petr Štetiar <petr.stetiar@prplfoundation.org> [description, jira]
2026-05-01 05:52:02 +02:00
ahmed sassi
58e59ce689 Revert "Revert "PROVISORY: cram: move 102-pwhm-usp.t after 103-apmld.t""
This reverts commit 2ba528d340, restoring
the PROVISORY workaround that moves 102-pwhm-usp.t after 103-apmld.t.

The reorganization merged via MR 2395 (PPW-1606) introduced a
regression in MxL CRAM that surfaced after merge in many pWHM MRs.
Until a proper fix is in place the provisory ordering is reinstated
to unblock the integration pipeline.

Fixes: PPW-1894
References: PPW-1606
Link: https://gitlab.com/prpl-foundation/prplos/prplos/-/merge_requests/2395
Link: https://gitlab.com/prpl-foundation/prplos/prplos/-/merge_requests/2599
Link: https://prplfoundationcloud.atlassian.net/browse/PPW-1894
Signed-off-by: ahmed sassi <ahmed.sassi_ext@softathome.com>
Signed-off-by: Petr Štetiar <petr.stetiar@prplfoundation.org> [description, jira]
2026-05-01 05:51:13 +02:00
Ahmed Amine HAOUES
7528c2d514 profiles: enable wpa-qca-cli pkg in qca_ipq95xx profile
New tool:
- enable wpa-qca-cli pkg to build and deploy wpa_cli needed
for wifi bkh debugging

Closes: PPM-4013
Signed-off-by: Ahmed Amine HAOUES <ahmed-amine.haoues_ext@softathome.com>
2026-04-30 13:45:19 +00:00
Salma Bouchaala
7651089899 cram: DHCPv6Server Status should be Enabled
Signed-off-by: Salma Bouchaala <salma.bouchaala@sofrecom.com>
2026-04-28 16:18:13 +01:00
Houssem Dafdouf
7560c16e81 ci: cram: reorganize pwhm usp tests
Problem:
During the integration of PPM-3671, the 103-apmld.t script started
failing due to an incorrect security mode set by previous tests.

Cause:
The security mode was unexpectedly modified during the execution of
102-pwhm-usp.t while toggling AP1. This happens because prplMesh now
runs in controller mode as part of PPM-3671.

Solution:

When testing pure PWHM features, prplMesh should not be running to
avoid conflicts. This was previously the case, except for the AP1
toggling step executed in wifi-usp.t.

Move the USP-related test cases to more appropriate locations:
- USP socket creation and PWHM USP event checks (AP1 toggling):
  moved to 100-pwhm.t where prplMesh is kept stopped
- prplMesh connection to the PWHM direct socket:
  moved to 110-prplmesh-dataelements.t
- 102-pwhm-usp.t is so removed from fast track test scripts

These changes are integrated after reverting the previous provisory
commit: 3b91d691da

Closes: PPW-1606
References: PPM-3671
Signed-off-by: Houssem Dafdouf <houssem.dafdouf_ext@softathome.com>
2026-04-28 14:53:04 +00:00
Houssem Dafdouf
2ba528d340 Revert "PROVISORY: cram: move 102-pwhm-usp.t after 103-apmld.t"
Revert this commit and reorganize tests to properly resolve conflicts
between pwhm and prplMesh.

In the next commit we should move the different  usp test steps to the
correct locations.

This reverts commit 3b91d691da.

References: PPM-3589
Closes: PPW-1606
Signed-off-by: Houssem Dafdouf <houssem.dafdouf_ext@softathome.com>
2026-04-28 14:53:04 +00:00
Houssem Dafdouf
5e7283d5ae ci: testbed: Increase timeout up to 72 min
Increasing the CI timeout is needed by the new bSTAMLD tests updates,
in addition to the previously integrated crams.

References: PPM-3950, PPM-3989, PPW-1861
Signed-off-by: Houssem Dafdouf <houssem.dafdouf_ext@softathome.com>
(cherry picked from commit 80492d90fa15c53a7ce8cc788ba202b4d4af7b8e)
Signed-off-by: FAOUZI YAHYA <faouzi.yahya_ext@softathome.com>
2026-04-27 11:25:21 +01:00
Adnen Masmoudi
f76c4a8422 ci: cram: add new tests for tr181-mqtt and tr181-bulkdata
To validate the new functionality, the following test cases were added:

tr181-mqtt:
---------
- Verify `MQTT.Client.Publish` RPC sends message to local broker.
- Verify `OnMessage!` event is triggered upon message reception
- Use ubus subscriber to assert payload content
- Use `mosquitto_sub` to assert message delivery end-to-end

tr181-bulkdata:
---------
- Verify BulkData profile creation and configuration with MQTT transport
- Verify parameter collection and JSON report encoding
- Verify end-to-end message delivery via local mosquitto broker

References: PCF-2394
Signed-off-by: Adnen Masmoudi <adnen.masmoudi_ext@sofathome.com>
2026-04-23 10:27:30 +01:00
ahmed sassi
600108aeb7 ci: cram: obuspa: add parameter ImportFailureReason ,SchemaVersion ,SetActionStatus(), input:Reason
This MR adds the missing parameter in the obuspa expected file
that was not merged in MR 2460.

References: PPW-1860
Signed-off-by: ahmed sassi <ahmed.sassi_ext@softathome.com>
2026-04-21 16:34:24 +00:00
Petr Štetiar
99912e34ae PROVISORY: ci: cdrouter: OSPv2: switch USP MTP from MQTTv5 to WebSocket
On the MXL25641-HDK-6 Mandatory Network Test Plan the prplos.1.2.9 test
disables Device.DHCPv4.Server. and forces the DUT to renew its WAN IPv4
lease. After the renewal obuspa's MQTTv5 TCP socket to the CDRouter
broker goes silently half-dead: the socket stays ESTABLISHED, but obuspa
sends no PINGREQ (despite KeepAliveTime=60), does not arm SO_KEEPALIVE
and does not reconnect, so every subsequent USP GET/SET times out. The
regression is 66 tests (prplos.1.2.9-1.6.23) and was confirmed on a
live bench; a manual Device.MQTT.Client.1.Enable false/true recovers
the suite instantly.

So lets workaround it by switching this one job to WebSocket MTP,
mirroring what the Candidate sibling job already does. Other platforms
are not affected and are intentionally left untouched.

Revert this block once the system-level fix for the half-dead socket
lands.

References: PPW-1837
Assisted-by: claude:opus-4-7:1m-context
Signed-off-by: Petr Štetiar <petr.stetiar@prplfoundation.org>
2026-04-21 16:58:23 +01:00
Piotr Nakraszewicz
d7119330e0 ci: cram: adjust to Device.Security changes
Reflect tr181-security new startup order

Insert the cram test CA bundle into defaults rather than extensions, not
to conflict with the already existing CA bundle.
The existing CA bundle is indexed at 1, so index this one at 2.
Soon this should be replaced with aliases.

References: PCF-1323
Signed-off-by: Piotr Nakraszewicz <piotr.nakraszewicz@consult.red>
2026-04-21 16:58:23 +01:00
Sergio Panseri
9941ead323 profiles: extender_full, mgmt: obuspa: enable WebSocket MTP support
OBUSPA supports websockets as MTP together with Stomp and MQTT, but it
is disabled at compilation time.  As part of FEAT-63, websocket support
in OBUSPA is now enabled by default.  ci: cdrouter: add USP cdrouter
tests over MQTT and websockets and update the controller's server and ca
certificate locations.

References: PCF-1323
Signed-off-by: Sergio Panseri <sergio.panseri@consult.red>
Signed-off-by: Petr Štetiar <petr.stetiar@prplfoundation.org> [rebased]
2026-04-21 16:58:23 +01:00
Sergio Panseri
3341cc032a ci: cram: obuspa: Security data model source change
To be able to expose tr181-security's 'Device.Security.' to
OB-USP-A, this has to be compiled with REMOVE_DEVICE_SECURITY_CERTIFICATE.
cram: the expected output from the CRAM test obuspa.t is now different as it
comes from tr181-security

References: PCF-1323
Signed-off-by: Sergio Panseri <sergio.panseri@consult.red>
Signed-off-by: Petr Štetiar <petr.stetiar@prplfoundation.org> [rebased]
2026-04-21 16:58:23 +01:00
Petr Štetiar
e266163bea ci: cdrouter: switch USP testing from STOMP to MQTTv5 as primary MTP
Currently all CDRouter USP protocol tests in prplOS use STOMP MTP
(100%). This no longer matches the FEAT-63 delivery plan and industry
adoption.

MQTTv5 should become the default MTP for the majority of CDRouter test
runs, while keeping WebSocket and STOMP coverage in some jobs as smaller
regression slices.

So lets switch the shared template to MQTTv5 by default, parameterising
the shipped CDRouter configs instead of cloning them, and adding guarded
DUT init helpers that stop obuspa, install the requested reset file,
clear /etc/obuspa.db, start obuspa again, and wait for the USP data
model to come back.

Use the existing job matrix to keep protocol coverage aligned with the
agreed distribution:

 - Wireless smoke tests use WebSocket
 - prplOS Network Test Plan Candidate jobs use WebSocket
 - IPv6 Top-100+mDNS VLAN jobs use STOMP
 - all remaining jobs use MQTTv5
 - MQTTv3 stays out of scope

References: PCF-1323, PCF-2322
Assisted-by: codex:gpt-5.4:xhigh
Assisted-by: claude:opus-4-6:1m-context
Co-developed-by: Sergio Panseri <sergio.panseri@consult.red>
Co-developed-by: Piotr Nakraszewicz <piotr.nakraszewicz@consult.red>
Signed-off-by: Petr Štetiar <petr.stetiar@prplfoundation.org>
2026-04-21 16:00:15 +01:00
Petr Štetiar
0d0daed7f5 ci: cdrouter: validate package manifests before DUT bringup
Currently the cdrouter pipeline validates package manifests only when
package_apply runs in the script phase, after the DUT bringup and init
steps in before_script. When a manifest has human errors, the job spends
several minutes on setup before failing on package_apply.

So lets add an explicit package_validate subcommand that reuses the same
manifest resolution and package option checks without requiring API
mutation, and execute it as the first operational step in before_script.
This fails fast on manifest mistakes and avoids wasting DUT bringup time.

References: PCF-2532
Assisted-by: codex:gpt-5.4:xhigh
Assisted-by: claude:opus-4-6:1m-context
Signed-off-by: Petr Štetiar <petr.stetiar@prplfoundation.org>
2026-04-21 16:00:15 +01:00
Petr Štetiar
eae3f27ec9 ci: cdrouter: switch pipeline to YAML-based package_apply
Currently the CI pipeline imports CDRouter packages from .gz binary
exports using the package_import subcommand which stages files
through the CDRouter import API.

So lets switch the pipeline to use the new package_apply subcommand
which loads YAML manifests directly, resolves includes, and upserts
packages via the CDRouter packages API. The TEST_PACKAGE variable
derivation from CI_JOB_NAME remains unchanged - only the file
extension (.gz) is dropped and the subcommand changes from
package_import to package_apply.

References: PCF-2534
Assisted-by: codex:gpt-5.4:xhigh
Assisted-by: claude:opus-4-6:1m-context
Signed-off-by: Petr Štetiar <petr.stetiar@prplfoundation.org>
2026-04-21 16:00:15 +01:00
Petr Štetiar
fe9c778e77 ci: scripts: add YAML manifest loader and package_apply subcommand
Currently testbed-cdrouter.py only supports importing packages from
opaque .gz binary exports via the package_import subcommand. This
requires staging, committing, and name-patching through the CDRouter
import API, and provides no way to define packages as readable,
version-controlled YAML.

So lets add a resolve_manifest() method that loads YAML package
manifests with full include resolution and a package_apply
subcommand that upserts packages on the CDRouter instance via the
packages API.

The manifest resolver has strict validation:
  - Key allowlist (name, description, includes, tests, options,
    dedup_tests); unknown keys are rejected
  - Forbidden keys (config, device, config_id, device_id)
  - Root manifest name must match its filename
  - Group manifests (under groups/) must not define name,
    description, or options
  - Type checks on all fields

Include resolution uses depth-first traversal with cycle
detection, path traversal rejection, and root-wins option merge.
Test deduplication is configurable via the root-only dedup_tests
boolean (defaults to false, preserving duplicates). Non-root
manifests (both includes and groups) must not define dedup_tests.

The package_apply subcommand performs deterministic upserts:
it always writes the complete manifest-driven state (testlist,
description, options) and only creates a new package on genuine
not-found errors from the CDRouter API.

Runtime config/device binding remains in the existing package_run
flow, keeping package manifests environment-agnostic.

References: PCF-2532
Assisted-by: codex:gpt-5.4:xhigh
Assisted-by: claude:opus-4-6:1m-context
Signed-off-by: Petr Štetiar <petr.stetiar@prplfoundation.org>
2026-04-21 16:00:15 +01:00
Petr Štetiar
6bc69fde54 ci: scripts: add CDRouter .gz to YAML package converter
Currently CDRouter test packages are stored as opaque .gz binary
exports in .testbed/cdrouter/packages/. These binary blobs are not
human-readable, not diffable, and carry implicit fields that leak
runtime state into the repository.

So lets add a converter script that reads the two-line JSON format
inside .gz exports and emits clean unversioned YAML manifests. The
converter extracts name, description, testlist (as tests), and
options from each .gz file. By default it compacts the options map
by omitting keys matching known CDRouter defaults, keeping only
semantic overrides. The --preserve-all-options flag emits the full
source options map when needed.

Fidelity verification expands both source and generated options
with known defaults before comparison, so compact manifests with
omitted defaults still pass. Testlist order is compared exactly.
The converter rejects packages where the internal name does not
match the .gz filename.

CLI supports --input-dir, --output-dir, --filter, --dry-run,
--overwrite, --preserve-all-options, and --verbose flags. Exits
non-zero if any package fails fidelity.

References: PCF-2531, PCF-2535
Assisted-by: codex:gpt-5.4:xhigh
Assisted-by: claude:opus-4-6:1m-context
Signed-off-by: Petr Štetiar <petr.stetiar@prplfoundation.org>
2026-04-21 16:00:15 +01:00
Petr Štetiar
f0c7a4251d ci: testbed: fix UnicodeDecodeError in console log dump
The console log from labgrid's serial connection can contain raw binary
bytes (e.g. 0xf6) that are not valid UTF-8. When
handle_exception_dump_console() reads the file with the default "r" mode
it crashes with UnicodeDecodeError, losing the debug output.

Open the file with errors="replace" to substitute invalid bytes with
the Unicode replacement character instead of crashing.

Fixes: 50298e9b64 ("ci: testbed-device.py: improve error reporting during the board bringup")
Signed-off-by: Petr Štetiar <petr.stetiar@prplfoundation.org>
2026-04-21 16:00:15 +01:00
Petr Štetiar
dfad4af7a5 ci: testbed: remove dead UART relay SSH setup
Currently the testbed-01 before_script and after_script sections
contain an SSH key setup block that runs ssh-keyscan against
$TESTBED_UART_RELAY_HOST (uart-relay.testbed.vpn.true.cz). This
host was used by the old SSH-based ExternalPowerDriver for UART
relay access, but it was replaced by Modbus/TCP in commit
69cb220a0. The host is now unreachable, so ssh-keyscan exits
non-zero and set -e aborts the job, breaking all testbed-01
pipelines.

So lets fix this by removing the dead SSH key setup blocks from
both testbed.yml and cdrouter.yml (before_script and
after_script), as well as the TESTBED_UART_RELAY_HOST variable
definition. The ssh-keyscan $TARGET_LAN_IP lines for DUT SSH
access are left untouched as they serve a different purpose.

References: PCF-2361
Fixes: 69cb220a00 ("ci: testbed-01: labgrid: hook in new Papouch Quido relay board")
Signed-off-by: Petr Štetiar <petr.stetiar@prplfoundation.org>
2026-04-21 16:00:15 +01:00
Alexandre Fiset
e28a72b9ff ci: cram: periodicFile transfer
When developping F-115, X_PRPLWARE-COM_ForceTransfer was made public and
not added in the obuspa.t test.

This commit add it$

References: PPW-1809
Signed-off-by: ahmed sassi <ahmed.sassi_ext@softathome.com>
2026-04-21 14:35:06 +00:00
ahmed sassi
5b1445abb1 ci: cram obuspa: handle new ForceSolicitPolicy parameter in DHCPv6 client
Add support for the TR-181 parameter
Device.DHCPv6.Client.{i}.X_PRPLWARE-COM_ForceSolicitPolicy.

This parameter was recently introduced in tr181-dhcpv6client and
caused the obuspa.t CRAM test to fail because it was not handled
in the expected output.

References: PPW-1820
Signed-off-by: default avatarahmed sassi <ahmed.sassi_ext@softathome.com>
2026-04-20 08:36:15 +00:00
Hari Sriram
3fe6a1b383 ci: cram: increase lcm tests priority to run before all generic tests
Update testbed.yml to make lcm tests run before other tests under generic
including backup and restore tests to avoid lcm tests failure issue
mentioned in PPW-1787.

Adding removal of testrole2 in 037-lcm-capabilities.t testcase cleanup.

Signed-off-by: Hari Sriram <hari.s@capgemini.com>
Signed-off-by: ahmed sassi <ahmed.sassi_ext@softathome.com>
2026-04-17 16:49:44 +01:00
jayamathi-code
7f4bd8f6b7 ci: cram: Review and implement prplWare upgrade/backup&restore - FEAT-132
This change:
- Adds cram tests for this feature

Implements: PCF-2198, PCF-2240
Signed-off-by: Jayamathi E <e.jayamathi@capgemini.com>
Signed-off-by: Hari Sriram <hari.s@capgemini.com>
2026-04-17 16:49:44 +01:00
Sriya Nair
db69aa8440 profiles: prpl-core.yml: feed-prplmesh: Add a new parameter PowerType under Device.WiFi.Radio in pwhm
Introduced a new configurable parameter(Device.WiFi.Radio.{i}.PowerType) to allow
to configure the 6GHz AccessPoint Type. This DM is applicable only for 6GHz.
For 2.4GHz and 5GHz, this DM would return empty string and for
6GHz the default value would be Standard_Power_AP.

Integrates:
- 0a1c00b6: ("pwhm: add a new parameter PowerType under Device.WiFi.Radio.", 2025-10-08)
- af079781: ("libswlc: add 6GHz PowerType related parameters", 2025-10-08)

Closes: PPM-3552
Signed-off-by: Sriya Nair <sriya.n@tataelxsi.co.in>
Signed-off-by: Hela Saadani <hela.saadani_ext@softathome.com>
2026-04-17 11:13:20 +01:00
Chandana Ramappa
8e12a9ddd0 MLD Configuration MR-4124
WiFi7 Capabilities reporting from pWHM (BWL) up to Agent MR-4174, MR-4192
AP-MLD Information Reporting MR-4186.

Reference: PPM-3564, PPM-3655, PPM-3682, PPM-3679
Closes PPM-3930
Signed-off-by: Chandana Ramappa <chandana.r@tataelxsi.co.in>
2026-04-17 07:48:07 +00:00
Petr Štetiar
9431435b24 ci: cram: obuspa: verify obuspa datamodel fixtures on the DUT
Currently generic/obuspa.t and generic/obuspa-cellular.t keep
large inline datamodel transcripts and compare them directly in the
cram file. That makes the tests hard to maintain and pushes the full
snapshot through the cram output path. The first DUT snapshot rework
also split the before and after checks across two cram commands, so
.t.err stopped rendering after the first mismatch and hid the
post-restart diff.

So lets move the expected generic and cellular datamodels into
fixture files and verify them through a shared host-side helper. The
helper uploads the target dump script with CRAM_REMOTE_COPY,
captures the datamodel on the DUT, copies it back, and compares it
locally. It now runs the full before/restart/after sequence in one
command so cram keeps both diff sections, and it stores *.actual and
*.diff artifacts for CI and local fixture refreshes.

Fixes: PCF-2475
Signed-off-by: Petr Štetiar <petr.stetiar@prplfoundation.org>
2026-04-15 13:21:08 +02:00
Marvin Lu
fc428b33d6 Revert "PROVISORY: ci: wnc-freedom: make 110-prplmesh-dataelements.t pass with 2.4GHz 20MHz workaround"
This reverts commit 3c2ef152fe.

References: PCF-2455

Signed-off-by: Marvin Lu <marvin.lu@wnc.com.tw>
2026-04-15 09:45:15 +00:00
Antoine Philippe
0ea9d2edc9 ci: cram: 039-lcm_dustatechange.t: accept 1-9 digits for timestamp fractional seconds in LCM DUStateChange
ISO 8601 allows variable precision for fractional seconds.
The system may return microseconds (6 digits) or nanoseconds (9 digits).
Both are valid, so the test regex is updated to accept 1-9 digits.

References: PPW-1670
Signed-off-by: Antoine Philippe <antoine.philippe@softathome.com>
2026-04-15 09:41:08 +00:00
Artem Trokhymchuk
21a10d1da4 ci: cram: prplmesh-dm-mapper: add test pwhm events
Problem: sometimes prplmesh-dm-mapper eventing tests reports failure
as if mapper did not send events, but in fact the source of the problem
is not clear: it can be mapper not sending them, or pwhm not emitting
them.

Solution: when testing events through mapper, add  test using pwhm USP
socket so that we can check whether mapper or PWHM is at fault.

Closes: PPW-1680
References: FEAT-27
Signed-off-by: Artem Trokhymchuk <a.trokhymchuk@inango-systems.com>
2026-04-15 09:20:07 +00:00
jim_yang
4820c39fd9 ci: cram: add WoL packet transmission test
Add a CRAM test that verifies Wake-on-LAN packet transmission
through the Device.Ethernet.WolL.SendMagicPacket RPC.

Use tcpdump to capture the generated UDP port 9 packet
and validate it in CI.

References: PCF-1774, FEAT-74
Signed-off-by: jim_yang <jim_yang@sdc.sercomm.com>
2026-04-15 09:21:00 +01:00
FAOUZI YAHYA
a5fc999bf1 ci: cram: obuspa: add Device.Ethernet.WoL config
Integrates following changes:
-add Device.Ethernet.WoL config

References: References: PCF-1173
Signed-off-by: FAOUZI YAHYA <faouzi.yahya_ext@softathome.com>
2026-04-15 09:21:00 +01:00
FAOUZI YAHYA
f0af69315a ci: cram: ubus-datamodel-list: add Ethernet.WoL
Integrates following changes:
- add Ethernet.WoL

References: PCF-1733, TR-181, PCF-1773, PCF-1173

Signed-off-by: FAOUZI YAHYA <faouzi.yahya_ext@softathome.com>
2026-04-15 09:21:00 +01:00
Alexandre Fiset
e5fd113bd3 PROVISORY: cram: do not check for ssdp beybey
For now a supnp device sending beybey is keept in the upnp-discovery
data model. No real mechanism is done to remove them properly. This
mechanisme will be introduces by PPW-1533.

Referencs: PPW-1533
Signed-off-by: Alexandre Fiset <alexandre.fiset@softathome.com>
2026-04-15 07:53:01 +02:00
Petr Štetiar
6792ba6b95 PROVISORY: ci: testbed: install minidlna and avahi packages at runtime
Currently the gmap upnp and dnssd cram tests (066-gmap-mod-upnp.t,
068-gmap-mod-dnssd.t) each duplicate apt source fixing and package
installation inline, which is fragile, slow and inconsistent with
the established pattern of pre-installing test dependencies.

So lets fix this by moving the runtime apt package installation
(minidlna, avahi-daemon, avahi-utils, dbus) into the testbed
before_script, following the pattern from commit d247c51ed663
("ci: cram: remove runtime pip install calls from tests").

The proper fix is to pre-install these packages in the testbed
Docker image, which is blocked on the container pipeline rebuild.

References: PPW-1258
Signed-off-by: Petr Štetiar <petr.stetiar@prplfoundation.org>
2026-04-15 07:53:01 +02:00
Alexandre Fiset
1544ea8630 ci: cram: add gmap upnp and dnssd tests
Add new tests for upnp and dnssd gmap modules.

The tests emulate upnp and dnssd services with minidlns and avahi.

This test the arrival and the departure of services.

Close: PPW-1619
Signed-off-by: Alexandre Fiset <alexandre.fiset@softathome.com>
2026-04-15 07:52:50 +02:00
Racha Hamhoum
438ce030f3 cram: ci: time-manager: add test to prevent future regressions when IPVersion is forced to IPv6 or IPv4
References: PPW-1331
Signed-off-by: Racha Hamhoum <racha.hamhoum_ext@softathome.com>
2026-04-10 14:51:11 +01:00
Nabil BIZID
fff0bbe4f9 ci: cram: 038-lcm-pcm: ignore LPM Action runtime params
038-lcm-pcm compares data model snapshots taken before and after
fake_fw_upgrade. It filters runtime-only parameters through a
runtime_params ignore list before checking the diffs.

After commit 84d5923af0 ("profiles: lcm.yml: feed_lcm:
cthulhu-lpm: policy: fix malformed default policy file"), the
post-upgrade snapshot contains LocalPolicyManager.Action.1 runtime
entries. Because those parameters are not in the ignore list, the
test reports false runtime parameter mismatches.

Instead of extending the inline here-document again, move the ignore
list into ${TESTDIR}/lcm-pcm_runtime_params so it is easier to
review and maintain. Add the LocalPolicyManager.Action.1 parameters
there and copy the file into /tmp/lcm-pcm/runtime_params before
running the diff checks.

Fixes: PPW-1797
References: PPW-1637, PPW-1638
Fixes: 84d5923af0 ("profiles: lcm.yml: feed_lcm: cthulhu-lpm: policy: fix malformed default policy file")
Signed-off-by: Nabil BIZID <nabil.bizid@softathome.com>
2026-04-10 13:41:22 +00:00
Toon Caeyers
88e371def5 ci: cram: obuspa: WANManager: Add new Tags parameter
A new tags parameter was added to the wan-manager. This parameter can be used to put certain tags/labels on a wan-mode.
This tags parameter will be provided to the (vendor) modules as is.
The (vendor) module can then change it's behavior depending on the tags which are set.

The obuspa cram test needed to be updated to now also expect this new parameter.

References: PCF-2434, FEAT-287
Signed-off-by: Toon Caeyers <toon.caeyers_ext@softathome.com>
2026-04-10 14:37:41 +01:00
Toon Caeyers
3914613a4d ci: cram: OSPv2: build-config: Use OSPv2 specific mod-wanmgr-system module
The mod-wanmgr-system module is generic for board requiring just a reboot between modes with different physical type. As the OSPv2 requires more, the mod-wanmgr-system-ospv2 module is introduces that will configure the required settings when called.

This module replaces the mod-wanmgr-system module.

References: PCF-2471, FEAT-287
Signed-off-by: Toon Caeyers <toon.caeyers_ext@softathome.com>
2026-04-10 14:37:41 +01:00
Toon Caeyers
4805acec89 ci: cram: freedom: build-config: Don't install mod-wanmngr-system on freedom board
The mod-wanmngr-system module is not used on the freedom board (not loaded in by wan-manager) as there is no need for any board specific configurations/reboots between mode toggles.

As the module is not used, it should not be installed on the build.

References: PCF-2471, FEAT-287
Signed-off-by: Toon Caeyers <toon.caeyers_ext@softathome.com>
2026-04-10 14:37:41 +01:00
Toon Caeyers
bcd35c4ce0 ci: cram: ubus-datamodel-list: SFP: Replace SFP-manager with tr181 compliant version
The SFP datamodel is replaced by a tr181 compliant version.
The ubus-datamodel-list cram test needs to be updated to remove the vendor prefixed version by the tr181 compliant version.

References: PCF-2164, FEAT-287
Signed-off-by: Toon Caeyers <toon.caeyers_ext@softathome.com>
2026-04-10 14:37:41 +01:00
Toon Caeyers
c3cb59e34d ci: cram: obupsa: SFP: Replace SFP-manager with tr181 compliant version
The SFP datamodel is replaced by a tr181 compliant version.
The obuspa cram test needs to be updated to remove the vendor prefixed version by the tr181 compliant version.

References: PCF-2164, FEAT-287
Signed-off-by: Toon Caeyers <toon.caeyers_ext@softathome.com>
2026-04-10 14:37:41 +01:00