Align the Easymesh R1 smoke test with the DUT flashing procedure from FEAT-29.
This commit aligns the DUT deploy scripts from the prplMesh repository.
Reference: PPM-4139
Signed-off-by: Maarten De Decker <maarten.dedecker@mind.be>
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>
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>
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 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>
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>
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>
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>
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>
Currently it's not easy to identify errors in CI job log output, so
let's introduce centralized logging helpers with colored output and
visual indicators to make errors more prominent.
The helpers are consolidated in .gitlab/scripts/helpers.sh and replace
inline logging in dut-init scripts. Error messages in cdrouter.yml and
testbed.yml now use log_error() for hopefully better visibility in CI
logs.
References: PCF-2157
Signed-off-by: Petr Štetiar <petr.stetiar@prplfoundation.org>
Currently it's not clear how long each phase of the test run takes, so
let's break this down into collapsible sections which each can provide
precise duration measurement.
The new sections are collapsed by default (except test execution) to
reduce log clutter while still allowing quick access to detailed timing
information for debugging and performance analysis.
References: PCF-2157
Signed-off-by: Petr Štetiar <petr.stetiar@prplfoundation.org>
In commit 0c1a216ce82b ("ci: define time limits for runtime testing job
limits"), we've enabled time limits for runtime testing jobs to prevent
problematic test jobs from occupying precious testbed resources.
It turned out that the initial approach with the CI job limit wasn't
ideal, as it led to the immediate termination of CI jobs, preventing the
collection of useful artifacts like logs, thus making post-mortem
debugging of problematic tests impossible.
This commit introduces TEST_CUTOFF_TIMEOUT to limit test execution while
preserving time for artifact collection. The timeout is computed as:
CI_JOB_TIMEOUT - DUT_SLEEP_AFTER_BOOT - TEST_SETUP_TEARDOWN_DURATION
where TEST_SETUP_TEARDOWN_DURATION (6 minutes) reserves time for DUT
setup and artifact collection.
Two timeout mechanisms are implemented:
- CDRouter tests: custom timeout in testbed-cdrouter.py that monitors
execution time and calls package_stop() for graceful termination when
the deadline is reached, exiting with code 124 (used by `timeout`
command).
- Testbed tests: The `timeout` command wraps test execution, sending a
TERM signal at the deadline and a KILL signal after 10 seconds if
needed.
Both approaches assure that artifact collection can proceed after test
execution is terminated, enabling debugging of timeout issues.
While at it, I've removed SimpleNamespace import in testbed-cdrouter.py
as reported by flake8.
References: PCF-2157
Link: https://gitlab.com/prpl-foundation/prplos/prplos/-/jobs/11818939729#L136
Link: https://gitlab.com/prpl-foundation/prplos/prplos/-/jobs/11882363749#L238
Signed-off-by: Petr Štetiar <petr.stetiar@prplfoundation.org>
Currently we're sometime seeing the following error:
$ .gitlab/scripts/testbed-cdrouter.py package_stop
Traceback (most recent call last):
...
urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='<redacted>', port=80): Max retries exceeded with url: /api/v1/results/?filter=status~%28running%7Cpaused%29 (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f6380682358>: Failed to establish a new connection: [Errno 113] No route to host'))
So lets add a `check_connectivity` command to , which uses exponential backoff
retry logic to verify CDRouter API connectivity within a fixed 30 seconds timeout.
Signed-off-by: Petr Štetiar <petr.stetiar@prplfoundation.org>
We need to make sure, that prplWare passes prplOS Network Test Plan
certification test suite and for that we need to configure CDRouter and
DUT.
CDRouter config changes in new prplos-certification config:
* ipv6WanMode was changed from autoconf to DHCP
* ipv6LanMode was changed from autoconf to DHCP
DUTs are being dynamically configured with following datamodel
configuration:
* DHCPv6Client.Client.wan.RequestAddresses=1 so DUT requests IA_NA
* RouterAdvertisement.InterfaceSetting.lan.AdvManagedFlag=1 so CDRouter
can start DHCPv6 client
- WARNING(lan): The Mbit in the last router advertisement is set to 0 indicating that DHCPv6 is not allowed
- WARNING(lan): Cannot start DHCPv6 client
References: PCF-1609
Signed-off-by: Petr Štetiar <petr.stetiar@prplfoundation.org>
Currently, when CDRouter API connection fails, users see verbose stack traces
like:
Traceback (most recent call last):
File ".gitlab/scripts/testbed-cdrouter.py", line 441, in <module>
main()
...
raise ConnectionError(e, request=request)
requests.exceptions.ConnectionError: HTTPConnectionPool(host='<redacted>', port=80): Max retries exceeded with url: /api/v1/results/?filter=status~%28running%7Cpaused%29 (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f6380682358>: Failed to establish a new connection: [Errno 113] No route to hos
So let's add global exception handling to extract and display only the meaningful
error message. Added extract_connection_error_message() method to walk through
nested exception chains and extract the root cause. Wrapped main() function with
try-except block to catch ConnectionError, RemoteDisconnected, and MaxRetryError
exceptions, displaying clean error messages like:
ERROR: Connection failed: Failed to establish a new connection: [Errno 113] No route to host
Link: https://gitlab.com/prpl-foundation/prplos/prplos/-/jobs/11684757402
Signed-off-by: Petr Štetiar <petr.stetiar@prplfoundation.org>
Currently, the debug mode is only set via the -d argument, so
let's allow setting it via the TB_CDROUTER_DEBUG environment variable as well.
Signed-off-by: Petr Štetiar <petr.stetiar@prplfoundation.org>
When looking for regressions, it's handy to know on which branch/job the
test was run, so let's add support for branch/job tagging.
This commit introduces the `GitLabEnvironment` class, which extracts
GitLab CI environment variables related to branch names and job IDs.
It generates CDRouter-compatible tags that denote both the branch and
the CI job ID for the test execution. The priority for determining the
branch name is as follows:
1. CI_MERGE_REQUEST_SOURCE_BRANCH_NAME (for merge request pipelines)
2. CI_COMMIT_BRANCH (for regular branch pipelines)
The generated tags are formatted as:
- `gitlab-branch.{sanitized-branch}` for branch information
- `gitlab-job.{job_id}` for CI job identification
These tags are added to the existing tags generated by the
OpenWrtSystemInfo class and any user-defined tags. This addition aims
to simplify regression analysis by making it clear on which branch and
in which CI job a particular test execution occurred.
Signed-off-by: Petr Štetiar <petr.stetiar@prplfoundation.org>
Currently the tag sanitization is not re-usable and doesn't cover
complete CDRouter requirements for tags, so lets solve it by static
method in TestbedCDRouter class having complete tag naming restrictions.
Signed-off-by: Petr Štetiar <petr.stetiar@prplfoundation.org>
Reformat code with black, which is prior style code formatter.
Fixes: bef6276786 ("cdrouter: wireless: make wifiBeaconPhy configurable")
Signed-off-by: Petr Štetiar <petr.stetiar@prplfoundation.org>
Currently when something goes wrong during labgrid DUT bringup
procedure, we get a stack trace, but it would be helpful to get serial
console log as well. So lets handle the possible exception and dump the
serial console output, so it doesn't get lost.
References: FEAT-67
Signed-off-by: Petr Štetiar <petr.stetiar@prplfoundation.org>
During CDRouter tests, prplMesh is currently running in Agent mode (default).
This means cwmpd is unable to resolve the "Device.WiFi.DataElements." tree, because it is specific to the prplMesh controller.
Therefore, start prplMesh in controller mode before these tests are executed, so the "Device.WiFi.DataElements." datamodel is available.
Closes: PPM-3382
Signed-off-by: Maarten De Decker <maarten.dedecker@mind.be>
Copy over files from the prplMesh repository to flash devices in the R1 Easymesh testbed.
Adds an easyMesh R1 certification test on Freedom as a smoke test (MAP-4.4.2_BHWIFI_FH5GH).
Closes: PPM-3316
Signed-off-by: Maarten De Decker <maarten.dedecker@mind.be>
Currently we're seeing Mozart VLAN related CI test failures as it seems,
that the fixup commit fixing the bridge port of lan0 interface got lost
somehow during the rebase.
Fixes: 95e21db42b86 ("ci: testbed-device.py: Mozart: fix VLAN config by adding lan0 interface")
Signed-off-by: Petr Štetiar <petr.stetiar@prplfoundation.org>
As the vendor prefix has changed, the commands to be executed also changed. The DUT init script should be updated accordingly
Issue: PCF-1489
Signed-off-by: Toon Caeyers <toon.caeyers_ext@softathome.com>
Currently the eth1 interface is being configured, but physically lan0 is
connected to the network, so lets adapt the _init_lan_vlan with correct
LAN port.
References: PCF-1462
Signed-off-by: Petr Štetiar <petr.stetiar@prplfoundation.org>
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
Currently we're experiencing test failures of prpl_h-api-cwmp.2.5
CDRouter test caused by 503 errors being returned by cwmpd. This is
happening as the default rate limits are low for this test case.
So lets add the DUT init script, which will increase the default
settings to following values:
ManagementServer.X_PRPL-COM_FreqConnectionRequest=60
ManagementServer.X_PRPL-COM_MaxConnectionRequest=10000
So basically allowing 10k requests in 60 seconds.
References: PCF-1611
Signed-off-by: Petr Štetiar <petr.stetiar@prplfoundation.org>
After aligning the tr181-dns datamodel with the tr181 v2.18 datamodel,
the DNS.Relay.X_PRPL-COM_Config object no longer exists:
Running .gitlab/scripts/dut-init/cdrouter-dut-flush-dns-relay-cache.sh
Command failed: Request timed out
> DNS.Relay.X_PRPL-COM_Config.[Alias=="lan"].FlushCache()
ERROR: No objects found DNS.Relay.X_PRPL-COM_Config.[Alias=="lan"].FlushCache
So lets fix it by using the current DNS.Relay.Config without the prefix.
References: PCF-1492
Signed-off-by: Petr Štetiar <petr.stetiar@prplfoundation.org>
Currently the CDRouter VLAN tests are failing with:
FAIL: Could not establish IPv4 DHCP address on lan » no-lan-dhcp-address
This is happening as the UPDK 9.1.80 upstep changes the value of the
model variables in the device tree:
* OSPv1: from `mxl,lightning mountainmxl,lgp` to `mxl,osp-tb341`
* OSPv2: from `mxl,lightning mountainmxl,octopusmxl,octopus-641` to `mxl,osp-tb341-v2`
and thus the DUT VLAN configuration is unable to detect the board
properly and configure the VLAN on the the correct LAN port properly.
So lets adapt the board identification in the VLAN configuration to the
new device tree model variables.
Fixes: 45d2f1fcccc7 ("profiles: mxl_x86_osp_tb341_v2: update to UPDK 9.1.80")
Signed-off-by: Petr Štetiar <petr.stetiar@prplfoundation.org>
There is currently a lot of old and already very obsolete stuff in the
tree for the past devices like glinet-b1300, urx851-b0-dk, nec-wx3000hp.
So lets cleanup all those unused bits to make the tree more tidy and
easier to maintain.
Signed-off-by: Petr Štetiar <petr.stetiar@prplfoundation.org>
Problem: Cannot set SSID during the configuration of the DUT
Cause: Starting from PWHM v6.34.1 we shouldn't use the terminating dot
when accessing SSIDReference and LowerLayers parameters.
Solution: Remove the termiantion dot when selecting SSID via the
LowerLayers reference.
Note: The previous version of the cdrouter-dut-configure-dyndns.sh was
based on PWHM version from prplOS 3.2 which is based on 6.34.0 with a
backport of only some PPWH/PPM tickets. The pwhm commit related to the
terminating dot change is not part of the list.
PWHM commit : b8706173c1240d8dabdd9816a49fd774b968c160
References: PPM-3069
Signed-off-by: Houssem Dafdouf <houssem.dafdouf_ext@softathome.com>
WORKAROUND: When the first check misses, the ddns script only rechecks after 60s,
this can fall just outside the allowed range of the test.
Lowering it to 30s should allow for the second check to still count.
Issue:PPW-282 - DynDNS 3.1 maintenance release CDRouter test fails
Signed-off-by: Toon Caeyers <toon.caeyers_ext@softathome.com>
(cherry picked from commit de7bb3795ad55d21d94079bf699d15dde4d49d2d)
Issue: VLAN tests fail to configure the vlan on the lan side because a VLANPort can not be created
Cause: Trailing dots are no longer allowed in the path references. TR181-bridging v2.8.13, v2.8.10 and v2.8.12 include changes to remove the trailing dot from path references. This is done to be inline with the tr181 spec
Fix: Remove the trailing dots from the command creating the VLANPort
Signed-off-by: Toon Caeyers <toon.caeyers_ext@softathome.com>
On Freedom, for some reason, the 5GHz and 6GHz radios are causing random
issues in conjunction with regulatory domain change, leading to
following hostapd startup errors randomly:
wlan2.1: interface state UNINITIALIZED->COUNTRY_UPDATE
Hardware does not support configured mode
wlan2.1: IEEE 802.11 Hardware does not support configured mode (2) (hw_mode in hostapd.conf)
Could not select hw_mode and channel. (-2)
In the single hostapd scenario it results in the completely lacking WiFi
functionality on the DUT.
So until the root of the problem is found, try to workaround the issue
by using channel 11 in the second testbed, thus we don't need to set
regulatory domain.
References: PPW-303, PPM-3103
Signed-off-by: Petr Štetiar <petr.stetiar@prplfoundation.org>
Three issues were identified with CDRouter wireless tests:
1. The wireless configuration handling changed, making SSIDs no longer
available at fixed datamodel indexes.
2. The default Channel=1 frequency spectrum changed in the testbed environment,
causing increased interference with other devices.
3. Both testbeds and DUTs in them were using identical default settings,
resulting in crosstalk between them when CDRouter Wireless tests were
run on both testbeds at the same time.
So lets fix it by moving each testbed into different channel and properly
configuring the wireless settings for each testbed and DUT corresponding
to the testbed:
- testbed-01: RegulatoryDomain=CZ, Channel=6, SSID=prplOS-2g-6
- testbed-02: RegulatoryDomain=CZ, Channel=12, SSID=prplOS-2g-12
While at it, switch from ubus-cli to ba-cli, which is now preferred due
to its bus agnostic nature, thus making the commands more future proof.
Closes: PPM-3069
Signed-off-by: Petr Štetiar <petr.stetiar@prplfoundation.org>
Currently we run init scripts via `sh` which is not the best way to run
scripts, because it for example limits the ability to use `#!/usr/bin/env bash`
in the scripts. This commit changes the way how init scripts are run to use
shebang.
Signed-off-by: Petr Štetiar <petr.stetiar@prplfoundation.org>
For some reasons the current 180s timeout is not enough in most cases
currently, so the console_dump_system_state() timeouts which results in
lack of complete output. So lets workaround it by increasing the timeout
to 360s.
Signed-off-by: Petr Štetiar <petr.stetiar@prplfoundation.org>
When running the changes done in commit 140ad37e2ab0 ("cdrouter:
wireless: make wifiBeaconPhy configurable"), we can see:
Traceback (most recent call last):
File ".gitlab/scripts/testbed-cdrouter.py", line 441, in <module>
main()
File ".gitlab/scripts/testbed-cdrouter.py", line 437, in main
args.func(cdr)
File ".gitlab/scripts/testbed-cdrouter.py", line 345, in config_import
content = self.replace_env_config_variables(content)
File ".gitlab/scripts/testbed-cdrouter.py", line 330, in replace_env_config_variables
text = re.sub(pattern, value, text)
File "/usr/lib/python3.7/re.py", line 192, in sub
return _compile(pattern, flags).sub(repl, string, count)
TypeError: cannot use a string pattern on a bytes-like object
The re.sub() command fails because a non utf-8 encoded string is
passed. Let's therefore adapt the method that is called for opening a
file to always return a utf-8 decoded string.
Fixes: 140ad37e2ab0 ("cdrouter: wireless: make wifiBeaconPhy configurable")
Signed-off-by: Matthias FRANCK <matthias.franck@softathome.com>
With the new wnc-freedom wifi7 box, the wifiBeaconPhy testvar of CDRouter needs to include "be" as well. Let's make this configurable in the CI by introducing a CDROUTER_CONFIG_WIFI_BEACON_PHY variable that can be set uniquely for every box.
Signed-off-by: Matthias FRANCK <matthias.franck@softathome.com>
'uci_dyndns.org' server index has changed in OpenWRT 23.05. Adapt the initialization script accordingly.
Signed-off-by: Yüce Kürüm <yuce.kurum@mind.be>
Signed-off-by: Yüce Kürüm <yuce.kurum_ext@softathome.com>
We're unable to run CDRouter test for CPE's TR-069 functionality due to
the following error during the test init phase:
FAIL: Did not receive TR-069 Inform RPC from CPE after 120 seconds » no-wan-tr069-inform
Analyzing the logs, issue arise whenever CPE manages to get a first WAN
address from testbed server instead of CDRouter. With additional unbound traces we can see what happens:
As WAN is up, DNS query for controller.cdroutertest.com is forwarded to
configured upstream DSN server (8.8.8.8 and 1.1.1.1)
1.1.1.1 will reply with a SOA as cdroutertest.com is registered:
cdroutertest.com. 3600 IN SOA ns1.linode.com. support.qacafe.com. 2021000016 14400 14400 1209600 86400
As TTLS is set to 3600 seconds, unbound will cache this as a negative answer for 1 hour.
Latter upstream of CPE is switched to CDRouter, obuspa tries to resolve
controller.cdroutertest.com, but it gets the cached answer as its TTL is
not expired, and no WAN DSN query is done.
So lets fix it by flushing the DNS relay cache during the DUT init
phase, once the network is switched to the CDRouter.
Fixes: PCF-1215
Suggested-by: Vincent Harle <vincent.harle@softathome.com>
Signed-off-by: Petr Štetiar <petr.stetiar@prplfoundation.org>
(cherry picked from commit 53f718bde87b0e1773244da021daf2eeeac8a62a)
I've intentionally connected LAN network into different LAN port on the
board to increase testing coverage and possible fixed configurations
here and there, so for that we need to specify a different bridge port
for VLAN configuration used during CDRouter VLAN testing.
References: PCF-1138
Signed-off-by: Petr Štetiar <petr.stetiar@prplfoundation.org>
While integrating support for OSPv2, also known as MXL25641-HDK-6, I
discovered that it's impossible to uniquely identify the machine. This
is because the /proc/device-tree/compatible (DTS Root Node) is identical
across all MxL boards.
So lets workaround it by using `/proc/device-tree/model` additionally,
which at least help distinguish between OSPv1 and OSPv2, thus we first
check for `compatible` and if not usable, then fallback to `model`
property.
References: PCF-1161
Signed-off-by: Petr Štetiar <petr.stetiar@prplfoundation.org>
For some unknown reason upstream Linux kernel in version 4.16 via commit
5ee39a71fd89 ("arm64: Disable unhandled signal log messages by default")
silenced the reporting of traces for user space exceptions and thus
making arm64 the only architecture having this disabled by default:
arch/arm64/kernel/traps.c:int show_unhandled_signals = 0;
arch/csky/kernel/traps.c:int show_unhandled_signals = 1;
arch/loongarch/mm/fault.c:int show_unhandled_signals = 1;
arch/mips/mm/fault.c:int show_unhandled_signals = 1;
arch/parisc/mm/fault.c:int show_unhandled_signals = 1;
arch/powerpc/kernel/signal.c:int show_unhandled_signals = 1;
arch/riscv/kernel/traps.c:int show_unhandled_signals = 1;
arch/s390/mm/fault.c:int show_unhandled_signals = 1;
arch/sparc/mm/fault_32.c:int show_unhandled_signals = 1;
arch/sparc/mm/fault_64.c:int show_unhandled_signals = 1;
arch/x86/mm/fault.c:int show_unhandled_signals = 1;
We would like to be aware about such exceptions at least during
development, so lets enable it in development builds in the same spirit
as we did for coredumps in commit 6cf5635bf50e ("ci: generate coredumps
during development").
References: PCF-1107, PCF-1108
Signed-off-by: Petr Štetiar <ynezz@true.cz>
_init_lan_vlan() defaults to use `Bridging.Bridge.1.Port.2.` for LAN
VLAN configuration, which is wrong on prpl-haze as there is nothing
connect to that LAN1 port, so lets fix it by using the correct
`Bridging.Bridge.1.Port.4` (LAN3).
Signed-off-by: Petr Štetiar <ynezz@true.cz>