blob: 7bce78b07aeec883cc4ce9d6e1bcf89fb0fb7322 [file] [log] [blame]
#
# Copyright 2017 - The Android Open Source Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
import time
from acts import asserts
from acts import utils
from acts import signals
from acts.keys import Config
from acts.test_decorators import test_tracker_info
from acts_contrib.test_utils.net import connectivity_const as cconsts
from acts_contrib.test_utils.wifi import wifi_test_utils as wutils
from acts_contrib.test_utils.wifi.WifiBaseTest import WifiBaseTest
from acts_contrib.test_utils.wifi.aware import aware_test_utils as autils
from acts.controllers.openwrt_lib.openwrt_constants import OpenWrtWifiSetting
import os
WifiEnums = wutils.WifiEnums
class WifiRoamingTest(WifiBaseTest):
def setup_class(self):
"""Configure the required networks for testing roaming."""
super().setup_class()
self.dut = self.android_devices[0]
self.dut_client = self.android_devices[1]
req_params = ["roaming_attn", "sae_roaming_unspported_list"]
self.unpack_userparams(req_param_names=req_params,)
self.country_code = wutils.WifiEnums.CountryCode.US
if hasattr(self, "country_code_file"):
if isinstance(self.country_code_file, list):
self.country_code_file = self.country_code_file[0]
if not os.path.isfile(self.country_code_file):
self.country_code_file = os.path.join(
self.user_params[Config.key_config_path.value],
self.country_code_file)
self.country_code = utils.load_config(
self.country_code_file)["country"]
if "AccessPoint" in self.user_params:
self.legacy_configure_ap_and_start(ap_count=2)
def teardown_class(self):
self.dut.ed.clear_all_events()
if "AccessPoint" in self.user_params:
del self.user_params["reference_networks"]
del self.user_params["open_network"]
def setup_test(self):
super().setup_test()
self.dut.ed.clear_all_events()
self.dut.droid.wakeLockAcquireBright()
self.dut.droid.wakeUpNow()
asserts.skip_if("sae" in self.test_name and
self.dut.model in self.sae_roaming_unspported_list,
"%s doesn't support wpa3 roaming." % self.dut.model)
def teardown_test(self):
super().teardown_test()
self.dut.droid.wakeLockRelease()
self.dut.droid.goToSleepNow()
wutils.reset_wifi(self.dut)
wutils.set_attns(self.attenuators, "default")
for ad in self.android_devices:
wutils.set_wifi_country_code(ad, self.country_code)
if "OpenWrtAP" in self.user_params:
for ap in self.access_points:
ap.close()
### Helper Methods ###
def register_network_callback_for_internet(self):
self.dut.log.debug("Registering network callback for wifi internet"
"connectivity")
network_request = {
cconsts.NETWORK_CAP_TRANSPORT_TYPE_KEY :
cconsts.NETWORK_CAP_TRANSPORT_WIFI,
cconsts.NETWORK_CAP_CAPABILITY_KEY :
[cconsts.NETWORK_CAP_CAPABILITY_INTERNET]
}
key = self.dut.droid.connectivityRegisterNetworkCallback(network_request)
return key
def generate_wifi_info(self, network):
return {
WifiEnums.SSID_KEY : network[WifiEnums.SSID_KEY],
# We need to use "BSSID" in WifiInfo map, also need to use lower
# chars for bssid.
WifiEnums.BSSID_KEY : network["bssid"].lower()
}
def roaming_from_AP1_and_AP2(self, AP1_network, AP2_network):
"""Test roaming between two APs.
Args:
AP1_network: AP-1's network information.
AP2_network: AP-2's network information.
Steps:
1. Make AP1 visible, AP2 not visible.
2. Connect to AP1's ssid.
3. Make AP1 not visible, AP2 visible.
4. Expect DUT to roam to AP2.
5. Validate connection information and ping.
"""
network_cb_key = None
if self.dut.droid.isSdkAtLeastS():
network_cb_key = self.register_network_callback_for_internet()
wutils.set_attns(self.attenuators, "AP1_on_AP2_off", self.roaming_attn)
wifi_config = AP1_network.copy()
wifi_config.pop("bssid")
wutils.connect_to_wifi_network(self.dut, wifi_config)
if network_cb_key is not None:
self.dut.log.info("Waiting for onAvailable and "
"onCapabilitiesChanged after connection")
# Ensure that the connection completed and we got the ON_AVAILABLE
# callback.
autils.wait_for_event_with_keys(
self.dut,
cconsts.EVENT_NETWORK_CALLBACK,
20,
(cconsts.NETWORK_CB_KEY_ID, network_cb_key),
(cconsts.NETWORK_CB_KEY_EVENT, cconsts.NETWORK_CB_AVAILABLE))
autils.wait_for_event_with_keys(
self.dut, cconsts.EVENT_NETWORK_CALLBACK, 10,
(cconsts.NETWORK_CB_KEY_ID, network_cb_key),
(cconsts.NETWORK_CB_KEY_EVENT,
cconsts.NETWORK_CB_CAPABILITIES_CHANGED),
(cconsts.NETWORK_CB_KEY_TRANSPORT_INFO,
self.generate_wifi_info(AP1_network)))
self.log.info("Roaming from %s to %s", AP1_network, AP2_network)
wutils.trigger_roaming_and_validate(
self.dut, self.attenuators, "AP1_off_AP2_on", AP2_network,
self.roaming_attn)
if network_cb_key is not None:
self.dut.log.info("Waiting for onCapabilitiesChanged after"
" roaming")
# Ensure that the roaming complete triggered a capabilities change
# with the new bssid.
autils.wait_for_event_with_keys(
self.dut, cconsts.EVENT_NETWORK_CALLBACK, 10,
(cconsts.NETWORK_CB_KEY_ID, network_cb_key),
(cconsts.NETWORK_CB_KEY_EVENT,
cconsts.NETWORK_CB_CAPABILITIES_CHANGED),
(cconsts.NETWORK_CB_KEY_TRANSPORT_INFO,
self.generate_wifi_info(AP2_network)))
### Test Cases ###
@test_tracker_info(uuid="db8a46f9-713f-4b98-8d9f-d36319905b0a")
def test_roaming_between_AP1_to_AP2_open_2g(self):
if "OpenWrtAP" in self.user_params:
self.configure_openwrt_ap_and_start(open_network=True,
ap_count=2,
mirror_ap=True)
self.log.info("BSSID map: %s" % self.bssid_map)
ap1_network = self.open_network[0]["2g"]
ap2_network = self.open_network[1]["2g"]
if "OpenWrtAP" in self.user_params:
ap1_network["bssid"] = self.bssid_map[0]["2g"][ap1_network["SSID"]]
ap2_network["bssid"] = self.bssid_map[1]["2g"][ap2_network["SSID"]]
self.roaming_from_AP1_and_AP2(ap1_network, ap2_network)
@test_tracker_info(uuid="0db67d9b-6ea9-4f40-acf2-155c4ecf9dc5")
def test_roaming_between_AP1_to_AP2_open_5g(self):
if "OpenWrtAP" in self.user_params:
self.configure_openwrt_ap_and_start(open_network=True,
ap_count=2,
mirror_ap=True)
ap1_network = self.open_network[0]["5g"]
ap2_network = self.open_network[1]["5g"]
if "OpenWrtAP" in self.user_params:
ap1_network["bssid"] = self.bssid_map[0]["5g"][ap1_network["SSID"]]
ap2_network["bssid"] = self.bssid_map[1]["5g"][ap2_network["SSID"]]
self.roaming_from_AP1_and_AP2(ap1_network, ap2_network)
@test_tracker_info(uuid="eabc7319-d962-4bef-b679-725e9ff00420")
def test_roaming_between_AP1_to_AP2_psk_2g(self):
if "OpenWrtAP" in self.user_params:
self.configure_openwrt_ap_and_start(wpa_network=True,
ap_count=2,
mirror_ap=True)
ap1_network = self.reference_networks[0]["2g"]
ap2_network = self.reference_networks[1]["2g"]
if "OpenWrtAP" in self.user_params:
ap1_network["bssid"] = self.bssid_map[0]["2g"][ap1_network["SSID"]]
ap2_network["bssid"] = self.bssid_map[1]["2g"][ap2_network["SSID"]]
self.roaming_from_AP1_and_AP2(ap1_network, ap2_network)
@test_tracker_info(uuid="1cf9c681-4ff0-45c1-9719-f01629f6a7f7")
def test_roaming_between_AP1_to_AP2_psk_5g(self):
if "OpenWrtAP" in self.user_params:
self.configure_openwrt_ap_and_start(wpa_network=True,
ap_count=2,
mirror_ap=True)
ap1_network = self.reference_networks[0]["5g"]
ap2_network = self.reference_networks[1]["5g"]
if "OpenWrtAP" in self.user_params:
ap1_network["bssid"] = self.bssid_map[0]["5g"][ap1_network["SSID"]]
ap2_network["bssid"] = self.bssid_map[1]["5g"][ap2_network["SSID"]]
self.roaming_from_AP1_and_AP2(ap1_network, ap2_network)
@test_tracker_info(uuid="a28f7d2e-fae4-4e66-b633-7ee59f8b46e0")
def test_roaming_between_AP1_to_AP2_owe_2g(self):
if "OpenWrtAP" in self.user_params:
self.configure_openwrt_ap_and_start(owe_network=True,
ap_count=2,
mirror_ap=True)
ap1_network = self.owe_networks[0]["2g"]
ap2_network = self.owe_networks[1]["2g"]
if "OpenWrtAP" in self.user_params:
ap1_network["bssid"] = self.bssid_map[0]["2g"][ap1_network["SSID"]]
ap2_network["bssid"] = self.bssid_map[1]["2g"][ap2_network["SSID"]]
self.roaming_from_AP1_and_AP2(ap1_network, ap2_network)
@test_tracker_info(uuid="3c39110a-9336-4abd-b885-acbba85dc10d")
def test_roaming_between_AP1_to_AP2_owe_5g(self):
if "OpenWrtAP" in self.user_params:
self.configure_openwrt_ap_and_start(owe_network=True,
ap_count=2,
mirror_ap=True)
ap1_network = self.owe_networks[0]["5g"]
ap2_network = self.owe_networks[1]["5g"]
if "OpenWrtAP" in self.user_params:
ap1_network["bssid"] = self.bssid_map[0]["5g"][ap1_network["SSID"]]
ap2_network["bssid"] = self.bssid_map[1]["5g"][ap2_network["SSID"]]
self.roaming_from_AP1_and_AP2(ap1_network, ap2_network)
@test_tracker_info(uuid="68b2baf6-162a-44f2-a00d-4973e5ac9471")
def test_roaming_between_AP1_to_AP2_sae_2g(self):
if "OpenWrtAP" in self.user_params:
self.configure_openwrt_ap_and_start(sae_network=True,
ap_count=2,
mirror_ap=True)
ap1_network = self.sae_networks[0]["2g"]
ap2_network = self.sae_networks[1]["2g"]
if "OpenWrtAP" in self.user_params:
ap1_network["bssid"] = self.bssid_map[0]["2g"][ap1_network["SSID"]]
ap2_network["bssid"] = self.bssid_map[1]["2g"][ap2_network["SSID"]]
self.roaming_from_AP1_and_AP2(ap1_network, ap2_network)
@test_tracker_info(uuid="20e24ed3-0cd1-46dd-bd26-2183ffb443e6")
def test_roaming_between_AP1_to_AP2_sae_5g(self):
if "OpenWrtAP" in self.user_params:
self.configure_openwrt_ap_and_start(sae_network=True,
ap_count=2,
mirror_ap=True)
ap1_network = self.sae_networks[0]["5g"]
ap2_network = self.sae_networks[1]["5g"]
if "OpenWrtAP" in self.user_params:
ap1_network["bssid"] = self.bssid_map[0]["5g"][ap1_network["SSID"]]
ap2_network["bssid"] = self.bssid_map[1]["5g"][ap2_network["SSID"]]
self.roaming_from_AP1_and_AP2(ap1_network, ap2_network)
@test_tracker_info(uuid="521269cb-5d2c-46e6-bc01-a03bd148ce28")
def test_soft_2g_ap_channel_when_roam_to_chan_13(self):
"""Verify softAp 2G channel when after roaming to network on channel 13.
Steps:
1. Configure 2 APs - 1 on channel 6, the other on channel 13.
2. Connect DUT to AP on channel 6.
3. Start softAp on DUT on 2G band.
4. Verify softAp is started on channel 6.
5. Roam to AP2 with channel 13.
6. Verify SoftAp on DUT changed to channel 13.
"""
for ad in self.android_devices:
wutils.set_wifi_country_code(
ad, wutils.WifiEnums.CountryCode.AUSTRALIA)
if "OpenWrtAP" in self.user_params:
self.configure_openwrt_ap_and_start(open_network=True,
ap_count=2,
channel_2g_ap2=13,
mirror_ap=True)
ap1_network = self.open_network[0]["2g"]
ap2_network = self.open_network[1]["2g"]
if "OpenWrtAP" in self.user_params:
ap1_network["bssid"] = self.bssid_map[0]["2g"][ap1_network["SSID"]]
ap2_network["bssid"] = self.bssid_map[1]["2g"][ap2_network["SSID"]]
wutils.set_attns(self.attenuators, "AP1_on_AP2_off", self.roaming_attn)
wutils.connect_to_wifi_network(self.dut, ap1_network)
# start softap on 2G and verify the channel is 6.
sap_config = {
WifiEnums.SSID_KEY: "hotspot_%s" % utils.rand_ascii_str(6),
WifiEnums.PWD_KEY: "pass_%s" % utils.rand_ascii_str(6),
WifiEnums.AP_BAND_KEY: WifiEnums.WIFI_CONFIG_SOFTAP_BAND_2G}
asserts.assert_true(
self.dut.droid.wifiSetWifiApConfiguration(sap_config),
"Failed to set WifiAp Configuration")
wutils.start_wifi_tethering_saved_config(self.dut)
softap_conf = self.dut.droid.wifiGetApConfiguration()
self.log.info("softap conf: %s" % softap_conf)
wutils.connect_to_wifi_network(self.dut_client, sap_config)
conn_info = self.dut_client.droid.wifiGetConnectionInfo()
self.log.info("Wifi connection info on dut_client: %s" % conn_info)
softap_channel = wutils.WifiEnums.freq_to_channel[conn_info["frequency"]]
asserts.assert_true(softap_channel == 6,
"Dut client did not connect to softAp on channel 6")
# trigger roaming to AP2 with channel 13
self.log.info("Roaming from %s to %s", ap1_network, ap2_network)
wutils.trigger_roaming_and_validate(
self.dut, self.attenuators, "AP1_off_AP2_on", ap2_network,
self.roaming_attn)
# verify softap is now moved to channel 13
conn_info = self.dut_client.droid.wifiGetConnectionInfo()
self.log.info("Wifi connection info on dut_client: %s" % conn_info)
softap_channel = wutils.WifiEnums.freq_to_channel[conn_info["frequency"]]
asserts.assert_true(softap_channel == 13,
"Dut client did not connect to softAp on channel 13")
@test_tracker_info(uuid="3114d625-5cdd-4205-bb46-5a9d057dc80d")
def test_roaming_fail_psk_2g(self):
"""Verify roaming fail with mismatch passwords.
Steps:
DUT connect to AP1.
Change AP2's password.
DUT try roaming from AP1 to AP2 with mismatched password.
Change AP2's password back to original one.
DUT try roaming from AP1 to AP2 with matched passwords.
"""
# Use OpenWrt as Wi-Fi AP when it's available in testbed.
if "OpenWrtAP" in self.user_params:
self.configure_openwrt_ap_and_start(wpa_network=True,
ap_count=2,
mirror_ap=True)
self.openwrt1 = self.access_points[0]
self.openwrt2 = self.access_points[1]
ap1_network = self.reference_networks[0]["2g"]
ap2_network = self.reference_networks[1]["2g"]
# Get APs' BSSIDs.
ap1_bssid = self.bssid_map[0]["2g"][ap1_network["SSID"]]
ap2_bssid = self.bssid_map[1]["2g"][ap2_network["SSID"]]
# Make AP's configs.
ap1_network["bssid"] = ap1_bssid
ap2_network["bssid"] = ap2_bssid
# Change AP2 2G to password.
self.openwrt2.set_password(pwd_2g=utils.rand_ascii_str(8))
try:
# DUT roaming from AP1 to AP2 with mismatched passwords.
self.dut.log.info("Roaming via mismatched passwords to AP2 [{}]"
.format(ap2_bssid))
self.roaming_from_AP1_and_AP2(ap1_network, ap2_network)
except:
self.dut.log.info("Failed roaming to AP2")
self.dut.log.info("Roaming via matched passwords to AP2 [{}]"
.format(ap1_bssid))
wutils.set_attns_steps(self.attenuators, "AP1_on_AP2_off",
self.roaming_attn)
self.openwrt2.set_password(pwd_2g=ap2_network["password"])
self.dut.log.info("Toggling wifi OFF.")
wutils.wifi_toggle_state(self.dut, False)
self.dut.log.info("Toggling wifi ON.")
wutils.wifi_toggle_state(self.dut, True)
self.roaming_from_AP1_and_AP2(ap1_network, ap2_network)
else:
raise signals.TestFailure("DUT unexpectedly connect to Wi-Fi.")
# Use Google OnHub as Wi-Fi AP to test when OpenWrt is no available.
elif "AccessPoint" in self.user_params:
network = {'SSID':'test_roaming_fail', 'password':'roam123456@'}
# AP2 network with incorrect password.
network_fail = {'SSID':'test_roaming_fail', 'password':'roam123456@#$%^'}
# Setup AP1 with the correct password.
wutils.ap_setup(self, 0, self.access_points[0], network)
network_bssid = self.access_points[0].get_bssid_from_ssid(
network["SSID"], '2g')
# Setup AP2 with the incorrect password.
wutils.ap_setup(self, 1, self.access_points[1], network_fail)
network_fail_bssid = self.access_points[1].get_bssid_from_ssid(
network_fail["SSID"], '2g')
network['bssid'] = network_bssid
network_fail['bssid'] = network_fail_bssid
try:
# Initiate roaming with AP2 configured with incorrect password.
self.roaming_from_AP1_and_AP2(network, network_fail)
except:
self.log.info("Roaming failed to AP2 with incorrect password.")
# Re-configure AP2 after roaming failed, with correct password.
self.log.info("Re-configuring AP2 with correct password.")
wutils.ap_setup(self, 1, self.access_points[1], network)
self.roaming_from_AP1_and_AP2(network, network_fail)
@test_tracker_info(uuid="b6d73094-22bc-4460-9d55-ce34a0a6a8c9")
def test_roaming_fail_different_bssid(self):
"""Verify devices is disconnect with difference bssid after roaming
Steps:
1. Configure 2 APs
2. Connect DUT to AP 1
3. Roam to AP2
4. Verify the bssid is difference and the device can't connect
5. Verify device is disconnect after roaming.
"""
if "OpenWrtAP" in self.user_params:
self.configure_openwrt_ap_and_start(wpa_network=True,
ap_count=2,
mirror_ap=True)
ap1_network = self.reference_networks[0]["2g"]
ap2_network = self.reference_networks[1]["2g"]
if "OpenWrtAP" in self.user_params:
ap1_network["bssid"] = self.bssid_map[0]["2g"][ap1_network["SSID"]]
ap2_network["bssid"] = self.bssid_map[1]["2g"][ap2_network["SSID"]]
wutils.set_attns(self.attenuators, "AP1_on_AP2_off")
wutils.connect_to_wifi_network(self.dut, ap1_network)
# Initiate roaming with AP2
wutils.set_attns(self.attenuators, "AP1_off_AP2_on")
time.sleep(10)
try:
wutils.verify_wifi_connection_info(self.dut, ap2_network)
except:
self.log.info("Roaming failed to AP2 with incorrect BSSID")
wutils.wait_for_disconnect(self.dut)
self.log.info("Device is disconnect")
@test_tracker_info(uuid="641b35c1-7bf8-4d85-a813-1bc30d7bd0d4")
def test_roaming_between_psk_2g_to_psk_5g(self):
"""Verify psk when after roaming from 2.4 Ghz to 5 Ghz with OpenWrtAP
Steps:
1. Configure 2 APs
2. Configure AP2 5Ghz and AP1 2.4Ghz WiFi to same SSID and password
3. Connect DUT to AP1 2.4Ghz WiFi
4. Roam to AP2 5Ghz WiFi
5. Verify the DUT can connect from 2.4Ghz to 5Ghz
"""
# Use OpenWrt as Wi-Fi AP when it's available in testbed.
asserts.skip_if("OpenWrtAP" not in self.user_params, "OpenWrtAP not in user_params")
self.configure_openwrt_ap_and_start(wpa_network=True,
ap_count=2)
self.openwrt1 = self.access_points[0]
self.openwrt2 = self.access_points[1]
ap1_network = self.reference_networks[0]["2g"]
ap2_network = self.reference_networks[1]["5g"]
# Get & Setup APs' BSSIDs.
ap1_network["bssid"] = self.bssid_map[0]["2g"][ap1_network["SSID"]]
ap2_network["bssid"] = self.bssid_map[1]["5g"][ap2_network["SSID"]]
# Change 2 APs to same password and SSID
self.openwrt1.set_ssid(ssid_2g="testSSID")
self.openwrt2.set_ssid(ssid_5g="testSSID")
self.openwrt2.set_password(pwd_5g=ap1_network["password"])
ap1_network["SSID"] = "testSSID"
ap2_network["SSID"] = "testSSID"
ap2_network["password"] = ap1_network["password"]
self.roaming_from_AP1_and_AP2(ap1_network, ap2_network)
@test_tracker_info(uuid="fa1fe3bb-abb9-4d75-88bd-cd88c04073c6")
def test_roaming_between_psk_withoutPMF_5g(self):
"""Verify psk without PMF when after roaming with OpenWrtAP
Steps:
1. Configure 2 APs without PMF
2. Connect DUT to AP1
3. Roam to AP2
4. Verify the DUT can connect after roaming
"""
# Use OpenWrt as Wi-Fi AP when it's available in testbed.
asserts.skip_if("OpenWrtAP" not in self.user_params, "OpenWrtAP not in user_params")
self.configure_openwrt_ap_and_start(wpa_network=True,
ap_count=2,
mirror_ap=True,
ieee80211w=0)
ap1_network = self.reference_networks[0]["5g"]
ap2_network = self.reference_networks[1]["5g"]
# Get & Setup APs' BSSIDs.
ap1_network["bssid"] = self.bssid_map[0]["5g"][ap1_network["SSID"]]
ap2_network["bssid"] = self.bssid_map[1]["5g"][ap2_network["SSID"]]
self.roaming_from_AP1_and_AP2(ap1_network, ap2_network)
@test_tracker_info(uuid="496e048a-3da5-45c4-aa0f-c5bd127eb06f")
def test_roaming_between_psk_withPMF_5g(self):
"""Verify psk with PMF when after roaming with OpenWrtAP
Steps:
1. Configure 2 APs with PMF
2. Connect DUT to AP1
3. Roam to AP2
4. Verify the DUT can connect after roaming
"""
# Use OpenWrt as Wi-Fi AP when it's available in testbed.
asserts.skip_if("OpenWrtAP" not in self.user_params, "OpenWrtAP not in user_params")
self.configure_openwrt_ap_and_start(wpa_network=True,
ap_count=2,
mirror_ap=True,
ieee80211w=2)
ap1_network = self.reference_networks[0]["5g"]
ap2_network = self.reference_networks[1]["5g"]
# Get & Setup APs' BSSIDs.
ap1_network["bssid"] = self.bssid_map[0]["5g"][ap1_network["SSID"]]
ap2_network["bssid"] = self.bssid_map[1]["5g"][ap2_network["SSID"]]
self.roaming_from_AP1_and_AP2(ap1_network, ap2_network)
@test_tracker_info(uuid="524c97c5-4bca-46b0-97f9-aad749768cd8")
def test_roaming_between_psk_wPMF_to_psk_woPMF_5g(self):
"""Verify psk with/without PMF when after roaming with OpenWrtAP
Steps:
1. Configure 2 APs without PMF
2. Configure AP1 with PMF
3. Connect DUT to AP1
4. Roam to AP2
5. Verify the DUT can connect after roaming
"""
# Use OpenWrt as Wi-Fi AP when it's available in testbed.
asserts.skip_if("OpenWrtAP" not in self.user_params, "OpenWrtAP not in user_params")
self.configure_openwrt_ap_and_start(wpa_network=True,
ap_count=2,
mirror_ap=True,
ieee80211w=0)
self.openwrt1 = self.access_points[0]
self.openwrt2 = self.access_points[1]
ap1_network = self.reference_networks[0]["5g"]
ap2_network = self.reference_networks[1]["5g"]
# Get & Setup APs' BSSIDs.
ap1_network["bssid"] = self.bssid_map[0]["5g"][ap1_network["SSID"]]
ap2_network["bssid"] = self.bssid_map[1]["5g"][ap2_network["SSID"]]
# Configure AP1 to enable PMF.
self.configure_openwrt_ap_and_start(wpa_network=True,
ieee80211w=2)
ap1_network = self.reference_networks[0]["5g"]
ap1_network["bssid"] = self.bssid_map[0]["5g"][ap1_network["SSID"]]
# Change AP2 password and SSID same as AP1.
self.openwrt2.set_password(pwd_5g=ap1_network["password"])
self.openwrt2.set_ssid(ssid_5g=ap1_network["SSID"])
ap2_network["SSID"] = ap1_network["SSID"]
ap2_network["password"] = ap1_network["password"]
self.roaming_from_AP1_and_AP2(ap1_network, ap2_network)
@test_tracker_info(uuid="714ceac1-d8af-4679-9385-2c9c6d885634")
def test_roaming_between_psk_woPMF_to_psk_wPMF_5g(self):
"""Verify psk without/with PMF when after roaming with OpenWrtAP
Steps:
1. Configure 2 APs with PMF
2. Configure AP1 without PMF
3. Connect DUT to AP1
4. Roam to AP2
5. Verify the DUT can connect after roaming
"""
# Use OpenWrt as Wi-Fi AP when it's available in testbed.
asserts.skip_if("OpenWrtAP" not in self.user_params, "OpenWrtAP not in user_params")
self.configure_openwrt_ap_and_start(wpa_network=True,
ap_count=2,
mirror_ap=True,
ieee80211w=2)
self.openwrt1 = self.access_points[0]
self.openwrt2 = self.access_points[1]
ap1_network = self.reference_networks[0]["5g"]
ap2_network = self.reference_networks[1]["5g"]
# Get & Setup APs' BSSIDs.
ap1_network["bssid"] = self.bssid_map[0]["5g"][ap1_network["SSID"]]
ap2_network["bssid"] = self.bssid_map[1]["5g"][ap2_network["SSID"]]
# Configure AP1 to disable PMF.
self.configure_openwrt_ap_and_start(wpa_network=True,
ieee80211w=0)
ap1_network = self.reference_networks[0]["5g"]
ap1_network["bssid"] = self.bssid_map[0]["5g"][ap1_network["SSID"]]
# Change AP2 password and SSID same as AP1.
self.openwrt2.set_password(pwd_5g=ap1_network["password"])
self.openwrt2.set_ssid(ssid_5g=ap1_network["SSID"])
ap2_network["SSID"] = ap1_network["SSID"]
ap2_network["password"] = ap1_network["password"]
self.roaming_from_AP1_and_AP2(ap1_network, ap2_network)
@test_tracker_info(uuid="4b201d7b-38ec-49c2-95c3-81cba51ba11d")
def test_roaming_between_psk_capablePMF_5g(self):
"""Verify psk capable PMF when after roaming with OpenWrtAP
Steps:
1. Configure 2 APs with capable PMF
2. Connect DUT to AP1
3. Roam to AP2
4. Verify the DUT can connect after roaming
"""
# Use OpenWrt as Wi-Fi AP when it's available in testbed.
asserts.skip_if("OpenWrtAP" not in self.user_params, "OpenWrtAP not in user_params")
self.configure_openwrt_ap_and_start(wpa_network=True,
ap_count=2,
mirror_ap=True,
ieee80211w=1)
ap1_network = self.reference_networks[0]["5g"]
ap2_network = self.reference_networks[1]["5g"]
# Get & Setup APs' BSSIDs.
ap1_network["bssid"] = self.bssid_map[0]["5g"][ap1_network["SSID"]]
ap2_network["bssid"] = self.bssid_map[1]["5g"][ap2_network["SSID"]]
self.roaming_from_AP1_and_AP2(ap1_network, ap2_network)
@test_tracker_info(uuid="588a9279-1f84-44d2-acbb-051c5ba0bcb1")
def test_roaming_between_psk_capPMF_to_psk_woPMF_5g(self):
"""Verify psk capable/without PMF when after roaming with OpenWrtAP
Steps:
1. Configure 2 APs without PMF
2. Configure AP1 with capable PMF
3. Connect DUT to AP1
4. Roam to AP2
5. Verify the DUT can connect after roaming
"""
# Use OpenWrt as Wi-Fi AP when it's available in testbed.
asserts.skip_if("OpenWrtAP" not in self.user_params, "OpenWrtAP not in user_params")
self.configure_openwrt_ap_and_start(wpa_network=True,
ap_count=2,
mirror_ap=True,
ieee80211w=0)
self.openwrt1 = self.access_points[0]
self.openwrt2 = self.access_points[1]
ap1_network = self.reference_networks[0]["5g"]
ap2_network = self.reference_networks[1]["5g"]
# Get & Setup APs' BSSIDs.
ap1_network["bssid"] = self.bssid_map[0]["5g"][ap1_network["SSID"]]
ap2_network["bssid"] = self.bssid_map[1]["5g"][ap2_network["SSID"]]
# Configure AP1 to enable capable PMF.
self.configure_openwrt_ap_and_start(wpa_network=True,
ieee80211w=1)
ap1_network = self.reference_networks[0]["5g"]
ap1_network["bssid"] = self.bssid_map[0]["5g"][ap1_network["SSID"]]
# Change AP2 password and SSID same as AP1.
self.openwrt2.set_password(pwd_5g=ap1_network["password"])
self.openwrt2.set_ssid(ssid_5g=ap1_network["SSID"])
ap2_network["SSID"] = ap1_network["SSID"]
ap2_network["password"] = ap1_network["password"]
self.roaming_from_AP1_and_AP2(ap1_network, ap2_network)
@test_tracker_info(uuid="d239b56d-515c-4589-b63a-ebce62c321af")
def test_roaming_between_psk_capPMF_to_psk_wPMF_5g(self):
"""Verify psk capable/with PMF when after roaming with OpenWrtAP
Steps:
1. Configure 2 APs with PMF
2. Configure AP1 with capable PMF
3. Connect DUT to AP1
4. Roam to AP2
5. Verify the DUT can connect after roaming
"""
# Use OpenWrt as Wi-Fi AP when it's available in testbed.
asserts.skip_if("OpenWrtAP" not in self.user_params, "OpenWrtAP not in user_params")
self.configure_openwrt_ap_and_start(wpa_network=True,
ap_count=2,
mirror_ap=True,
ieee80211w=2)
self.openwrt1 = self.access_points[0]
self.openwrt2 = self.access_points[1]
ap1_network = self.reference_networks[0]["5g"]
ap2_network = self.reference_networks[1]["5g"]
# Get & Setup APs' BSSIDs.
ap1_network["bssid"] = self.bssid_map[0]["5g"][ap1_network["SSID"]]
ap2_network["bssid"] = self.bssid_map[1]["5g"][ap2_network["SSID"]]
# Configure AP1 to enable capable PMF.
self.configure_openwrt_ap_and_start(wpa_network=True,
ieee80211w=1)
ap1_network = self.reference_networks[0]["5g"]
ap1_network["bssid"] = self.bssid_map[0]["5g"][ap1_network["SSID"]]
# Change AP2 password and SSID same as AP1.
self.openwrt2.set_password(pwd_5g=ap1_network["password"])
self.openwrt2.set_ssid(ssid_5g=ap1_network["SSID"])
ap2_network["SSID"] = ap1_network["SSID"]
ap2_network["password"] = ap1_network["password"]
self.roaming_from_AP1_and_AP2(ap1_network, ap2_network)
@test_tracker_info(uuid="57ec9401-b336-40cb-bc46-c2b4cfc22516")
def test_roaming_between_psk_wPMF_to_psk_capPMF_5g(self):
"""Verify psk with/capable PMF when after roaming with OpenWrtAP
Steps:
1. Configure 2 APs with capable PMF
2. Configure AP1 with PMF
3. Connect DUT to AP1
4. Roam to AP2
5. Verify the DUT can connect after roaming
"""
# Use OpenWrt as Wi-Fi AP when it's available in testbed.
asserts.skip_if("OpenWrtAP" not in self.user_params, "OpenWrtAP not in user_params")
self.configure_openwrt_ap_and_start(wpa_network=True,
ap_count=2,
mirror_ap=True,
ieee80211w=1)
self.openwrt1 = self.access_points[0]
self.openwrt2 = self.access_points[1]
ap1_network = self.reference_networks[0]["5g"]
ap2_network = self.reference_networks[1]["5g"]
# Get & Setup APs' BSSIDs.
ap1_network["bssid"] = self.bssid_map[0]["5g"][ap1_network["SSID"]]
ap2_network["bssid"] = self.bssid_map[1]["5g"][ap2_network["SSID"]]
# Configure AP1 to enable PMF.
self.configure_openwrt_ap_and_start(wpa_network=True,
ieee80211w=2)
ap1_network = self.reference_networks[0]["5g"]
ap1_network["bssid"] = self.bssid_map[0]["5g"][ap1_network["SSID"]]
# Change AP2 password and SSID same as AP1.
self.openwrt2.set_password(pwd_5g=ap1_network["password"])
self.openwrt2.set_ssid(ssid_5g=ap1_network["SSID"])
ap2_network["SSID"] = ap1_network["SSID"]
ap2_network["password"] = ap1_network["password"]
self.roaming_from_AP1_and_AP2(ap1_network, ap2_network)
@test_tracker_info(uuid="a32d24f0-36cc-41f0-90b4-db74973db29f")
def test_roaming_between_psk_woPMF_to_psk_capPMF_5g(self):
"""Verify psk without/capable PMF when after roaming with OpenWrtAP
Steps:
1. Configure 2 APs with capable PMF
2. Configure AP1 without PMF
3. Connect DUT to AP1
4. Roam to AP2
5. Verify the DUT can connect after roaming
"""
# Use OpenWrt as Wi-Fi AP when it's available in testbed.
asserts.skip_if("OpenWrtAP" not in self.user_params, "OpenWrtAP not in user_params")
self.configure_openwrt_ap_and_start(wpa_network=True,
ap_count=2,
mirror_ap=True,
ieee80211w=1)
self.openwrt1 = self.access_points[0]
self.openwrt2 = self.access_points[1]
ap1_network = self.reference_networks[0]["5g"]
ap2_network = self.reference_networks[1]["5g"]
# Get & Setup APs' BSSIDs.
ap1_network["bssid"] = self.bssid_map[0]["5g"][ap1_network["SSID"]]
ap2_network["bssid"] = self.bssid_map[1]["5g"][ap2_network["SSID"]]
# Configure AP1 to disable PMF.
self.configure_openwrt_ap_and_start(wpa_network=True,
ieee80211w=0)
ap1_network = self.reference_networks[0]["5g"]
ap1_network["bssid"] = self.bssid_map[0]["5g"][ap1_network["SSID"]]
# Change AP2 password and SSID same as AP1.
self.openwrt2.set_password(pwd_5g=ap1_network["password"])
self.openwrt2.set_ssid(ssid_5g=ap1_network["SSID"])
ap2_network["SSID"] = ap1_network["SSID"]
ap2_network["password"] = ap1_network["password"]
self.roaming_from_AP1_and_AP2(ap1_network, ap2_network)
@test_tracker_info(uuid="44f45dc9-e85c-419d-bbab-d02e9548a377")
def test_roaming_between_psk_to_saemixed_woPMF_5g(self):
"""Verify psk to saemixed without PMF when after roaming with OpenWrtAP
Steps:
1. Configure 2 APs security type to saemixed without PMF
2. Configure AP1 security type to psk
3. Connect DUT to AP1
4. Roam to AP2
5. Verify the DUT can connect after roaming
"""
# Use OpenWrt as Wi-Fi AP when it's available in testbed.
asserts.skip_if("OpenWrtAP" not in self.user_params, "OpenWrtAP not in user_params")
self.configure_openwrt_ap_and_start(saemixed_network=True,
ap_count=2,
mirror_ap=True,
ieee80211w=0)
self.openwrt1 = self.access_points[0]
self.openwrt2 = self.access_points[1]
ap1_network = self.saemixed_networks[0]["5g"]
ap2_network = self.saemixed_networks[1]["5g"]
# Get & Setup APs' BSSIDs.
ap1_network["bssid"] = self.bssid_map[0]["5g"][ap1_network["SSID"]]
ap2_network["bssid"] = self.bssid_map[1]["5g"][ap2_network["SSID"]]
# Configure AP1 security type.
self.configure_openwrt_ap_and_start(wpa_network=True)
ap1_network = self.reference_networks[0]["5g"]
ap1_network["bssid"] = self.bssid_map[0]["5g"][ap1_network["SSID"]]
# Change AP2 password and SSID same as AP1.
self.openwrt2.set_password(pwd_5g=ap1_network["password"])
self.openwrt2.set_ssid(ssid_5g=ap1_network["SSID"])
ap2_network["SSID"] = ap1_network["SSID"]
ap2_network["password"] = ap1_network["password"]
self.roaming_from_AP1_and_AP2(ap1_network, ap2_network)
@test_tracker_info(uuid="9827f3b3-51cd-406b-ba2b-3ef4a9df7378")
def test_roaming_between_psk_to_saemixed_wPMF_5g(self):
"""Verify psk to saemixed with PMF when after roaming with OpenWrtAP
Steps:
1. Configure 2 APs security type to saemixed with PMF
2. Configure AP1 security type to psk
3. Connect DUT to AP1
4. Roam to AP2
5. Verify the DUT can connect after roaming
"""
# Use OpenWrt as Wi-Fi AP when it's available in testbed.
asserts.skip_if("OpenWrtAP" not in self.user_params, "OpenWrtAP not in user_params")
self.configure_openwrt_ap_and_start(saemixed_network=True,
ap_count=2,
mirror_ap=True,
ieee80211w=2)
self.openwrt1 = self.access_points[0]
self.openwrt2 = self.access_points[1]
ap1_network = self.saemixed_networks[0]["5g"]
ap2_network = self.saemixed_networks[1]["5g"]
# Get & Setup APs' BSSIDs.
ap1_network["bssid"] = self.bssid_map[0]["5g"][ap1_network["SSID"]]
ap2_network["bssid"] = self.bssid_map[1]["5g"][ap2_network["SSID"]]
# Configure AP1 security type.
self.configure_openwrt_ap_and_start(wpa_network=True)
ap1_network = self.reference_networks[0]["5g"]
ap1_network["bssid"] = self.bssid_map[0]["5g"][ap1_network["SSID"]]
# Change AP2 password and SSID same as AP1.
self.openwrt2.set_password(pwd_5g=ap1_network["password"])
self.openwrt2.set_ssid(ssid_5g=ap1_network["SSID"])
ap2_network["SSID"] = ap1_network["SSID"]
ap2_network["password"] = ap1_network["password"]
self.roaming_from_AP1_and_AP2(ap1_network, ap2_network)
@test_tracker_info(uuid="037602b1-2ce8-4dbb-b46a-00e0a582d976")
def test_roaming_between_saemixed_withoutPMF_5g(self):
"""Verify saemixed without PMF when after roaming with OpenWrtAP
Steps:
1. Configure 2 APs to saemixed without PMF
2. Connect DUT to AP1
3. Roam to AP2
4. Verify the DUT can connect after roaming
"""
# Use OpenWrt as Wi-Fi AP when it's available in testbed.
asserts.skip_if("OpenWrtAP" not in self.user_params, "OpenWrtAP not in user_params")
self.configure_openwrt_ap_and_start(saemixed_network=True,
ap_count=2,
mirror_ap=True,
ieee80211w=0)
ap1_network = self.saemixed_networks[0]["5g"]
ap2_network = self.saemixed_networks[1]["5g"]
# Get & Setup APs' BSSIDs.
ap1_network["bssid"] = self.bssid_map[0]["5g"][ap1_network["SSID"]]
ap2_network["bssid"] = self.bssid_map[1]["5g"][ap2_network["SSID"]]
self.roaming_from_AP1_and_AP2(ap1_network, ap2_network)
@test_tracker_info(uuid="94514f72-9e90-4d73-bba5-65b95e721cd8")
def test_roaming_between_saemixed_withPMF_5g(self):
"""Verify saemixed with PMF when after roaming with OpenWrtAP
Steps:
1. Configure 2 APs to saemixed with PMF
2. Connect DUT to AP1
3. Roam to AP2
4. Verify the DUT can connect after roaming
"""
# Use OpenWrt as Wi-Fi AP when it's available in testbed.
asserts.skip_if("OpenWrtAP" not in self.user_params, "OpenWrtAP not in user_params")
self.configure_openwrt_ap_and_start(saemixed_network=True,
ap_count=2,
mirror_ap=True,
ieee80211w=2)
ap1_network = self.saemixed_networks[0]["5g"]
ap2_network = self.saemixed_networks[1]["5g"]
# Get & Setup APs' BSSIDs.
ap1_network["bssid"] = self.bssid_map[0]["5g"][ap1_network["SSID"]]
ap2_network["bssid"] = self.bssid_map[1]["5g"][ap2_network["SSID"]]
self.roaming_from_AP1_and_AP2(ap1_network, ap2_network)
@test_tracker_info(uuid="05834382-5c3f-48d9-a6e6-8794ebf176f8")
def test_roaming_between_saemixed_woPMF_to_saemixed_wPMF_5g(self):
"""Verify saemixed without/with PMF when after roaming with OpenWrtAP
Steps:
1. Configure 2 APs to saemixed with PMF
2. Configure AP1 to saemixed without PMF
3. Connect DUT to AP1
4. Roam to AP2
5. Verify the DUT can connect after roaming
"""
# Use OpenWrt as Wi-Fi AP when it's available in testbed.
asserts.skip_if("OpenWrtAP" not in self.user_params, "OpenWrtAP not in user_params")
self.configure_openwrt_ap_and_start(saemixed_network=True,
ap_count=2,
mirror_ap=True,
ieee80211w=2)
self.openwrt1 = self.access_points[0]
self.openwrt2 = self.access_points[1]
ap1_network = self.saemixed_networks[0]["5g"]
ap2_network = self.saemixed_networks[1]["5g"]
# Get & Setup APs' BSSIDs.
ap1_network["bssid"] = self.bssid_map[0]["5g"][ap1_network["SSID"]]
ap2_network["bssid"] = self.bssid_map[1]["5g"][ap2_network["SSID"]]
# Configure AP1 to disable PMF.
self.configure_openwrt_ap_and_start(saemixed_network=True,
ieee80211w=0)
ap1_network = self.saemixed_networks[0]["5g"]
ap1_network["bssid"] = self.bssid_map[0]["5g"][ap1_network["SSID"]]
# Change AP2 password and SSID same as AP1.
self.openwrt2.set_password(pwd_5g=ap1_network["password"])
self.openwrt2.set_ssid(ssid_5g=ap1_network["SSID"])
ap2_network["SSID"] = ap1_network["SSID"]
ap2_network["password"] = ap1_network["password"]
self.roaming_from_AP1_and_AP2(ap1_network, ap2_network)
@test_tracker_info(uuid="4d7cba89-40f1-4a2a-891d-4bb757f73442")
def test_roaming_between_saemixed_wPMF_to_saemixed_woPMF_5g(self):
"""Verify saemixed with/without PMF when after roaming with OpenWrtAP
Steps:
1. Configure 2 APs to saemixed without PMF
2. Configure AP1 to saemixed with PMF
3. Connect DUT to AP1
4. Roam to AP2
5. Verify the DUT can connect after roaming
"""
# Use OpenWrt as Wi-Fi AP when it's available in testbed.
asserts.skip_if("OpenWrtAP" not in self.user_params, "OpenWrtAP not in user_params")
self.configure_openwrt_ap_and_start(saemixed_network=True,
ap_count=2,
mirror_ap=True,
ieee80211w=0)
self.openwrt1 = self.access_points[0]
self.openwrt2 = self.access_points[1]
ap1_network = self.saemixed_networks[0]["5g"]
ap2_network = self.saemixed_networks[1]["5g"]
# Get & Setup APs' BSSIDs.
ap1_network["bssid"] = self.bssid_map[0]["5g"][ap1_network["SSID"]]
ap2_network["bssid"] = self.bssid_map[1]["5g"][ap2_network["SSID"]]
# Configure AP1 to enable PMF.
self.configure_openwrt_ap_and_start(saemixed_network=True,
ieee80211w=2)
ap1_network = self.saemixed_networks[0]["5g"]
ap1_network["bssid"] = self.bssid_map[0]["5g"][ap1_network["SSID"]]
# Change AP2 password and SSID same as AP1.
self.openwrt2.set_password(pwd_5g=ap1_network["password"])
self.openwrt2.set_ssid(ssid_5g=ap1_network["SSID"])
ap2_network["SSID"] = ap1_network["SSID"]
ap2_network["password"] = ap1_network["password"]
self.roaming_from_AP1_and_AP2(ap1_network, ap2_network)
@test_tracker_info(uuid="57caaf0a-5251-4191-b4d1-de31d7c12295")
def test_roaming_between_sae_to_saemixed_woPMF_5g(self):
"""Verify sae to saemixed without PMF when after roaming with OpenWrtAP
Steps:
1. Configure 2 APs security type to saemixed without PMF
2. Configure AP1 security type to sae
3. Connect DUT to AP1
4. Roam to AP2
5. Verify the DUT can connect after roaming
"""
# Use OpenWrt as Wi-Fi AP when it's available in testbed.
asserts.skip_if("OpenWrtAP" not in self.user_params, "OpenWrtAP not in user_params")
self.configure_openwrt_ap_and_start(saemixed_network=True,
ap_count=2,
mirror_ap=True,
ieee80211w=0)
self.openwrt1 = self.access_points[0]
self.openwrt2 = self.access_points[1]
ap1_network = self.saemixed_networks[0]["5g"]
ap2_network = self.saemixed_networks[1]["5g"]
# Get & Setup APs' BSSIDs.
ap1_network["bssid"] = self.bssid_map[0]["5g"][ap1_network["SSID"]]
ap2_network["bssid"] = self.bssid_map[1]["5g"][ap2_network["SSID"]]
# Configure AP1 security type.
self.configure_openwrt_ap_and_start(sae_network=True)
ap1_network = self.sae_networks[0]["5g"]
ap1_network["bssid"] = self.bssid_map[0]["5g"][ap1_network["SSID"]]
# Change AP2 password and SSID same as AP1.
self.openwrt2.set_password(pwd_5g=ap1_network["password"])
self.openwrt2.set_ssid(ssid_5g=ap1_network["SSID"])
ap2_network["SSID"] = ap1_network["SSID"]
ap2_network["password"] = ap1_network["password"]
self.roaming_from_AP1_and_AP2(ap1_network, ap2_network)
@test_tracker_info(uuid="0f5ca9d9-ef40-4a95-bf55-4c78358a9a3e")
def test_roaming_between_sae_to_saemixed_wPMF_5g(self):
"""Verify sae to saemixed with PMF when after roaming with OpenWrtAP
Steps:
1. Configure 2 APs security type to saemixed with PMF
2. Configure AP1 security type to sae
3. Connect DUT to AP1
4. Roam to AP2
5. Verify the DUT can connect after roaming
"""
# Use OpenWrt as Wi-Fi AP when it's available in testbed.
asserts.skip_if("OpenWrtAP" not in self.user_params, "OpenWrtAP not in user_params")
self.configure_openwrt_ap_and_start(saemixed_network=True,
ap_count=2,
mirror_ap=True,
ieee80211w=2)
self.openwrt1 = self.access_points[0]
self.openwrt2 = self.access_points[1]
ap1_network = self.saemixed_networks[0]["5g"]
ap2_network = self.saemixed_networks[1]["5g"]
# Get & Setup APs' BSSIDs.
ap1_network["bssid"] = self.bssid_map[0]["5g"][ap1_network["SSID"]]
ap2_network["bssid"] = self.bssid_map[1]["5g"][ap2_network["SSID"]]
# Configure AP1 security type.
self.configure_openwrt_ap_and_start(sae_network=True)
ap1_network = self.sae_networks[0]["5g"]
ap1_network["bssid"] = self.bssid_map[0]["5g"][ap1_network["SSID"]]
# Change AP2 password and SSID same as AP1.
self.openwrt2.set_password(pwd_5g=ap1_network["password"])
self.openwrt2.set_ssid(ssid_5g=ap1_network["SSID"])
ap2_network["SSID"] = ap1_network["SSID"]
ap2_network["password"] = ap1_network["password"]
self.roaming_from_AP1_and_AP2(ap1_network, ap2_network)
@test_tracker_info(uuid="e875233f-d242-4ddd-b357-8e3e215af050")
def test_roaming_between_psk_to_sae_5g(self):
"""Verify fail with diff security type after roaming with OpenWrtAP
This test will pass after design change but this is not seamless roaming.
Steps:
1. Configure 2 APs security type to sae
2. Configure AP1 security type to psk
3. Connect DUT to AP1
4. Roam to AP2
5. Verify the DUT connect to AP2 after roaming
"""
# Use OpenWrt as Wi-Fi AP when it's available in testbed.
asserts.skip_if("OpenWrtAP" not in self.user_params, "OpenWrtAP not in user_params")
self.configure_openwrt_ap_and_start(sae_network=True,
ap_count=2,
mirror_ap=True)
self.openwrt1 = self.access_points[0]
self.openwrt2 = self.access_points[1]
ap1_network = self.sae_networks[0]["5g"]
ap2_network = self.sae_networks[1]["5g"]
# Get & Setup APs' BSSIDs.
ap1_network["bssid"] = self.bssid_map[0]["5g"][ap1_network["SSID"]]
ap2_network["bssid"] = self.bssid_map[1]["5g"][ap2_network["SSID"]]
# Configure AP1 security type.
self.configure_openwrt_ap_and_start(wpa_network=True)
ap1_network = self.reference_networks[0]["5g"]
ap1_network["bssid"] = self.bssid_map[0]["5g"][ap1_network["SSID"]]
# Change AP2 password and SSID same as AP1.
self.openwrt2.set_password(pwd_5g=ap1_network["password"])
self.openwrt2.set_ssid(ssid_5g=ap1_network["SSID"])
ap2_network["SSID"] = ap1_network["SSID"]
ap2_network["password"] = ap1_network["password"]
# DUT roaming from AP1 to AP2 with diff security type.
# Expect device disconnect from AP1 and connect to AP2 due to
# saved network contain AP2.
self.roaming_from_AP1_and_AP2(ap1_network, ap2_network)
@test_tracker_info(uuid="76098016-56a4-4b92-8c13-7333a21c9a1b")
def test_roaming_between_psk_to_saemixed_2g(self):
"""Verify psk to saemixed with 11n when after roaming with OpenWrtAP
Steps:
1. Configure 2 APs security type to saemixed with 11n mode
2. Configure AP1 security type to psk with 11n mode
3. Connect DUT to AP1
4. Roam to AP2
5. Verify the DUT can connect after roaming
"""
# Use OpenWrt as Wi-Fi AP when it's available in testbed.
asserts.skip_if("OpenWrtAP" not in self.user_params, "OpenWrtAP not in user_params")
self.configure_openwrt_ap_and_start(saemixed_network=True,
ap_count=2,
mirror_ap=True)
self.openwrt1 = self.access_points[0]
self.openwrt2 = self.access_points[1]
ap1_network = self.saemixed_networks[0]["2g"]
ap2_network = self.saemixed_networks[1]["2g"]
# Get & Setup APs' BSSIDs.
ap1_network["bssid"] = self.bssid_map[0]["2g"][ap1_network["SSID"]]
ap2_network["bssid"] = self.bssid_map[1]["2g"][ap2_network["SSID"]]
# Configure AP1 security type.
self.configure_openwrt_ap_and_start(wpa_network=True)
ap1_network = self.reference_networks[0]["2g"]
ap1_network["bssid"] = self.bssid_map[0]["2g"][ap1_network["SSID"]]
# Change AP2 password and SSID same as AP1.
self.openwrt2.set_password(pwd_2g=ap1_network["password"])
self.openwrt2.set_ssid(ssid_2g=ap1_network["SSID"])
ap2_network["SSID"] = ap1_network["SSID"]
ap2_network["password"] = ap1_network["password"]
self.roaming_from_AP1_and_AP2(ap1_network, ap2_network)
@test_tracker_info(uuid="2caf668d-6b05-4ba5-ac6b-1ec989fdf9ff")
def test_roaming_between_psk1_to_saemixed_2g(self):
"""Verify psk1 to saemixed with 11n when after roaming with OpenWrtAP
Steps:
1. Configure 2 APs security type to saemixed with 11n mode
2. Configure AP1 security type to psk1 with 11n mode
3. Connect DUT to AP1
4. Roam to AP2
5. Verify the DUT can connect after roaming
"""
# Use OpenWrt as Wi-Fi AP when it's available in testbed.
asserts.skip_if("OpenWrtAP" not in self.user_params, "OpenWrtAP not in user_params")
self.configure_openwrt_ap_and_start(saemixed_network=True,
ap_count=2,
mirror_ap=True)
self.openwrt1 = self.access_points[0]
self.openwrt2 = self.access_points[1]
ap1_network = self.saemixed_networks[0]["2g"]
ap2_network = self.saemixed_networks[1]["2g"]
# Get & Setup APs' BSSIDs.
ap1_network["bssid"] = self.bssid_map[0]["2g"][ap1_network["SSID"]]
ap2_network["bssid"] = self.bssid_map[1]["2g"][ap2_network["SSID"]]
# Configure AP1 security type.
self.configure_openwrt_ap_and_start(wpa1_network=True)
ap1_network = self.wpa1_networks[0]["2g"]
ap1_network["bssid"] = self.bssid_map[0]["2g"][ap1_network["SSID"]]
# Change AP2 password and SSID same as AP1.
self.openwrt2.set_password(pwd_2g=ap1_network["password"])
self.openwrt2.set_ssid(ssid_2g=ap1_network["SSID"])
ap2_network["SSID"] = ap1_network["SSID"]
ap2_network["password"] = ap1_network["password"]
self.roaming_from_AP1_and_AP2(ap1_network, ap2_network)
@test_tracker_info(uuid="cc8781ec-12fb-47a4-86d4-80d13231c75d")
def test_connect_to_wpa2_psk_2g_80211r(self):
"""Test WPA2-PSK 802.11r 2G connectivity ant roaming."""
if "OpenWrtAP" in self.user_params:
self.openwrt1 = self.access_points[0]
self.openwrt2 = self.access_points[1]
self.configure_openwrt_ap_and_start(wpa_network=True,
ap_count=2,
mirror_ap=True)
ap1_network = self.reference_networks[0]["2g"]
ap2_network = self.reference_networks[1]["2g"]
ap1_network["bssid"] = self.bssid_map[0]["2g"][ap1_network["SSID"]]
ap2_network["bssid"] = self.bssid_map[1]["2g"][ap2_network["SSID"]]
md = self.openwrt1.generate_mobility_domain()
self.openwrt1.enable_80211r(OpenWrtWifiSetting.IFACE_2G, md)
self.openwrt2.enable_80211r(OpenWrtWifiSetting.IFACE_2G, md)
self.roaming_from_AP1_and_AP2(ap1_network, ap2_network)
@test_tracker_info(uuid="8b0ee65e-bba2-4786-a8b9-8990316d123d")
def test_connect_to_wpa2_psk_5g_80211r(self):
"""Test WPA2-PSK 802.11r 5G connectivity and roaming."""
if "OpenWrtAP" in self.user_params:
self.openwrt1 = self.access_points[0]
self.openwrt2 = self.access_points[1]
self.configure_openwrt_ap_and_start(wpa_network=True,
ap_count=2,
mirror_ap=True)
ap1_network = self.reference_networks[0]["5g"]
ap2_network = self.reference_networks[1]["5g"]
ap1_network["bssid"] = self.bssid_map[0]["5g"][ap1_network["SSID"]]
ap2_network["bssid"] = self.bssid_map[1]["5g"][ap2_network["SSID"]]
md = self.openwrt1.generate_mobility_domain()
self.openwrt1.enable_80211r(OpenWrtWifiSetting.IFACE_5G, md)
self.openwrt2.enable_80211r(OpenWrtWifiSetting.IFACE_5G, md)
self.roaming_from_AP1_and_AP2(ap1_network, ap2_network)