profiles: add Airoha/Nokia profile

Add Airoha/Nokia profile for the Valyrian board. Required packages
are imported from the feed-airoha repository.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
Signed-off-by: Peter Steinhaeuser <ps@embedd.com>
This commit is contained in:
Christian Marangi 2026-03-02 01:51:12 +01:00 committed by Hela Saadani
parent e342d3003e
commit 33977c34b3
24 changed files with 2305 additions and 15 deletions

View File

@ -13,6 +13,7 @@ include:
- local: .gitlab/cdrouter/mxl25641-hdk-6.yml - local: .gitlab/cdrouter/mxl25641-hdk-6.yml
- local: .gitlab/cdrouter/arcadyan-mozart.yml - local: .gitlab/cdrouter/arcadyan-mozart.yml
- local: .gitlab/cdrouter/wnc-freedom.yml - local: .gitlab/cdrouter/wnc-freedom.yml
- local: .gitlab/cdrouter/nokia-valyrian.yml
- local: .gitlab/coverity.yml - local: .gitlab/coverity.yml
- local: .gitlab/docker.yml - local: .gitlab/docker.yml
- local: .gitlab/docker/builder/gitlab.yml - local: .gitlab/docker/builder/gitlab.yml
@ -26,6 +27,7 @@ include:
- local: .gitlab/testbed/mxl25641-hdk-6.yml - local: .gitlab/testbed/mxl25641-hdk-6.yml
- local: .gitlab/testbed/arcadyan-mozart.yml - local: .gitlab/testbed/arcadyan-mozart.yml
- local: .gitlab/testbed/wnc-freedom.yml - local: .gitlab/testbed/wnc-freedom.yml
- local: .gitlab/testbed/nokia-valyrian.yml
stages: stages:
- docker - docker
@ -59,6 +61,9 @@ build test ipq807x prpl security:
build test mtk_filogic prpl security: build test mtk_filogic prpl security:
extends: .build test config extends: .build test config
build test airoha_an7581 prpl security:
extends: .build test config
build test qca_ipq95xx prpl cellular security thread: build test qca_ipq95xx prpl cellular security thread:
extends: .build test config extends: .build test config
@ -104,3 +109,9 @@ run test Mozart initramfs:
- job: build test mtk_filogic prpl security - job: build test mtk_filogic prpl security
optional: true optional: true
extends: .arcadyan-mozart testbed extends: .arcadyan-mozart testbed
run test Valyrian initramfs:
needs:
- job: build test airoha_an7581 prpl security
optional: true
extends: .nokia-valyrian testbed

View File

@ -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

View File

@ -117,6 +117,7 @@ class TestbedDevice:
"mxl,osp-tb341": "Bridging.Bridge.1.Port.3", "mxl,osp-tb341": "Bridging.Bridge.1.Port.3",
"prpl,haze": "Bridging.Bridge.1.Port.4", "prpl,haze": "Bridging.Bridge.1.Port.4",
"arcadyan,mozart": "Bridging.Bridge.1.Port.2", "arcadyan,mozart": "Bridging.Bridge.1.Port.2",
"nokia,valyrian": "Bridging.Bridge.1.Port.4",
"cznic,turris-omnia": "Bridging.Bridge.2.Port.5", "cznic,turris-omnia": "Bridging.Bridge.2.Port.5",
"EASY350 ANYWAN (GRX350) Axepoint Asurada model": "Bridging.Bridge.1.Port.5", "EASY350 ANYWAN (GRX350) Axepoint Asurada model": "Bridging.Bridge.1.Port.5",
} }

View File

@ -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

View File

@ -39,7 +39,7 @@ Verify all expected processes are enabled for monitoring by amx-processmonitor,
hosts-manager=1 hosts-manager=1
dhcpv4-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 $ get_amx_process_monitoring cellular-manager
cellular-manager=1 cellular-manager=1

View File

@ -2,9 +2,9 @@ Create R alias:
$ alias R="${CRAM_REMOTE_COMMAND:-}" $ 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: Create alias for finding SysfsId:

View File

@ -2,9 +2,9 @@ Create R alias:
$ alias R="${CRAM_REMOTE_COMMAND:-}" $ 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: Make sure Cellular is registered in the Datamodel:

View File

@ -33,7 +33,8 @@ get_container_name() {
case "${board_name}" in case "${board_name}" in
"haze" | \ "haze" | \
"freedom" | \ "freedom" | \
"mozart") "mozart" | \
"valyrian")
echo lcm-test-ipq807x-generic echo lcm-test-ipq807x-generic
;; ;;
"lgm" | \ "lgm" | \
@ -57,7 +58,8 @@ get_container_by_name() {
board_name=$(cut -d',' -f2 </tmp/sysinfo/board_name) board_name=$(cut -d',' -f2 </tmp/sysinfo/board_name)
case "${board_name}" in case "${board_name}" in
"haze" | \ "haze" | \
"freedom") "freedom" | \
"valyrian")
hw_ctr_name="alpine3.16-arm32v7" hw_ctr_name="alpine3.16-arm32v7"
;; ;;
"lgm" | \ "lgm" | \
@ -82,7 +84,8 @@ get_arch_name() {
board_name=$(cut -d',' -f2 </tmp/sysinfo/board_name) board_name=$(cut -d',' -f2 </tmp/sysinfo/board_name)
case "${board_name}" in case "${board_name}" in
"haze" | \ "haze" | \
"freedom") "freedom" | \
"valyrian")
echo arm32v7 echo arm32v7
;; ;;
"lgm" | \ "lgm" | \
@ -104,7 +107,8 @@ get_true_arch_name() {
board_name=$(cut -d',' -f2 </tmp/sysinfo/board_name) board_name=$(cut -d',' -f2 </tmp/sysinfo/board_name)
case "${board_name}" in case "${board_name}" in
"haze" | \ "haze" | \
"freedom") "freedom" | \
"valyrian")
echo arm64v8 echo arm64v8
;; ;;
"lgm" | \ "lgm" | \
@ -126,7 +130,8 @@ get_board_arch() {
case "${board_name}" in case "${board_name}" in
"haze" | \ "haze" | \
"freedom" | \ "freedom" | \
"mozart") "mozart" | \
"valyrian")
echo cortexa53 echo cortexa53
;; ;;
"lgm" | \ "lgm" | \

View File

@ -3,8 +3,8 @@ Create obuspa cellular datamodel helpers:
$ VERIFY_OBUSPA_DATAMODEL="${TESTDIR}/../scripts/verify-obuspa-datamodel.sh" $ VERIFY_OBUSPA_DATAMODEL="${TESTDIR}/../scripts/verify-obuspa-datamodel.sh"
$ EXPECTED_OBUSPA_CELLULAR_DATAMODEL="${TESTDIR}/fixtures/obuspa-cellular.expected" $ EXPECTED_OBUSPA_CELLULAR_DATAMODEL="${TESTDIR}/fixtures/obuspa-cellular.expected"
If test is running on a Mozart, Turris, OSPv1 or Haze, lets skip the test as there is no Cellular support: If test is running on a Valyrian, Mozart, Turris, OSPv1 or Haze, lets skip the test as there is no Cellular support:
$ 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
Check that obuspa keeps the expected cellular datamodel across restart: Check that obuspa keeps the expected cellular datamodel across restart:

View File

@ -177,7 +177,7 @@ Verify odhcpd process:
odhcpd true odhcpd true
odhcpd \d+ (re) odhcpd \d+ (re)
$ 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_status_and_pid cellular-manager $ get_status_and_pid cellular-manager
cellular-manager true cellular-manager true

View File

@ -2,8 +2,8 @@ Create R alias:
$ alias R="${CRAM_REMOTE_COMMAND:-}" $ alias R="${CRAM_REMOTE_COMMAND:-}"
If test is running on a Mozart, Turris, OSPv1 or Haze, lets skip the test as there is no Cellular support: If test is running on a Valyrian, Mozart, Turris, OSPv1 or Haze, lets skip the test as there is no Cellular support:
$ 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
Check that ubus has expected Cellular datamodels available: Check that ubus has expected Cellular datamodels available:

View File

