From 33977c34b338a18be9d824f1a3a9b34079fb7fd7 Mon Sep 17 00:00:00 2001 From: Christian Marangi Date: Mon, 2 Mar 2026 01:51:12 +0100 Subject: [PATCH] profiles: add Airoha/Nokia profile Add Airoha/Nokia profile for the Valyrian board. Required packages are imported from the feed-airoha repository. Signed-off-by: Christian Marangi Signed-off-by: Peter Steinhaeuser --- .gitlab-ci.yml | 11 + .gitlab/cdrouter/nokia-valyrian.yml | 184 ++++ .gitlab/scripts/testbed-device.py | 1 + .gitlab/testbed/nokia-valyrian.yml | 16 + .../008-verify-amx-monitoring-enabled.t | 2 +- .../040-usb-filter.t | 4 +- .../50-cellular-offline.t | 4 +- .../cram/generic/lcm/script_functions.sh | 15 +- .gitlab/tests/cram/generic/obuspa-cellular.t | 4 +- .../generic/procd/010-procd-spawned-process.t | 2 +- .../generic/ubus-datamodel-list-cellular.t | 4 +- .../cram/nokia-valyrian/005-build-config.t | 900 ++++++++++++++++++ .../tests/cram/nokia-valyrian/010-network.t | 40 + .gitlab/tests/cram/nokia-valyrian/011-tls.t | 15 + .../tests/cram/nokia-valyrian/015-platform.t | 25 + .gitlab/tests/cram/nokia-valyrian/020-ubus.t | 10 + .gitlab/tests/cram/nokia-valyrian/030-wifi.t | 19 + .../cram/nokia-valyrian/100-pwhm_step_1.t | 350 +++++++ .../cram/nokia-valyrian/100-pwhm_step_2.t | 333 +++++++ .../tests/cram/nokia-valyrian/102-pwhm-usp.t | 1 + .../110-prplmesh-dataelements.t | 286 ++++++ .../cram/nokia-valyrian/111-wifi-sensing.t | 1 + .../020-bridging-guest.t | 73 ++ profiles/airoha_an7581.yml | 20 + 24 files changed, 2305 insertions(+), 15 deletions(-) create mode 100644 .gitlab/cdrouter/nokia-valyrian.yml create mode 100644 .gitlab/testbed/nokia-valyrian.yml create mode 100644 .gitlab/tests/cram/nokia-valyrian/005-build-config.t create mode 100644 .gitlab/tests/cram/nokia-valyrian/010-network.t create mode 100644 .gitlab/tests/cram/nokia-valyrian/011-tls.t create mode 100644 .gitlab/tests/cram/nokia-valyrian/015-platform.t create mode 100644 .gitlab/tests/cram/nokia-valyrian/020-ubus.t create mode 100644 .gitlab/tests/cram/nokia-valyrian/030-wifi.t create mode 100644 .gitlab/tests/cram/nokia-valyrian/100-pwhm_step_1.t create mode 100644 .gitlab/tests/cram/nokia-valyrian/100-pwhm_step_2.t create mode 120000 .gitlab/tests/cram/nokia-valyrian/102-pwhm-usp.t create mode 100644 .gitlab/tests/cram/nokia-valyrian/110-prplmesh-dataelements.t create mode 120000 .gitlab/tests/cram/nokia-valyrian/111-wifi-sensing.t create mode 100644 .gitlab/tests/cram/nokia-valyrian/acceleration-plan-components/020-bridging-guest.t create mode 100644 profiles/airoha_an7581.yml diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 772d8fda1d..2b799eeb65 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -13,6 +13,7 @@ include: - local: .gitlab/cdrouter/mxl25641-hdk-6.yml - local: .gitlab/cdrouter/arcadyan-mozart.yml - local: .gitlab/cdrouter/wnc-freedom.yml + - local: .gitlab/cdrouter/nokia-valyrian.yml - local: .gitlab/coverity.yml - local: .gitlab/docker.yml - local: .gitlab/docker/builder/gitlab.yml @@ -26,6 +27,7 @@ include: - local: .gitlab/testbed/mxl25641-hdk-6.yml - local: .gitlab/testbed/arcadyan-mozart.yml - local: .gitlab/testbed/wnc-freedom.yml + - local: .gitlab/testbed/nokia-valyrian.yml stages: - docker @@ -59,6 +61,9 @@ build test ipq807x prpl security: build test mtk_filogic prpl security: extends: .build test config +build test airoha_an7581 prpl security: + extends: .build test config + build test qca_ipq95xx prpl cellular security thread: extends: .build test config @@ -104,3 +109,9 @@ run test Mozart initramfs: - job: build test mtk_filogic prpl security optional: true extends: .arcadyan-mozart testbed + +run test Valyrian initramfs: + needs: + - job: build test airoha_an7581 prpl security + optional: true + extends: .nokia-valyrian testbed diff --git a/.gitlab/cdrouter/nokia-valyrian.yml b/.gitlab/cdrouter/nokia-valyrian.yml new file mode 100644 index 0000000000..3e88f006c5 --- /dev/null +++ b/.gitlab/cdrouter/nokia-valyrian.yml @@ -0,0 +1,184 @@ +.nokia-valyrian: &nokia_valyrian + needs: ["build test airoha_an7581 prpl security"] + extends: + - .nokia-valyrian testbed + - .cdrouter + +CDRouter-Top-100+mDNS Valyrian initramfs: + <<: *nokia_valyrian + variables: + DUT_INIT_SCRIPTS: | + .gitlab/scripts/dut-init/cdrouter-dut-flush-dns-relay-cache.sh + .gitlab/scripts/dut-init/cdrouter-dut-configure-dyndns.sh + .gitlab/scripts/dut-init/dut-change-fail-action-to-restart.sh + +CDRouter-Top-100+mDNS Valyrian VLAN WAN/LAN initramfs: + <<: *nokia_valyrian + variables: + CDROUTER_TEST_CONFIG: vlan + DUT_INIT_SCRIPTS: | + .gitlab/scripts/dut-init/cdrouter-dut-flush-dns-relay-cache.sh + .gitlab/scripts/dut-init/cdrouter-dut-configure-dyndns.sh + .gitlab/scripts/dut-init/dut-change-fail-action-to-restart.sh + .gitlab/scripts/dut-init/cdrouter-dut-enable-vlans.sh + +CDRouter-Top-100+mDNS Valyrian PPPoE WAN initramfs: + <<: *nokia_valyrian + variables: + CDROUTER_TEST_CONFIG: ppp + DUT_INIT_SCRIPTS: | + .gitlab/scripts/dut-init/cdrouter-dut-flush-dns-relay-cache.sh + .gitlab/scripts/dut-init/cdrouter-dut-configure-dyndns.sh + .gitlab/scripts/dut-init/dut-change-fail-action-to-restart.sh + .gitlab/scripts/dut-init/cdrouter-dut-enable-pppoe.sh + +CDRouter-Wireless Valyrian initramfs: + <<: *nokia_valyrian + stage: smoke tests + timeout: 15 minutes + variables: + CDROUTER_TEST_CONFIG: wireless + CDROUTER_CONFIG_USP_CONTROLLER_MTP: websocket + CDROUTER_DUT_INIT_USP_MTP_SCRIPT: .gitlab/scripts/dut-init/cdrouter-dut-configure-usp-ws.sh + CDROUTER_CONFIG_WIFI_BEACON_PHY: 'ax b be g n' + CDROUTER_CONFIG_WIFI_BEACON_RSN_CIPHER: 'CCMP-128 GCMP-256' + DUT_INIT_SCRIPTS: | + .gitlab/scripts/dut-init/cdrouter-dut-flush-dns-relay-cache.sh + .gitlab/scripts/dut-init/cdrouter-dut-configure-wireless.sh + .gitlab/scripts/dut-init/dut-change-fail-action-to-restart.sh + + +.nokia-valyrian-ipv6: &nokia_valyrian_ipv6 + <<: *nokia_valyrian + rules: + - if: '$CI_PIPELINE_SOURCE == "schedule"' + when: never + - if: '$CI_COMMIT_BRANCH == $CI_DESIGNATED_BRANCH' + - when: manual + +CDRouter-UPnP-IPv46 Valyrian initramfs: + <<: *nokia_valyrian_ipv6 + timeout: 60 minutes + variables: + CDROUTER_TEST_CONFIG: generic-ipv6-upnp + DUT_INIT_SCRIPTS: | + .gitlab/scripts/dut-init/cdrouter-dut-flush-dns-relay-cache.sh + .gitlab/scripts/dut-init/dut-change-fail-action-to-restart.sh + +CDRouter-UPnP-IPv46-Failing Valyrian initramfs: + <<: *nokia_valyrian_ipv6 + timeout: 120 minutes + allow_failure: true + variables: + CDROUTER_TEST_CONFIG: generic-ipv6-upnp + DUT_INIT_SCRIPTS: | + .gitlab/scripts/dut-init/cdrouter-dut-flush-dns-relay-cache.sh + .gitlab/scripts/dut-init/dut-change-fail-action-to-restart.sh + +CDRouter-IPv6-Top-100+mDNS Valyrian initramfs: + <<: *nokia_valyrian_ipv6 + variables: + CDROUTER_TEST_CONFIG: generic-ipv6 + DUT_INIT_SCRIPTS: | + .gitlab/scripts/dut-init/cdrouter-dut-flush-dns-relay-cache.sh + .gitlab/scripts/dut-init/dut-change-fail-action-to-restart.sh + +prpl-Certification Valyrian initramfs: + <<: *nokia_valyrian_ipv6 + timeout: 120 minutes + allow_failure: true + rules: + - if: '$CI_PIPELINE_SOURCE == "schedule"' + when: never + - when: manual + variables: + CDROUTER_TEST_CONFIG: generic-ipv6 + DUT_INIT_SCRIPTS: | + .gitlab/scripts/dut-init/cdrouter-dut-flush-dns-relay-cache.sh + .gitlab/scripts/dut-init/cdrouter-dut-configure-cwmpd.sh + .gitlab/scripts/dut-init/dut-change-fail-action-to-restart.sh + +CDRouter-IPv6-Top-100+mDNS Valyrian VLAN WAN/LAN initramfs: + <<: *nokia_valyrian_ipv6 + variables: + CDROUTER_TEST_CONFIG: vlan-ipv6 + CDROUTER_CONFIG_USP_CONTROLLER_MTP: stomp + CDROUTER_DUT_INIT_USP_MTP_SCRIPT: '' + DUT_INIT_SCRIPTS: | + .gitlab/scripts/dut-init/cdrouter-dut-flush-dns-relay-cache.sh + .gitlab/scripts/dut-init/dut-change-fail-action-to-restart.sh + .gitlab/scripts/dut-init/cdrouter-dut-enable-vlans.sh + +.CDRouter-IPv6-Top-100+mDNS Valyrian PPPoE WAN initramfs: + <<: *nokia_valyrian_ipv6 + variables: + CDROUTER_TEST_CONFIG: ppp-ipv6 + DUT_INIT_SCRIPTS: | + .gitlab/scripts/dut-init/cdrouter-dut-flush-dns-relay-cache.sh + .gitlab/scripts/dut-init/dut-change-fail-action-to-restart.sh + .gitlab/scripts/dut-init/cdrouter-dut-enable-pppoe.sh + +CDRouter-TR-069 Valyrian eMMC: + <<: *nokia_valyrian + variables: + LABGRID_TARGET: nokia-valyrian-emmc + TFTP_IMAGE_FILENAME: prplos-airoha-an7581-nokia_valyrian-squashfs-sysupgrade.bin + TFTP_IMAGE_FILENAME_PATTERN: /.*prplos-airoha-an7581-nokia_valyrian-squashfs-sysupgrade.bin/ + DUT_INIT_SCRIPTS: | + .gitlab/scripts/dut-init/cdrouter-dut-flush-dns-relay-cache.sh + .gitlab/scripts/dut-init/cdrouter-tr181-mockups.sh + .gitlab/scripts/dut-init/dut-change-fail-action-to-restart.sh + +CDRouter-USP-prpl Valyrian initramfs: + <<: *nokia_valyrian + rules: + - if: '$CI_PIPELINE_SOURCE == "schedule"' + when: never + - when: manual + variables: + DUT_INIT_SCRIPTS: | + .gitlab/scripts/dut-init/cdrouter-dut-flush-dns-relay-cache.sh + .gitlab/scripts/dut-init/cdrouter-dut-configure-dyndns.sh + .gitlab/scripts/dut-init/dut-change-fail-action-to-restart.sh + +prplWare-Smoke-Test-Suite Valyrian initramfs: + <<: *nokia_valyrian_ipv6 + stage: smoke tests + variables: + CDROUTER_TEST_CONFIG: smoke-test + DUT_INIT_SCRIPTS: | + .gitlab/scripts/dut-init/cdrouter-dut-flush-dns-relay-cache.sh + .gitlab/scripts/dut-init/cdrouter-tr181-mockups.sh + .gitlab/scripts/dut-init/cdrouter-dut-configure-dyndns.sh + .gitlab/scripts/dut-init/cdrouter-dut-configure-prplmesh-controller.sh + .gitlab/scripts/dut-init/dut-change-fail-action-to-restart.sh + +.nokia_valyrian-certification-variables: &nokia_valyrian_certification_variables + CDROUTER_TEST_CONFIG: prplos-certification + DUT_INIT_SCRIPTS: | + .gitlab/scripts/dut-init/cdrouter-dut-flush-dns-relay-cache.sh + .gitlab/scripts/dut-init/cdrouter-dut-configure-cwmpd.sh + .gitlab/scripts/dut-init/cdrouter-dut-configure-prplos-certification.sh + .gitlab/scripts/dut-init/dut-change-fail-action-to-restart.sh + +.nokia-valyrian-certification: &nokia_valyrian_certification + <<: *nokia_valyrian_ipv6 + stage: certification tests + timeout: 1h 45m + rules: + - if: '$CI_PIPELINE_SOURCE == "schedule"' + when: never + - when: manual + variables: + <<: *nokia_valyrian_certification_variables + +prplOS-Network-Test-Plan-Mandatory-v1.2.0 Valyrian initramfs: + <<: *nokia_valyrian_certification + +prplOS-Network-Test-Plan-Candidate-v1.2.0 Valyrian initramfs: + <<: *nokia_valyrian_certification + timeout: 52 minutes + variables: + <<: *nokia_valyrian_certification_variables + CDROUTER_CONFIG_USP_CONTROLLER_MTP: websocket + CDROUTER_DUT_INIT_USP_MTP_SCRIPT: .gitlab/scripts/dut-init/cdrouter-dut-configure-usp-ws.sh diff --git a/.gitlab/scripts/testbed-device.py b/.gitlab/scripts/testbed-device.py index ad859faa58..c8c4bdc99d 100755 --- a/.gitlab/scripts/testbed-device.py +++ b/.gitlab/scripts/testbed-device.py @@ -117,6 +117,7 @@ class TestbedDevice: "mxl,osp-tb341": "Bridging.Bridge.1.Port.3", "prpl,haze": "Bridging.Bridge.1.Port.4", "arcadyan,mozart": "Bridging.Bridge.1.Port.2", + "nokia,valyrian": "Bridging.Bridge.1.Port.4", "cznic,turris-omnia": "Bridging.Bridge.2.Port.5", "EASY350 ANYWAN (GRX350) Axepoint Asurada model": "Bridging.Bridge.1.Port.5", } diff --git a/.gitlab/testbed/nokia-valyrian.yml b/.gitlab/testbed/nokia-valyrian.yml new file mode 100644 index 0000000000..a3ce242452 --- /dev/null +++ b/.gitlab/testbed/nokia-valyrian.yml @@ -0,0 +1,16 @@ +.nokia-valyrian testbed: + extends: .testbed true.cz + variables: + DUT_ARCH: aarch64 + DUT_TARGET: airoha + DUT_SUBTARGET: an7581 + DUT_BOARD: nokia-valyrian + DUT_CPU_TYPE: cortex-a53 + DUT_WAN_INTERFACE: eth2 + LABGRID_TARGET: nokia-valyrian-initramfs + TFTP_IMAGE_FILENAME: prplos-airoha-an7581-nokia_valyrian-initramfs-kernel.bin + TFTP_IMAGE_FILENAME_PATTERN: /.*prplos-airoha-an7581-nokia_valyrian-initramfs-kernel.bin/ + DUT_ARCH_PACKAGES_PATH: $PACKAGE_DIR/${DUT_ARCH}_${DUT_CPU_TYPE} + CDROUTER_CONFIG_LAN_IFACE_ALIAS: LAN3 + tags: + - dut-nokia-valyrian diff --git a/.gitlab/tests/cram/generic/acceleration-plan-components/008-verify-amx-monitoring-enabled.t b/.gitlab/tests/cram/generic/acceleration-plan-components/008-verify-amx-monitoring-enabled.t index 8943c5f7e6..9bb47e71ba 100644 --- a/.gitlab/tests/cram/generic/acceleration-plan-components/008-verify-amx-monitoring-enabled.t +++ b/.gitlab/tests/cram/generic/acceleration-plan-components/008-verify-amx-monitoring-enabled.t @@ -39,7 +39,7 @@ Verify all expected processes are enabled for monitoring by amx-processmonitor, hosts-manager=1 dhcpv4-manager=1 - $ if echo "$CI_JOB_NAME" | grep -q -E "(Mozart|Turris|Haze|HDK-3)"; then exit 80; fi + $ if echo "$CI_JOB_NAME" | grep -q -E "(Valyrian|Mozart|Turris|Haze|HDK-3)"; then exit 80; fi $ get_amx_process_monitoring cellular-manager cellular-manager=1 diff --git a/.gitlab/tests/cram/generic/acceleration-plan-components/040-usb-filter.t b/.gitlab/tests/cram/generic/acceleration-plan-components/040-usb-filter.t index 50521630d2..cec3caac26 100644 --- a/.gitlab/tests/cram/generic/acceleration-plan-components/040-usb-filter.t +++ b/.gitlab/tests/cram/generic/acceleration-plan-components/040-usb-filter.t @@ -2,9 +2,9 @@ Create R alias: $ alias R="${CRAM_REMOTE_COMMAND:-}" -If test is running on a Mozart, Turris, OSPv1 or Haze, lets skip the test as there is no USB storage device attached: +If test is running on a Valyrian, Mozart, Turris, OSPv1 or Haze, lets skip the test as there is no USB storage device attached: - $ if echo "$CI_JOB_NAME" | grep -q -E "(Mozart|Turris|Haze|HDK-3)"; then exit 80; fi + $ if echo "$CI_JOB_NAME" | grep -q -E "(Valyrian|Mozart|Turris|Haze|HDK-3)"; then exit 80; fi Create alias for finding SysfsId: diff --git a/.gitlab/tests/cram/generic/acceleration-plan-components/50-cellular-offline.t b/.gitlab/tests/cram/generic/acceleration-plan-components/50-cellular-offline.t index b0cec10e3d..a018e6a1b0 100644 --- a/.gitlab/tests/cram/generic/acceleration-plan-components/50-cellular-offline.t +++ b/.gitlab/tests/cram/generic/acceleration-plan-components/50-cellular-offline.t @@ -2,9 +2,9 @@ Create R alias: $ alias R="${CRAM_REMOTE_COMMAND:-}" -If test is running on a Mozart, Turris or Haze, lets skip the test as there is no cellular modem available: +If test is running on a Valyrian, Valyrian, Mozart, Turris or Haze, lets skip the test as there is no cellular modem available: - $ if echo "$CI_JOB_NAME" | grep -q -E "(Mozart|Turris|Haze)"; then exit 80; fi + $ if echo "$CI_JOB_NAME" | grep -q -E "(Valyrian|Mozart|Turris|Haze|Valyrian)"; then exit 80; fi Make sure Cellular is registered in the Datamodel: diff --git a/.gitlab/tests/cram/generic/lcm/script_functions.sh b/.gitlab/tests/cram/generic/lcm/script_functions.sh index 0e50966804..8b24b8cf9d 100755 --- a/.gitlab/tests/cram/generic/lcm/script_functions.sh +++ b/.gitlab/tests/cram/generic/lcm/script_functions.sh @@ -33,7 +33,8 @@ get_container_name() { case "${board_name}" in "haze" | \ "freedom" | \ - "mozart") + "mozart" | \ + "valyrian") echo lcm-test-ipq807x-generic ;; "lgm" | \ @@ -57,7 +58,8 @@ get_container_by_name() { board_name=$(cut -d',' -f2 mtu 1500 qdisc noqueue state DOWN mode DEFAULT group default qlen 1000 + br-lan: mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1000 + br-lcm: mtu 1500 qdisc noqueue state DOWN mode DEFAULT group default qlen 1000 + eth0: mtu 1504 qdisc mq state UNKNOWN mode DEFAULT group default qlen 1000 + eth1: mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000 + eth2: mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000 + ip6tnl0@NONE: mtu 1452 qdisc noop state DOWN mode DEFAULT group default qlen 1000 + lan1@eth0: mtu 1500 qdisc noqueue master br-lan state DOWN mode DEFAULT group default qlen 1000 + lan2@eth0: mtu 1500 qdisc noqueue master br-lan state DOWN mode DEFAULT group default qlen 1000 + lan3@eth0: mtu 1500 qdisc noqueue master br-lan state UP mode DEFAULT group default qlen 1000 + lo: mtu 65535 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000 + teql0: mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 100 + wlan0.1: mtu 1500 qdisc noop master br-lan state DOWN mode DEFAULT group default qlen 1000 + wlan0.2: mtu 1500 qdisc noop master br-guest state DOWN mode DEFAULT group default qlen 1000 + wlan0.3: mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000 + wlan0: <(NO-CARRIER,)?BROADCAST,MULTICAST(,UP)?> mtu 1500 qdisc noqueue master br-lan state DOWN mode (DORMANT|DEFAULT) group default qlen 1000 (re) + wlan1.1: mtu 1500 qdisc noop master br-lan state DOWN mode DEFAULT group default qlen 1000 + wlan1.2: mtu 1500 qdisc noop master br-guest state DOWN mode DEFAULT group default qlen 1000 + wlan1.3: mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000 + wlan1: <(NO-CARRIER,)?BROADCAST,MULTICAST(,UP)?> mtu 1500 qdisc noqueue master br-lan state DOWN mode (DORMANT|DEFAULT) group default qlen 1000 (re) + wlan2.1: mtu 1500 qdisc noop master br-lan state DOWN mode DEFAULT group default qlen 1000 + wlan2.2: mtu 1500 qdisc noop master br-guest state DOWN mode DEFAULT group default qlen 1000 + wlan2.3: mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000 + wlan2: mtu 1500 qdisc noqueue master br-lan state DOWN mode DEFAULT group default qlen 1000 diff --git a/.gitlab/tests/cram/nokia-valyrian/011-tls.t b/.gitlab/tests/cram/nokia-valyrian/011-tls.t new file mode 100644 index 0000000000..9c422584d2 --- /dev/null +++ b/.gitlab/tests/cram/nokia-valyrian/011-tls.t @@ -0,0 +1,15 @@ +Create R alias: + + $ alias R="${CRAM_REMOTE_COMMAND:-}" + +Check that there is just single TLS library OpenSSL: + + $ R "opkg list-installed" | grep -E '(openssl|mbedtls|wolfssl)' | sort | awk -F ' - ' '{print $1}' + hostapd-openssl + libopenssl-conf + libopenssl-legacy + libopenssl.* (re) + libustream-openssl.* (re) + lighttpd-mod-openssl + openssl-util + wpa-supplicant-openssl diff --git a/.gitlab/tests/cram/nokia-valyrian/015-platform.t b/.gitlab/tests/cram/nokia-valyrian/015-platform.t new file mode 100644 index 0000000000..eddabe2232 --- /dev/null +++ b/.gitlab/tests/cram/nokia-valyrian/015-platform.t @@ -0,0 +1,25 @@ +Create R alias: + + $ alias R="${CRAM_REMOTE_COMMAND:-}" + + +Check that we've Reset gpio key available: + + $ R "cat /sys/firmware/devicetree/base/gpio-keys/btn-0/label" + reset\x00 (no-eol) (esc) + + $ R "hexdump -s2 -n2 -e '1/1 \"0x%02x \"' /sys/firmware/devicetree/base/gpio-keys/btn-0/linux,code" + 0x01 0x98 (no-eol) + +Check that we've WPS gpio key available: + + $ R "cat /sys/firmware/devicetree/base/gpio-keys/btn-1/label" + wps\x00 (no-eol) (esc) + + $ R "hexdump -s2 -n2 -e '1/1 \"0x%02x \"' /sys/firmware/devicetree/base/gpio-keys/btn-1/linux,code" + 0x02 0x11 (no-eol) + +Check that CONFIG_WATCHDOG_SYSFS is enabled and thus watchdog available to reboot-service for reboot reasons: + + $ R "cat /sys/class/watchdog/watchdog*/timeout" + 24 diff --git a/.gitlab/tests/cram/nokia-valyrian/020-ubus.t b/.gitlab/tests/cram/nokia-valyrian/020-ubus.t new file mode 100644 index 0000000000..1e3737af15 --- /dev/null +++ b/.gitlab/tests/cram/nokia-valyrian/020-ubus.t @@ -0,0 +1,10 @@ +Create R alias: + + $ alias R="${CRAM_REMOTE_COMMAND:-}" + +Check that we've correct system info: + + $ R "ubus call system board | jsonfilter -e @.system -e @.model -e @.board_name" + ARMv8 Processor rev 4 + Nokia Valyrian + nokia,valyrian diff --git a/.gitlab/tests/cram/nokia-valyrian/030-wifi.t b/.gitlab/tests/cram/nokia-valyrian/030-wifi.t new file mode 100644 index 0000000000..690c308dfd --- /dev/null +++ b/.gitlab/tests/cram/nokia-valyrian/030-wifi.t @@ -0,0 +1,19 @@ +Create R alias: + + $ alias R="${CRAM_REMOTE_COMMAND:-}" + +Check for correct SSID setup: + + $ R "iw dev | grep -e Interface -e ssid | sort" + \tInterface wlan0 (esc) + \tInterface wlan0.1 (esc) + \tInterface wlan0.2 (esc) + \tInterface wlan0.3 (esc) + \tInterface wlan1 (esc) + \tInterface wlan1.1 (esc) + \tInterface wlan1.2 (esc) + \tInterface wlan1.3 (esc) + \tInterface wlan2 (esc) + \tInterface wlan2.1 (esc) + \tInterface wlan2.2 (esc) + \tInterface wlan2.3 (esc) diff --git a/.gitlab/tests/cram/nokia-valyrian/100-pwhm_step_1.t b/.gitlab/tests/cram/nokia-valyrian/100-pwhm_step_1.t new file mode 100644 index 0000000000..4cf739ac39 --- /dev/null +++ b/.gitlab/tests/cram/nokia-valyrian/100-pwhm_step_1.t @@ -0,0 +1,350 @@ +Create R alias: + + $ alias R="${CRAM_REMOTE_COMMAND:-}" + $ . "${TESTDIR}/../scripts/wifi.sh" + + $ R "logger -t cram 'Starting PWHM test (step 1) ...'" + +Wait for Device.WiFi. datamodel availability: + + $ R "amx_wait_for Device.WiFi." + +Stop prplMesh: + + $ R "ba-cli -l X_PRPLWARE-COM_ProcessManager.PrplMesh.Enable=0" | tr -d '\n' + 0 (no-eol) + + $ sleep 2 + +Set AutoChannelEnable=0 on all Device.WiFi.Radio. interfaces: + + $ wifi_dm "Radio.*.AutoChannelEnable=0" + Device.WiFi.Radio.1.AutoChannelEnable=0 + Device.WiFi.Radio.2.AutoChannelEnable=0 + Device.WiFi.Radio.3.AutoChannelEnable=0 + +Set channel to a non DFS one: + + $ wifi_dm "Radio.2.Channel=36" + Device.WiFi.Radio.2.Channel=36 (re) + +Check default SSID status: + + $ get_ap_status + Device.WiFi.AccessPoint.1.Status="Disabled" + Device.WiFi.AccessPoint.2.Status="Disabled" + Device.WiFi.AccessPoint.3.Status="Disabled" + Device.WiFi.AccessPoint.4.Status="Disabled" + Device.WiFi.AccessPoint.5.Status="Disabled" + Device.WiFi.AccessPoint.6.Status="Disabled" + Device.WiFi.AccessPoint.7.Status="Disabled" + Device.WiFi.AccessPoint.8.Status="Disabled" + Device.WiFi.AccessPoint.9.Status="Disabled" + +Check default SSID configuration of access points: + + $ get_ap_ssid + AccessPoint.1.SSID="prplOS" + AccessPoint.2.SSID="prplOS-guest" + AccessPoint.3.SSID="prplOS" + AccessPoint.4.SSID="prplOS-guest" + AccessPoint.5.SSID="prplOS" + AccessPoint.6.SSID="prplOS-guest" + AccessPoint.7.SSID="backhaul_6C:91:88:[0-9A-F]{2}:[0-9A-F]{2}:[0-9A-F]{2}" (re) + AccessPoint.8.SSID="backhaul_6C:91:88:[0-9A-F]{2}:[0-9A-F]{2}:[0-9A-F]{2}" (re) + AccessPoint.9.SSID="backhaul_6C:91:88:[0-9A-F]{2}:[0-9A-F]{2}:[0-9A-F]{2}" (re) + +Check that no hostapd instance is running: + + $ R "pgrep -f 'hostapd'" + [1] + +Test activation of access point 1: + + $ R logger -t cram "Test AccessPoint 1 activation "$(get_ssid_ref 1)"" + + $ enable_ap_sync 1 1 + AccessPoint.\d+.Enable=1 (re) + + $ wifi_dm "AccessPoint.*.Status?0" + Device.WiFi.AccessPoint.1.Status="Enabled" + Device.WiFi.AccessPoint.2.Status="Disabled" + Device.WiFi.AccessPoint.3.Status="Disabled" + Device.WiFi.AccessPoint.4.Status="Disabled" + Device.WiFi.AccessPoint.5.Status="Disabled" + Device.WiFi.AccessPoint.6.Status="Disabled" + Device.WiFi.AccessPoint.7.Status="Disabled" + Device.WiFi.AccessPoint.8.Status="Disabled" + Device.WiFi.AccessPoint.9.Status="Disabled" + +Check wpacltrl socket file: + + $ ls_ap_hapd_socket 1 + /var/run/hostapd/wlan[0-9.]+_link[0-9].* (re) + + $ ls_hapd_sockets + wlan2.1 + wlan2.1_link0 + +Test activation of access point 2: + + $ R logger -t cram "Test AccessPoint 2 activation "$(get_ssid_ref 2)"" + + $ enable_ap_sync 2 1 + AccessPoint.2.Enable=1 + + $ wifi_dm "AccessPoint.*.Status?0" + Device.WiFi.AccessPoint.1.Status="Enabled" + Device.WiFi.AccessPoint.2.Status="Enabled" + Device.WiFi.AccessPoint.3.Status="Disabled" + Device.WiFi.AccessPoint.4.Status="Disabled" + Device.WiFi.AccessPoint.5.Status="Disabled" + Device.WiFi.AccessPoint.6.Status="Disabled" + Device.WiFi.AccessPoint.7.Status="Disabled" + Device.WiFi.AccessPoint.8.Status="Disabled" + Device.WiFi.AccessPoint.9.Status="Disabled" + +Check wpacltrl socket file: + + $ ls_ap_hapd_socket 2 + /var/run/hostapd/wlan[0-9.]+_link[0-9] (re) + + $ ls_hapd_sockets + wlan2.1 + wlan2.1_link0 + wlan2.2 + wlan2.2_link0 + +Test activation of access point 3: + + $ R logger -t cram "Test AccessPoint 3 activation "$(get_ssid_ref 3)"" + + $ enable_ap_sync 3 1 + AccessPoint.3.Enable=1 + + $ wifi_dm "AccessPoint.*.Status?0" + Device.WiFi.AccessPoint.1.Status="Enabled" + Device.WiFi.AccessPoint.2.Status="Enabled" + Device.WiFi.AccessPoint.3.Status="Enabled" + Device.WiFi.AccessPoint.4.Status="Disabled" + Device.WiFi.AccessPoint.5.Status="Disabled" + Device.WiFi.AccessPoint.6.Status="Disabled" + Device.WiFi.AccessPoint.7.Status="Disabled" + Device.WiFi.AccessPoint.8.Status="Disabled" + Device.WiFi.AccessPoint.9.Status="Disabled" + +Check wpacltrl socket file: + + $ ls_ap_hapd_socket 3 + /var/run/hostapd/wlan[0-9.]+_link[0-9] (re) + + $ ls_hapd_sockets + wlan2.1 + wlan2.1_link0 + wlan2.1_link1 + wlan2.2 + wlan2.2_link0 + +Test activation of access point 4: + + $ R logger -t cram "Test AccessPoint 4 activation "$(get_ssid_ref 4)"" + + $ enable_ap_sync 4 1 + AccessPoint.4.Enable=1 + + $ wifi_dm "AccessPoint.*.Status?0" + Device.WiFi.AccessPoint.1.Status="Enabled" + Device.WiFi.AccessPoint.2.Status="Enabled" + Device.WiFi.AccessPoint.3.Status="Enabled" + Device.WiFi.AccessPoint.4.Status="Enabled" + Device.WiFi.AccessPoint.5.Status="Disabled" + Device.WiFi.AccessPoint.6.Status="Disabled" + Device.WiFi.AccessPoint.7.Status="Disabled" + Device.WiFi.AccessPoint.8.Status="Disabled" + Device.WiFi.AccessPoint.9.Status="Disabled" + +Check wpacltrl socket file: + + $ ls_ap_hapd_socket 4 + /var/run/hostapd/wlan[0-9.]+_link[0-9] (re) + + $ ls_hapd_sockets + wlan2.1 + wlan2.1_link0 + wlan2.1_link1 + wlan2.2 + wlan2.2_link0 + wlan2.2_link1 + +Test activation of access point 5: + + $ R logger -t cram "Test AccessPoint 5 activation "$(get_ssid_ref 5)"" + + $ enable_ap_sync 5 1 + AccessPoint.5.Enable=1 + + $ wifi_dm "AccessPoint.*.Status?0" + Device.WiFi.AccessPoint.1.Status="Enabled" + Device.WiFi.AccessPoint.2.Status="Enabled" + Device.WiFi.AccessPoint.3.Status="Enabled" + Device.WiFi.AccessPoint.4.Status="Enabled" + Device.WiFi.AccessPoint.5.Status="Enabled" + Device.WiFi.AccessPoint.6.Status="Disabled" + Device.WiFi.AccessPoint.7.Status="Disabled" + Device.WiFi.AccessPoint.8.Status="Disabled" + Device.WiFi.AccessPoint.9.Status="Disabled" + +Check wpacltrl socket file: + + $ ls_ap_hapd_socket 5 + /var/run/hostapd/wlan[0-9.]+_link[0-9] (re) + + $ ls_hapd_sockets + wlan2.1 + wlan2.1_link0 + wlan2.1_link1 + wlan2.1_link2 + wlan2.2 + wlan2.2_link0 + wlan2.2_link1 + +Test activation of access point 6: + + $ R logger -t cram "Test AccessPoint 6 activation "$(get_ssid_ref 6)"" + + $ enable_ap_sync 6 1 + AccessPoint.6.Enable=1 + + $ wifi_dm "AccessPoint.*.Status?0" + Device.WiFi.AccessPoint.1.Status="Enabled" + Device.WiFi.AccessPoint.2.Status="Enabled" + Device.WiFi.AccessPoint.3.Status="Enabled" + Device.WiFi.AccessPoint.4.Status="Enabled" + Device.WiFi.AccessPoint.5.Status="Enabled" + Device.WiFi.AccessPoint.6.Status="Enabled" + Device.WiFi.AccessPoint.7.Status="Disabled" + Device.WiFi.AccessPoint.8.Status="Disabled" + Device.WiFi.AccessPoint.9.Status="Disabled" + +Check wpacltrl socket file: + + $ ls_ap_hapd_socket 6 + /var/run/hostapd/wlan[0-9.]+_link[0-9] (re) + + $ ls_hapd_sockets + wlan2.1 + wlan2.1_link0 + wlan2.1_link1 + wlan2.1_link2 + wlan2.2 + wlan2.2_link0 + wlan2.2_link1 + wlan2.2_link2 + +Test activation of access point 7: + + $ R logger -t cram "Test AccessPoint 7 activation "$(get_ssid_ref 7)"" + + $ enable_ap_sync 7 1 + AccessPoint.7.Enable=1 + + $ wifi_dm "AccessPoint.*.Status?0" + Device.WiFi.AccessPoint.1.Status="Enabled" + Device.WiFi.AccessPoint.2.Status="Enabled" + Device.WiFi.AccessPoint.3.Status="Enabled" + Device.WiFi.AccessPoint.4.Status="Enabled" + Device.WiFi.AccessPoint.5.Status="Enabled" + Device.WiFi.AccessPoint.6.Status="Enabled" + Device.WiFi.AccessPoint.7.Status="Enabled" + Device.WiFi.AccessPoint.8.Status="Disabled" + Device.WiFi.AccessPoint.9.Status="Disabled" + +Check wpacltrl socket file: + + $ ls_ap_hapd_socket 7 + /var/run/hostapd/wlan[0-9.]+_link[0-9] (re) + + $ ls_hapd_sockets + wlan2.1 + wlan2.1_link0 + wlan2.1_link1 + wlan2.1_link2 + wlan2.2 + wlan2.2_link0 + wlan2.2_link1 + wlan2.2_link2 + wlan2.3 + wlan2.3_link0 + +Test activation of access point 8: + + $ R logger -t cram "Test AccessPoint 8 activation "$(get_ssid_ref 8)"" + + $ enable_ap_sync 8 1 + AccessPoint.8.Enable=1 + + $ wifi_dm "AccessPoint.*.Status?0" + Device.WiFi.AccessPoint.1.Status="Enabled" + Device.WiFi.AccessPoint.2.Status="Enabled" + Device.WiFi.AccessPoint.3.Status="Enabled" + Device.WiFi.AccessPoint.4.Status="Enabled" + Device.WiFi.AccessPoint.5.Status="Enabled" + Device.WiFi.AccessPoint.6.Status="Enabled" + Device.WiFi.AccessPoint.7.Status="Enabled" + Device.WiFi.AccessPoint.8.Status="Enabled" + Device.WiFi.AccessPoint.9.Status="Disabled" + +Check wpacltrl socket file: + + $ ls_ap_hapd_socket 8 + /var/run/hostapd/wlan[0-9.]+_link[0-9] (re) + + $ ls_hapd_sockets + wlan2.1 + wlan2.1_link0 + wlan2.1_link1 + wlan2.1_link2 + wlan2.2 + wlan2.2_link0 + wlan2.2_link1 + wlan2.2_link2 + wlan2.3 + wlan2.3_link0 + wlan2.3_link1 + +Test activation of access point 9: + + $ R logger -t cram "Test AccessPoint 9 activation "$(get_ssid_ref 9)"" + + $ enable_ap_sync 9 1 + AccessPoint.9.Enable=1 + + $ wifi_dm "AccessPoint.*.Status?0" + Device.WiFi.AccessPoint.1.Status="Enabled" + Device.WiFi.AccessPoint.2.Status="Enabled" + Device.WiFi.AccessPoint.3.Status="Enabled" + Device.WiFi.AccessPoint.4.Status="Enabled" + Device.WiFi.AccessPoint.5.Status="Enabled" + Device.WiFi.AccessPoint.6.Status="Enabled" + Device.WiFi.AccessPoint.7.Status="Enabled" + Device.WiFi.AccessPoint.8.Status="Enabled" + Device.WiFi.AccessPoint.9.Status="Enabled" + +Check wpacltrl socket file: + + $ ls_ap_hapd_socket 9 + /var/run/hostapd/wlan[0-9.]+_link[0-9] (re) + + $ ls_hapd_sockets + wlan2.1 + wlan2.1_link0 + wlan2.1_link1 + wlan2.1_link2 + wlan2.2 + wlan2.2_link0 + wlan2.2_link1 + wlan2.2_link2 + wlan2.3 + wlan2.3_link0 + wlan2.3_link1 + wlan2.3_link2 diff --git a/.gitlab/tests/cram/nokia-valyrian/100-pwhm_step_2.t b/.gitlab/tests/cram/nokia-valyrian/100-pwhm_step_2.t new file mode 100644 index 0000000000..b5b4d7979b --- /dev/null +++ b/.gitlab/tests/cram/nokia-valyrian/100-pwhm_step_2.t @@ -0,0 +1,333 @@ +Create R alias: + + $ alias R="${CRAM_REMOTE_COMMAND:-}" + $ . "${TESTDIR}/../scripts/wifi.sh" + + $ R "logger -t cram 'Starting PWHM test (step 2) ...'" + +Check that hostapd is operating as expected: + + $ R logger -t cram "Check that hostapd is operating" + + $ R "ps axw" | sed -nE 's/.*(hostapd .*)/\1/p' | head -1 | tr -s ' ' '\n' | LC_ALL=C sort + -g + -s + /tmp/wlan2_hapd.conf + /var/run/hostapd/global\.0x.* (re) + hostapd + +Check iw interfaces and beaconing: + + $ R "iw dev | grep -e Interface -e ssid | tr -d '\t' | sort" + Interface wlan0 + Interface wlan0.1 + Interface wlan0.2 + Interface wlan0.3 + Interface wlan1 + Interface wlan1.1 + Interface wlan1.2 + Interface wlan1.3 + Interface wlan2 + Interface wlan2.1 + Interface wlan2.2 + Interface wlan2.3 + ssid backhaul_6C:91:88:[0-9A-F]{2}:[0-9A-F]{2}:[0-9A-F]{2} (re) + ssid prplOS + ssid prplOS-guest + +Test deactivation of access point 9: + + $ R logger -t cram "Test AccessPoint 9 deactivation "$(get_ssid_ref 9)"" + + $ enable_ap_sync 9 0 + AccessPoint.9.Enable=0 + + $ wifi_dm "AccessPoint.*.Status?0" + Device.WiFi.AccessPoint.1.Status="Enabled" + Device.WiFi.AccessPoint.2.Status="Enabled" + Device.WiFi.AccessPoint.3.Status="Enabled" + Device.WiFi.AccessPoint.4.Status="Enabled" + Device.WiFi.AccessPoint.5.Status="Enabled" + Device.WiFi.AccessPoint.6.Status="Enabled" + Device.WiFi.AccessPoint.7.Status="Enabled" + Device.WiFi.AccessPoint.8.Status="Enabled" + Device.WiFi.AccessPoint.9.Status="Disabled" + +Check wpacltrl socket file: + + $ ls_ap_hapd_socket 9 + not found + + $ ls_hapd_sockets + wlan2.1 + wlan2.1_link0 + wlan2.1_link1 + wlan2.1_link2 + wlan2.2 + wlan2.2_link0 + wlan2.2_link1 + wlan2.2_link2 + wlan2.3 + wlan2.3_link0 + wlan2.3_link1 + +Test deactivation of access point 8: + + $ R logger -t cram "Test AccessPoint 8 deactivation "$(get_ssid_ref 8)"" + + $ enable_ap_sync 8 0 + AccessPoint.8.Enable=0 + + $ wifi_dm "AccessPoint.*.Status?0" + Device.WiFi.AccessPoint.1.Status="Enabled" + Device.WiFi.AccessPoint.2.Status="Enabled" + Device.WiFi.AccessPoint.3.Status="Enabled" + Device.WiFi.AccessPoint.4.Status="Enabled" + Device.WiFi.AccessPoint.5.Status="Enabled" + Device.WiFi.AccessPoint.6.Status="Enabled" + Device.WiFi.AccessPoint.7.Status="Enabled" + Device.WiFi.AccessPoint.8.Status="Disabled" + Device.WiFi.AccessPoint.9.Status="Disabled" + +Check wpacltrl socket file: + + $ ls_ap_hapd_socket 8 + not found + + $ ls_hapd_sockets + wlan2.1 + wlan2.1_link0 + wlan2.1_link1 + wlan2.1_link2 + wlan2.2 + wlan2.2_link0 + wlan2.2_link1 + wlan2.2_link2 + wlan2.3 + wlan2.3_link0 + +Test deactivation of access point 7: + + $ R logger -t cram "Test AccessPoint 7 deactivation "$(get_ssid_ref 7)"" + + $ enable_ap_sync 7 0 + AccessPoint.7.Enable=0 + + $ wifi_dm "AccessPoint.*.Status?0" + Device.WiFi.AccessPoint.1.Status="Enabled" + Device.WiFi.AccessPoint.2.Status="Enabled" + Device.WiFi.AccessPoint.3.Status="Enabled" + Device.WiFi.AccessPoint.4.Status="Enabled" + Device.WiFi.AccessPoint.5.Status="Enabled" + Device.WiFi.AccessPoint.6.Status="Enabled" + Device.WiFi.AccessPoint.7.Status="Disabled" + Device.WiFi.AccessPoint.8.Status="Disabled" + Device.WiFi.AccessPoint.9.Status="Disabled" + +Check wpacltrl socket file: + + $ ls_ap_hapd_socket 7 + not found + + $ ls_hapd_sockets + wlan2.1 + wlan2.1_link0 + wlan2.1_link1 + wlan2.1_link2 + wlan2.2 + wlan2.2_link0 + wlan2.2_link1 + wlan2.2_link2 + +Test deactivation of access point 6: + + $ R logger -t cram "Test AccessPoint 6 deactivation "$(get_ssid_ref 6)"" + + $ enable_ap_sync 6 0 + AccessPoint.6.Enable=0 + + $ wifi_dm "AccessPoint.*.Status?0" + Device.WiFi.AccessPoint.1.Status="Enabled" + Device.WiFi.AccessPoint.2.Status="Enabled" + Device.WiFi.AccessPoint.3.Status="Enabled" + Device.WiFi.AccessPoint.4.Status="Enabled" + Device.WiFi.AccessPoint.5.Status="Enabled" + Device.WiFi.AccessPoint.6.Status="Disabled" + Device.WiFi.AccessPoint.7.Status="Disabled" + Device.WiFi.AccessPoint.8.Status="Disabled" + Device.WiFi.AccessPoint.9.Status="Disabled" + +Check wpacltrl socket file: + + $ ls_ap_hapd_socket 6 + not found + + $ ls_hapd_sockets + wlan2.1 + wlan2.1_link0 + wlan2.1_link1 + wlan2.1_link2 + wlan2.2 + wlan2.2_link0 + wlan2.2_link1 + +Test deactivation of access point 5: + + $ R logger -t cram "Test AccessPoint 5 deactivation "$(get_ssid_ref 5)"" + + $ enable_ap_sync 5 0 + AccessPoint.5.Enable=0 + + $ wifi_dm "AccessPoint.*.Status?0" + Device.WiFi.AccessPoint.1.Status="Enabled" + Device.WiFi.AccessPoint.2.Status="Enabled" + Device.WiFi.AccessPoint.3.Status="Enabled" + Device.WiFi.AccessPoint.4.Status="Enabled" + Device.WiFi.AccessPoint.5.Status="Disabled" + Device.WiFi.AccessPoint.6.Status="Disabled" + Device.WiFi.AccessPoint.7.Status="Disabled" + Device.WiFi.AccessPoint.8.Status="Disabled" + Device.WiFi.AccessPoint.9.Status="Disabled" + +Check wpacltrl socket file: + + $ ls_ap_hapd_socket 5 + not found + + $ ls_hapd_sockets + wlan2.1 + wlan2.1_link0 + wlan2.1_link1 + wlan2.2 + wlan2.2_link0 + wlan2.2_link1 + +Test deactivation of access point 4: + + $ R logger -t cram "Test AccessPoint 4 deactivation "$(get_ssid_ref 4)"" + + $ enable_ap_sync 4 0 + AccessPoint.4.Enable=0 + + $ wifi_dm "AccessPoint.*.Status?0" + Device.WiFi.AccessPoint.1.Status="Enabled" + Device.WiFi.AccessPoint.2.Status="Enabled" + Device.WiFi.AccessPoint.3.Status="Enabled" + Device.WiFi.AccessPoint.4.Status="Disabled" + Device.WiFi.AccessPoint.5.Status="Disabled" + Device.WiFi.AccessPoint.6.Status="Disabled" + Device.WiFi.AccessPoint.7.Status="Disabled" + Device.WiFi.AccessPoint.8.Status="Disabled" + Device.WiFi.AccessPoint.9.Status="Disabled" + +Check wpacltrl socket file: + + $ ls_ap_hapd_socket 4 + not found + + $ ls_hapd_sockets + wlan2.1 + wlan2.1_link0 + wlan2.1_link1 + wlan2.2 + wlan2.2_link0 + +Test deactivation of access point 3: + + $ R logger -t cram "Test AccessPoint 3 deactivation "$(get_ssid_ref 3)"" + + $ enable_ap_sync 3 0 + AccessPoint.3.Enable=0 + + $ wifi_dm "AccessPoint.*.Status?0" + Device.WiFi.AccessPoint.1.Status="Enabled" + Device.WiFi.AccessPoint.2.Status="Enabled" + Device.WiFi.AccessPoint.3.Status="Disabled" + Device.WiFi.AccessPoint.4.Status="Disabled" + Device.WiFi.AccessPoint.5.Status="Disabled" + Device.WiFi.AccessPoint.6.Status="Disabled" + Device.WiFi.AccessPoint.7.Status="Disabled" + Device.WiFi.AccessPoint.8.Status="Disabled" + Device.WiFi.AccessPoint.9.Status="Disabled" + +Check wpacltrl socket file: + + $ ls_ap_hapd_socket 3 + not found + + $ ls_hapd_sockets + wlan2.1 + wlan2.1_link0 + wlan2.2 + wlan2.2_link0 + +Test deactivation of access point 2: + + $ R logger -t cram "Test AccessPoint 2 deactivation "$(get_ssid_ref 2)"" + + $ enable_ap_sync 2 0 + AccessPoint.2.Enable=0 + + $ wifi_dm "AccessPoint.*.Status?0" + Device.WiFi.AccessPoint.1.Status="Enabled" + Device.WiFi.AccessPoint.2.Status="Disabled" + Device.WiFi.AccessPoint.3.Status="Disabled" + Device.WiFi.AccessPoint.4.Status="Disabled" + Device.WiFi.AccessPoint.5.Status="Disabled" + Device.WiFi.AccessPoint.6.Status="Disabled" + Device.WiFi.AccessPoint.7.Status="Disabled" + Device.WiFi.AccessPoint.8.Status="Disabled" + Device.WiFi.AccessPoint.9.Status="Disabled" + +Check wpacltrl socket file: + + $ ls_ap_hapd_socket 2 + not found + + $ ls_hapd_sockets + wlan2.1 + wlan2.1_link0 + +Test deactivation of access point 1: + + $ R logger -t cram "Test AccessPoint 1 deactivation "$(get_ssid_ref 1)"" + + $ enable_ap_sync 1 0 + AccessPoint.1.Enable=0 + + $ wifi_dm "AccessPoint.*.Status?0" + Device.WiFi.AccessPoint.1.Status="Disabled" + Device.WiFi.AccessPoint.2.Status="Disabled" + Device.WiFi.AccessPoint.3.Status="Disabled" + Device.WiFi.AccessPoint.4.Status="Disabled" + Device.WiFi.AccessPoint.5.Status="Disabled" + Device.WiFi.AccessPoint.6.Status="Disabled" + Device.WiFi.AccessPoint.7.Status="Disabled" + Device.WiFi.AccessPoint.8.Status="Disabled" + Device.WiFi.AccessPoint.9.Status="Disabled" + +Check wpacltrl socket file: + + $ ls_ap_hapd_socket 1 + not found + + $ ls_hapd_sockets + ls: /var/run/hostapd/: No such file or directory + +Check if hostapd process is stopped: + + $ R "pgrep -f 'hostapd'" + [1] + +Resume prplMesh: + + $ R "ba-cli -l X_PRPLWARE-COM_ProcessManager.PrplMesh.Enable=1" | tr -d '\n' + 1 (no-eol) + + $ R logger -t cram "Stopping PWHM test .." + +Wait for prplMesh before leaving the test: + + $ sleep 20 + + $ R logger -t cram "Test finished!" diff --git a/.gitlab/tests/cram/nokia-valyrian/102-pwhm-usp.t b/.gitlab/tests/cram/nokia-valyrian/102-pwhm-usp.t new file mode 120000 index 0000000000..3a013509c7 --- /dev/null +++ b/.gitlab/tests/cram/nokia-valyrian/102-pwhm-usp.t @@ -0,0 +1 @@ +../wifi/wifi-usp.t \ No newline at end of file diff --git a/.gitlab/tests/cram/nokia-valyrian/110-prplmesh-dataelements.t b/.gitlab/tests/cram/nokia-valyrian/110-prplmesh-dataelements.t new file mode 100644 index 0000000000..f7b5f8f106 --- /dev/null +++ b/.gitlab/tests/cram/nokia-valyrian/110-prplmesh-dataelements.t @@ -0,0 +1,286 @@ +Create R alias: + + $ alias R="${CRAM_REMOTE_COMMAND:-}" + $ . "${TESTDIR}/../scripts/wifi.sh" + +Set AutoChannelEnable=0 on all Device.WiFi.Radio. interfaces: + + $ R "ba-cli -j -l WiFi.Radio.*.AutoChannelEnable=0 | sed '/^$/d'" + [{"WiFi.Radio.1.":{"AutoChannelEnable":0},"WiFi.Radio.2.":{"AutoChannelEnable":0},"WiFi.Radio.3.":{"AutoChannelEnable":0}}] + +Set channel to a non DFS one: + + $ R "usp-cli -j -l Device.WiFi.Radio.2.Channel=36 | sed '/^$/d'" + [{"Device.WiFi.Radio.2.":{"Channel":36}}] + + $ sleep 5 + +Configure controller, requires PPM-3022 to work: + + $ R logger -t cram "Stop prplmesh" + + $ R "ba-cli -l X_PRPLWARE-COM_ProcessManager.PrplMesh.Enable=0" | tr -d '\n' + 0 (no-eol) + + $ sleep 2 + $ R "sed -i 's/use_dataelements_vap_configs=0/use_dataelements_vap_configs=1/g' /opt/prplmesh/config/beerocks_controller.conf" + +Restart prplmesh: + + $ R logger -t cram "Restart prplmesh" + + $ R "ba-cli X_PRPLWARE-COM_ProcessManager.PrplMesh.ManagementMode=Multi-AP-Controller-and-Agent" > /dev/null + + $ R "ba-cli -l X_PRPLWARE-COM_ProcessManager.PrplMesh.Enable=1" | tr -d '\n' + 1 (no-eol) + + $ R "ubus -t 60 wait_for X_PRPLWARE-COM_WiFiController.Network.Device.1" + + $ sleep 5 + +First call of AccessPointCommit, controller should push empty config to agents: + + $ R logger -t cram "first call of AccessPointCommit pushes empty config, global teardown" + + $ R "ubus -S call X_PRPLWARE-COM_WiFiController.Network AccessPointCommit" + {"retval":""} + {} + {"amxd-error-code":0} + + $ R sleep 15 + +Check all AccessPoint.SSIDReference+ instances are disabled + + $ get_ssid_status + Down + Down + Down + Down + Down + Down + Down + Down + Down + + $ get_ssid_ssid + backhaul_6C:91:88:[0-9A-F]{2}:[0-9A-F]{2}:[0-9A-F]{2} (re) + backhaul_6C:91:88:[0-9A-F]{2}:[0-9A-F]{2}:[0-9A-F]{2} (re) + backhaul_6C:91:88:[0-9A-F]{2}:[0-9A-F]{2}:[0-9A-F]{2} (re) + prplOS + prplOS + prplOS + prplOS-guest + prplOS-guest + prplOS-guest + + +Create instances of Network.AccessPoint and push them to the agent: + + $ R logger -t cram "create instances of Network.AccessPoint and push them to the agent" + + $ R "ubus -S call X_PRPLWARE-COM_WiFiController.Network.AccessPoint _add" + {"object":"X_PRPLWARE-COM_WiFiController.Network.AccessPoint.1.","index":1,"name":"1","parameters":{},"path":"X_PRPLWARE-COM_WiFiController.Network.AccessPoint.1."} + {} + {"amxd-error-code":0} + +Since no persistent storage of NbAPI Network subsection, always index:1 after controller restart: + + $ R "ubus -S call X_PRPLWARE-COM_WiFiController.Network.AccessPoint.1 _set '{\"parameters\":{\"Band2_4G\":1,\"Band5GH\":1,\"Band5GL\":1,\"Band6G\":1}}'" + {"X_PRPLWARE-COM_WiFiController.Network.AccessPoint.1.":{"Band5GH":true,"Band6G":true,"Band2_4G":true,"Band5GL":true}} + {} + {"amxd-error-code":0} + + $ R "ubus -S call X_PRPLWARE-COM_WiFiController.Network.AccessPoint.1 _set '{\"parameters\":{\"MultiApMode\":\"Fronthaul+Backhaul\",\"X_PRPLWARE_VapType\":\"home\"}}'" + {"X_PRPLWARE-COM_WiFiController.Network.AccessPoint.1.":{"X_PRPLWARE_VapType":"home","MultiApMode":"Fronthaul+Backhaul"}} + {} + {"amxd-error-code":0} + + $ R "ubus -S call X_PRPLWARE-COM_WiFiController.Network.AccessPoint.1.Security _set '{\"parameters\":{\"ModeEnabled\":\"WPA2-Personal\",\"KeyPassphrase\":\"password\"}}'" + {"X_PRPLWARE-COM_WiFiController.Network.AccessPoint.1.Security.":{"KeyPassphrase":"password","ModeEnabled":"WPA2-Personal"}} + {} + {"amxd-error-code":0} + + $ R "ubus -S call X_PRPLWARE-COM_WiFiController.Network.AccessPoint.1 _set '{\"parameters\":{\"SSID\":\"prplOSpriv\"}}'" + {"X_PRPLWARE-COM_WiFiController.Network.AccessPoint.1.":{"SSID":"prplOSpriv"}} + {} + {"amxd-error-code":0} + +In case the controller does not yet have this parameter, catch error here isof later during teardown test: + $ R "ubus -S call X_PRPLWARE-COM_WiFiController.Network.AccessPoint.1 _set '{\"parameters\":{\"Enable\":1}}'" + {"X_PRPLWARE-COM_WiFiController.Network.AccessPoint.1.":{"Enable":true}} + {} + {"amxd-error-code":0} + +Create second instance of Network.AccessPoint for guest VAPs: + + $ R "ubus -S call X_PRPLWARE-COM_WiFiController.Network.AccessPoint _add" + {"object":"X_PRPLWARE-COM_WiFiController.Network.AccessPoint.2.","index":2,"name":"2","parameters":{},"path":"X_PRPLWARE-COM_WiFiController.Network.AccessPoint.2."} + {} + {"amxd-error-code":0} + $ R "ubus -S call X_PRPLWARE-COM_WiFiController.Network.AccessPoint.2 _set '{\"parameters\":{\"Band2_4G\":1,\"Band5GH\":1,\"Band5GL\":1,\"Band6G\":1}}'" + {"X_PRPLWARE-COM_WiFiController.Network.AccessPoint.2.":{"Band5GH":true,"Band6G":true,"Band2_4G":true,"Band5GL":true}} + {} + {"amxd-error-code":0} + + $ R "ubus -S call X_PRPLWARE-COM_WiFiController.Network.AccessPoint.2 _set '{\"parameters\":{\"MultiApMode\":\"Fronthaul\",\"X_PRPLWARE_VapType\":\"guest\"}}'" + {"X_PRPLWARE-COM_WiFiController.Network.AccessPoint.2.":{"X_PRPLWARE_VapType":"guest","MultiApMode":"Fronthaul"}} + {} + {"amxd-error-code":0} + + $ R "ubus -S call X_PRPLWARE-COM_WiFiController.Network.AccessPoint.2.Security _set '{\"parameters\":{\"ModeEnabled\":\"WPA2-Personal\",\"KeyPassphrase\":\"passwordGUEST\"}}'" + {"X_PRPLWARE-COM_WiFiController.Network.AccessPoint.2.Security.":{"KeyPassphrase":"passwordGUEST","ModeEnabled":"WPA2-Personal"}} + {} + {"amxd-error-code":0} + + $ R "ubus -S call X_PRPLWARE-COM_WiFiController.Network.AccessPoint.2 _set '{\"parameters\":{\"SSID\":\"prplOSguest\"}}'" + {"X_PRPLWARE-COM_WiFiController.Network.AccessPoint.2.":{"SSID":"prplOSguest"}} + {} + {"amxd-error-code":0} + +In case the controller does not yet have this parameter, catch error here isof later during teardown test: + $ R "ubus -S call X_PRPLWARE-COM_WiFiController.Network.AccessPoint.2 _set '{\"parameters\":{\"Enable\":1}}'" + {"X_PRPLWARE-COM_WiFiController.Network.AccessPoint.2.":{"Enable":true}} + {} + {"amxd-error-code":0} + + $ R "ubus -S call X_PRPLWARE-COM_WiFiController.Network AccessPointCommit" + {"retval":""} + {} + {"amxd-error-code":0} + + + $ sleep 60 + +Check that wireless is operating: + + $ get_ssid_status + Down + Down + Down + Up + Up + Up + Up + Up + Up + +Check that prplmesh processes are running: + + $ R logger -t cram "Check that prplmesh processes are running" + + $ R "ba-cli -l X_PRPLWARE-COM_ProcessManager.PrplMesh.Status?" | tr -d '\n' + Active (no-eol) + +Check that prplmesh is operational: + + $ R logger -t cram "Check that prplmesh is operational" + + $ R "/opt/prplmesh/bin/prplmesh_cli -c status -o pretty" | sed 's/\t/ /g' + Mode: Agent+Controller + Controller: + bridge MAC: 6C:91:88:[0-9A-F]{2}:[0-9A-F]{2}:[0-9A-F]{2} (re) + 1 agent(s) connected + Agent: + MAC address: [0-9A-F]{2}:[0-9A-F]{2}:[0-9A-F]{2}:[0-9A-F]{2}:[0-9A-F]{2}:[0-9A-F]{2} (re) + management mode: Multi-AP-Controller-and-Agent + fronthaul ifaces: wlan0,wlan1,wlan2 + current state: OPERATIONAL + best state: OPERATIONAL + Fronthaul: + interface: wlan0 + current state: OPERATIONAL + best state: OPERATIONAL + Fronthaul: + interface: wlan1 + current state: OPERATIONAL + best state: OPERATIONAL + Fronthaul: + interface: wlan2 + current state: OPERATIONAL + best state: OPERATIONAL + +Check that controller received correct info about wifi subsystem: + + $ R logger -t cram "Check controller info about network" + + $ R "/opt/prplmesh/bin/beerocks_cli -c bml_conn_map" | egrep '(wlan|OK)' | sed -E "s/.*: (wlan[0-9.]+) .*/\1/" | LC_ALL=C sort + bml_connect: return value is: BML_RET_OK, Success status + bml_disconnect: return value is: BML_RET_OK, Success status + bml_nw_map_query: return value is: BML_RET_OK, Success status + wlan0 + wlan0.0 + wlan0.1 + wlan1 + wlan1.0 + wlan1.1 + wlan2 + wlan2.0 + wlan2.1 + +To disable wireless, disable instances of Network.AccessPoint{i} and call AccessPointCommit(): + + $ R logger -t cram "Stop wireless" + + $ R "ubus -S call X_PRPLWARE-COM_WiFiController.Network.AccessPoint.1 _set '{\"parameters\":{\"Enable\":0}}'" + {"X_PRPLWARE-COM_WiFiController.Network.AccessPoint.1.":{"Enable":false}} + {} + {"amxd-error-code":0} + + $ R "ubus -S call X_PRPLWARE-COM_WiFiController.Network.AccessPoint.2 _set '{\"parameters\":{\"Enable\":0}}'" + {"X_PRPLWARE-COM_WiFiController.Network.AccessPoint.2.":{"Enable":false}} + {} + {"amxd-error-code":0} + + $ R "ubus -S call X_PRPLWARE-COM_WiFiController.Network AccessPointCommit" + {"retval":""} + {} + {"amxd-error-code":0} + + $ sleep 10 + +Restore Security.ModeEnabled for AccessPoints used in the test + + $ R "ba-cli \"WiFi.AccessPoint.[RadioReference == 'Device.WiFi.Radio.1'].Security.ModeEnabled='WPA3-Personal-Transition'\"" | grep 'ModeEnabled=' | sed '/^$/d' | grep -v '>' + WiFi.AccessPoint.\d+.Security.ModeEnabled="WPA3-Personal-Transition" (re) + WiFi.AccessPoint.\d+.Security.ModeEnabled="WPA3-Personal-Transition" (re) + WiFi.AccessPoint.\d+.Security.ModeEnabled="WPA3-Personal-Transition" (re) + + $ R "ba-cli \"WiFi.AccessPoint.[RadioReference == 'Device.WiFi.Radio.2'].Security.ModeEnabled='WPA3-Personal-Transition'\"" | grep 'ModeEnabled=' | sed '/^$/d' | grep -v '>' + WiFi.AccessPoint.\d+.Security.ModeEnabled="WPA3-Personal-Transition" (re) + WiFi.AccessPoint.\d+.Security.ModeEnabled="WPA3-Personal-Transition" (re) + WiFi.AccessPoint.\d+.Security.ModeEnabled="WPA3-Personal-Transition" (re) + + $ R "ba-cli \"WiFi.AccessPoint.[RadioReference == 'Device.WiFi.Radio.3'].Security.ModeEnabled='WPA3-Personal'\"" | grep 'ModeEnabled=' | sed '/^$/d' | grep -v '>' + WiFi.AccessPoint.\d+.Security.ModeEnabled="WPA3-Personal" (re) + WiFi.AccessPoint.\d+.Security.ModeEnabled="WPA3-Personal" (re) + WiFi.AccessPoint.\d+.Security.ModeEnabled="WPA3-Personal" (re) + +Check that wireless is disabled: + + $ get_ssid_status + Down + Down + Down + Down + Down + Down + Down + Down + Down + +Restore Security Mode to default values + + $ R "ba-cli \"WiFi.AccessPoint.[RadioReference == 'Device.WiFi.Radio.1'].Security.ModeEnabled='WPA3-Personal-Transition'\"" | grep 'ModeEnabled=' | sed '/^$/d' | grep -v '>' + WiFi.AccessPoint.\d+.Security.ModeEnabled="WPA3-Personal-Transition" (re) + WiFi.AccessPoint.\d+.Security.ModeEnabled="WPA3-Personal-Transition" (re) + WiFi.AccessPoint.\d+.Security.ModeEnabled="WPA3-Personal-Transition" (re) + + $ R "ba-cli \"WiFi.AccessPoint.[RadioReference == 'Device.WiFi.Radio.2'].Security.ModeEnabled='WPA3-Personal-Transition'\"" | grep 'ModeEnabled=' | sed '/^$/d' | grep -v '>' + WiFi.AccessPoint.\d+.Security.ModeEnabled="WPA3-Personal-Transition" (re) + WiFi.AccessPoint.\d+.Security.ModeEnabled="WPA3-Personal-Transition" (re) + WiFi.AccessPoint.\d+.Security.ModeEnabled="WPA3-Personal-Transition" (re) + + $ R "ba-cli \"WiFi.AccessPoint.[RadioReference == 'Device.WiFi.Radio.3'].Security.ModeEnabled='WPA3-Personal'\"" | grep 'ModeEnabled=' | sed '/^$/d' | grep -v '>' + WiFi.AccessPoint.\d+.Security.ModeEnabled="WPA3-Personal" (re) + WiFi.AccessPoint.\d+.Security.ModeEnabled="WPA3-Personal" (re) + WiFi.AccessPoint.\d+.Security.ModeEnabled="WPA3-Personal" (re) diff --git a/.gitlab/tests/cram/nokia-valyrian/111-wifi-sensing.t b/.gitlab/tests/cram/nokia-valyrian/111-wifi-sensing.t new file mode 120000 index 0000000000..6bf487548b --- /dev/null +++ b/.gitlab/tests/cram/nokia-valyrian/111-wifi-sensing.t @@ -0,0 +1 @@ +../wifi/wifi-sensing.t \ No newline at end of file diff --git a/.gitlab/tests/cram/nokia-valyrian/acceleration-plan-components/020-bridging-guest.t b/.gitlab/tests/cram/nokia-valyrian/acceleration-plan-components/020-bridging-guest.t new file mode 100644 index 0000000000..cae5202972 --- /dev/null +++ b/.gitlab/tests/cram/nokia-valyrian/acceleration-plan-components/020-bridging-guest.t @@ -0,0 +1,73 @@ +Create R alias: + + $ alias R="${CRAM_REMOTE_COMMAND:-}" + +Get initial state of bridges: + + $ R "bridge -json link" | jq -r 'sort_by(.master,.ifname) | reverse | .[] | "\(.master)@\(.ifname)"' + br-lan@wlan2.1 + br-lan@wlan2 + br-lan@wlan1.1 + br-lan@wlan1 + br-lan@wlan0.1 + br-lan@wlan0 + br-lan@lan3 + br-lan@lan2 + br-lan@lan1 + br-guest@wlan2.2 + br-guest@wlan1.2 + br-guest@wlan0.2 + +Remove lan1 from LAN bridge and add it to the Guest bridge: + + $ printf ' \ + > ubus-cli Bridging.Bridge.lan.Port.LAN1-\n + > ubus-cli Bridging.Bridge.guest.Port.+{Name="lan1", Alias="LAN1", LowerLayers="Device.Ethernet.Interface.2."}\n + > sleep 1\n + > ubus-cli Bridging.Bridge.guest.Port.LAN1.Enable=1\n + > ' > /tmp/run + $ script --command "ssh -t root@$TARGET_LAN_IP '$(cat /tmp/run)'" > /dev/null + $ sleep 2 + +Check that lan1 is added to Guest bridge: + + $ R "bridge -json link" | jq -r 'sort_by(.master,.ifname) | reverse | .[] | "\(.master)@\(.ifname)"' + br-lan@wlan2.1 + br-lan@wlan2 + br-lan@wlan1.1 + br-lan@wlan1 + br-lan@wlan0.1 + br-lan@wlan0 + br-lan@lan3 + br-lan@lan2 + br-guest@wlan2.2 + br-guest@wlan1.2 + br-guest@wlan0.2 + br-guest@lan1 + +Remove lan1 from the Guest bridge and add it back to the LAN bridge: + + $ printf '\ + > ubus-cli Bridging.Bridge.guest.Port.LAN1-\n + > ubus-cli Bridging.Bridge.lan.Port.+{Name="lan1", Alias="LAN1", LowerLayers="Device.Ethernet.Interface.2."}\n + > sleep 1\n + > ubus-cli Bridging.Bridge.lan.Port.LAN1.Enable=1\n + > ' > /tmp/run + $ script --command "ssh -t root@$TARGET_LAN_IP '$(cat /tmp/run)'" > /dev/null + $ sleep 2 + +Check for initial state of bridges again: + + $ R "bridge -json link" | jq -r 'sort_by(.master,.ifname) | reverse | .[] | "\(.master)@\(.ifname)"' + br-lan@wlan2.1 + br-lan@wlan2 + br-lan@wlan1.1 + br-lan@wlan1 + br-lan@wlan0.1 + br-lan@wlan0 + br-lan@lan3 + br-lan@lan2 + br-lan@lan1 + br-guest@wlan2.2 + br-guest@wlan1.2 + br-guest@wlan0.2 diff --git a/profiles/airoha_an7581.yml b/profiles/airoha_an7581.yml new file mode 100644 index 0000000000..3058e91bbe --- /dev/null +++ b/profiles/airoha_an7581.yml @@ -0,0 +1,20 @@ +--- +profiles: + - nokia_valyrian +target: airoha +subtarget: an7581 +external_target: True +description: Build image for Airoha / Nokia Valyrian board +feeds: + - name: feed_airoha + uri: https://gitlab.com/prpl-foundation/prplos/feeds/feed-airoha + revision: 595680f2d9b04ae49df13354f77106f19c2c081f + - name: feed_wifi_mediatek_mt76 + uri: https://gitlab.com/prpl-foundation/prplos/feeds/feed-wifi-mediatek-mt76 + revision: 36e628293e41cb41742bcc8ebba5716051f80c4e + +packages: + - airoha + +diffconfig: | + CONFIG_TARGET_INITRAMFS_COMPRESSION_LZMA=y