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>
The X_PRPLWARE-COM_SFPReference parameter in xpon is now standardized as SFPReferenceList in the tr181 implementation of the xpon datamodel.
The plugin is updated according to the 2.19 version of tr181. The obuspa test should be updated as well with the new version.
References: PCF-2164, FEAT-287
Signed-off-by: Toon Caeyers <toon.caeyers_ext@softathome.com>
Add a tests to check if when force solicite is enable in dhcpv6-client,
the client doesn't wait a ra message to send the dhcpv6 solicite
message.
References: PCF-2295
Signed-off-by: Alexandre Fiset <alexandre.fiset@softathome.com>
Updates OBUSPA to v11.0.0
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, as file
being patched has changed in OBUSPA
* Removed 005-increase_max_usp_msg_len.patch, as not required since the
new default in OBUSPA is 5MB.
* Removed 008-file-descriptor-transfer-over-uds.patch, as changes have
been merged into OBUSPA
* Added 009-remove-add-certificate-support.patch, as AddCertificate()
data model element is not intended to be provided by OBUSPA in Prpl
* Added 010-enable_file_descriptor_passing.patch, to enable file
descriptor passing (as it is disabled by default in OBUSPA)
* Updated obuspa_param_reset.txt to add new authenticated pair of UDS
MTP sockets, and modified Alias value, as per HL-API discussions
NOTE: Changes to patches 005 and 009 were also committed as part of PR
to update to OBUSPA v10.0.14, but the changes have not yet been merged
to main
OBUSPA changes since v10.0.14:
Added
- FEAT-172: Authenticated UDS connections: USP Services must provide a
passsword in the UDS Handshake frame if
UnixDomainSocket.{i}.AuthRequired is set to true. Passwords are
configured in UnixDomainSockets.Authentication.{i}
- FEAT-110: Data model registration permissions: USP Services are only
permitted to register the DM elements specified
in USPServices.Trust.{i}, if
UnixDomainSocket.{i}.RegistrationRestricted is set to true.
- FEAT-126: File descriptor passing via Unix domain socket ancilliary
data for USP Services.
- Lines in the factory reset text file that begin with `+` automatically
add the parameter to OBUSPA's database.
If it is already present, its existing value is left unchanged.
Modified
- factory_reset_example.txt renamed as stomp_factory_reset_example.txt
- OBUSPA's database may configure DeviceInfo.ProductClass, Manufacturer
and ModelName, overriding compile time defaults.
Fixed
- Crash that occurred if invalid UDS MTP parameters were present in
OBUSPA's database at startup.
- OBUSPA was not automatically creating intermediate directories in the
MUTABLE_CERT_DIR path.
- Alias uniqueness validation failures returned error code 7004 instead
of 7025.
References: PCF-2408, FEAT-172, FEAT-110, FEAT-126
Signed-off-by: Richard Holme <richard.holme@vantiva.com>
Closes: PCF-2408, FEAT-172, FEAT-110, FEAT-126
On Freedom ATH13.1, hostapd fails during AccessPointCommit with: "Error
loading ucode: Syntax error: Module /usr/share/hostap/common.uc does not
export 'wdev_get_radio_mask'".
This causes hostapd restart loops, loss of global control socket
connectivity, and eventually test failures in 110-prplmesh-dataelements
with all fronthaul SSIDs remaining Down.
Disable ucode and ubus integration in hostapd-qca by dropping
CONFIG_UCODE, removing CONFIG_UBUS in hostapd/wpa_supplicant configs,
and avoiding ubus_global usage in the qca ubus patch.
Fixes: PCF-2477
Signed-off-by: Petr Štetiar <petr.stetiar@prplfoundation.org>
Signed-off-by: Nikhil Gurram <nikhgurr@qti.qualcomm.com>
A backend bug prevents Enable=0 from stopping the DHCP daemon, leaving
an orphaned process that occasionally broadcasts a DISCOVER packet right
after Stats.Reset(). Temporarily allowed CRAM test to accept Discover
count of 0 or 1 via regex [01] (re).
References: PPW-1593
Signed-off-by: Ruslana Popovych <ruslana.popovych@globallogic.com>
Calling Stats.Reset() clears the counters, but an active DHCP client
can immediately transmit a new DISCOVER packet before the test dumps
the stats. This race condition caused the Discover=0 assertion to
fail sporadically (observing 1 instead).
This commit fixes the flakiness by quiescing the DHCP client:
- Disable the client (Enable=0) before resetting stats.
- Perform the stats reset and verify they are 0.
- Re-enable the client (Enable=1) to restore state.
References: PPW-1593
Signed-off-by: Ruslana Popovych <ruslana.popovych@globallogic.com>
1. Update the QCOM BSP to ATH13.1CSU1
2. Keep the following packages/configuration into prplos build per
Qualcomm's ATH13.1CS release for prplos:
kmod-qca-nss-ppe-pppoe-mgr
kmod-qca-nss-ppe-gre-mgr
kmod-qca-mdio
kmod-qca-nss-ppe-ath-clients
kmod-qca-wifi-nss-plugins
CONFIG_BUSYBOX_CONFIG_DEVMEM=y
References: PCF-2409
Signed-off-by: Marvin Lu <marvin.lu@wnc.com.tw>
Signed-off-by: Petr Štetiar <petr.stetiar@prplfoundation.org> [005-build-config.t]
Currently dut-change-fail-action-to-restart.sh runs after
cdrouter-dut-enable-vlans.sh (and cdrouter-dut-enable-pppoe.sh) in the
DUT_INIT_SCRIPTS for VLAN and PPPoE jobs on all platforms. The VLAN init
reconfigures the LAN bridge port to accept only VLAN-tagged frames
(AcceptableFrameTypes=AdmitOnlyVLANTagged), so the subsequent SSH
connection from the fail-action script over untagged traffic to
192.168.1.1 fails with "No route to host" and the job times out after
180s without running any tests.
So lets fix it by moving dut-change-fail-action-to-restart.sh before the
network reconfiguration scripts, while SSH is still reachable over
untagged traffic, on all affected platforms (Freedom, Mozart,
MXL25641-HDK-6, Haze, Turris).
Fixes: PPW-1744
Fixes: 72bffed2f9 ("ci: cdrouter: cram: update ProcessMonitor FailAction to RESTART if it is set to REBOOT (PPW-1234)")
Link: https://gitlab.com/prpl-foundation/prplos/prplos/-/jobs/13683699971#L347
Signed-off-by: Petr Štetiar <petr.stetiar@prplfoundation.org>
Ensure ApplicationData resources are properly removed during
container uninstallation.
This change guarantees that resources are cleaned up to prevent
interference with subsequent tests.
References: PPW-1656
Signed-off-by: Nabil BIZID <nabil.bizid@softathome.com>
- Ignore non-critical errors that do not impact test validity
- Introduce minimum wait time before starting timingila to allow
cthulhu registration, aligning with the boot process
- Add wait time before testing container network connectivity,
as the SSH service may take a few seconds to become available
References: PPW-985
Signed-off-by: Nabil BIZID <nabil.bizid@softathome.com>
Vendor/Descriptor parameters should not be sync from Cthulhu to
SoftwareModules datamodel.
References: PPW-1655, PCF-2122
Signed-off-by: Nabil BIZID <nabil.bizid@softathome.com>
Enhance the backup and restore process for LCM by reducing
unnecessary waiting time.
Ensure the test is isolated from previous tests and perform a
container stop before stopping cthulhu, preventing potential hangs
caused by killing only some processes.
References: PPW-1638
Signed-off-by: Nabil BIZID <nabil.bizid@softathome.com>
This reverts commit e0aa34f235 as the
underlying issue should be fixed.
References: PPW-985, PCF-2117
Signed-off-by: Petr Štetiar <petr.stetiar@prplfoundation.org>
During a coverity scan, cov-build intercepts all compiler calls and
runs cov-emit to parse each source file into an intermediate directory.
This captured representation is then passed to cov-analyze for static
analysis.
The coverity cov-emit tool (version 2025.6.0) crashes with an internal
assertion failure during the capture phase when parsing
drivers/regulator/cpr3-regulator.c. This was confirmed by inspecting
the cov-build log (.bridge/coverity_connect_scan/2025.6.0/idir/build-log.txt):
https://gitlab.com/prpl-foundation/prplos/prplos/-/jobs/13661606901/artifacts/external_file/logs/coverity-build-log.txt
"drivers/regulator/cpr3-regulator.c", line 2504: internal error #2688:
assertion failed: add_to_variables_list: var in file scope region
(il.c, line 16907 in add_to_variables_list)
mask = GENMASK(min(31, ctrl->sensor_count - i * 32), 0);
This is due to cov-emit using its own C parser which differs from GCC
and cannot handle the GENMASK(min(...)) macro expansion. The normal
build job is unaffected as it uses GCC directly.
Since cov-emit crashes during capture, the intermediate representation
for mac80211 is never completed, causing the entire package build to be
marked as failed by the coverity bridge before cov-analyze is reached.
Disable CONFIG_REGULATOR_CPR3 before defconfig to prevent
cpr3-regulator.c from being compiled and analysed. This driver is
unrelated to the wireless stack and its exclusion does not affect
coverity scan quality for mac80211/ath12k.
References: PPW-1646
Signed-off-by: Mouna Aloui <mouna.aloui@softathome.com>
The feed_qca mac80211 package introduced a Build/refactor step that
calls spatch (coccinelle) b1b495e940
to apply semantic patches on ath12k source
files. The coverity job was missing coccinelle, causing spatch to fail
and mac80211 to not build.
Add sudo to the apt-get command (required in this runner environment)
and install coccinelle to provide the spatch binary.
References: PPW-1646
Signed-off-by: Mouna Aloui <mouna.aloui@softathome.com>
The coverity bridge writes its internal build log to:
.bridge/coverity_connect_scan/*/idir/build-log.txt
This file contains detailed compiler invocations and cov-emit errors
that are not visible in the CI job log due to truncation. Copy it to
the logs/ directory so it is collected as a CI artifact and available
for debugging future coverity build failures.
References: PPW-1646
Signed-off-by: Mouna Aloui <mouna.aloui@softathome.com>
Problem:
The test case for wpa_supplicat test is failing 104-pwhm-custom-arguments.t intermittently
Fix:
Restructured the cram test to check wld is up, EndPoint status ,executed
hostapd and wpa_supplicant test separately to avoid any race condition
because of interface bring up delay while doing combinedly
Referrences: PPW-1566
Signed-off-by: Blessy Sara John <blessysara.j@tataelxsi.co.in>
This cram test check CurrentBootCycle. This field need the ll-api bootstatus in order to have the correct value.
That's why the freedom board needs ll-api bootstatus support to be able to pass this cram test.
References: PCF-2288
Signed-off-by: Florian Rouzaud <florian.rouzaud@softathome.com>
Problem:
Tests are failing
Cause:
Tests aren't sync with the new reboot DM
Solution:
Update the tests to reflect the code changes
References: PCF-1811
Signed-off-by: Florian Rouzaud <florian.rouzaud@softathome.com>
Latest pwhm update changed the behavior of the getEhtOperation output.
Adapt the test accordingly.
Main updates:
- Dynamic length of EhtOperationIE
- DisabledSubChannels validation
Closes: PPM-3836
Signed-off-by: Houssem Dafdouf <houssem.dafdouf_ext@softathome.com>
Increase test coverage by checking hostapd configuration file during
the execution of 120-prplmesh-static-puncturing.t.
Closes: PPM-3836
Signed-off-by: Houssem Dafdouf <houssem.dafdouf_ext@softathome.com>
Problem:
As previously done with 103-pwhm-static-puncturing.t, temporarily
disable 120-prplmesh-static-puncturing.t on OSPv2.
This test was not previously causing failures in CI because the hostapd
configuration was not validated. A new check for the hostapd
configuration will be added to the cram test, which would cause the
test to fail.
Disable the test for now until the issue is properly fixed (PCF-2350).
References: PCF-2350
Signed-off-by: Houssem Dafdouf <houssem.dafdouf_ext@softathome.com>
Problem:
More than one 5 GHz channel was disabled with 80 MHz bandwidth,
which is not allowed by the specification. On of the The 6GHz
puncturing opreation was also invalid.
Reference: IEEE Std 802.11be - Part 11 - Table 36-30
Solution:
Disable only one 5 GHz channel when using 80 MHz bandwidth and
remove the invalid 6GHz configuration.
Closes: PPM-3836
Signed-off-by: Mohammed SI ALI <mohammed.siali@softathome.com>
Signed-off-by: Houssem Dafdouf <houssem.dafdouf_ext@softathome.com>
Currently process manager CRAM tests using
simple pgrep on exact application name, that leads
to race condition between rc.d startup and wifi-sensing.
It happens because init.d script has the same name as
an actual application.
As a result, pgrep shows 2 applciations with same name launched.
Proposed solution is to use full path to the executables in
Process Manager CRAM tests that shows proper number of launched
proccesses in the system.
Closes: PPW-1633
Signed-off-by: Vladyslav Tupikin <v.tupikin@inango-systems.com>
Updated getEHTOperations with 3 parameters :
- EHT Default PE Duration
- Group Addressed BU Indication Limit
- Group Addressed BU Indication Exponent
References: PPM-3665
Signed-off-by: Houssem Dafdouf <houssem.dafdouf_ext@softathome.com>
Exclude prplmesh, wifi-sensing and pwhm from verification of
amx-processmonitoring failure checks. After merge of feat 27
this exclusion can be removed.
Also excluding wifi-scheduler, PPW-1679 raised for wifi-scheduler failures.
Signed-off-by: Hari Sriram <hari.s@capgemini.com>
MaxFailNum, ProcessMonitor.Test.<Id>.MaxFailNum parameter is increased to
higher value to avoid false failures due to process kill tests in
amx-processmonitoring testcase. At the beginning of testcase actual value is
taken and at the end of testcase this value is reverted.
To flush the NumFail, NumRespawan paramters verified in testcase, service
restart is performed as a part of cleanup step. But in very few cases FailAction
is triggered post restart of service when NumFail exceeds MaxFailNum value.
NumFail would exceed MaxFailNum because as a part of testcase mulitiple process
kill are performed.
To avoid this failure incidents while performing cleanup action, update of
MaxFailNum parameter post service restart is done.
References: PPW-1234
Signed-off-by: Hari Sriram <hari.s@capgemini.com>
Adding 60-check-for-fatal-errors.t testcase which at the end of
test suite verifies for any fail action taken by amx-processmonitoring.
Testcases part of amx-processmonitoring has sufficent handling included to
ensure process kill doesn't result in FailAction execution by amx-processmonitoring,
hence logging of any FailAction taken by amx-processmonitoring would
likely mean a failure.
Adding additional check for Reboot.Reboot.*.Reason to ensure no
Reboot due to process failure is triggered by amx-processmonitoring.
References: PPW-1234
Signed-off-by: Hari Sriram <hari.s@capgemini.com>
Including updates to change ProcessMonitor.Test.i FailAction to RESTART
for all process if it is set as REBOOT. This is done by adding a new
script under .gitlab/scripts/dut-init/dut-change-fail-action-to-restart.sh.
This newly included script is added for execution under DUT_INIT_SCRIPTS
for all tests.
Adding a CRAM script 004-amx-pre-test-verify-fail-action.t under
.gitlab/tests/cram/generic/acceleration-plan-components/ to ensure REBOOT
FailAction is not present for any process in ProcessMonitor.Test.i and
any FailAction taken by amx-processmonitoring before starting amx-testcases
Closes: PPW-1234
Signed-off-by: Hari Sriram <hari.s@capgemini.com>
A generic event in Bridging that is emitted when a device is
detected behind a port is needed. Since the MAC address
uniquely identifies a device, a "MACEvent!"" will be
emitted when a device is detected behind a certain port.
This new event is defined in the Bridging data model and is
now also seen by the obuspa test. Therefore the test needs to
be updated with these new expectations.
References: PPW-700
Signed-off-by: Sarra Kacem <sarra.kacem_ext@softathome.com>
Add Process Manager datamodel to the obuspa and
ubus cram tests.
References: FEAT-27, PCF-2183, PPW-1641
Signed-off-by: Artem Trokhymchuk <a.trokhymchuk@inango-systems.com>
Currently the shared .testbed before_script starts DUT bring-up
without checking whether testbed-02 still has a CDRouter package
left behind by a canceled earlier job. PPW-1640 showed job
13434548634 was canceled on March 10, 2026, but its CDRouter
package kept running for almost 20 hours and that stale state was
inherited by later LCM cram jobs on the reused testbed.
When that stale CDRouter package stays active, the DUT learns the
DHCPv6 DNS forwarders 3001:51a:cafe::2 and 3001:51a:cafe::3.
The local unbound resolver then forwards gitlab.com and
registry.gitlab.com lookups to those servers, which return
NXDOMAIN, so container pulls fail before the new job reaches its
own setup.
This change is needed to align the generic testbed jobs with the
existing CDRouter pipeline flow and reclaim the CDRouter service before
stale DNS state can leak into the next run. So lets fix the start of
before_script by running the connectivity check and package_stop cleanup
immediately.
References: PPW-1640
Link: https://gitlab.com/prpl-foundation/prplos/prplos/-/jobs/13434548634#L33
Signed-off-by: Petr Štetiar <petr.stetiar@prplfoundation.org>
Since prplMesh moved to direct socket connection, need to align cram
tests.
References: PCF-2184, FEAT-27
Signed-off-by: Artem Trokhymchuk <a.trokhymchuk@inango-systems.com>
Currently cram tests have a limit on total length of the commands.
To overcome this issue, some tests that exceed that limit are split into
2 steps.
References: PCF-2184, FEAT-27
Signed-off-by: Artem Trokhymchuk <a.trokhymchuk@inango-systems.com>
Current CRAM tests for Freedom and MXL OSPv2 require
adoptation to the prplMesh DataModel mapper application.
Existing tests updated because some parameters will be hiden
from the TR-69 and USP frontends.
Add tests that work with datamodel through usp-cli
tool, acting like external USP controller, sending
messages through OBUSPA to the prplMesh DM Mapper.
PWHM test split due to CRAM i/o limitation in 8K per file.
WiFi related tests were updated by adding Device. prefix
because CRAM tests should emulate real usage of the datamodel,
when everything configured through USP or TR-69 using Device.
datamodel.
Split event catching lua scripts for Ubus and USP for test
both buses. Also, updated USP events lua script for usage with
different USP sockets.
Script wifi.sh also modified by adding ability to choose which
prefix in wifi_dm() func can be used and which tool to use.
Default prefix set to the Device.WiFi.
Default tool is usp-cli.
References: PCF-2184, FEAT-27
Signed-off-by: Vladyslav Tupikin <v.tupikin@inango-systems.com>
Signed-off-by: Artem Trokhymchuk <a.trokhymchuk@inango-systems.com>
Add the cram to test that amx monitor would stop monitor if service
is deliberately shutdown (or) stopped for any debugging
References: PCF-1353
Signed-off-by: Sathishkumar Selvam <sathishkumar.selvam@capgemini.com>
Since the unbound upstep from 1.22 to 1.24.1 (commit d453d848c0), DNS
resolution now also uses a loopback unbound instance. The existing DUT
init script only flushed the "lan" DNS relay cache, causing stale
negative DNS entries on the "lo" instance to persist. This led to USP
agent (obuspa) STOMP connection failures during CDRouter-Wireless tests,
as controller.cdroutertest.com could not be resolved.
Flush the "lo" DNS relay cache before "lan" to ensure both instances
have clean state before CDRouter tests start.
Fixes: PPW-1629
Signed-off-by: Petr Štetiar <petr.stetiar@prplfoundation.org>
Integrates following changes:
-add PowerCapability and PowerStatus to USB.Port.1
References: PCF-1942
Signed-off-by: FAOUZI YAHYA <faouzi.yahya_ext@softathome.com>
Add PowerManagement cram test for usb port. The cram test checks USB datamodel for PowerManagement support.
References: PCF-1942
Signed-off-by: Oguzhan Kara <oguzhan.kara@softathome.com>
(cherry picked from commit 2af5652c4ce1d042808bea9030a6fa173ef86aee)
Add PowerManagement cram test for ethernet interface. The cram test checks Ethernet datamodel for PowerManagement support.
References: PCF-1941
Signed-off-by: Oguzhan Kara <oguzhan.kara@softathome.com>
(cherry picked from commit 3f3a52fe6ca39d5be4ebb14b059b8942dd5f01d1)
Currently 110-prplmesh-dataelements.t can inherit a 40MHz 2.4GHz
bandwidth from 106-pwhm-get-eht-caps.t. PCF-2420 shows that this
leaked state pushes the Freedom board into a hostapd crash loop after
AccessPointCommit(), leaving all fronthaul SSIDs Down and failing the
prplMesh dataelements assertions.
So lets reset the 2.4GHz bandwidth back to the default 20MHz during
the 110-prplmesh-dataelements.t setup. This keeps the test isolated
from earlier cram side effects and applies the Jira workaround that was
reported to make the enabled VAPs come up and stay Up.
References: PCF-2420
Root-caused-by: Iacob Juc <iacob.juc_ext@softathome.com>
Workarounded-by: Iacob Juc <iacob.juc_ext@softathome.com>
Signed-off-by: Petr Štetiar <petr.stetiar@prplfoundation.org>
5G modem (Quectel RM520N-GL) is not working on Freedom with ATH13.1CS.
Qualcomm is handling the fix via a separate SF ticket.
Disable 5G modem PCI/USB checks in 015-platform.t and skip
50-cellular-offline.t on Freedom DUT board.
While at it, fix the copy&pasta in the test description and remove
OSPv1.
References: PCF-2306
Signed-off-by: Petr Štetiar <petr.stetiar@prplfoundation.org>
The builds for Freedom using ATH13.1ED BSP are currently failing with
following error:
bash: line 1: spatch: command not found
This is happening as the mac80211 package is modifying the source code
tree another time to amend the kzalloc/kmalloc usage for memory
debugging use case.
It should be handled with existing tools, it is currently being
addressed internally, but in the meantime we're going to demand
spatch/coccinelle for the build.
References: PCF-2142
Link: https://gitlab.com/prpl-foundation/prplos/prplos/-/jobs/11783721716#L9686
Signed-off-by: Petr Štetiar <petr.stetiar@prplfoundation.org>
Update the QCOM BSP to ATH13.1ED for qca_ipq95xx profile.
Known issues:
Ethernet LAN ports do not work.
Multi-AP Wi-Fi connection fails.
Ethernet WAN port is functional.
References: PCF-2042
Signed-off-by: Marvin Lu <marvin.lu@wnc.com.tw>
Signed-off-by: Petr Štetiar <petr.stetiar@prplfoundation.org> [rebase, cram]
Update prplMesh-related cram tests and helper scripts to control prplMesh
via ProcessManager DM (ba-cli) instead of init.d mode helpers.
Key updates:
- use PrplMesh.{Enable,ManagementMode,CertificationMode} in test setup/teardown
- adjust DUT init script for controller mode via ProcessManager
- extend generic ubus datamodel expected list with prplMesh/controller objects
Closes: PPM-3589
Signed-off-by: Igor Plesser <i.plesser@inango-systems.com>
Replace prplmesh_utils.sh status checks in cram tests with
prplmesh_cli status output parsing/validation.
Closes: PPM-3671
Signed-off-by: Igor Plesser <i.plesser@inango-systems.com>
This reverts commit 8159c85df4 as the
underlying issue is being fixed in commit d825d78cef1f ("profiles:
OSPv2: update wlan profile to fix EMR5 wireless onboarding issues")
References: PPW-1480, PCF-2395
Signed-off-by: Petr Štetiar <petr.stetiar@prplfoundation.org>
We’ve recently started seeing some authentication issues with the Coverity server.
So, per Coverity support's advice, we should avoid using the admin account in CI and use a regular Coverity user instead.
So let's configure the prplbot credentials as the Coverity user that commits issues to the Coverity server.
References: PCF-2428
Signed-off-by: Mouna ALOUI <mouna.aloui@softathome.com>
Updated the container architecture name from x86-64 to amd64 to
align with the available containers in the registry for this
architecture. Also updating the script expectation to match all
possible architecture.
References: PCF-2143
Signed-off-by: Nabil BIZID <nabil.bizid@softathome.com>
Remove all containers at the end of the test,
so the next test can start with a clean system.
References: PCF-2143
Signed-off-by: Robin NELISSEN <robin.nelissen@softathome.com>
When using the init script, the process will forcefully stop
cthulhu after a certain timeout. This behavior can cause issues
during testing, as the time needed to fully stop all containers
and shut down cthulhu depends on the number of installed processes
and the configured graceful timeout for stopping each container.
Containers are stopped sequentially.
This commit modifies the behavior to send a signal to stop cthulhu,
avoiding forceful termination if the shutdown of all containers
is not fully completed.
References: PCF-2143
Signed-off-by: Nabil BIZID <nabil.bizid@softathome.com>
The local management test is simulating a box reboot. This
requires adding some additional wait time in order for the LCM
agent to fully start all containers after running the start
script.
References: PCF-2143
Signed-off-by: Nabil BIZID <nabil.bizid@softathome.com>
Adapt datamodel expectation with additional datamodel objects
following the introduction of new components and feature.
References: PCF-2143
Signed-off-by: Nabil BIZID <nabil.bizid@softathome.com>
cthulhu-pcm and cthulhu-lpm plugins are introduced, introducing new
datamodel and new config.
Updating the expected config
References: PCF-2143
Signed-off-by: Nabil BIZID <nabil.bizid@softathome.com>
When configuring the regulatory domain, it must be applied to all
radios. Applying it to only one will produce an inconsistent state,
which should have caused the failures seen in PPW-303.
Closes: PPW-303
Signed-off-by: Houssem Dafdouf <houssem.dafdouf_ext@softathome.com>
Adding altname check test for wan interface "eth1" to prevent
PCF-2381 regressions in the future.
It simply checks whether altname value for wan interface "eth1" is "sfp0".
Signed-off-by: Bhavesh Bharadiya <bnbharadiya@maxlinear.com>
Currently prpl_core does not enable CONFIG_KERNEL_PROC_PAGE_MONITOR and
CONFIG_KERNEL_SLUB_DEBUG, so /proc/<pid>/smaps, smaps_rollup and
/proc/slabinfo are not exposed in runtime images, which means memory
analysis falls back to RSS-only attribution without shared-page
accounting, PSS-based reporting or kernel slab allocation visibility.
Add CONFIG_KERNEL_PROC_PAGE_MONITOR=y and CONFIG_KERNEL_SLUB_DEBUG=y to
prpl_core diffconfig so builds expose the procfs interfaces needed for
PSS collection, shared memory analysis and kernel slab cache reporting.
Note: CONFIG_KERNEL_SLUB_DEBUG=y is used instead of CONFIG_KERNEL_SLABINFO=y
to avoid the forced selection of CONFIG_KERNEL_SLUB_DEBUG_ON, which
enables runtime slab debug checks (sanity_checks, red_zone, poison,
store_user) on every allocation at boot. With SLUB_DEBUG alone,
/proc/slabinfo is available but the debug checks remain dormant unless
explicitly activated via the slub_debug= kernel parameter.
References: PCF-2379
Signed-off-by: Petr Štetiar <petr.stetiar@prplfoundation.org>
- Check WiFi.bSTAMLDMaxLinks & Radio.*.Capabilities.WiFi7STARole
- Check default APMLDConfig & bSTAMLDConfig. as now pwhm sets these
configs according to the driver capabilities
- Replace all ba-cli get/set with wifi_dm new helper
References: PPM-3655, PPM-3349, PPW-1284
Closes: PPM-3830, PPW-1325
Signed-off-by: Houssem Dafdouf <houssem.dafdouf_ext@softathome.com>
Problems:
- WiFi7 STARole has no MLO modes support detection, although bSTAMLD is
functional
- missing dynamic detection APMLD/bSTAMLD MaxNumMLDs and
MaxNumLinksPerMLD
- newly created APMLD/bSTAMLD instances have APMLDConfig/bSTAMLDConfig
mlo modes set with value -1 (driver defaults), which is meaningless
with regards to EM spec
Causes:
- STA ifType was not parsed in nl80211 EXT_CAP, for MLO related
attibutes: EML_CAPABILITY and MLD_CAPA_AND_OPS
- EML_CAPABILITY and MLD_CAPA_AND_OPS are only filled by mac80211 for
AP ifType, but left empty for STA ifType
- wrong definition of APMLDConfig/bSTAMLDConfig mlo modes
Fix:
- properly detect MLO support per iftype based on available of
both nl80211 attribs EML_CAPABILITY and MLD_CAPA_AND_OPS
- read STR and NSTR default enabling from mac80211
- set properly WiFi7 APRole and STARole mlo modes support,
- deduce STARole EMLSR support with consideration of APRole (same cap
on driver side)
- deduce NSTR support with consideration of EMLMR/MLMR
- read maxNumSimultenousLinks (num auxiliary links) from driver side
- update MaxNumMLDs and MaxNumLinksPerMLD per typed MLD
- set WiFi.bSTAMLDMaxLinks with bSTAMLD capa maxLinksPerMld
- set write-once flag on MLDID of APMLD and bSTAMLD instance to allow
defining default configs with instances and APMLDConfig
(/bSTAMLDConfig)
- when pwhm creates new instances of APMLD/bSTAMLD (based on
SSID.MLDUnit settings), the initial APMLDConfig/bSTAMLDConfig mlo modes
are set driver capabilities (WiFi7 APRole/STARole mlo modes) that will
be used by default in the driver
CRAM tests:
- Update obuspa.t script
Integrates:
- 93f848f36: ("pwhm: mld: initialize APMLDConfig/bSTAMLDConfig mlo modes using driver capabilities", 2026-02-10)
- 649998b2a: ("pwhm: mld: config APMLD/bSTAMLD MLO modes with boolean params", 2026-02-10)
- 5583c685c: ("pwhm: mld: allow defining default APMLDs and bSTAMLDs with mlo configs", 2026-02-10)
- 4b4758c57: ("pwhm: bstamld: fix missing dm param bSTAMLDMaxLinks", 2026-02-10)
- d8b1340e6: ("pwhm: nl80211: fix detecting APMLD/bSTAMLD MaxNumMLDs and MaxNumLinksPerMLD", 2026-02-10)
- ec46bd4f8: ("pwhm: mld: add apis to set MaxNumMLDs and MaxNumOfLinksPerMLD on typed MLD", 2026-02-10)
- 19ec3d89e: ("pwh: nl80211: fix detecting mlo modes capabilities of WiFi7 APRole/STARole", 2026-02-10)
References: PPM-3655 PPM-3349 PPW-1284 PPW-1325
Signed-off-by: Houssem Dafdouf <houssem.dafdouf_ext@softathome.com>
MxL's vendor module is overriding ModesAvailable and missing WPA3-CM.
Let's enable it manually for the OSPv2 tests for now. It should be
added by default once PCF-2259 is implemented.
References: PCF-2259, PPM-3352
Signed-off-by: Houssem Dafdouf <houssem.dafdouf_ext@softathome.com>
prplMesh controller can read configuration from pwhm or from NBAPI.
This test covers both input methods.
Initial state assumption (based on default configuration) :
Controller is reading config from pwhm
Operations :
Restart prplMesh
Enable Priv VAPs
Read Security.ModeEnabled - default values
Write WPA3-Personal-Compatibility to
enabled VAPs - 3 Priv VAPs
Check that Controller Reads new values, propagates them to the Agent,
and Agent does not overwrite them not-overwrite is a double
negation that means agent writes the same value as before. A change
would imply that either:
1. Agent incorrectly reported capability - Controller downgraded security
mode
2. Controller did not read the configuration and pushed a teardown for
the Radiox instead
Switch Controller to NBAPI configuration
Push WPA3-Personal from NBAPI
Push WPA3-Personal-Compatibility from NBAPI
Restore Config to default values
Increase the testbed timeout. 5min are required to run the test.
Closes : PPM-3352
Signed-off-by: Iacob Juc <iacob.juc_ext@softathome.com>
Signed-off-by: Houssem Dafdouf <houssem.dafdouf_ext@softathome.com>
Added new CRAM test process-manager.t and update current related
tests to compatible with newly added component.
References: PCF-2183, FEAT-27
Signed-off-by: Volodymyr Martysh <v.martysh@inango-systems.com>
Problem:
The same prplmesh static puncturing cram test is used on OSPv2 and
Freedom.
Some steps verify the 5 GHz private VAP using AccessPoint index 3,
which is specific to Freedom. On OSPv2, the correct index is 1.
Solution:
Keep the existing script unchanged for Freedom and add a new OSPv2
specific version with the corrected AccessPoint index.
References: FEAT-72
Signed-off-by: Houssem Dafdouf <houssem.dafdouf_ext@softathome.com>
Including 006_set_attributes.t testcase for
ConnectionTrackingQuery entry creation failures.
Adding script to verify failure conditions while providing invalid
parameter data types for existing ConnectionTrackingQuery entry.
References: PPW-1204
Signed-off-by: Hari Sriram <hari.s@capgemini.com>
Updating PWHM cram test scripts and checking logfile for wpa_supplicant and hostapd
Closes: PPM-3522
Signed-off-by: Sajith Joseph <sajithjoseph@tataelxsi.co.in>
This change was temporary reverted because we dont have a procedure on how to properly migrate this incompatible change and test also need to be temporary
reverted.
Tracked-by: PPW-1371
Implements: PCF-2118
Refereces: FEAT-32
Signed-off-by: Ruslana Popovych <ruslana.popovych@globallogic.com>
Following changes were made during datamodel alignment with v2.19.1 release:
Device.DHCPv4.Server.Pool.{i}.WINSServers - renamed from X_PRPLWARE-COM_WINSServer
Implements: PCF-2070
References: FEAT-32
Signed-off-by: Anatolii Rybchych <anatolii.rybchych@globallogic.com>
Following changes were made during datamodel alignment with v2.19.1 release:
Device.DHCPv4.Client.{i}.DSCPMark - renamed from DSCP
Device.DHCPv4.Client.{i}.Stats. removed %protected flag
Device.DHCPv4.Server.Pool.{i}.Client.{i}.IPv4Address.{i}.IsStatic - not standard, added prefix
Device.DHCPv4.Server.Pool.{i}.WINSServers - renamed from X_PRPLWARE-COM_WINSServer
Device.DHCPv6.Client.{i}.DSCPMark - renamed from DSCP
Device.DHCPv6.Server.Pool.{i}.DSCPMark - renamed from DSCP
Implements: PCF-2070,PCF-2072,PCF-2118,PCF-2119
References: FEAT-32
Signed-off-by: AnatoliiRybchych <anatolii.rybchych@globallogic.com>
Integrates following changes:
- procd: restore original scripts to be used in non-procd environments (33f97e11)
- Fix on PPW-1067 - To replace static start/stop init order with config options (10354199)
- ci: baf: update autogenerated files (54507338)
- procd: restore original scripts to be used in non-procd environments (5c5f4468)
- Fix on PPW-1067 - To replace static start/stop init order with config options (0f5828e4)
- ci: baf: update autogenerated files (b98f1835)
- procd: restore original scripts to be used in non-procd environments (7b20dc70)
- Fix on PPW-1067 - To replace static start/stop init order with config options (a7c572d0)
- ci: baf: update autogenerated files (a0bdb1d4)
- procd: restore original scripts to be used in non-procd environments (4fd06973)
- ci: baf: update autogenerated files (ab2e4597)
- ci: enable unit tests (f3ffa9c2)
- procd: restore original scripts to be used in non-procd environments (263791e6)
- Fix on PPW-1067 - To replace static start/stop init order with config options (f9f3b2c3)
- ci: baf: update autogenerated files (86ccbca)
- procd: restore original scripts to be used in non-procd environments (2873daa3)
- Fix on PPW-1067 - To replace static start/stop init order with config options (46f4d197)
- ci: baf: update autogenerated files (ee673993)
- procd: restore original scripts to be used in non-procd environments (f9196323)
- ci: baf: update autogenerated files (b0578cc0)
References: PPW-1068, PPW-1066, FEAT-67, PPW-1067
Signed-off-by: prplbot <bot@prplfoundation.org>
Currently all missed components are migrated to procd as part of Overflow ticket [PCF-2139] except amx-shutdown-wait since amx-shutdown-wait doesnt seems to be init based start-up script, It does have only logic to handle shutdown all amx process in a customized way, Hence it doesnt seems to be eligible for procd based migration and doesnt take care further
Hence Updated the testcase 010-procd-spawned-process.t to have only "amx-shutdown-wait" still using amx_init_functions.sh (non-procd based) and removed all other services which are successfully migrated to procd to scope with procd migrated services verification
Implements:PCF-2139
Signed-off-by: Sathishkumar Selvam <sathishkumar.selvam@capgemini.com>
1). 110-data-model-mapper.t: After procd integration, Datamodel mapper ipk installation Usage prompt message missed causing cram failure.
Problem - Previously, data-model-mapper used a custom AMX-based init script that displayed a usage prompt as "Usage : /etc/init.d/data-model-mapper [start|boot|debuginfo|stop|shutdown|restart]" upon successful IPK installation. After migrating data‑model‑mapper to procd, the earlier AMX‑based init script’s usage prompt is no longer displayed during IPK installation. The CRAM test relied on this prompt for pattern matching, leading to test failures.
Solution - Instead of cross verifing the usage prompt for data-model-mapper ipk installation, Updated the CRAM test to stop validating the deprecated usage prompt and instead verify installation success using the IPK installation exit status, which aligns with current procd behavior.
2). ubus-datamodel-list.t: Cleaning up data-model-mapper ipk installation on 110-data-model-mapper.t itself doesnt retain running data-model-mapper process after procd migration causing cram failures with its datamodel verification on ubus-datamodel-list.t
Problem - Previously once data-model-mapper installed via ipk without procd, even if its being cleaned up after its operations at the end of 110-data-model-mapper.t test case, running data-model-mapper process would still be available , hence its datamodels later being able to verified at ubus-datamodel-list.t cram test. But after migrating to procd, procd seems taking care to clean up the running process to ensure proper cleanup, due to which cram verifying data-model-mapper datamodels later at ubus-datamodel-list.t cram test getting failed now
Solution - Removing the datamodel-mapper DM elements on ubus-datamodel-list.t help to remediate this cram failure as datamodel mapper completely uninstalled with its cleanup on earlier phase itself.
Implements:PCF-2139
Signed-off-by: Sathishkumar Selvam <sathishkumar.selvam@capgemini.com>
Previously several components - acl-manager,amx-fcgi,gmap-client,data-model-mapper,netmodel-clients,tr069-discovery,tr181-conmon,tr181-conntrack-query,tr181-flashmonitor,tr181-gatewayinfo,tr181-gnimanager,tr181-homeplug,usp-discovery,cthulhu,rlyeh,timingila,tr181-upnpdiscovery were missed during procd init script conversion process, so adding the missing procd init‑script integration in order to enable auto-respawn/procd monitoring for all these services as part of overflow ticket [PCF-2139]
Integrates:
- timingila: changed service startup scripts to be started and monitored by procd for auto-respawn (069ecb08)
- ci: baf: update autogenerated files (a1a1bec1)
- rlyeh: changed service startup scripts to be started and monitored by procd for auto-respawn (04c843e7)
- ci: baf: update autogenerated files (5c24ceec)
- cthulhu: changed service startup scripts to be started and monitored by procd for auto-respawn (5d090638)
- ci: baf: update autogenerated files (a64091b0)
References:PCF-2139
Signed-off-by: Sathishkumar Selvam <sathishkumar.selvam@capgemini.com>
100-pwhm.t:
-----------
Add hostapd socket checks after each interface state change;
other C2 requirements are implicitly covered by the apmld test.
Replace ba-cli get/set calls with the new wifi_dm helper and use
it for synchronous enable/disable operations, reducing test
duration from ~4m40s to ~1m30s (PPW-1301 #2, #3).
Verify the full interface name when reading status (PPW-1301 #4).
wifi-apmld.t:
-------------
ci: cram: warm apply: add main link interface removal new checks
Add hostapd restart check during the execution of the test
Add the check of wpactrl sockets after each operation
References: FEAT-125
Closes: PPM-3689
Signed-off-by: Houssem Dafdouf <houssem.dafdouf_ext@softathome.com>
OSPv2 does not currently support APMLD correctly, so all MLDUnit
parameters must be temporarily unset.
The MLDUnit for private and guest VAPs is already unset by the UPDK,
but backhaul interfaces are configured via prplMesh ODL.
Force MLDUnit to be unset on all interfaces when starting Wi-Fi tests.
References: PPW-1480
Signed-off-by: Houssem Dafdouf <houssem.dafdouf_ext@softathome.com>
New cram tests require to increase the CI runtime timeout.
Let's extend the test runtime timeout by 5 minutes.
Signed-off-by: Houssem Dafdouf <houssem.dafdouf_ext@softathome.com>
Test static puncturing using SetEHTOperations NBAPI function.
input operations:
* enable only 1 AccessPoint on DUT
* configure controlled values for Radio.ChannelsInUse
* call SetEHTOperations() several times
outputs:
* observe the WiFi.Radio.StaticPuncturing.DisabledSubChannels
list being changed depending on the argument used as input
Closes: PPM-3351
References: FEAT-72
Signed-off-by: Iacob Juc <iacob.juc_ext@softathome.com>
Signed-off-by: Houssem Dafdouf <houssem.dafdouf_ext@softathome.com>
- Fix wifi_dm issue helper when assigning an object via object path
(e.g. wifi_dm "EndPoint.1.ProfileReference=WiFi.EndPoint.1.Profile.1")
- Enhance wifi_dm output when ba-cli fails
- Add enable_ap_sync to optimize execution time when enabling/disabling
VAPs.
Usage:
enable_ap_sync <AP index> <0|1 (off|on)> [timeout in seconds, default: 15]
- Add get_ap_status to print full AP paths with status
- Add ls_ap_hapd_socket to list wapctrl socket files of a specific AP
based on pwhm DM.
Usage:
ls_ap_hapd_socket <AP index>
- Add ls_hapd_sockets to list all wapctrl socket files
- Update get_link_info to include link information
References: PPW-1301
Signed-off-by: Houssem Dafdouf <houssem.dafdouf_ext@softathome.com>
Problem:
The 101-mlot.t cram test does not restore the MLDUnit of the
backhaul interfaces, which can impact the execution of
the following tests. (e.g. apmld tests)
Solution:
Restore the corresponding MLDUnit values to their defaults.
References: PPM-3789
Signed-off-by: Houssem Dafdouf <houssem.dafdouf_ext@softathome.com>
Currently .gitlab/tests/cram/wnc-freedom/106-pwhm-get-eht-caps.t exceeds
cram's documented 8192-byte command buffer limit, so the generated shell
input can be truncated near the end of the test and surface as an
unterminated quoted string failure.
So let's fix it by compacting command input: add get_eht_ops in
.gitlab/tests/cram/scripts/wifi.sh and replace the 10 repeated long
getEHTOperations one-liners with helper calls in this test.
This reduces the generated command payload for this test from ~8619
bytes to ~7129 bytes, leaving about 1063 bytes of margin under the
8192-byte limit while preserving expected assertions and output checks.
References: PCF-2222
Signed-off-by: Petr Štetiar <petr.stetiar@prplfoundation.org>
Signed-off-by: Houssem Dafdouf <houssem.dafdouf_ext@softathome.com>
Problem:
Some failures occur when accessing AccessPoints through
'RadioReference'.
Cause:
We are using radio aliases (e.g. 'WiFi.Radio.radio0_band' on
Freedom) to access the corresponding AccessPoints. After the
integration of PPW-298, we must instead use the TR-181 path
'Device.WiFi.Radio.1'.
Solution:
Update RadioReference usage in all cram scripts.
References: PPW-298
Signed-off-by: Houssem Dafdouf <houssem.dafdouf_ext@softathome.com>
Problem: timezone test coverage was not sufficient
Cause: corner cases for posix timezone formats were not covered
Solution: Added valid and invalid posix timezone strings for cram tests
References: PPW-1032
Signed-off-by: Girdhari Yadav <girdhari.yadav_ext@softathome.com>
Update the test to align with the updated output of Lua AMX
for timestamps, by adding the prefix <amxc_ts_t>: to the
StartTime and CompleteTime parameters.
References: PCF-2121
Signed-off-by: Nabil BIZID <nabil.bizid@softathome.com>
Update the test to also test StartTime and CompleteTime of the event
tests will fail starting January 2100
References: PCF-2121
Signed-off-by: Jef Steelant <jef.steelant_ext@softathome.com>
This update introduces a test that verifies the process
of adding a USP role, assigning it to an EE, and
subsequently removing it. The test also confirms that
attempting to install a container with the removed
USP role is appropriately blocked.
References: PPW-1040
Signed-off-by: Nabil BIZID <nabil.bizid@softathome.com>
In the past few days we've added several test cases:
* 2026-02-09 257ee69bb7 ci: cram: add test for bSTAMLD feature
* 2026-02-09 e4bad077fe ci: cram: freedom: pwhm: test GetEHTOperations APIs
* 2026-02-09 0254e003b1 ci: cram: freedom: split script 101-mlo.t
* 2026-02-09 0dca07a46e ci: cram: add cram test for pwhm native APMLD feature
* 2026-02-06 61af18f6dd ci: cram: add lcm-syslog unpriv tests
* 2026-02-06 b60f186712 ci: cram: add cleanup lcm syslog tests
* 2026-02-06 ed3cccc049 ci: cram: adapt tests with introduction of LCM syslog
* 2026-02-06 cf253a0a06 ci: cram: add test 038-lcm-syslog.t
* 2026-02-06 22a7748057 ci: cram: obuspa.t: add Device.UPnP.Discovery.
* 2026-02-06 9512863824 ci: cram: obuspa: add Device.UPnPDiscovery
Which obviously impacts the test runtime, so we've started seeing
various test timeouts:
.gitlab/tests/cram/wnc-freedom/105-pwhm-wpa3-cm.t: passed
.gitlab/tests/cram/wnc-freedom/110-prplmesh-dataelements.t: timeout: sending signal TERM to command ‘python3’
So lets fix it by extending the test runtime timeout by 5 minutes.
Closes: PPW-1490
Link: https://gitlab.com/prpl-foundation/prplos/prplos/-/jobs/13002415393#L205
Signed-off-by: Petr Štetiar <petr.stetiar@prplfoundation.org>
Add cram test to cover bSTAMLD feature.
Actually only Freedom platform is supporting it.
References: FEAT-116
Closes: PPM-3602
Signed-off-by: Houssem Dafdouf <houssem.dafdouf_ext@softathome.com>
EHTCapabilities & EHTOperations DM parameters under Device.WiFi.Radio
contain raw data from the 802.11 EHT Operations Information Element.
This new test ensures that when 11be is enabled on a radio,
these APIs are working correctly;
also, when 11be is removed from the list of
Radio.i.OperatingStandards
the explicit disabling of 11be
is translated in the output of the APIs
For 5/6GHz adding channels to
Radio.i.StaticPuncturing.DisabledSubchannels
and testing the impact on the CurrentEhtOperatingIE
Closes: PPM-3537
Signed-off-by: Iacob Juc <iacob.juc_ext@softathome.com>
Signed-off-by: Houssem Dafdouf <houssem.dafdouf_ext@softathome.com>
Due to a limitation in the cram tool regarding the maximum number of
test cases allowed in a single script (PCF-2222), the 101-mlo.t test
may fail.
As a temporary workaround, let's split the test into two parts.
References: PCF-2222
Signed-off-by: Houssem Dafdouf <houssem.dafdouf_ext@softathome.com>
Add cram test to cover APMLD feature.
Actually only Freedom platform is supporting it.
References: FEAT-124
Closes: PPM-3347
Signed-off-by: Houssem Dafdouf <houssem.dafdouf_ext@softathome.com>
Adapt the test expectation with additional datamodel objects
following the introduction of new LCM plugin
References: PCF-2122
Signed-off-by: Nabil BIZID <nabil.bizid@softathome.com>
Add a the 038-lcm-syslog.t test which tests the cthulhu-syslog plugin
References: PCF-2122
Signed-off-by: Jef Steelant <jef.steelant_ext@softathome.com>
Problem:
After integrating UPDK 9.2.3, the static puncturing test
103-pwhm-static-puncturing.t started to fail.
Cause:
UPDK 9.2.3 drivers now announce MLO support, but the feature
is not fully integrated yet (missing APMLD support).
Temporary solution:
Disable the test until MLO and static puncturing are fully
integrated on OSPv2.
References: PPW-1453
Signed-off-by: Houssem Dafdouf <houssem.dafdouf_ext@softathome.com>
Problem: CRAM test for the CaptivePortal module was failing on OpenWrt 24.10.
Cause: Cram test expected HTTP 307 Temporary Redirect, but occasionally received
200 OK due to a timing issue while openNDS was starting to intercept traffic.
Solution: Added a 1-second delay and updated the test to verify CaptivePortal.State
instead of CaptivePortal.Status, ensuring validation occurs only after openNDS is actively intercepting traffic.
References: PCF-1943
Signed-off-by: Girdhari Yadav <girdhari.yadav_ext@softathome.com>
PPM-3660 lists the missing default configurations
in both wnc-freedom and OSPv2: new VAPs beyond classic six (priv+guest)
are deployed without WPA3-CM in Security.ModesAvailable.
On OSPv2, defaults from vendor module remove WPA3-CM from
Security.ModesAvailable even for priv+guest on 6GHz.
Security.ModesAvailable is writeable, so fix it at runtime for now.
Closes:PPM-3352
References: PPM-3660
Signed-off-by: Iacob Juc <iacob.juc_ext@softathome.com>
Signed-off-by: Houssem Dafdouf <houssem.dafdouf_ext@softathome.com>
input operation :
* Disable MLO so RSN Override 2 parameters are not present in
hostapd.conf
* Enable Priv VAPs; configure secMode to WPA3-CM
* Enable MLO so RSN Override 2 parameters are present in hostapd.conf
* Restore MLO Configuration and Security Configuration
* Disable all VAPs to return to initial state
outputs :
* reading from pwhm the Security.ModesAvailable field and check they
contain the WPA3-Personal-Compatibility parameter
* reading from pwhm to see that pwhm accepts WPA3-Personal-Compatibility
as rval for Security.ModeEnabled=X
*testing an arbitrary hostapd.conf (5GHz)
for the absence or presence of an arbitrary config parameters
(rsn_override_key_mgmt when 11BE is disabled)
RSNOverride 1 always present in 5GHz, never in 6GHz
*testing 5GHz and 6GHz hostapd.conf for
rsn_override_key_mgmt_2 when 11BE is enabled
References: PPM-3352
Signed-off-by: Iacob Juc <iacob.juc_ext@softathome.com>
Signed-off-by: Houssem Dafdouf <houssem.dafdouf_ext@softathome.com>
kjhdsq
With MLO enabled on BH VAPs, their behavior has changed slightly,
so the cram tests need to be adjusted accordingly.
Closes: PPM-3789
Signed-off-by: Igor Plesser <i.plesser@inango-systems.com>
During the execution of 110-prplmesh-dataelements.t we should restore
all AccessPoint.*.Security.ModeEnabled to their default value.
Otherwise it may impact any later test involving MLO
Closes: PPM-3350
Signed-off-by: Iacob Juc <iacob.juc_ext@softathome.com>
Signed-off-by: Houssem Dafdouf <houssem.dafdouf_ext@softathome.com>
Test interaction between pwhm datamodel and hostapd.conf
input operations:
* enable only PRIV AccessPoint on DUT
needed to put radios in Status==UP
indexes are platform dependend.
* write to WiFi.Radio.{5/6GHz}.StaticPuncturing.DisabledSubChannels
outputs:
* grep punct_bitmap in hostapd.conf file
hostapd.conf file is platform dependendt - two copies of the test
Closes: PPM-3350
References: FEAT-116, FEAT-137
Signed-off-by: Iacob Juc <iacob.juc_ext@softathome.com>
Signed-off-by: Houssem Dafdouf <houssem.dafdouf_ext@softathome.com>
Update references to OSPv2 image names in YAML configurations to match
the new naming convention, which was introduced in UPDK 9.2.3, providing
single build for both A-Step and B-Step OSPv2 hardware revisions.
New A-Step: prplos-intel_x86-lgm-PRPL_OSP_v2-tb341_wav700_fullimage.fit
New B-Step: prplos-intel_x86-lgm-PRPL_OSP_v2-wgrtd159be_b_wav700_fullimage.fit
References: PCF-2202
Signed-off-by: Petr Štetiar <petr.stetiar@prplfoundation.org>
Update mxl_wlan_hostap_ng_wav700 profile for below changes:
1) 6 GHz & Wi-Fi 7 Features
* Added 320 MHz bandwidth support for ACS/AFC.
* Enhanced TPE IE handling, AFC integration for UNII-5/UNII-7
bands, and regulatory compliance updates.
* Fixes for OWE security, WPA3 mixed mode, and enterprise security checks for 6 GHz BSS.
2) Multi-Link Operation (MLO) Enhancements
2.1) Firmware:
* Significant work on triband MLO support, including state machine
alignment, sibling STA handling, and OTF (on-the-fly) link assignments.
* Improvements for MLD VAP creation, PMKSA caching, and GTK rekey synchronization across links.
2.2) Software:
* MLO NL & PWHM OS alignment
3) AFC & ACS Improvements
* Introduced AFC patches for automated frequency coordination, timeout logic, and TX-power ranking.
* Airties ACS enhancements: smart channel selection, exclusion list support, and dynamic failsafe handling.
4) Firmware Updates
* Added Link Adaptation probing logic (r1462).
* Multiple fixes for FW crashes, throughput issues, and
calibration handling.
* Power optimization features like CPU sleep mode and QuickLatch adjustments.
5) Security & RSN Overriding
* RSNE/RSNXE override support for AP.
* WPA3/RSNO improvements for certification compliance.
* RADIUS backports enforcing Message-Authenticator attribute.
6) Certification & Compliance
* Adjustments for Wi-Fi 6/6E/7 certification programs (MU EDCA, EPCS, WMM, AFC compliance).
* Added Veriwave test configurations and sigma script updates.
7) New features
* Qos V2 MSCS & SCS support
* AT & T requirement : Support Neighbor diagnostics (TR-181 new Data Model)
* AT & T ZWDFS implementation & Bug fixes
Update OSPv2 profiles for below changes:
* Single build config provides images for both B-Step and A-Step boards
* Removed OSPv2 B step profile
* PON subsystem version bump to 2.1.4
* Linux kernel minor version upgrade from 5.15.185 to 5.15.194
* Fix done in Linux sources for ipv6 speedtest improvement
* Fix done in obudpst sources for ipv6 speedtest improvement
* Fix PON mode string representation from "GPON" to "G-PON"
* Updated version information in FIT image header of kernel and rootfs
* Fix failover issue after firmware upgrade failure
* Updated queue length and shaper of VANI0 interface to enhance WiFi to PON performance
* Allow firstboot
Fixes: PPW-946, PCF-2202, PPW-1093, PCF-2053
Signed-off-by: Bhavesh Bharadiya <bnbharadiya@maxlinear.com>
Signed-off-by: Petr Štetiar <petr.stetiar@prplfoundation.org> [cram test update]
Problem - Failure action as set in FailAction is taken when
repeated process kill exceeds MaxFailNum parameter.
Process respawn parameters were tested in previous
005-amx-respawn-reset.t testcase which upon failure increases the
CurrentTestInterval. ProcessMonitor detects the Health of the
process based on this CurrentTestInterval.
This CurrentTestInterval after failure was around 120 seconds for
tr181-qos process. Increased time for tr181-qos process observed
would be due to some small varying additional time taken by it to
come up at the expected monitoring interval (possibly due to
additional tasks handled by tr181-qos process compared to other process)
for example tr181-pcp process had CurrentTestInterval as 60 seconds as
per 006-amx-monitoring-change-subject.t.err file.
Due to this reason the issue reported in PPW-1228 is observed. Here
NumProcessRespawn for tr181-qos was expected as 1 but found 0 because
FailAction was invoked while Health was still in Bad state, RESTART
FailAction for tr181-qos was taken which respawns the process and
clears NumProcessRespawn and MaxNumFailed attributes.
Solution - Instead of waiting for the increased CurrentTestInterval
for the Health to trun into Good state and proceed with further
testcases, TestInterval parameter is reduced to 10 seconds from 60
seconds. This improves updating the Health status of the process.
Additionally MaxFailNum is increased to higher value at the start of
the tests to avoid unexpected FailActions and reverted at the end of
testcase. Also adding update to log CurrentTestInterval and Health
for all amx-processmonitoring cram testcases.
Fixes: PPW-1228
Signed-off-by: Hari Sriram <hari.s@capgemini.com>
in WANManager, a new parameter called `LastSuccessfulMode` is added.
This paramter must be mapped to `Device.X_PRPLWARE-COM_WANManager.LastSuccessfulMode`
References: PPW-964
Signed-off-by: ahmed sassi <ahmed.sassi_ext@softathome.com>
In commit 692e2f967a ("ci: cram: 065-upnp.t: fix random failures in
netstat check") the check was fixed, but got broken again in commit
b0ee814f61 ("upnp: extending the cram tests"). So lets fix it again.
References: PPW-454
Fixes: b0ee814f61 ("upnp: extending the cram tests")
Signed-off-by: Petr Štetiar <petr.stetiar@prplfoundation.org>
OSPv1 board was removed quite some time ago and replaced with OSPv2
successor, so lets cleanup the CI bits a bit to keep the tree tidy.
References: PCF-1134
Signed-off-by: Petr Štetiar <petr.stetiar@prplfoundation.org>
prplOS Network Functionality Test Plan v1.2.0 added following prplOS
4.1.0 mandatory tests which were enabled in Mandatory package and
removed from Candidate package.
* 1.2.10
* 1.2.25
* 1.2.27
* 1.2.28
* 1.3.7
* 1.4.2
* 1.4.3
* 1.4.4
* 1.5.4
* 1.5.5
* 1.5.6
* 1.5.7
* 1.5.14
* 1.5.15
* 1.5.16
* 1.5.17
Test plan packages v1.1.0 are being removed as they're not being used
anymore.
prplOS Network Test Plan timeout was increased to 1h 45min as the test
runtime increased to 1h 40min, 5 min is kept as buffer. The prplOS
Network Test Plan v1.2.0 mandatory tests require more time to complete
than the previous 70 minute timeout allowed. Candidate tests are
shorter, approx. 47 minutes on average, so having 52 minute timeout.
Closes: PCF-2275
Link: https://prplfoundation.org/wp-content/uploads/prplOS-Network-Functionality-Test-Plan-v1.2.0.pdf
Signed-off-by: Petr Štetiar <petr.stetiar@prplfoundation.org>
After the integration of the bSTAMLD feature, the default qdisc mode
for endpoint link interfaces changed from noqueue to noop.
As this mode is managed by the kernel/driver and has no impact on the
endpoint behavior when used, lets update the expected mode in the
script.
The ticket PPW-1282 will be used to analyze in more detail why the
mode changed.
References: FEAT-117, PPW-1282
Closes: PPM-3349
Signed-off-by: Houssem Dafdouf <houssem.dafdouf_ext@softathome.com>
This commit adds a test to verify that USP events are raised through
the pwhm USP direct socket
Closes: PPW-1259
References: PPW-1208
Signed-off-by: Houssem Dafdouf <houssem.dafdouf_ext@softathome.com>
obuspa.t is failing due to changes that remove
%protected for CustomAlias and VHTCapabilities in
AccessPoint ODL file
References: PPW-1190
Signed-off-by: Volodymyr Pavlenko <pavlenko.vv@pm.me>
Update expected DM according to the following new pwhm feature:
- get EHTCapabilities & EHTOperations IEs
References: FEAT-145
Signed-off-by: Houssem Dafdouf <houssem.dafdouf_ext@softathome.com>
The purpose of the update is to ensure that the hostapd configuration
can be updated without a restart.
References: FEAT-125, PPM-3345
Signed-off-by: Houssem Dafdouf <houssem.dafdouf_ext@softathome.com>
The CI_BUILD_PROFILE variable was being set twice:
1. In before_script (for all jobs)
2. In the script section during gen-config (redundant)
This duplication caused issues when jobs needed to override the variable
extraction pattern (e.g., blackduck scan jobs use a different job name
pattern than build test jobs).
Since before_script runs before script and the variable persists across
both sections, the second export in the script section is unnecessary
and was overwriting custom values set by derived jobs.
This change removes the redundant export from the script section,
allowing jobs that extend .build test config to properly override
CI_BUILD_PROFILE in their before_script without it being overwritten.
No functional change for existing build test jobs.
References: PPW-1194
Signed-off-by: Mouna Aloui <mouna.aloui@softathome.com>
This change is due to a fix in PPW-681 which adds the missing DM object
References: PPW-417, PPW-681
Signed-off-by: Hela Saadani <hela.saadani_ext@softathome.com>
Adding update to amx-process monitoring testcase
008-verify-amx-monitoring-enabled.t to exclude cellular-manager
checks for platforms other than MXL OSPv2 and WNC Freedom devices.
Including updates to 005-build-config.t file for arcadyan-mozart
environment.
Signed-off-by: Hari Sriram <hari.s@capgemini.com>
In commit 603dcf9e899a ("profiles: prpl_core.yml: feed_prplos &
feed_prplmesh: Integrating Amx Process Monitor Enhancement features with
prplos (FEAT-70, FEAT-77 & FEAT-88)") we've added bunch of new test
cases, which increase the test runtime by 2min51sec:
005-amx-respawn-reset.t | 42s
006-amx-monitoring-change-subject.t | 38s
007-amx-monitoring-reset.t | 34s
008-verify-amx-monitoring-enabled.t | 9s
009-amx-process-fail.t | 48s
So lets increase the test runtime by 3 minutes from current 45min to
48min to prevent test timeouts.
Signed-off-by: Petr Štetiar <petr.stetiar@prplfoundation.org>
ci:cram Add/Update cram testcase for amx-processmonitoring
Integrate below enhancements to Amx Process Monitor
- Redesigned Process Monitor to allow it to respect its configuration, regardless of the configured time intervals and number of processes, allowing to execute multiple tests in parallel.
- Add appropriate configuration for critical prplWare service which would required GW REBOOT to recover multiple failures. Service restart would be taken care by procd under FEAT-067.
- Added capability to detect service exits using procd events
- Collected and reported procd event statistics
- Additionally collected and reported procd respawn configuration for configured services
- Added a per-test parameter that records largest observed value of ProcessMonitor.Test.{i}.NumFailed when the “Test Failed” condition in the flow diagram of process monitor is false
- Added a per-test maximum response time measured for a successful test.
- Allowed to reset these values through the reset() Command.
References: PCF-2011, PPM-3493, PCF-2033
Signed-off-by: Sathishkumar Selvam <sathishkumar.selvam@capgemini.com>
Closes PCF-2011, PPM-3493, PCF-2033
After switch of the boards from A-Step to B-Step, we're observing
following strange test failures on one OSPv2-B board in testbed-01 only:
--- .gitlab/tests/cram/mxl25641-hdk-6/110-prplmesh-dataelements.t
+++ .gitlab/tests/cram/mxl25641-hdk-6/110-prplmesh-dataelements.t.err
@@ -165,7 +165,7 @@
$ get_ssid_ssid
- backhaul_(4C:BA:7D|A8:C2:46):[0-9A-F]{2}:[0-9A-F]{2}:[0-9A-F]{2} (re)
+ prplOS-guest
@@ -245,7 +245,7 @@
$ get_ssid_ssid
- backhaul_(4C:BA:7D|A8:C2:46):[0-9A-F]{2}:[0-9A-F]{2}:[0-9A-F]{2} (re)
+ prplOS-guest
It is failing in every run, so to keep CI green, lets remove the tests
until its fixed.
References: PPM-3652, PCF-2200
Link: https://gitlab.com/prpl-foundation/prplos/prplos/-/jobs/12147899498#L286
Signed-off-by: Petr Štetiar <petr.stetiar@prplfoundation.org>
Problem:
Sometimes, the mlo.t cram test throws the following error and quits
without continuing the execution :
$ R "ba-cli -j -l WiFi.AccessPoint.1.SSIDReference+.MLDUnit=0 |jsonfilter -e @[0]'[*].MLDUnit' "
- 0
+ /bin/sh: 232: Syntax error: Unterminated quoted string (no-eol)
Cause:
This issue was triggered by a known CRAM limitation where the command
buffer size is restricted to 8kB when running under python versions
earlier than 3.14. When running the script mlo.t we are exceeding this
limit, leading to parsing errors in the test runner.
(c.f. https://prplfoundationcloud.atlassian.net/wiki/spaces/PRPLFOUN/pages/1097170947/Cram#Command-Buffer-Size-Limit)
Solution:
Optimize the script so that the command buffer stays below the 8kB limit.
This constraint will remain in place for future script updates until the
python version may be updated.
Fixes: PPW-1179
Signed-off-by: Houssem Dafdouf <houssem.dafdouf_ext@softathome.com>
- Test the activation and deactivation of the new backhaul APs
introduced in PPM-3517.
References: PPM-3517
Closes: PPW-1165
Signed-off-by: Houssem Dafdouf <houssem.dafdouf_ext@softathome.com>
expected test results changed due to new features being added
Implements: PPM-3604,PPM-3352,PPM-3347,PPM-3350
References: FEAT-125,FEAT-65,FEAT-124,FEAT-137
Signed-off-by: Hela Saadani <hela.saadani_ext@softathome.com>
Replace manual trigger with label-based activation for BlackDuck scans
on MRs. Jobs now run automatically when the 'ci:allow-expensive-jobs'
label is added to the merge request,
References: PCF-1794
Signed-off-by: Mouna Aloui <mouna.aloui@softathome.com>
Black Duck was trying to analyze Python (PIP) and JavaScript (NPM) dependencies in the build directories,
but these package managers weren't properly configured in the build environment, causing "FAILURE_ACCURACY_NOT_MET" errors.
so let's exclude PIP and NPM types.
References: PCF-1794
Signed-off-by: Mouna Aloui <mouna.aloui@softathome.com>
Tests have shown that blackduch timeout job was reached, so let's increase it to 4 hours
References: PCF-1794
Signed-off-by: Matthias Franck <matthias.franck@softathome.com>
Adding a loop to let blackduck scan every directory.
use curl command to download detect.sh script from detect.blackduck.com
Closes: PCF-2036
References: PCF-1794
Signed-off-by: Matthias Franck <matthias.franck@softathome.com>
We're seeing this test failing a bit more lately, so lets remove it
to save some time and enable it once its fixed.
References: PPW-860
Signed-off-by: Petr Štetiar <petr.stetiar@prplfoundation.org>
Currently the prplMesh test pipes the prplmesh_utils.sh status output
(including PIDs) into LC_ALL=C sort and then matches the full lines,
which makes the check sensitive to ASCII PID ordering once PIDs cross
digit boundaries and results in random false negatives as seen in
PPW-881.
So lets strip the leading PIDs before sorting and only assert on the
sorted list of beerocks process names to make the agent operational
check deterministic and CI-stable.
Fixes: PPW-881
Debugged-by: Lu Dai <lu.dai@mind.be>
Signed-off-by: Petr Štetiar <petr.stetiar@prplfoundation.org>
The wifi helpers definitions were duplicated across multiple cram
scripts.
Let's consolidate them into a single script that can be sourced from
the CRAM scripts each time it's needed.
Closes: PPW-230
Signed-off-by: Houssem Dafdouf <houssem.dafdouf_ext@softathome.com>
Allow 2nd vendor MAC OUI in the backhaul SSID to prevent random failures
when running cram tests on different Freedom boards.
Closes: PCF-2185
Signed-off-by: Igor Plesser <i.plesser@inango-systems.com>
let's use $COVERITY_ENABLE_DIAGNOSTICS environment variable as a value for INCLUDE_DIAGNOSTICS argument.
so we can easily change it when needed without code modification.
Closes: PCF-2037
References: PCF-1795
Signed-off-by: Mouna Aloui <mouna.aloui@softathome.com>
Enhanced variable rules to ensure the Coverity scan job runs for:
1. Every new tag.
2. Scheduled pipelines on protected branches, configured for nightly runs.
3. require a scoped label ci::allow-expensive-jobs activation for scans on merge requesrs targeting protected branches to ensure compliance.
References: PCF-1795
Signed-off-by: Mouna Aloui <mouna.aloui@softathome.com>
let's use BRIDGE_COVERITY_CLEAN_COMMAND and BRIDGE_COVERITY_BUILD_COMMAND as clean and build commands
instead of defining them seperately in a yml file.
Closes: PCF-2037
References: PCF-1795
Signed-off-by: Mouna Aloui <mouna.aloui@softathome.com>