@ -0,0 +1,900 @@
Create R alias:
$ alias R="${CRAM_REMOTE_COMMAND:-}"
Assure expected build configuration (PCF-1413):
$ R "cat /etc/build.config"
# Build configuration for board airoha/an7581/DEVICE_nokia_valyrian
CONFIG_TARGET_airoha=y
CONFIG_TARGET_airoha_an7581=y
CONFIG_TARGET_airoha_an7581_DEVICE_nokia_valyrian=y
CONFIG_DEVEL=y
CONFIG_TOOLCHAINOPTS=y
CONFIG_BUSYBOX_CUSTOM=y
CONFIG_AMX_TR181_USB=y
CONFIG_AMX_TR181_USB_ORDER=81
CONFIG_BIND_ENABLE_DOH=y
CONFIG_BUILD_LOG=y
CONFIG_BUSYBOX_CONFIG_FLOAT_DURATION=y
# CONFIG_BUSYBOX_CONFIG_NTPD is not set
CONFIG_BUSYBOX_CONFIG_PIE=y
CONFIG_BUSYBOX_DEFAULT_PIE=y
CONFIG_DMM_DATA_MODEL_MAPPER_ORDER=54
CONFIG_DROPBEAR_ECC=y
CONFIG_DROPBEAR_ECDSA_SK=y
CONFIG_FORCE_RUNNING_AS_ROOT=y
CONFIG_GCC_DEFAULT_PIE=y
CONFIG_IB=y
CONFIG_IB_STANDALONE=y
CONFIG_IMAGEOPT=y
CONFIG_INCLUDE_CONFIG=y
CONFIG_JSON_CHECKSEC_MITIGATIONS_REPORT=y
CONFIG_JSON_CYCLONEDX_SBOM=y
CONFIG_KERNEL_ARM_PMU=y
CONFIG_KERNEL_ARM_PMUV3=y
# CONFIG_KERNEL_CC_STACKPROTECTOR_REGULAR is not set
CONFIG_KERNEL_CC_STACKPROTECTOR_STRONG=y
CONFIG_KERNEL_CGROUP_DEVICE=y
CONFIG_KERNEL_CGROUP_FREEZER=y
CONFIG_KERNEL_CGROUP_PERF=y
CONFIG_KERNEL_MEMCG_SWAP_ENABLED=y
CONFIG_KERNEL_NET_CLS_CGROUP=y
CONFIG_KERNEL_PERF_EVENTS=y
CONFIG_KERNEL_PROC_PAGE_MONITOR=y
CONFIG_KERNEL_PROC_PID_CPUSET=y
CONFIG_KERNEL_SLUB_DEBUG=y
CONFIG_KERNEL_STACKPROTECTOR_STRONG=y
CONFIG_LIBCURL_COOKIES=y
CONFIG_LIBCURL_FILE=y
CONFIG_LIBCURL_FTP=y
CONFIG_LIBCURL_HTTP=y
CONFIG_LIBCURL_NGHTTP2=y
CONFIG_LIBCURL_NO_SMB="!"
CONFIG_LIBCURL_OPENSSL=y
CONFIG_LIBCURL_PROXY=y
CONFIG_LIBCURL_UNIX_SOCKETS=y
CONFIG_LIGHTTPD_CRYPTOLIB_OPENSSL=y
CONFIG_LIGHTTPD_PCRE2=y
CONFIG_LIGHTTPD_SSL=y
CONFIG_LIGHTTPD_SSL_SELECT=m
CONFIG_LOGROTATE_ACL=y
CONFIG_LXC_SECCOMP=y
CONFIG_MCASTD_CORE=y
CONFIG_MCASTD_CORE_NICE=-18
CONFIG_MOSQUITTO_CTRL=y
CONFIG_MOSQUITTO_DYNAMIC_SECURITY=y
CONFIG_MOSQUITTO_LWS=y
CONFIG_MOSQUITTO_PASSWD=y
CONFIG_OBUSPA_WEBSOCKET_MTP_SUPPORT=y
CONFIG_ODHCP6C_ENABLE_UBUS=y
CONFIG_PACKAGE_acl=y
CONFIG_PACKAGE_acl-manager=y
CONFIG_PACKAGE_amx-cli=y
CONFIG_PACKAGE_amx-faultmonitor=y
CONFIG_PACKAGE_amx-fcgi=y
CONFIG_PACKAGE_amx-processmonitor=y
CONFIG_PACKAGE_amxo-cg=y
CONFIG_PACKAGE_amxrt=y
CONFIG_PACKAGE_bind-client=y
CONFIG_PACKAGE_bind-libs=y
CONFIG_PACKAGE_cJSON=y
CONFIG_PACKAGE_ca-certificates=y
CONFIG_PACKAGE_chrony-prpl=y
CONFIG_PACKAGE_cthulhu=y
CONFIG_PACKAGE_cthulhu-capabilities=y
CONFIG_PACKAGE_cthulhu-dhcpc=y
CONFIG_PACKAGE_cthulhu-lpm=y
CONFIG_PACKAGE_cthulhu-lxc=y
CONFIG_PACKAGE_cthulhu-networking=y
CONFIG_PACKAGE_cthulhu-pcm=y
CONFIG_PACKAGE_cthulhu-plugin-usp=y
CONFIG_PACKAGE_cthulhu-syslog=y
CONFIG_PACKAGE_curl=y
CONFIG_PACKAGE_data-model-mapper=m
CONFIG_PACKAGE_ddns-scripts=y
CONFIG_PACKAGE_ddns-scripts-cloudflare=y
CONFIG_PACKAGE_ddns-scripts-freedns=y
CONFIG_PACKAGE_ddns-scripts-godaddy=y
CONFIG_PACKAGE_ddns-scripts-noip=y
CONFIG_PACKAGE_ddns-scripts-nsupdate=y
CONFIG_PACKAGE_ddns-scripts-route53=y
CONFIG_PACKAGE_ddns-scripts-services=y
CONFIG_PACKAGE_debug-information=y
CONFIG_PACKAGE_deviceinfo-manager=y
CONFIG_PACKAGE_dhcpv4-manager=y
CONFIG_PACKAGE_dhcpv6s-manager=y
CONFIG_PACKAGE_dmtui=y
# CONFIG_PACKAGE_dnsmasq is not set
CONFIG_PACKAGE_dnsmasq-prpl=y
CONFIG_PACKAGE_ebtables-legacy=y
CONFIG_PACKAGE_ebtables-legacy-utils=y
CONFIG_PACKAGE_ethernet-manager=y
CONFIG_PACKAGE_ethtool-full=y
CONFIG_PACKAGE_f2fsck=y
CONFIG_PACKAGE_fcgi=y
# CONFIG_PACKAGE_firewall4 is not set
CONFIG_PACKAGE_flock=y
CONFIG_PACKAGE_getopt=y
CONFIG_PACKAGE_glib2=y
CONFIG_PACKAGE_gmap-client=y
CONFIG_PACKAGE_gmap-mibs-common=y
CONFIG_PACKAGE_gmap-mod-dnssd=y
CONFIG_PACKAGE_gmap-mod-ethernet-dev=y
CONFIG_PACKAGE_gmap-mod-name-selector=y
CONFIG_PACKAGE_gmap-mod-self=y
CONFIG_PACKAGE_gmap-mod-upnp=y
CONFIG_PACKAGE_gmap-server=y
CONFIG_PACKAGE_hostapd-openssl=y
CONFIG_PACKAGE_hosts-manager=y
CONFIG_PACKAGE_ip-bridge=y
CONFIG_PACKAGE_ip-full=y
CONFIG_PACKAGE_ip-manager=y
CONFIG_PACKAGE_ip6tables-extra=y
CONFIG_PACKAGE_ip6tables-zz-legacy=y
CONFIG_PACKAGE_iperf3=y
CONFIG_PACKAGE_ipset=y
CONFIG_PACKAGE_iptables-mod-conntrack-extra=y
CONFIG_PACKAGE_iptables-mod-ipopt=y
CONFIG_PACKAGE_iptables-mod-nfqueue=y
CONFIG_PACKAGE_iptables-zz-legacy=y
CONFIG_PACKAGE_iputils-ping=y
# CONFIG_PACKAGE_jansson is not set
CONFIG_PACKAGE_kmod-asn1-decoder=y
CONFIG_PACKAGE_kmod-crypto-md5=y
CONFIG_PACKAGE_kmod-ebtables=y
CONFIG_PACKAGE_kmod-ebtables-ipv4=y
CONFIG_PACKAGE_kmod-ebtables-ipv6=y
CONFIG_PACKAGE_kmod-ifb=y
CONFIG_PACKAGE_kmod-input-core=y
CONFIG_PACKAGE_kmod-input-evdev=y
CONFIG_PACKAGE_kmod-input-gpio-keys=y
CONFIG_PACKAGE_kmod-ip6-tunnel=y
CONFIG_PACKAGE_kmod-ip6tables=y
CONFIG_PACKAGE_kmod-ip6tables-extra=y
CONFIG_PACKAGE_kmod-ipt-conntrack=y
CONFIG_PACKAGE_kmod-ipt-conntrack-extra=y
CONFIG_PACKAGE_kmod-ipt-core=y
CONFIG_PACKAGE_kmod-ipt-extra=y
CONFIG_PACKAGE_kmod-ipt-ipopt=y
CONFIG_PACKAGE_kmod-ipt-ipset=y
CONFIG_PACKAGE_kmod-ipt-nat=y
CONFIG_PACKAGE_kmod-ipt-nat6=y
CONFIG_PACKAGE_kmod-ipt-nfqueue=y
CONFIG_PACKAGE_kmod-ipt-raw=y
CONFIG_PACKAGE_kmod-ipt-raw6=y
CONFIG_PACKAGE_kmod-iptunnel6=y
CONFIG_PACKAGE_kmod-lib-crc-ccitt=y
CONFIG_PACKAGE_kmod-lib-textsearch=y
CONFIG_PACKAGE_kmod-loop=y
CONFIG_PACKAGE_kmod-mcastd-core=y
CONFIG_PACKAGE_kmod-nf-conncount=y
CONFIG_PACKAGE_kmod-nf-conntrack-netlink=y
CONFIG_PACKAGE_kmod-nf-ipt=y
CONFIG_PACKAGE_kmod-nf-ipt6=y
CONFIG_PACKAGE_kmod-nf-nat6=y
CONFIG_PACKAGE_kmod-nf-nathelper=y
CONFIG_PACKAGE_kmod-nf-nathelper-extra=y
CONFIG_PACKAGE_kmod-nfnetlink-queue=y
# CONFIG_PACKAGE_kmod-nft-fib is not set
CONFIG_PACKAGE_kmod-ppp=y
CONFIG_PACKAGE_kmod-pppoe=y
CONFIG_PACKAGE_kmod-pppox=y
CONFIG_PACKAGE_kmod-sched=y
CONFIG_PACKAGE_kmod-sched-act-vlan=y
CONFIG_PACKAGE_kmod-sched-core=y
CONFIG_PACKAGE_kmod-sched-flower=y
CONFIG_PACKAGE_kmod-sched-prio=y
CONFIG_PACKAGE_kmod-slhc=y
CONFIG_PACKAGE_kmod-veth=y
CONFIG_PACKAGE_libacl=y
CONFIG_PACKAGE_libamxa=y
CONFIG_PACKAGE_libamxb=y
CONFIG_PACKAGE_libamxc=y
CONFIG_PACKAGE_libamxd=y
CONFIG_PACKAGE_libamxj=y
CONFIG_PACKAGE_libamxm=y
CONFIG_PACKAGE_libamxo=y
CONFIG_PACKAGE_libamxp=y
CONFIG_PACKAGE_libamxrt=y
CONFIG_PACKAGE_libamxs=y
CONFIG_PACKAGE_libamxt=y
CONFIG_PACKAGE_libamxtui=y
CONFIG_PACKAGE_libarchive=y
CONFIG_PACKAGE_libatomic=y
CONFIG_PACKAGE_libattr=y
CONFIG_PACKAGE_libbpf=y
CONFIG_PACKAGE_libbsd=y
CONFIG_PACKAGE_libbz2=y
CONFIG_PACKAGE_libcap=y
CONFIG_PACKAGE_libcap-ng=y
CONFIG_PACKAGE_libcares=y
CONFIG_PACKAGE_libcthulhu=y
CONFIG_PACKAGE_libcurl=y
CONFIG_PACKAGE_libdbi=y
CONFIG_PACKAGE_libdhcpoptions=y
CONFIG_PACKAGE_libdiscoping=y
CONFIG_PACKAGE_libelf=y
CONFIG_PACKAGE_libevdev=y
CONFIG_PACKAGE_libevent2=y
CONFIG_PACKAGE_libexpat=y
CONFIG_PACKAGE_libf2fs=y
CONFIG_PACKAGE_libffi=y
CONFIG_PACKAGE_libfiletransfer=y
CONFIG_PACKAGE_libfwinterface=y
CONFIG_PACKAGE_libfwrules=y
CONFIG_PACKAGE_libgmap-client=y
CONFIG_PACKAGE_libgmap-ext=y
CONFIG_PACKAGE_libimtp=y
CONFIG_PACKAGE_libip4tc=y
CONFIG_PACKAGE_libip6tc=y
CONFIG_PACKAGE_libipat=y
CONFIG_PACKAGE_libiperf3=y
CONFIG_PACKAGE_libipset=y
CONFIG_PACKAGE_libiptext=y
CONFIG_PACKAGE_libiptext6=y
CONFIG_PACKAGE_libkmod=y
CONFIG_PACKAGE_liblcm=y
CONFIG_PACKAGE_liblua=y
CONFIG_PACKAGE_liblxc=y
CONFIG_PACKAGE_liblzma=y
CONFIG_PACKAGE_libmicrohttpd-no-ssl=y
CONFIG_PACKAGE_libmosquitto-ssl=y
CONFIG_PACKAGE_libncurses=y
CONFIG_PACKAGE_libnetfilter-conntrack=y
CONFIG_PACKAGE_libnetfilter-queue=y
CONFIG_PACKAGE_libnetlink-utils=y
CONFIG_PACKAGE_libnetmodel=y
CONFIG_PACKAGE_libnfnetlink=y
# CONFIG_PACKAGE_libnftnl is not set
CONFIG_PACKAGE_libnghttp2=y
CONFIG_PACKAGE_libnl=y
CONFIG_PACKAGE_libnl-cli=y
CONFIG_PACKAGE_libnl-core=y
CONFIG_PACKAGE_libnl-genl=y
CONFIG_PACKAGE_libnl-nf=y
CONFIG_PACKAGE_libnl-route=y
CONFIG_PACKAGE_libocispec=y
CONFIG_PACKAGE_libopensc=y
CONFIG_PACKAGE_libopenssl-conf=y
CONFIG_PACKAGE_libopenssl-legacy=y
CONFIG_PACKAGE_libp11=y
CONFIG_PACKAGE_libpacket-interception=y
CONFIG_PACKAGE_libpass=y
CONFIG_PACKAGE_libpci=y
CONFIG_PACKAGE_libpcp=y
CONFIG_PACKAGE_libpcre2=y
CONFIG_PACKAGE_libpopt=y
CONFIG_PACKAGE_libprotobuf-c=y
CONFIG_PACKAGE_libqoscommon=y
CONFIG_PACKAGE_libqosmodule=y
CONFIG_PACKAGE_libqosnode=y
CONFIG_PACKAGE_librlyeh=y
CONFIG_PACKAGE_libsahtrace=y
CONFIG_PACKAGE_libseccomp=y
CONFIG_PACKAGE_libsqlite3=y
CONFIG_PACKAGE_libstdcpp=y
CONFIG_PACKAGE_libswla=y
CONFIG_PACKAGE_libswlc=y
CONFIG_PACKAGE_libsysfs=y
CONFIG_PACKAGE_libtr181-hosts=y
CONFIG_PACKAGE_libtr181-schedules=y
CONFIG_PACKAGE_libtr69-engine=y
CONFIG_PACKAGE_libudev-zero=y
CONFIG_PACKAGE_libunbound-prpl=y
CONFIG_PACKAGE_libupnp-prpl=y
CONFIG_PACKAGE_liburcu=y
CONFIG_PACKAGE_libusb-1.0=y
CONFIG_PACKAGE_libusp=y
CONFIG_PACKAGE_libuspi=y
CONFIG_PACKAGE_libuspprotobuf=y
CONFIG_PACKAGE_libuv=y
CONFIG_PACKAGE_libwebsockets4-full=y
CONFIG_PACKAGE_libxml2=y
CONFIG_PACKAGE_libxtables=y
CONFIG_PACKAGE_lighttpd=y
CONFIG_PACKAGE_lighttpd-mod-access=y
CONFIG_PACKAGE_lighttpd-mod-auth=y
CONFIG_PACKAGE_lighttpd-mod-authn_file=y
CONFIG_PACKAGE_lighttpd-mod-fastcgi=y
CONFIG_PACKAGE_lighttpd-mod-openssl=y
CONFIG_PACKAGE_lighttpd-mod-proxy=y
CONFIG_PACKAGE_lighttpd-mod-rewrite=y
CONFIG_PACKAGE_lighttpd-mod-setenv=y
# CONFIG_PACKAGE_logd is not set
CONFIG_PACKAGE_logrotate=y
CONFIG_PACKAGE_lua=y
CONFIG_PACKAGE_lua-amx=y
CONFIG_PACKAGE_lxc=y
CONFIG_PACKAGE_lxc-attach=y
CONFIG_PACKAGE_lxc-auto=y
CONFIG_PACKAGE_lxc-autostart=y
CONFIG_PACKAGE_lxc-cgroup=y
CONFIG_PACKAGE_lxc-checkconfig=y
CONFIG_PACKAGE_lxc-common=y
CONFIG_PACKAGE_lxc-config=y
CONFIG_PACKAGE_lxc-configs=y
CONFIG_PACKAGE_lxc-console=y
CONFIG_PACKAGE_lxc-copy=y
CONFIG_PACKAGE_lxc-create=y
CONFIG_PACKAGE_lxc-destroy=y
CONFIG_PACKAGE_lxc-device=y
CONFIG_PACKAGE_lxc-execute=y
CONFIG_PACKAGE_lxc-freeze=y
CONFIG_PACKAGE_lxc-hooks=y
CONFIG_PACKAGE_lxc-info=y
CONFIG_PACKAGE_lxc-ls=y
CONFIG_PACKAGE_lxc-monitor=y
CONFIG_PACKAGE_lxc-start=y
CONFIG_PACKAGE_lxc-stop=y
CONFIG_PACKAGE_lxc-templates=y
CONFIG_PACKAGE_lxc-top=y
CONFIG_PACKAGE_lxc-unfreeze=y
CONFIG_PACKAGE_lxc-unprivileged=y
CONFIG_PACKAGE_lxc-unshare=y
CONFIG_PACKAGE_lxc-user-nic=y
CONFIG_PACKAGE_lxc-usernsexec=y
CONFIG_PACKAGE_lxc-wait=y
CONFIG_PACKAGE_mcastd-noforward=y
CONFIG_PACKAGE_miniupnpd-prpl=y
CONFIG_PACKAGE_mod-amxb-ubus=y
CONFIG_PACKAGE_mod-amxb-usp=y
CONFIG_PACKAGE_mod-autosensing=y
CONFIG_PACKAGE_mod-ba-cli=y
CONFIG_PACKAGE_mod-busstats=y
CONFIG_PACKAGE_mod-dhcpv4c=y
CONFIG_PACKAGE_mod-dmext=y
CONFIG_PACKAGE_mod-dmproxy=y
CONFIG_PACKAGE_mod-dmstats=y
CONFIG_PACKAGE_mod-dns-unbound=y
CONFIG_PACKAGE_mod-dnssd-advertisement=y
CONFIG_PACKAGE_mod-fw-amx=y
CONFIG_PACKAGE_mod-fw-host=y
CONFIG_PACKAGE_mod-httpaccess-lighttpd=y
CONFIG_PACKAGE_mod-logical-api=y
CONFIG_PACKAGE_mod-lua-amx=y
CONFIG_PACKAGE_mod-netmodel=y
CONFIG_PACKAGE_mod-network-selector=y
CONFIG_PACKAGE_mod-pcm-svc=y
CONFIG_PACKAGE_mod-ppp-daemon=y
CONFIG_PACKAGE_mod-qos-tc=y
CONFIG_PACKAGE_mod-ra-radvd=y
CONFIG_PACKAGE_mod-routing-dhcp=y
CONFIG_PACKAGE_mod-sahtrace=y
CONFIG_PACKAGE_mod-scheduler-amxp=y
CONFIG_PACKAGE_mod-usp-registration=y
CONFIG_PACKAGE_mod-vlan-ioctl=y
CONFIG_PACKAGE_mod-vlan-uci=y
CONFIG_PACKAGE_mod-wanmgr-sfp=y
CONFIG_PACKAGE_mod-xpon-prpl=y
CONFIG_PACKAGE_mod-xpon-prpl-mock=m
CONFIG_PACKAGE_mosquitto-client-ssl=y
CONFIG_PACKAGE_mosquitto-ssl=y
CONFIG_PACKAGE_multisettings=y
CONFIG_PACKAGE_netdev-plugin=y
CONFIG_PACKAGE_netmodel=y
CONFIG_PACKAGE_netmodel-bridge=y
CONFIG_PACKAGE_netmodel-clients=y
CONFIG_PACKAGE_netmodel-dhcpv4=y
CONFIG_PACKAGE_netmodel-dhcpv6=y
CONFIG_PACKAGE_netmodel-dslite=y
CONFIG_PACKAGE_netmodel-ethernet=y
CONFIG_PACKAGE_netmodel-gni=y
CONFIG_PACKAGE_netmodel-ip=y
CONFIG_PACKAGE_netmodel-iprouter=y
CONFIG_PACKAGE_netmodel-logical=y
CONFIG_PACKAGE_netmodel-netdev=y
CONFIG_PACKAGE_netmodel-optical=y
CONFIG_PACKAGE_netmodel-ppp=y
CONFIG_PACKAGE_netmodel-radio=y
CONFIG_PACKAGE_netmodel-ssid=y
CONFIG_PACKAGE_netmodel-vlan=y
CONFIG_PACKAGE_netmodel-xpon=y
# CONFIG_PACKAGE_nftables-json is not set
CONFIG_PACKAGE_obudpst=y
CONFIG_PACKAGE_obuspa=y
CONFIG_PACKAGE_odl-generator=y
CONFIG_PACKAGE_oopsmonitor=y
CONFIG_PACKAGE_opennds-prpl=y
CONFIG_PACKAGE_opensc-utils=y
CONFIG_PACKAGE_opensc-utils-pkcs11-tool=y
CONFIG_PACKAGE_openssl-util=y
CONFIG_PACKAGE_packet-interception=y
CONFIG_PACKAGE_pciids=y
CONFIG_PACKAGE_pciutils=y
CONFIG_PACKAGE_pcm-manager=y
CONFIG_PACKAGE_picocom=y
CONFIG_PACKAGE_pkcs11-provider=y
CONFIG_PACKAGE_ppp-prpl=y
CONFIG_PACKAGE_procps-ng=y
CONFIG_PACKAGE_procps-ng-pgrep=y
CONFIG_PACKAGE_procps-ng-pkill=y
CONFIG_PACKAGE_procps-ng-pmap=y
CONFIG_PACKAGE_procps-ng-ps=y
CONFIG_PACKAGE_procps-ng-uptime=y
CONFIG_PACKAGE_prpl-configuration=y
CONFIG_PACKAGE_prpl-webui=y
CONFIG_PACKAGE_prplmesh=y
CONFIG_PACKAGE_prplmesh-dm-mapper=y
CONFIG_PACKAGE_prplmesh-process-manager=y
CONFIG_PACKAGE_prplmesh-unit-tests=m
CONFIG_PACKAGE_pwhm=y
CONFIG_PACKAGE_radvd=y
CONFIG_PACKAGE_reboot-service=y
CONFIG_PACKAGE_resize2fs=y
CONFIG_PACKAGE_rlyeh=y
CONFIG_PACKAGE_routing-manager=y
CONFIG_PACKAGE_rpcd=y
CONFIG_PACKAGE_shadow=y
CONFIG_PACKAGE_shadow-chage=y
CONFIG_PACKAGE_shadow-chfn=y
CONFIG_PACKAGE_shadow-chgpasswd=y
CONFIG_PACKAGE_shadow-chpasswd=y
CONFIG_PACKAGE_shadow-chsh=y
CONFIG_PACKAGE_shadow-common=y
CONFIG_PACKAGE_shadow-expiry=y
CONFIG_PACKAGE_shadow-faillog=y
CONFIG_PACKAGE_shadow-gpasswd=y
CONFIG_PACKAGE_shadow-groupadd=y
CONFIG_PACKAGE_shadow-groupdel=y
CONFIG_PACKAGE_shadow-groupmems=y
CONFIG_PACKAGE_shadow-groupmod=y
CONFIG_PACKAGE_shadow-groups=y
CONFIG_PACKAGE_shadow-grpck=y
CONFIG_PACKAGE_shadow-grpconv=y
CONFIG_PACKAGE_shadow-grpunconv=y
CONFIG_PACKAGE_shadow-lastlog=y
CONFIG_PACKAGE_shadow-login=y
CONFIG_PACKAGE_shadow-logoutd=y
CONFIG_PACKAGE_shadow-newgidmap=y
CONFIG_PACKAGE_shadow-newgrp=y
CONFIG_PACKAGE_shadow-newuidmap=y
CONFIG_PACKAGE_shadow-newusers=y
CONFIG_PACKAGE_shadow-nologin=y
CONFIG_PACKAGE_shadow-passwd=y
CONFIG_PACKAGE_shadow-pwck=y
CONFIG_PACKAGE_shadow-pwconv=y
CONFIG_PACKAGE_shadow-pwunconv=y
CONFIG_PACKAGE_shadow-su=y
CONFIG_PACKAGE_shadow-useradd=y
CONFIG_PACKAGE_shadow-userdel=y
CONFIG_PACKAGE_shadow-usermod=y
CONFIG_PACKAGE_shadow-utils=y
CONFIG_PACKAGE_shadow-vipw=y
CONFIG_PACKAGE_softhsm2=y
CONFIG_PACKAGE_ssh-server=y
CONFIG_PACKAGE_syslog-ng=y
CONFIG_PACKAGE_tc-tiny=y
CONFIG_PACKAGE_terminfo=y
CONFIG_PACKAGE_time-manager=y
CONFIG_PACKAGE_timingila=y
CONFIG_PACKAGE_timingila-cthulhu=y
CONFIG_PACKAGE_timingila-rlyeh=y
CONFIG_PACKAGE_tr069-manager=y
CONFIG_PACKAGE_tr181-bridging=y
CONFIG_PACKAGE_tr181-bulkdata=y
CONFIG_PACKAGE_tr181-button=y
CONFIG_PACKAGE_tr181-captiveportal=y
CONFIG_PACKAGE_tr181-conmon=y
CONFIG_PACKAGE_tr181-conntrack-query=y
CONFIG_PACKAGE_tr181-cpu=y
CONFIG_PACKAGE_tr181-device=y
CONFIG_PACKAGE_tr181-dhcpv4client=y
CONFIG_PACKAGE_tr181-dhcpv6client=y
CONFIG_PACKAGE_tr181-dns=y
CONFIG_PACKAGE_tr181-dnssd=y
CONFIG_PACKAGE_tr181-dslite=y
CONFIG_PACKAGE_tr181-dynamicdns=y
CONFIG_PACKAGE_tr181-firewall=y
CONFIG_PACKAGE_tr181-flashmonitor=y
CONFIG_PACKAGE_tr181-gnimanager=y
CONFIG_PACKAGE_tr181-homeplug=y
CONFIG_PACKAGE_tr181-httpaccess=y
CONFIG_PACKAGE_tr181-ipdiagnostics=y
CONFIG_PACKAGE_tr181-led=y
CONFIG_PACKAGE_tr181-logical=y
CONFIG_PACKAGE_tr181-mcastd=y
CONFIG_PACKAGE_tr181-mqtt=y
CONFIG_PACKAGE_tr181-mqttbroker=y
CONFIG_PACKAGE_tr181-neighbordiscovery=y
CONFIG_PACKAGE_tr181-pcp=y
CONFIG_PACKAGE_tr181-periodicfileupload=y
CONFIG_PACKAGE_tr181-powerstatus=y
CONFIG_PACKAGE_tr181-ppp=y
CONFIG_PACKAGE_tr181-qos=y
CONFIG_PACKAGE_tr181-rest-api=y
CONFIG_PACKAGE_tr181-routeradvertisement=y
CONFIG_PACKAGE_tr181-schedules=y
CONFIG_PACKAGE_tr181-security=y
CONFIG_PACKAGE_tr181-sfp=y
CONFIG_PACKAGE_tr181-syslog=y
CONFIG_PACKAGE_tr181-temperature=y
CONFIG_PACKAGE_tr181-upnp=y
CONFIG_PACKAGE_tr181-upnpdiscovery=y
CONFIG_PACKAGE_tr181-usb=y
CONFIG_PACKAGE_tr181-usermanagement=y
CONFIG_PACKAGE_tr181-xpon=y
CONFIG_PACKAGE_ucode-mod-uloop=y
CONFIG_PACKAGE_umdns-prpl=y
CONFIG_PACKAGE_unbound-daemon-prpl=y
CONFIG_PACKAGE_uriparser=y
CONFIG_PACKAGE_usbids=y
CONFIG_PACKAGE_usbutils=y
CONFIG_PACKAGE_wan-manager=y
CONFIG_PACKAGE_wifi-scheduler=y
CONFIG_PACKAGE_wifi-sensing=y
CONFIG_PACKAGE_wpa-supplicant-openssl=y
CONFIG_PACKAGE_xtables-legacy=y
CONFIG_PACKAGE_yajl=y
CONFIG_PACKAGE_zlib=y
CONFIG_PKG_ASLR_PIE_ALL=y
# CONFIG_PKG_ASLR_PIE_REGULAR is not set
# CONFIG_PKG_CC_STACKPROTECTOR_REGULAR is not set
CONFIG_PKG_CC_STACKPROTECTOR_STRONG=y
# CONFIG_PKG_FORTIFY_SOURCE_1 is not set
CONFIG_PKG_FORTIFY_SOURCE_2=y
CONFIG_PLUGIN_USP_PASSWORD_LENGTH=32
CONFIG_PRPLMESH_DM_MAPPER_START_ORDER=99
CONFIG_PRPLMESH_DM_MAPPER_STOP_ORDER=0
CONFIG_PRPLMESH_ENABLE_UNIT_TESTS=y
CONFIG_PRPLMESH_PROCESS_MANAGER_START_ORDER=99
CONFIG_PRPLMESH_PROCESS_MANAGER_STOP_ORDER=0
CONFIG_PRPL_CONTROLLER_ROOT_PATH="X_PRPLWARE-COM_WiFiController"
CONFIG_PRPL_CPE_OPMODE="gateway"
CONFIG_PRPL_CPE_OPMODE_GATEWAY=y
CONFIG_PRPL_IP_DIAGNOSTIC_UPLOAD_DOWNLOAD=y
CONFIG_REMOVE_CAPS_ODLS=y
CONFIG_SAH_AMXRT_RWDATAPATH="/etc/config"
CONFIG_SAH_AMX_ADD_DBREADY_SCRIPT=y
CONFIG_SAH_AMX_FAULTMONITOR=y
CONFIG_SAH_AMX_FAULTMONITOR_RUN_AS_GROUP="tr181_app"
CONFIG_SAH_AMX_FAULTMONITOR_RUN_AS_USER="tr181_app"
CONFIG_SAH_AMX_FAULTMONITOR_START_ORDER=15
CONFIG_SAH_AMX_FAULTMONITOR_STOP_ORDER=89
CONFIG_SAH_AMX_FCGI=y
CONFIG_SAH_AMX_FCGI_START_ORDER=85
CONFIG_SAH_AMX_FCGI_STOP_ORDER=10
CONFIG_SAH_AMX_GMAP_CLIENT=y
CONFIG_SAH_AMX_GMAP_CLIENT_ORDER=82
CONFIG_SAH_AMX_GMAP_SERVER=y
CONFIG_SAH_AMX_GMAP_SERVER_START_ORDER=71
CONFIG_SAH_AMX_GMAP_SERVER_STOP_ORDER=29
CONFIG_SAH_AMX_MULTISETTINGS=y
CONFIG_SAH_AMX_MULTISETTINGS_ORDER=19
CONFIG_SAH_AMX_NETDEV=y
CONFIG_SAH_AMX_NETDEV_64_BITS_NETWORK_STATISTICS=y
CONFIG_SAH_AMX_NETDEV_RUN_AS_GROUP="tr181_app"
CONFIG_SAH_AMX_NETDEV_RUN_AS_USER="tr181_app"
CONFIG_SAH_AMX_NETDEV_START_ORDER=20
CONFIG_SAH_AMX_NETDEV_STOP_ORDER=10
CONFIG_SAH_AMX_NETMODEL=y
CONFIG_SAH_AMX_NETMODEL_CLIENTS=y
CONFIG_SAH_AMX_NETMODEL_CLIENTS_ORDER=20
CONFIG_SAH_AMX_NETMODEL_CLIENTS_RUN_AS_GROUP="tr181_app"
CONFIG_SAH_AMX_NETMODEL_CLIENTS_RUN_AS_USER="tr181_app"
CONFIG_SAH_AMX_NETMODEL_ORDER=20
CONFIG_SAH_AMX_NETMODEL_RUN_AS_GROUP="tr181_app"
CONFIG_SAH_AMX_NETMODEL_RUN_AS_USER="tr181_app"
CONFIG_SAH_AMX_OOPSMONITOR=y
CONFIG_SAH_AMX_OOPSMONITOR_DEFAULT_PARSING=y
CONFIG_SAH_AMX_OOPSMONITOR_ORDER=99
CONFIG_SAH_AMX_OOPSMONITOR_RUN_AS_GROUP="tr181_app"
CONFIG_SAH_AMX_OOPSMONITOR_RUN_AS_USER="tr181_app"
CONFIG_SAH_AMX_PACKET_INTERCEPTION=y
CONFIG_SAH_AMX_PACKET_INTERCEPTION_ORDER=50
CONFIG_SAH_AMX_PACKET_INTERCEPTION_TR181_FIREWALL_RULEPATH="/etc/amx/tr181-firewall"
CONFIG_SAH_AMX_PCM=y
CONFIG_SAH_AMX_PCM_ORDER=17
CONFIG_SAH_AMX_PCM_RUN_AS_GROUP="tr181_app"
CONFIG_SAH_AMX_PCM_RUN_AS_USER="tr181_app"
CONFIG_SAH_AMX_PCM_TARBALL=y
CONFIG_SAH_AMX_PROCESSMONITOR=y
CONFIG_SAH_AMX_PROCESSMONITOR_START_ORDER=99
CONFIG_SAH_AMX_PROCESSMONITOR_STOP_ORDER=0
CONFIG_SAH_AMX_SSH_SERVER=y
CONFIG_SAH_AMX_SSH_SERVER_ORDER=25
CONFIG_SAH_AMX_TR069_MANAGER=y
CONFIG_SAH_AMX_TR069_MANAGER_ORDER=97
CONFIG_SAH_AMX_TR069_MANAGER_USE_GSDM=y
CONFIG_SAH_AMX_TR181_BRIDGING=y
CONFIG_SAH_AMX_TR181_BRIDGING_RUN_AS_GROUP="tr181_app"
CONFIG_SAH_AMX_TR181_BRIDGING_RUN_AS_USER="tr181_app"
CONFIG_SAH_AMX_TR181_BRIDGING_START_ORDER=22
CONFIG_SAH_AMX_TR181_BRIDGING_STOP_ORDER=76
CONFIG_SAH_AMX_TR181_BULKDATA=y
CONFIG_SAH_AMX_TR181_BULKDATA_START_ORDER=90
CONFIG_SAH_AMX_TR181_BULKDATA_STOP_ORDER=88
CONFIG_SAH_AMX_TR181_BUTTON=y
CONFIG_SAH_AMX_TR181_BUTTON_RUN_AS_GROUP="tr181_app"
CONFIG_SAH_AMX_TR181_BUTTON_RUN_AS_USER="tr181_app"
CONFIG_SAH_AMX_TR181_BUTTON_START_ORDER=40
CONFIG_SAH_AMX_TR181_BUTTON_STOP_ORDER=60
CONFIG_SAH_AMX_TR181_CAPTIVEPORTAL=y
CONFIG_SAH_AMX_TR181_CAPTIVEPORTAL_EXAMPLE=y
CONFIG_SAH_AMX_TR181_CAPTIVEPORTAL_START_ORDER=90
CONFIG_SAH_AMX_TR181_CAPTIVEPORTAL_STOP_ORDER=90
CONFIG_SAH_AMX_TR181_CONMON=y
CONFIG_SAH_AMX_TR181_CONMON_RUN_AS_GROUP="tr181_app"
CONFIG_SAH_AMX_TR181_CONMON_RUN_AS_USER="tr181_app"
CONFIG_SAH_AMX_TR181_CONMON_START_ORDER=98
CONFIG_SAH_AMX_TR181_CONMON_STOP_ORDER=78
CONFIG_SAH_AMX_TR181_CONNTRACK_QUERY=y
CONFIG_SAH_AMX_TR181_CONNTRACK_QUERY_ORDER=25
CONFIG_SAH_AMX_TR181_CPU=y
CONFIG_SAH_AMX_TR181_CPU_RUN_AS_GROUP="tr181_app"
CONFIG_SAH_AMX_TR181_CPU_RUN_AS_USER="tr181_app"
CONFIG_SAH_AMX_TR181_CPU_START_ORDER=99
CONFIG_SAH_AMX_TR181_CPU_STOP_ORDER=1
CONFIG_SAH_AMX_TR181_DEVICE=y
CONFIG_SAH_AMX_TR181_DEVICEINFO=y
CONFIG_SAH_AMX_TR181_DEVICEINFO_NUMBER_OF_EXTRA_MAC_ADDRESSES="7"
CONFIG_SAH_AMX_TR181_DEVICEINFO_ORDER=25
CONFIG_SAH_AMX_TR181_DEVICEINFO_REQUIRES_USERS=y
CONFIG_SAH_AMX_TR181_DEVICEINFO_RUN_AS_GROUP="root"
CONFIG_SAH_AMX_TR181_DEVICEINFO_RUN_AS_USER="root"
CONFIG_SAH_AMX_TR181_DEVICEINFO_SOFTWARE_VERSION="XX"
CONFIG_SAH_AMX_TR181_DEVICEINFO_SYSTEM_ORDER=12
CONFIG_SAH_AMX_TR181_DEVICE_ORDER=41
CONFIG_SAH_AMX_TR181_DHCPV4CLIENT=y
CONFIG_SAH_AMX_TR181_DHCPV4CLIENT_RUN_AS_GROUP="tr181_app"
CONFIG_SAH_AMX_TR181_DHCPV4CLIENT_RUN_AS_USER="tr181_app"
CONFIG_SAH_AMX_TR181_DHCPV4CLIENT_SENTOPTION_125=""
CONFIG_SAH_AMX_TR181_DHCPV4CLIENT_START_ORDER=27
CONFIG_SAH_AMX_TR181_DHCPV4CLIENT_STOP_ORDER=75
CONFIG_SAH_AMX_TR181_DHCPV6CLIENT=y
CONFIG_SAH_AMX_TR181_DHCPV6CLIENT_RUN_AS_GROUP="tr181_app"
CONFIG_SAH_AMX_TR181_DHCPV6CLIENT_RUN_AS_USER="tr181_app"
CONFIG_SAH_AMX_TR181_DHCPV6CLIENT_SENTOPTION_17=""
CONFIG_SAH_AMX_TR181_DHCPV6CLIENT_START_ORDER=25
CONFIG_SAH_AMX_TR181_DHCPV6CLIENT_STOP_ORDER=75
CONFIG_SAH_AMX_TR181_DHCPV6S=y
CONFIG_SAH_AMX_TR181_DHCPV6S_RUN_AS_GROUP="tr181_app"
CONFIG_SAH_AMX_TR181_DHCPV6S_RUN_AS_USER="tr181_app"
CONFIG_SAH_AMX_TR181_DHCPV6S_START_ORDER=40
CONFIG_SAH_AMX_TR181_DHCPV6S_STOP_ORDER=60
CONFIG_SAH_AMX_TR181_DNS=y
CONFIG_SAH_AMX_TR181_DNSSD=y
CONFIG_SAH_AMX_TR181_DNSSD_ORDER=31
CONFIG_SAH_AMX_TR181_DNSSD_RUN_AS_GROUP="tr181_app"
CONFIG_SAH_AMX_TR181_DNSSD_RUN_AS_USER="tr181_app"
CONFIG_SAH_AMX_TR181_DNS_CELLULAR=y
CONFIG_SAH_AMX_TR181_DNS_ORDER=30
CONFIG_SAH_AMX_TR181_DNS_RUN_AS_GROUP="tr181_app"
CONFIG_SAH_AMX_TR181_DNS_RUN_AS_USER="tr181_app"
CONFIG_SAH_AMX_TR181_DSLITE=y
CONFIG_SAH_AMX_TR181_DSLITE_ORDER=42
CONFIG_SAH_AMX_TR181_DSLITE_RUN_AS_GROUP="tr181_app"
CONFIG_SAH_AMX_TR181_DSLITE_RUN_AS_USER="tr181_app"
CONFIG_SAH_AMX_TR181_ENVIRONMENT_ORDER=12
CONFIG_SAH_AMX_TR181_ETHERNET=y
CONFIG_SAH_AMX_TR181_ETHERNET_ORDER=21
CONFIG_SAH_AMX_TR181_ETHERNET_RUN_AS_GROUP="tr181_app"
CONFIG_SAH_AMX_TR181_ETHERNET_RUN_AS_USER="tr181_app"
CONFIG_SAH_AMX_TR181_FIREWALL=y
CONFIG_SAH_AMX_TR181_FIREWALL_LOGS=y
CONFIG_SAH_AMX_TR181_FIREWALL_ORDER=22
CONFIG_SAH_AMX_TR181_FIREWALL_RUN_AS_GROUP="tr181_app"
CONFIG_SAH_AMX_TR181_FIREWALL_RUN_AS_USER="tr181_app"
CONFIG_SAH_AMX_TR181_FIREWALL_WITH_GMAP=y
CONFIG_SAH_AMX_TR181_FLASHMONITOR=y
CONFIG_SAH_AMX_TR181_FLASHMONITOR_ORDER=99
CONFIG_SAH_AMX_TR181_FLASHMONITOR_RUN_AS_GROUP="tr181_app"
CONFIG_SAH_AMX_TR181_FLASHMONITOR_RUN_AS_USER="tr181_app"
CONFIG_SAH_AMX_TR181_GNIMANAGER=y
CONFIG_SAH_AMX_TR181_GNIMANAGER_ORDER=25
CONFIG_SAH_AMX_TR181_GNIMANAGER_RUN_AS_GROUP="tr181_app"
CONFIG_SAH_AMX_TR181_GNIMANAGER_RUN_AS_USER="tr181_app"
CONFIG_SAH_AMX_TR181_HOMEPLUG=y
CONFIG_SAH_AMX_TR181_HOMEPLUG_START_ORDER=31
CONFIG_SAH_AMX_TR181_HOMEPLUG_STOP_ORDER=69
CONFIG_SAH_AMX_TR181_HTTPACCESS=y
CONFIG_SAH_AMX_TR181_HTTPACCESS_FIREWALL=y
CONFIG_SAH_AMX_TR181_HTTPACCESS_ORDER=49
CONFIG_SAH_AMX_TR181_IP=y
CONFIG_SAH_AMX_TR181_IP_RUN_AS_GROUP="tr181_app"
CONFIG_SAH_AMX_TR181_IP_RUN_AS_USER="tr181_app"
CONFIG_SAH_AMX_TR181_IP_START_ORDER=21
CONFIG_SAH_AMX_TR181_IP_STOP_ORDER=10
CONFIG_SAH_AMX_TR181_LED=y
CONFIG_SAH_AMX_TR181_LED_ORDER=15
CONFIG_SAH_AMX_TR181_LED_RUN_AS_GROUP="tr181_app"
CONFIG_SAH_AMX_TR181_LED_RUN_AS_USER="tr181_app"
CONFIG_SAH_AMX_TR181_LOGICAL=y
CONFIG_SAH_AMX_TR181_LOGICAL_ORDER=21
CONFIG_SAH_AMX_TR181_LOGICAL_RUN_AS_GROUP="tr181_app"
CONFIG_SAH_AMX_TR181_LOGICAL_RUN_AS_USER="tr181_app"
CONFIG_SAH_AMX_TR181_MCASTD_CORE_PLUGIN=y
CONFIG_SAH_AMX_TR181_MCASTD_CORE_PLUGIN_RUN_AS_GROUP="tr181_app"
CONFIG_SAH_AMX_TR181_MCASTD_CORE_PLUGIN_RUN_AS_USER="tr181_app"
CONFIG_SAH_AMX_TR181_MCASTD_CORE_PLUGIN_START_ORDER=22
CONFIG_SAH_AMX_TR181_MCASTD_CORE_PLUGIN_STOP_ORDER=78
CONFIG_SAH_AMX_TR181_MQTT=y
CONFIG_SAH_AMX_TR181_MQTTBROKER=y
CONFIG_SAH_AMX_TR181_MQTTBROKER_ORDER=49
CONFIG_SAH_AMX_TR181_MQTTBROKER_RUN_AS_GROUP="tr181_app"
CONFIG_SAH_AMX_TR181_MQTTBROKER_RUN_AS_USER="tr181_app"
CONFIG_SAH_AMX_TR181_MQTT_ORDER=49
CONFIG_SAH_AMX_TR181_NEIGHBORDISCOVERY=y
CONFIG_SAH_AMX_TR181_NEIGHBORDISCOVERY_ORDER=50
CONFIG_SAH_AMX_TR181_NEIGHBORDISCOVERY_RUN_AS_GROUP="tr181_app"
CONFIG_SAH_AMX_TR181_NEIGHBORDISCOVERY_RUN_AS_USER="tr181_app"
CONFIG_SAH_AMX_TR181_PCP=y
CONFIG_SAH_AMX_TR181_PCP_ORDER=70
CONFIG_SAH_AMX_TR181_PCP_RUN_AS_GROUP="tr181_app"
CONFIG_SAH_AMX_TR181_PCP_RUN_AS_USER="tr181_app"
CONFIG_SAH_AMX_TR181_PERIODICFILEUPLOAD=y
CONFIG_SAH_AMX_TR181_PERIODICFILEUPLOAD_ORDER=99
CONFIG_SAH_AMX_TR181_PERIODICFILEUPLOAD_RUN_AS_GROUP="tr181_app"
CONFIG_SAH_AMX_TR181_PERIODICFILEUPLOAD_RUN_AS_USER="tr181-app"
CONFIG_SAH_AMX_TR181_POWERSTATUS=y
CONFIG_SAH_AMX_TR181_POWERSTATUS_ORDER=15
CONFIG_SAH_AMX_TR181_POWERSTATUS_RUN_AS_GROUP="tr181_app"
CONFIG_SAH_AMX_TR181_POWERSTATUS_RUN_AS_USER="tr181_app"
CONFIG_SAH_AMX_TR181_PPP=y
CONFIG_SAH_AMX_TR181_PPP_START_ORDER=26
CONFIG_SAH_AMX_TR181_PPP_STOP_ORDER=74
CONFIG_SAH_AMX_TR181_QOS=y
CONFIG_SAH_AMX_TR181_QOS_DEVICE_BASED_CLASSIFICATION=y
CONFIG_SAH_AMX_TR181_QOS_ORDER=49
CONFIG_SAH_AMX_TR181_ROUTING=y
CONFIG_SAH_AMX_TR181_ROUTING_RUN_AS_GROUP="tr181_app"
CONFIG_SAH_AMX_TR181_ROUTING_RUN_AS_USER="tr181_app"
CONFIG_SAH_AMX_TR181_ROUTING_START_ORDER=30
CONFIG_SAH_AMX_TR181_ROUTING_STOP_ORDER=10
CONFIG_SAH_AMX_TR181_SCHEDULES=y
CONFIG_SAH_AMX_TR181_SCHEDULES_RUN_AS_GROUP="tr181_app"
CONFIG_SAH_AMX_TR181_SCHEDULES_RUN_AS_USER="tr181_app"
CONFIG_SAH_AMX_TR181_SCHEDULES_START_ORDER=20
CONFIG_SAH_AMX_TR181_SCHEDULES_STOP_ORDER=80
CONFIG_SAH_AMX_TR181_SECURITY=y
CONFIG_SAH_AMX_TR181_SECURITY_ORDER=21
CONFIG_SAH_AMX_TR181_SFP=y
CONFIG_SAH_AMX_TR181_SFP_ORDER=30
CONFIG_SAH_AMX_TR181_SYSLOG=y
CONFIG_SAH_AMX_TR181_SYSLOG_START_ORDER=12
CONFIG_SAH_AMX_TR181_SYSLOG_STOP_ORDER=88
CONFIG_SAH_AMX_TR181_TEMPERATURE=y
CONFIG_SAH_AMX_TR181_TEMPERATURE_ORDER=15
CONFIG_SAH_AMX_TR181_TEMPERATURE_RUN_AS_GROUP="tr181_app"
CONFIG_SAH_AMX_TR181_TEMPERATURE_RUN_AS_USER="tr181_app"
CONFIG_SAH_AMX_TR181_TIME=y
CONFIG_SAH_AMX_TR181_TIME_ORDER=30
CONFIG_SAH_AMX_TR181_UPNP=y
CONFIG_SAH_AMX_TR181_UPNPDISCOVERY=y
CONFIG_SAH_AMX_TR181_UPNPDISCOVERY_RUN_AS_GROUP="tr181_app"
CONFIG_SAH_AMX_TR181_UPNPDISCOVERY_RUN_AS_USER="tr181_app"
CONFIG_SAH_AMX_TR181_UPNPDISCOVERY_START_ORDER=80
CONFIG_SAH_AMX_TR181_UPNPDISCOVERY_STOP_ORDER=20
CONFIG_SAH_AMX_TR181_UPNP_MOD_UPNPADVERTISE_LIBUPNP=y
CONFIG_SAH_AMX_TR181_UPNP_ORDER=80
CONFIG_SAH_AMX_TR181_UPNP_RUN_AS_GROUP="tr181_app"
CONFIG_SAH_AMX_TR181_UPNP_RUN_AS_USER="tr181_app"
CONFIG_SAH_AMX_TR181_XPON=y
CONFIG_SAH_AMX_TR181_XPON_MAX_ONUS=1
CONFIG_SAH_AMX_TR181_XPON_ORDER=30
CONFIG_SAH_AMX_USERMANAGEMENT=y
CONFIG_SAH_AMX_USERMANAGEMENT_ORDER=15
CONFIG_SAH_AMX_WAN_MANAGER=y
CONFIG_SAH_AMX_WAN_MANAGER_ORDER=80
CONFIG_SAH_AMX_WAN_MANAGER_RUN_AS_GROUP="tr181_app"
CONFIG_SAH_AMX_WAN_MANAGER_RUN_AS_USER="tr181_app"
CONFIG_SAH_DYNAMIC_DNS=y
CONFIG_SAH_DYNAMIC_DNS_START_ORDER=25
CONFIG_SAH_DYNAMIC_DNS_STOP_ORDER=10
CONFIG_SAH_IP_DIAGNOSTICS=y
CONFIG_SAH_IP_DIAGNOSTICS_START_ORDER=25
CONFIG_SAH_IP_DIAGNOSTICS_STOP_ORDER=10
CONFIG_SAH_LIB_AMXB_UBUS=y
CONFIG_SAH_LIB_AMXB_UBUS_ORDER="05-"
CONFIG_SAH_LIB_AMXRT=y
CONFIG_SAH_LIB_CTHULHU-LXC=y
CONFIG_SAH_LIB_FWINTERFACE_INTERFACE_IPTC=y
CONFIG_SAH_LIB_NETLINK-UTILS=y
CONFIG_SAH_LIB_NETMODEL=y
CONFIG_SAH_LIB_SAHTRACE=y
CONFIG_SAH_LIB_TR069_ENGINE=y
CONFIG_SAH_LUA_AMX=y
CONFIG_SAH_LUA_AMX_LUA_VERSION="5.1"
CONFIG_SAH_LUA_AMX_LUA_VERSION_OVERRIDE=y
CONFIG_SAH_MOD-LUA-AMX=y
CONFIG_SAH_MOD_AMXB_USP=y
CONFIG_SAH_MOD_AMXB_USP_INSTALL_DIR="/usr/bin/mods/usp"
CONFIG_SAH_MOD_AMXB_USP_REQUIRES_DEVICE_PREFIX=y
CONFIG_SAH_MOD_BA_CLI=y
CONFIG_SAH_MOD_BA_CLI_INSTALL_PCB_CLI=y
CONFIG_SAH_MOD_BA_CLI_INSTALL_RBUS_CLI=y
CONFIG_SAH_MOD_BA_CLI_INSTALL_UBUS_CLI=y
CONFIG_SAH_MOD_BA_CLI_INSTALL_USP_CLI=y
CONFIG_SAH_MOD_FW-AMX=y
CONFIG_SAH_MOD_HTTPACCESS_LIGHTTPD=y
CONFIG_SAH_MOD_HTTPACCESS_LIGHTTPD_FORCEFUL_TIMEOUT_SHUTDOWN=10
CONFIG_SAH_MOD_SAHTRACE=y
CONFIG_SAH_MOD_SAHTRACE_DEFAULT_LOG_LEVEL=200
CONFIG_SAH_MOD_SAHTRACE_DEFAULT_TRACE_ZONE_LEVEL=200
CONFIG_SAH_ODLGEN=y
CONFIG_SAH_PLUGIN_CTHULHU_USP=y
CONFIG_SAH_REBOOT_SERVICE=y
CONFIG_SAH_REBOOT_SERVICE_RUN_AS_GROUP="tr181_app"
CONFIG_SAH_REBOOT_SERVICE_RUN_AS_USER="tr181_app"
CONFIG_SAH_REBOOT_SERVICE_START_ORDER=18
CONFIG_SAH_REBOOT_SERVICE_STOP_ORDER=82
CONFIG_SAH_SERVICES_ACL-MANAGER=y
CONFIG_SAH_SERVICES_ACL-MANAGER_REQUIRES_USERS=y
CONFIG_SAH_SERVICES_ACL-MANAGER_START_ORDER=16
CONFIG_SAH_SERVICES_ACL-MANAGER_STOP_ORDER=84
CONFIG_SAH_SERVICES_AMX-DHCPV4-MANAGER=y
CONFIG_SAH_SERVICES_AMX-DHCPV4-MANAGER_RUN_AS_GROUP="tr181_app"
CONFIG_SAH_SERVICES_AMX-DHCPV4-MANAGER_RUN_AS_USER="tr181_app"
CONFIG_SAH_SERVICES_AMX-DHCPV4-MANAGER_START_ORDER=40
CONFIG_SAH_SERVICES_AMX-DHCPV4-MANAGER_STOP_ORDER=60
CONFIG_SAH_SERVICES_AMX-HOSTS-MANAGER=y
CONFIG_SAH_SERVICES_AMX-HOSTS-MANAGER_RUN_AS_GROUP="tr181_app"
CONFIG_SAH_SERVICES_AMX-HOSTS-MANAGER_RUN_AS_USER="tr181_app"
CONFIG_SAH_SERVICES_AMX-HOSTS-MANAGER_START_ORDER=83
CONFIG_SAH_SERVICES_AMX-HOSTS-MANAGER_STOP_ORDER=12
CONFIG_SAH_SERVICES_AMX-TR181ROUTERADVERTISEMENT=y
CONFIG_SAH_SERVICES_AMX-TR181ROUTERADVERTISEMENT_RUN_AS_GROUP="tr181_app"
CONFIG_SAH_SERVICES_AMX-TR181ROUTERADVERTISEMENT_RUN_AS_USER="tr181_app"
CONFIG_SAH_SERVICES_AMX-TR181ROUTERADVERTISEMENT_START_ORDER=40
CONFIG_SAH_SERVICES_AMX-TR181ROUTERADVERTISEMENT_STOP_ORDER=60
CONFIG_SAH_SERVICES_AMXRT=y
CONFIG_SAH_SERVICES_AMXRT_PROCD_INIT_FUNCTIONS=y
CONFIG_SAH_SERVICES_CTHULHU=y
CONFIG_SAH_SERVICES_CTHULHU_INIT_START=99
CONFIG_SAH_SERVICES_CTHULHU_INIT_STOP=60
CONFIG_SAH_SERVICES_GMAP-SELF=y
CONFIG_SAH_SERVICES_PWHM=y
CONFIG_SAH_SERVICES_RLYEH=y
CONFIG_SAH_SERVICES_RLYEH_ORDER=90
CONFIG_SAH_SERVICES_SENSING=y
CONFIG_SAH_SERVICES_SENSING_AMX_PROCESSMONITOR=y
CONFIG_SAH_SERVICES_SENSING_DATAMODEL_MAPPER=y
CONFIG_SAH_SERVICES_SENSING_PROCESS_MANAGER=y
CONFIG_SAH_SERVICES_SENSING_START_ORDER=120
CONFIG_SAH_SERVICES_SENSING_STOP_ORDER=1
CONFIG_SAH_SERVICES_TIMINGILA=y
CONFIG_SAH_SERVICES_TIMINGILA_ADAPTER_CONTAINER="/usr/lib/timingila-cthulhu/timingila-cthulhu.so"
CONFIG_SAH_SERVICES_TIMINGILA_ADAPTER_PACKAGER="/usr/lib/timingila-rlyeh/timingila-rlyeh.so"
CONFIG_SAH_SERVICES_TIMINGILA_INIT_ADAPTERS=y
CONFIG_SAH_SERVICES_TIMINGILA_INIT_START=91
CONFIG_SAH_SERVICES_TIMINGILA_INIT_STOP=80
CONFIG_SAH_SERVICES_WIFI-SCHEDULER=y
CONFIG_SAH_SERVICES_WIFI-SCHEDULER_START_ORDER=99
CONFIG_SAH_SERVICES_WIFI-SCHEDULER_STOP_ORDER=1
CONFIG_SAH_TRACES_ENABLED=y
CONFIG_SAH_TRACES_LEVEL=500
CONFIG_SAH_TRACES_SYSLOG_CONSOLE=y
CONFIG_SAH_TRACE_NO_COLORS=y
CONFIG_SAH_WLD_AMX_PROCESSMONITOR=y
CONFIG_SAH_WLD_DATAMODEL_MAPPER=y
CONFIG_SAH_WLD_ENABLE_USP_SERVER_SOCKET=y
CONFIG_SAH_WLD_INIT_ORDER=60
CONFIG_SAH_WLD_INIT_SCRIPT="prplmesh_whm"
CONFIG_SAH_WLD_PROCESS_MANAGER=y
CONFIG_SAH_WLD_ROOT_OBJ_PREFIX="Device."
CONFIG_SDK=y
CONFIG_SQLITE3_COLUMN_METADATA=y
CONFIG_SQLITE3_DYNAMIC_EXTENSIONS=y
CONFIG_SQLITE3_FTS3=y
CONFIG_SQLITE3_FTS4=y
CONFIG_SQLITE3_FTS5=y
CONFIG_SQLITE3_RTREE=y
CONFIG_TARGET_INITRAMFS_COMPRESSION_LZMA=y
# CONFIG_TARGET_INITRAMFS_COMPRESSION_NONE is not set
CONFIG_USE_PRPLMESH_WHM=y
CONFIG_VERSIONOPT=y
CONFIG_VERSION_BUG_URL="https://jira.prplfoundation.org"
CONFIG_VERSION_CODE=""
CONFIG_VERSION_DIST="prplOS"
CONFIG_VERSION_HOME_URL="https://prplfoundation.org"
CONFIG_VERSION_HWREV=""
CONFIG_VERSION_MANUFACTURER="prpl Foundation"
CONFIG_VERSION_MANUFACTURER_URL="https://prplfoundation.org"
CONFIG_VERSION_NUMBER=""
CONFIG_VERSION_PRODUCT=""
CONFIG_VERSION_REPO="https://downloads.openwrt.org/releases/24.10-SNAPSHOT"
CONFIG_VERSION_SUPPORT_URL="https://jira.prplfoundation.org"
CONFIG_shadow-all=y
# CONFIG_VERSION_CODE_FILENAMES is not set
# CONFIG_VERSION_FILENAMES is not set

