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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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]
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]
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>
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]
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]
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]
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]
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]
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>
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>
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>
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>
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>
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>
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>
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>
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)
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)
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>
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>
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>
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>
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>
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>
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>
- 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>
- 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>
- 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>
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>
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>
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>
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>
- 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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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]
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>
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>
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>
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>
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>
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>
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>
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>
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]
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
- 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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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]
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]
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>