diff --git a/.gitlab/tests/cram/mxl25641-hdk-6/100-prplmesh.t b/.gitlab/tests/cram/mxl25641-hdk-6/100-prplmesh.t deleted file mode 100644 index 621ffa7224..0000000000 --- a/.gitlab/tests/cram/mxl25641-hdk-6/100-prplmesh.t +++ /dev/null @@ -1,303 +0,0 @@ -Create R alias: - - $ alias R="${CRAM_REMOTE_COMMAND:-}" - -Disable autochannel : - - $ R "ubus -S call WiFi.Radio.2 _set '{\"parameters\":{\"AutoChannelEnable\":0}}'" - {"WiFi.Radio.2.":{"AutoChannelEnable":false}} - {} - {"amxd-error-code":0} - - - $ R "ubus -S call WiFi.Radio.1 _set '{\"parameters\":{\"AutoChannelEnable\":0}}'" - {"WiFi.Radio.1.":{"AutoChannelEnable":false}} - {} - {"amxd-error-code":0} - - $ sleep 1 - -Set channel to a non DFS one - - $ R "ubus -S call WiFi.Radio.2 _set '{\"parameters\":{\"Channel\":36}}'" - {"WiFi.Radio.2.":{"Channel":36}} - {} - {"amxd-error-code":0} - - $ sleep 1 - -Switch channel bandwith from 160 to 80 Mhz to avoid doing DFS CAC operation, that lead to long delay before vaps being up (to be removed when PPM 2810 is fixed): - - $ R "ubus -S call WiFi.Radio.2 _set '{\"parameters\":{\"OperatingChannelBandwidth\":\"80MHz\"}}'" - {"WiFi.Radio.2.":{"OperatingChannelBandwidth":"80MHz"}} - {} - {"amxd-error-code":0} - -Check that wireless has desired configuration and state after boot: - - $ R "ubus -S call WiFi.SSID _get | jsonfilter -e @[*].SSID -e @[*].Status | sort" - Down - Down - Down - Down - Down - Down - Down - SSID_NOT_SET - prplOS - prplOS - prplOS - prplOS-guest - prplOS-guest - prplOS-guest - - $ R "pgrep -f 'hostapd -t'" - [1] - -Restart prplmesh: - - $ R logger -t cram "Restart prplmesh" - $ R "( /etc/init.d/prplmesh gateway_mode ; sleep 2 ) > /tmp/prplmesh-gw-mode.log 2>&1 ; logger -t prplmesh-gateway-mode < /tmp/prplmesh-gw-mode.log" - - $ R "ubus -t 60 wait_for Device.WiFi" - -Start wireless: - - $ R logger -t cram "Start wireless" - - $ R "ubus -S call WiFi.AccessPoint.1 _set '{\"parameters\":{\"Enable\":1}}'" - {"WiFi.AccessPoint.1.":{"Enable":true}} - {} - {"amxd-error-code":0} - - $ sleep 10 - - $ R "i=15 ; while [ \$i -gt 1 ]; do ubus -S call WiFi.SSID.1 _get '{\"rel_path\":\"Status\"}'| grep -q Up && echo 'SSID.1 Up' && i=0 ; i=\$(( i-1 )); sleep 2 ; done" - SSID.1 Up - - $ R "ubus -S call WiFi.AccessPoint.2 _set '{\"parameters\":{\"Enable\":1}}'" - {"WiFi.AccessPoint.2.":{"Enable":true}} - {} - {"amxd-error-code":0} - - $ sleep 10 - - $ R "i=15 ; while [ \$i -gt 1 ]; do ubus -S call WiFi.SSID.2 _get '{\"rel_path\":\"Status\"}'| grep -q Up && echo 'SSID.2 Up' && i=0 ; i=\$(( i-1 )); sleep 2 ; done" - SSID.2 Up - - $ R "ubus -S call WiFi.AccessPoint.3 _set '{\"parameters\":{\"Enable\":1}}'" - {"WiFi.AccessPoint.3.":{"Enable":true}} - {} - {"amxd-error-code":0} - - $ sleep 10 - - $ R "i=15 ; while [ \$i -gt 1 ]; do ubus -S call WiFi.SSID.3 _get '{\"rel_path\":\"Status\"}'| grep -q Up && echo 'SSID.3 Up' && i=0 ; i=\$(( i-1 )); sleep 2 ; done" - SSID.3 Up - - $ R "ubus -S call WiFi.AccessPoint.4 _set '{\"parameters\":{\"Enable\":1}}'" - {"WiFi.AccessPoint.4.":{"Enable":true}} - {} - {"amxd-error-code":0} - - $ sleep 10 - - $ R "i=15 ; while [ \$i -gt 1 ]; do ubus -S call WiFi.SSID.4 _get '{\"rel_path\":\"Status\"}'| grep -q Up && echo 'SSID.4 Up' && i=0 ; i=\$(( i-1 )); sleep 2 ; done" - SSID.4 Up - - $ R "ubus -S call WiFi.AccessPoint.5 _set '{\"parameters\":{\"Enable\":1}}'" - {"WiFi.AccessPoint.5.":{"Enable":true}} - {} - {"amxd-error-code":0} - - $ sleep 10 - - $ R "i=15 ; while [ \$i -gt 1 ]; do ubus -S call WiFi.SSID.5 _get '{\"rel_path\":\"Status\"}'| grep -q Up && echo 'SSID.5 Up' && i=0 ; i=\$(( i-1 )); sleep 2 ; done" - SSID.5 Up - - $ R "ubus -S call WiFi.AccessPoint.6 _set '{\"parameters\":{\"Enable\":1}}'" - {"WiFi.AccessPoint.6.":{"Enable":true}} - {} - {"amxd-error-code":0} - - $ sleep 10 - - $ R "i=15 ; while [ \$i -gt 1 ]; do ubus -S call WiFi.SSID.6 _get '{\"rel_path\":\"Status\"}'| grep -q Up && echo 'SSID.6 Up' && i=0 ; i=\$(( i-1 )); sleep 2 ; done" - SSID.6 Up - -Check that hostapd is operating as expected: - - $ R logger -t cram "Check that hostapd is operating after reboot" - $ R "ps axw" | sed -nE 's/.*(hostapd.*)/\1/p' | head -3 | LC_ALL=C sort - hostapd -ddt /tmp/wlan0_hapd.conf - hostapd -ddt /tmp/wlan2_hapd.conf - hostapd -ddt /tmp/wlan4_hapd.conf - -Check that wireless is operating: - - $ R "ubus -S call WiFi.SSID _get | jsonfilter -e @[*].SSID -e @[*].Status | sort" - Down - SSID_NOT_SET - Up - Up - Up - Up - Up - Up - prplOS - prplOS - prplOS - prplOS-guest - prplOS-guest - prplOS-guest - - $ R "iw dev | grep -e Interface -e ssid | tr -d '\t' | sort" - Interface wlan0 - Interface wlan0.1 - Interface wlan0.2 - Interface wlan2 - Interface wlan2.1 - Interface wlan2.2 - Interface wlan4 - Interface wlan4.1 - Interface wlan4.2 - ssid dummy_ssid_2.4GHz - ssid dummy_ssid_5GHz - ssid dummy_ssid_6GHz - ssid prplOS - ssid prplOS - ssid prplOS - ssid prplOS-guest - ssid prplOS-guest - ssid prplOS-guest - -Check that prplmesh processes are running: - - $ R logger -t cram "Check that prplmesh processes are running" - $ R "ps axw" | sed -nE 's/.*(\/opt\/prplmesh\/bin.*)/\1/p' | LC_ALL=C sort - /opt/prplmesh/bin/beerocks_agent - /opt/prplmesh/bin/beerocks_controller - /opt/prplmesh/bin/beerocks_fronthaul -i wlan0 - /opt/prplmesh/bin/beerocks_fronthaul -i wlan2 - /opt/prplmesh/bin/beerocks_fronthaul -i wlan4 - /opt/prplmesh/bin/ieee1905_transport - -Check that prplmesh is operational: - - $ R logger -t cram "Check that prplmesh is operational" - $ R "/opt/prplmesh/scripts/prplmesh_utils.sh status" | LC_ALL=C sort - \x1b[0m (esc) - \x1b[0m\x1b[1;32mOK Main radio agent operational (esc) - \x1b[1;32moperational test success! (esc) - /opt/prplmesh/scripts/prplmesh_utils.sh: status - [0-9]+ beerocks_contro (re) - [0-9]+ beerocks_agent (re) - [0-9]+ beerocks_fronth (re) - [0-9]+ beerocks_fronth (re) - [0-9]+ beerocks_fronth (re) - OK wlan0 radio agent operational - OK wlan2 radio agent operational - OK wlan4 radio agent operational - executing operational test using bml - -Check that prplmesh is in operational state: - - $ R logger -t cram "Check that prplmesh is in operational state" - $ 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 - wlan2 - wlan2.0 - wlan2.1 - wlan4 - wlan4.0 - wlan4.1 - -Disable wireless: - - $ R logger -t cram "Stop wireless" - - $ R "ubus -S call WiFi.AccessPoint.6 _set '{\"parameters\":{\"Enable\":0}}'" - {"WiFi.AccessPoint.6.":{"Enable":false}} - {} - {"amxd-error-code":0} - - $ sleep 10 - - $ R "i=15 ; while [ \$i -gt 1 ]; do ubus -S call WiFi.SSID.6 _get '{\"rel_path\":\"Status\"}'| grep -q Down && echo 'SSID.6 Down' && i=0 ; i=\$(( i-1 )); sleep 2 ; done" - SSID.6 Down - - $ R "ubus -S call WiFi.AccessPoint.5 _set '{\"parameters\":{\"Enable\":0}}'" - {"WiFi.AccessPoint.5.":{"Enable":false}} - {} - {"amxd-error-code":0} - - $ sleep 10 - - $ R "i=15 ; while [ \$i -gt 1 ]; do ubus -S call WiFi.SSID.5 _get '{\"rel_path\":\"Status\"}'| grep -q Down && echo 'SSID.5 Down' && i=0 ; i=\$(( i-1 )); sleep 2 ; done" - SSID.5 Down - - $ R "ubus -S call WiFi.AccessPoint.4 _set '{\"parameters\":{\"Enable\":0}}'" - {"WiFi.AccessPoint.4.":{"Enable":false}} - {} - {"amxd-error-code":0} - - $ sleep 10 - - $ R "i=15 ; while [ \$i -gt 1 ]; do ubus -S call WiFi.SSID.4 _get '{\"rel_path\":\"Status\"}'| grep -q Down && echo 'SSID.4 Down' && i=0 ; i=\$(( i-1 )); sleep 2 ; done" - SSID.4 Down - - $ R "ubus -S call WiFi.AccessPoint.3 _set '{\"parameters\":{\"Enable\":0}}'" - {"WiFi.AccessPoint.3.":{"Enable":false}} - {} - {"amxd-error-code":0} - - $ sleep 10 - - $ R "i=15 ; while [ \$i -gt 1 ]; do ubus -S call WiFi.SSID.3 _get '{\"rel_path\":\"Status\"}'| grep -q Down && echo 'SSID.3 Down' && i=0 ; i=\$(( i-1 )); sleep 2 ; done" - SSID.3 Down - - $ R "ubus -S call WiFi.AccessPoint.2 _set '{\"parameters\":{\"Enable\":0}}'" - {"WiFi.AccessPoint.2.":{"Enable":false}} - {} - {"amxd-error-code":0} - - $ sleep 10 - - $ R "i=15 ; while [ \$i -gt 1 ]; do ubus -S call WiFi.SSID.2 _get '{\"rel_path\":\"Status\"}'| grep -q Down && echo 'SSID.2 Down' && i=0 ; i=\$(( i-1 )); sleep 2 ; done" - SSID.2 Down - - $ R "ubus -S call WiFi.AccessPoint.1 _set '{\"parameters\":{\"Enable\":0}}'" - {"WiFi.AccessPoint.1.":{"Enable":false}} - {} - {"amxd-error-code":0} - - $ sleep 10 - - $ R "i=15 ; while [ \$i -gt 1 ]; do ubus -S call WiFi.SSID.1 _get '{\"rel_path\":\"Status\"}'| grep -q Down && echo 'SSID.1 Down' && i=0 ; i=\$(( i-1 )); sleep 2 ; done" - SSID.1 Down - -Check that wireless is disabled: - - $ R "ubus -S call WiFi.SSID _get | jsonfilter -e @[*].SSID -e @[*].Status | sort" - Down - Down - Down - Down - Down - Down - Down - SSID_NOT_SET - prplOS - prplOS - prplOS - prplOS-guest - prplOS-guest - prplOS-guest - - $ R "pgrep -f 'hostapd -t'" - [1] diff --git a/.gitlab/tests/cram/mxl25641-hdk-6/100-pwhm.t b/.gitlab/tests/cram/mxl25641-hdk-6/100-pwhm.t new file mode 100644 index 0000000000..98658a51ea --- /dev/null +++ b/.gitlab/tests/cram/mxl25641-hdk-6/100-pwhm.t @@ -0,0 +1,354 @@ +Create R alias: + + $ alias R="${CRAM_REMOTE_COMMAND:-}" + +Provide common helpers: + + $ enable_ap() { R "ba-cli -j -l WiFi.AccessPoint.${1}.Enable=1 | grep -q Enable && echo '"WiFi.AccessPoint.${1}" enabled'";} + $ disable_ap() { R "ba-cli -j -l WiFi.AccessPoint.${1}.Enable=0 | grep -q Enable && echo '"WiFi.AccessPoint.${1}" disabled'";} + $ check_ap_ref_ssid() { R "i=15 ; while [ \$i -gt 1 ]; do ba-cli -j -l WiFi.AccessPoint.${1}.SSIDReference+.Status? | grep WiFi.SSID. | grep -q "${2}" && echo '"WiFi.AccessPoint.${1}" SSID Reference is "${2}"' && i=0 ; i=\$(( i-1 )); sleep 2 ; done";} + $ get_ssid_ref() { msg=$(R "ba-cli -j -l WiFi.AccessPoint.${1}.SSIDReference+.Status?"); echo "$msg" | sed '/^$/d';} + $ get_ssid_status() { R "ba-cli -j -l WiFi.SSID.?0 | jsonfilter -e @[0]'[@.Alias != \"ep2g0\" && @.Alias != \"ep5g0\" && @.Alias != \"ep6g0\"].Status'" | LC_ALL=C sort;} + + $ R logger -t cram "Starting test ..." + +Wait for Device.WiFi. datamodel availability: + + $ R "amx_wait_for "Device.WiFi." " + + $ sleep 10 + +Try Suspending prplMesh processes: + + $ R "killall -SIGSTOP beerocks_agent > /dev/null 2>&1 || true" + $ R "killall -SIGSTOP beerocks_fronthaul > /dev/null 2>&1 || true" + +Set AutoChannelEnable=0 on all 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 "ba-cli -j -l WiFi.Radio.2.Channel=36 | sed '/^$/d'" + [{"WiFi.Radio.2.":{"Channel":36}}] + + $ sleep 5 + +Check default SSID status: + + $ get_ssid_status + Down + Down + Down + Down + Down + Down + +Check default SSID configuration of access points: + + $ R "ba-cli -j -l WiFi.SSID.?0 | jsonfilter -e @[0]'[@.Alias != \"ep2g0\" && @.Alias != \"ep5g0\" && @.Alias != \"ep6g0\"].SSID'" | LC_ALL=C sort + prplOS + prplOS + prplOS + prplOS-guest + prplOS-guest + prplOS-guest + +Check that no hostapd instance is running: + + $ R "pgrep -f 'hostapd -ddt'" + [1] + +Test activation of access point 1: + + $ R logger -t cram "Test AccessPoint 1 activation "$(get_ssid_ref 1)"" + + $ enable_ap 1 + WiFi.AccessPoint.1 enabled + + $ check_ap_ref_ssid 1 Up + WiFi.AccessPoint.1 SSID Reference is Up + + $ sleep 5 + + $ get_ssid_status + Down + Down + Down + Down + Down + Up + +Test activation of access point 2: + + $ R logger -t cram "Test AccessPoint 2 activation "$(get_ssid_ref 2)"" + + $ enable_ap 2 + WiFi.AccessPoint.2 enabled + + $ check_ap_ref_ssid 2 Up + WiFi.AccessPoint.2 SSID Reference is Up + + $ sleep 5 + + $ get_ssid_status + Down + Down + Down + Down + Up + Up + +Test activation of access point 3: + + $ R logger -t cram "Test AccessPoint 3 activation "$(get_ssid_ref 3)"" + + $ enable_ap 3 + WiFi.AccessPoint.3 enabled + + $ check_ap_ref_ssid 3 Up + WiFi.AccessPoint.3 SSID Reference is Up + + $ sleep 5 + + $ get_ssid_status + Down + Down + Down + Up + Up + Up + +Test activation of access point 4: + + $ R logger -t cram "Test AccessPoint 4 activation "$(get_ssid_ref 4)"" + + $ enable_ap 4 + WiFi.AccessPoint.4 enabled + + $ check_ap_ref_ssid 4 Up + WiFi.AccessPoint.4 SSID Reference is Up + + $ sleep 5 + + $ get_ssid_status + Down + Down + Up + Up + Up + Up + +Test activation of access point 5: + + $ R logger -t cram "Test AccessPoint 5 activation "$(get_ssid_ref 5)"" + + $ enable_ap 5 + WiFi.AccessPoint.5 enabled + + $ check_ap_ref_ssid 5 Up + WiFi.AccessPoint.5 SSID Reference is Up + + $ sleep 5 + + $ get_ssid_status + Down + Up + Up + Up + Up + Up + +Test activation of access point 6: + + $ R logger -t cram "Test AccessPoint 6 activation "$(get_ssid_ref 6)"" + + $ enable_ap 6 + WiFi.AccessPoint.6 enabled + + $ check_ap_ref_ssid 6 Up + WiFi.AccessPoint.6 SSID Reference is Up + + $ sleep 5 + + $ get_ssid_status + Up + Up + Up + Up + Up + Up + +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 -3 | LC_ALL=C sort + hostapd -ddt /tmp/wlan0_hapd.conf + hostapd -ddt /tmp/wlan2_hapd.conf + hostapd -ddt /tmp/wlan4_hapd.conf + +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 wlan1 + Interface wlan2 + Interface wlan2.1 + Interface wlan2.2 + Interface wlan3 + Interface wlan4 + Interface wlan4.1 + Interface wlan4.2 + Interface wlan5 + ssid dummy_ssid_2.4GHz + ssid dummy_ssid_5GHz + ssid dummy_ssid_6GHz + ssid prplOS + ssid prplOS + ssid prplOS + ssid prplOS-guest + ssid prplOS-guest + ssid prplOS-guest + +Test deactivation of access point 6: + + $ R logger -t cram "Test AccessPoint 6 deactivation "$(get_ssid_ref 6)"" + + $ disable_ap 6 + WiFi.AccessPoint.6 disabled + + $ check_ap_ref_ssid 6 Down + WiFi.AccessPoint.6 SSID Reference is Down + + $ sleep 5 + + $ get_ssid_status + Down + Up + Up + Up + Up + Up + +Test deactivation of access point 5: + + $ R logger -t cram "Test AccessPoint 5 deactivation "$(get_ssid_ref 5)"" + + $ disable_ap 5 + WiFi.AccessPoint.5 disabled + + $ check_ap_ref_ssid 5 Down + WiFi.AccessPoint.5 SSID Reference is Down + + $ sleep 5 + + $ get_ssid_status + Down + Down + Up + Up + Up + Up + +Test deactivation of access point 4: + + $ R logger -t cram "Test AccessPoint 4 deactivation "$(get_ssid_ref 4)"" + + $ disable_ap 4 + WiFi.AccessPoint.4 disabled + + $ check_ap_ref_ssid 4 Down + WiFi.AccessPoint.4 SSID Reference is Down + + $ sleep 5 + + $ get_ssid_status + Down + Down + Down + Up + Up + Up + +Test deactivation of access point 3: + + $ R logger -t cram "Test AccessPoint 3 deactivation "$(get_ssid_ref 3)"" + + $ disable_ap 3 + WiFi.AccessPoint.3 disabled + + $ check_ap_ref_ssid 3 Down + WiFi.AccessPoint.3 SSID Reference is Down + + $ sleep 5 + + $ get_ssid_status + Down + Down + Down + Down + Up + Up + +Test deactivation of access point 2: + + $ R logger -t cram "Test AccessPoint 2 deactivation "$(get_ssid_ref 2)"" + + $ disable_ap 2 + WiFi.AccessPoint.2 disabled + + $ check_ap_ref_ssid 2 Down + WiFi.AccessPoint.2 SSID Reference is Down + + $ sleep 5 + + $ get_ssid_status + Down + Down + Down + Down + Down + Up + +Test deactivation of access point 1: + + $ R logger -t cram "Test AccessPoint 1 deactivation "$(get_ssid_ref 1)"" + + $ disable_ap 1 + WiFi.AccessPoint.1 disabled + + $ check_ap_ref_ssid 1 Down + WiFi.AccessPoint.1 SSID Reference is Down + + $ sleep 5 + + $ get_ssid_status + Down + Down + Down + Down + Down + Down + +Check if hostapd process is stopped: + + $ R "pgrep -f 'hostapd -ddt'" + [1] + +Resume prplMesh processes: + + $ R "killall -SIGCONT beerocks_agent > /dev/null 2>&1 || true" + $ R "killall -SIGCONT beerocks_fronthaul > /dev/null 2>&1 || true" + + $ R logger -t cram "Stopping test .." + +Wait 20s before leaving the test: + + $ sleep 20 + + $ R logger -t cram "Test finished!" + diff --git a/.gitlab/tests/cram/mxl25641-hdk-6/110-prplmesh-dataelements.t b/.gitlab/tests/cram/mxl25641-hdk-6/110-prplmesh-dataelements.t new file mode 100644 index 0000000000..5ac29f3e44 --- /dev/null +++ b/.gitlab/tests/cram/mxl25641-hdk-6/110-prplmesh-dataelements.t @@ -0,0 +1,254 @@ +Create R alias: + + $ alias R="${CRAM_REMOTE_COMMAND:-}" + +Provide common helpers: + + $ get_ssid_status() { R "ba-cli -j -l WiFi.SSID.?0 | jsonfilter -e @[0]'[@.Alias != \"ep2g0\" && @.Alias != \"ep5g0\" && @.Alias != \"ep6g0\"].Status'" | LC_ALL=C sort;} + $ get_ssid_ssid() { R "ba-cli -j -l WiFi.SSID.?0 | jsonfilter -e @[0]'[@.Alias != \"ep2g0\" && @.Alias != \"ep5g0\" && @.Alias != \"ep6g0\"].SSID'" | LC_ALL=C sort;} + +Set AutoChannelEnable=0 on all 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 "ba-cli -j -l WiFi.Radio.2.Channel=36 | sed '/^$/d'" + [{"WiFi.Radio.2.":{"Channel":36}}] + + $ sleep 5 + +Configure controller, requires PPM-3022 to work: + + $ R logger -t cram "Stop prplmesh" + + $ R "( /etc/init.d/prplmesh stop ; sleep 2 ) 2>&1 > /dev/null" + + + $ 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 "( /etc/init.d/prplmesh gateway_mode ; sleep 2 ) > /tmp/prplmesh-gw-mode.log 2>&1 ; logger -t prplmesh-gateway-mode < /tmp/prplmesh-gw-mode.log" + + $ R "ubus -t 60 wait_for Device.WiFi" + +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_PRPL-ORG_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 + + $ get_ssid_ssid + 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_PRPL-ORG_WiFiController.Network.AccessPoint _add" + {"object":"X_PRPL-ORG_WiFiController.Network.AccessPoint.1.","index":1,"name":"1","parameters":{},"path":"X_PRPL-ORG_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_PRPL-ORG_WiFiController.Network.AccessPoint.1 _set '{\"parameters\":{\"Band2_4G\":1,\"Band5GH\":1,\"Band5GL\":1,\"Band6G\":1}}'" + {"X_PRPL-ORG_WiFiController.Network.AccessPoint.1.":{"Band5GH":true,"Band6G":true,"Band5GL":true,"Band2_4G":true}} + {} + {"amxd-error-code":0} + + $ R "ubus -S call X_PRPL-ORG_WiFiController.Network.AccessPoint.1 _set '{\"parameters\":{\"MultiApMode\":\"Fronthaul+Backhaul\"}}'" + {"X_PRPL-ORG_WiFiController.Network.AccessPoint.1.":{"MultiApMode":"Fronthaul+Backhaul"}} + {} + {"amxd-error-code":0} + + $ R "ubus -S call X_PRPL-ORG_WiFiController.Network.AccessPoint.1.Security _set '{\"parameters\":{\"ModeEnabled\":\"WPA2-Personal\",\"KeyPassphrase\":\"password\"}}'" + {"X_PRPL-ORG_WiFiController.Network.AccessPoint.1.Security.":{"KeyPassphrase":"password","ModeEnabled":"WPA2-Personal"}} + {} + {"amxd-error-code":0} + + $ R "ubus -S call X_PRPL-ORG_WiFiController.Network.AccessPoint.1 _set '{\"parameters\":{\"SSID\":\"prplOSpriv\"}}'" + {"X_PRPL-ORG_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_PRPL-ORG_WiFiController.Network.AccessPoint.1 _set '{\"parameters\":{\"Enable\":1}}'" + {"X_PRPL-ORG_WiFiController.Network.AccessPoint.1.":{"Enable":true}} + {} + {"amxd-error-code":0} + +Create second instance of Network.AccessPoint for guest VAPs: + + $ R "ubus -S call X_PRPL-ORG_WiFiController.Network.AccessPoint _add" + {"object":"X_PRPL-ORG_WiFiController.Network.AccessPoint.2.","index":2,"name":"2","parameters":{},"path":"X_PRPL-ORG_WiFiController.Network.AccessPoint.2."} + {} + {"amxd-error-code":0} + $ R "ubus -S call X_PRPL-ORG_WiFiController.Network.AccessPoint.2 _set '{\"parameters\":{\"Band2_4G\":1,\"Band5GH\":1,\"Band5GL\":1,\"Band6G\":1}}'" + {"X_PRPL-ORG_WiFiController.Network.AccessPoint.2.":{"Band5GH":true,"Band6G":true,"Band5GL":true,"Band2_4G":true}} + {} + {"amxd-error-code":0} + + $ R "ubus -S call X_PRPL-ORG_WiFiController.Network.AccessPoint.2 _set '{\"parameters\":{\"MultiApMode\":\"Fronthaul\"}}'" + {"X_PRPL-ORG_WiFiController.Network.AccessPoint.2.":{"MultiApMode":"Fronthaul"}} + {} + {"amxd-error-code":0} + + $ R "ubus -S call X_PRPL-ORG_WiFiController.Network.AccessPoint.2.Security _set '{\"parameters\":{\"ModeEnabled\":\"WPA2-Personal\",\"KeyPassphrase\":\"passwordGUEST\"}}'" + {"X_PRPL-ORG_WiFiController.Network.AccessPoint.2.Security.":{"KeyPassphrase":"passwordGUEST","ModeEnabled":"WPA2-Personal"}} + {} + {"amxd-error-code":0} + + $ R "ubus -S call X_PRPL-ORG_WiFiController.Network.AccessPoint.2 _set '{\"parameters\":{\"SSID\":\"prplOSguest\"}}'" + {"X_PRPL-ORG_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_PRPL-ORG_WiFiController.Network.AccessPoint.2 _set '{\"parameters\":{\"Enable\":1}}'" + {"X_PRPL-ORG_WiFiController.Network.AccessPoint.2.":{"Enable":true}} + {} + {"amxd-error-code":0} + + $ R "ubus -S call X_PRPL-ORG_WiFiController.Network AccessPointCommit" + {"retval":""} + {} + {"amxd-error-code":0} + + + $ sleep 15 + +Check that wireless is operating: + + $ get_ssid_status + Up + Up + Up + Up + Up + Up + + $ get_ssid_ssid + prplOSguest + prplOSguest + prplOSguest + prplOSpriv + prplOSpriv + prplOSpriv + + $ sleep 10 + +Check that prplmesh processes are running: + + $ R logger -t cram "Check that prplmesh processes are running" + + $ R "ps axw" | sed -nE 's/.*(\/opt\/prplmesh\/bin.*)/\1/p' | LC_ALL=C sort + /opt/prplmesh/bin/beerocks_agent + /opt/prplmesh/bin/beerocks_controller + /opt/prplmesh/bin/beerocks_fronthaul -i wlan0 + /opt/prplmesh/bin/beerocks_fronthaul -i wlan2 + /opt/prplmesh/bin/beerocks_fronthaul -i wlan4 + /opt/prplmesh/bin/ieee1905_transport + +Check that prplmesh is operational: + + $ R logger -t cram "Check that prplmesh is operational" + + $ R "/opt/prplmesh/scripts/prplmesh_utils.sh status" | LC_ALL=C sort + \x1b[0m (esc) + \x1b[0m\x1b[1;32mOK Main radio agent operational (esc) + \x1b[1;32moperational test success! (esc) + /opt/prplmesh/scripts/prplmesh_utils.sh: status + [0-9]+ beerocks_contro (re) + [0-9]+ beerocks_agent (re) + [0-9]+ beerocks_fronth (re) + [0-9]+ beerocks_fronth (re) + [0-9]+ beerocks_fronth (re) + OK wlan0 radio agent operational + OK wlan2 radio agent operational + OK wlan4 radio agent operational + executing operational test using bml + +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 + wlan2 + wlan2.0 + wlan2.1 + wlan4 + wlan4.0 + wlan4.1 + +To disable wireless, disable instances of Network.AccessPoint{i} and call AccessPointCommit(): + + $ R logger -t cram "Stop wireless" + + $ R "ubus -S call X_PRPL-ORG_WiFiController.Network.AccessPoint.1 _set '{\"parameters\":{\"Enable\":0}}'" + {"X_PRPL-ORG_WiFiController.Network.AccessPoint.1.":{"Enable":false}} + {} + {"amxd-error-code":0} + + $ R "ubus -S call X_PRPL-ORG_WiFiController.Network.AccessPoint.2 _set '{\"parameters\":{\"Enable\":0}}'" + {"X_PRPL-ORG_WiFiController.Network.AccessPoint.2.":{"Enable":false}} + {} + {"amxd-error-code":0} + + $ R "ubus -S call X_PRPL-ORG_WiFiController.Network AccessPointCommit" + {"retval":""} + {} + {"amxd-error-code":0} + + $ sleep 10 + +Check that wireless is disabled: + + $ get_ssid_status + Down + Down + Down + Down + Down + Down + +Check that SSIDs did not change: + + $ get_ssid_ssid + prplOSguest + prplOSguest + prplOSguest + prplOSpriv + prplOSpriv + prplOSpriv