View File

@ -0,0 +1,40 @@
Create R alias:
$ alias R="${CRAM_REMOTE_COMMAND:-}"
Check correct routing table:
$ R ip route
default via 10.0.0.1 dev eth2 proto static
10.0.0.0/24 dev eth2 proto kernel scope link src 10.0.0.2
192.168.1.0/24 dev br-lan proto kernel scope link src 192.168.1.1
192.168.2.0/24 dev br-guest proto kernel scope link src 192.168.2.1 linkdown
192.168.3.0/24 dev br-lcm proto kernel scope link src 192.168.3.1 linkdown
Check correct interface setup:
$ R "ip link | grep ^\\\\d | cut -d: -f2-" | LC_ALL=C sort
br-guest: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN mode DEFAULT group default qlen 1000
br-lan: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1000
br-lcm: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN mode DEFAULT group default qlen 1000
eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1504 qdisc mq state UNKNOWN mode DEFAULT group default qlen 1000
eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
eth2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
ip6tnl0@NONE: <NOARP> mtu 1452 qdisc noop state DOWN mode DEFAULT group default qlen 1000
lan1@eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue master br-lan state DOWN mode DEFAULT group default qlen 1000
lan2@eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue master br-lan state DOWN mode DEFAULT group default qlen 1000
lan3@eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-lan state UP mode DEFAULT group default qlen 1000
lo: <LOOPBACK,UP,LOWER_UP> mtu 65535 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
teql0: <NOARP> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 100
wlan0.1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop master br-lan state DOWN mode DEFAULT group default qlen 1000
wlan0.2: <BROADCAST,MULTICAST> mtu 1500 qdisc noop master br-guest state DOWN mode DEFAULT group default qlen 1000
wlan0.3: <BROADCAST,MULTICAST> 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: <BROADCAST,MULTICAST> mtu 1500 qdisc noop master br-lan state DOWN mode DEFAULT group default qlen 1000
wlan1.2: <BROADCAST,MULTICAST> mtu 1500 qdisc noop master br-guest state DOWN mode DEFAULT group default qlen 1000
wlan1.3: <BROADCAST,MULTICAST> 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: <BROADCAST,MULTICAST> mtu 1500 qdisc noop master br-lan state DOWN mode DEFAULT group default qlen 1000
wlan2.2: <BROADCAST,MULTICAST> mtu 1500 qdisc noop master br-guest state DOWN mode DEFAULT group default qlen 1000
wlan2.3: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
wlan2: <BROADCAST,MULTICAST> mtu 1500 qdisc noqueue master br-lan state DOWN mode DEFAULT group default qlen 1000

View File

@ -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

View File

@ -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

View File

@ -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

View File

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

View File

@ -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

View File

@ -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!"

View File

@ -0,0 +1 @@
../wifi/wifi-usp.t

View File

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

View File

@ -0,0 +1 @@
../wifi/wifi-sensing.t

View File

@ -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

View File

@ -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