blob: 3dac3f99177625e6f983df363dee190607376b4d [file] [log] [blame]
#!/usr/bin/env python3
#
# Copyright 2019 - 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.
from acts import asserts
from acts import utils
from acts.controllers.access_point import setup_ap
from acts.controllers.ap_lib import hostapd_ap_preset
from acts.controllers.ap_lib import hostapd_constants
from acts_contrib.test_utils.abstract_devices.wlan_device import create_wlan_device
from acts_contrib.test_utils.abstract_devices.wlan_device_lib.AbstractDeviceWlanDeviceBaseTest import AbstractDeviceWlanDeviceBaseTest
from acts_contrib.test_utils.wifi.WifiBaseTest import WifiBaseTest
class WlanPhyComplianceABGTest(AbstractDeviceWlanDeviceBaseTest):
"""Tests for validating 11a, 11b, and 11g PHYS.
Test Bed Requirement:
* One Android device or Fuchsia device
* One Access Point
"""
def setup_class(self):
super().setup_class()
if 'dut' in self.user_params:
if self.user_params['dut'] == 'fuchsia_devices':
self.dut = create_wlan_device(self.fuchsia_devices[0])
elif self.user_params['dut'] == 'android_devices':
self.dut = create_wlan_device(self.android_devices[0])
else:
raise ValueError('Invalid DUT specified in config. (%s)' %
self.user_params['dut'])
else:
# Default is an android device, just like the other tests
self.dut = create_wlan_device(self.android_devices[0])
self.access_point = self.access_points[0]
open_network = self.get_open_network(False, [])
open_network_min_len = self.get_open_network(
False, [],
ssid_length_2g=hostapd_constants.AP_SSID_MIN_LENGTH_2G,
ssid_length_5g=hostapd_constants.AP_SSID_MIN_LENGTH_5G)
open_network_max_len = self.get_open_network(
False, [],
ssid_length_2g=hostapd_constants.AP_SSID_MAX_LENGTH_2G,
ssid_length_5g=hostapd_constants.AP_SSID_MAX_LENGTH_5G)
self.open_network_2g = open_network['2g']
self.open_network_5g = open_network['5g']
self.open_network_max_len_2g = open_network_max_len['2g']
self.open_network_max_len_2g['SSID'] = (
self.open_network_max_len_2g['SSID'][3:])
self.open_network_max_len_5g = open_network_max_len['5g']
self.open_network_max_len_5g['SSID'] = (
self.open_network_max_len_5g['SSID'][3:])
self.open_network_min_len_2g = open_network_min_len['2g']
self.open_network_min_len_2g['SSID'] = (
self.open_network_min_len_2g['SSID'][3:])
self.open_network_min_len_5g = open_network_min_len['5g']
self.open_network_min_len_5g['SSID'] = (
self.open_network_min_len_5g['SSID'][3:])
self.utf8_ssid_2g = '2𝔤_𝔊𝔬𝔬𝔤𝔩𝔢'
self.utf8_ssid_5g = '5𝔤_𝔊𝔬𝔬𝔤𝔩𝔢'
self.utf8_ssid_2g_french = 'Château du Feÿ'
self.utf8_password_2g_french = 'du Feÿ Château'
self.utf8_ssid_2g_german = 'Rat für Straßenatlas'
self.utf8_password_2g_german = 'für Straßenatlas Rat'
self.utf8_ssid_2g_dutch = 'Die niet óúd, is níéuw!'
self.utf8_password_2g_dutch = 'niet óúd, is níéuw! Die'
self.utf8_ssid_2g_swedish = 'Det är femtioåtta'
self.utf8_password_2g_swedish = 'femtioåtta Det är'
self.utf8_ssid_2g_norwegian = 'Curaçao ØÆ æ å å å'
self.utf8_password_2g_norwegian = 'ØÆ Curaçao æ å å å'
#Danish and Norwegian has the same alphabet
self.utf8_ssid_2g_danish = self.utf8_ssid_2g_norwegian
self.utf8_password_2g_danish = self.utf8_password_2g_norwegian
self.utf8_ssid_2g_japanese = 'あなた はお母さん'
self.utf8_password_2g_japanese = 'そっくりね。あな'
self.utf8_ssid_2g_spanish = '¡No á,é,í,ó,ú,ü,ñ,¿,¡'
self.utf8_password_2g_spanish = 'á,é,í,ó,ú,ü,ñ,¿,¡ ¡No'
self.utf8_ssid_2g_italian = 'caffè Pinocchio è italiano?'
self.utf8_password_2g_italian = 'Pinocchio è italiano? caffè'
self.utf8_ssid_2g_korean = 'ㅘㅙㅚㅛㅜㅝㅞㅟㅠ'
self.utf8_password_2g_korean = 'ㅜㅝㅞㅟㅠㅘㅙㅚㅛ'
self.access_point.stop_all_aps()
def setup_test(self):
if hasattr(self, "android_devices"):
for ad in self.android_devices:
ad.droid.wakeLockAcquireBright()
ad.droid.wakeUpNow()
self.dut.wifi_toggle_state(True)
def teardown_test(self):
if hasattr(self, "android_devices"):
for ad in self.android_devices:
ad.droid.wakeLockRelease()
ad.droid.goToSleepNow()
self.dut.turn_location_off_and_scan_toggle_off()
self.dut.disconnect()
self.dut.reset_wifi()
self.access_point.stop_all_aps()
def on_fail(self, test_name, begin_time):
super().on_fail(test_name, begin_time)
self.access_point.stop_all_aps()
def test_associate_11b_only_long_preamble(self):
setup_ap(access_point=self.access_point,
profile_name='whirlwind_11ab_legacy',
channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
ssid=self.open_network_2g['SSID'],
preamble=False)
asserts.assert_true(self.dut.associate(self.open_network_2g['SSID']),
'Failed to associate.')
def test_associate_11b_only_short_preamble(self):
setup_ap(access_point=self.access_point,
profile_name='whirlwind_11ab_legacy',
channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
ssid=self.open_network_2g['SSID'],
preamble=True)
asserts.assert_true(self.dut.associate(self.open_network_2g['SSID']),
'Failed to associate.')
def test_associate_11b_only_minimal_beacon_interval(self):
setup_ap(access_point=self.access_point,
profile_name='whirlwind_11ab_legacy',
channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
ssid=self.open_network_2g['SSID'],
beacon_interval=15)
asserts.assert_true(self.dut.associate(self.open_network_2g['SSID']),
'Failed to associate.')
def test_associate_11b_only_maximum_beacon_interval(self):
setup_ap(access_point=self.access_point,
profile_name='whirlwind_11ab_legacy',
channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
ssid=self.open_network_2g['SSID'],
beacon_interval=1024)
asserts.assert_true(self.dut.associate(self.open_network_2g['SSID']),
'Failed to associate.')
def test_associate_11b_only_frag_threshold_430(self):
setup_ap(access_point=self.access_point,
profile_name='whirlwind_11ab_legacy',
channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
ssid=self.open_network_2g['SSID'],
frag_threshold=430)
asserts.assert_true(self.dut.associate(self.open_network_2g['SSID']),
'Failed to associate.')
def test_associate_11b_only_rts_threshold_256(self):
setup_ap(access_point=self.access_point,
profile_name='whirlwind_11ab_legacy',
channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
ssid=self.open_network_2g['SSID'],
rts_threshold=256)
asserts.assert_true(self.dut.associate(self.open_network_2g['SSID']),
'Failed to associate.')
def test_associate_11b_only_rts_256_frag_430(self):
setup_ap(access_point=self.access_point,
profile_name='whirlwind_11ab_legacy',
channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
ssid=self.open_network_2g['SSID'],
rts_threshold=256,
frag_threshold=430)
asserts.assert_true(self.dut.associate(self.open_network_2g['SSID']),
'Failed to associate.')
def test_associate_11b_only_high_dtim_low_beacon_interval(self):
setup_ap(access_point=self.access_point,
profile_name='whirlwind_11ab_legacy',
channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
ssid=self.open_network_2g['SSID'],
dtim_period=3,
beacon_interval=100)
asserts.assert_true(self.dut.associate(self.open_network_2g['SSID']),
'Failed to associate.')
def test_associate_11b_only_low_dtim_high_beacon_interval(self):
setup_ap(access_point=self.access_point,
profile_name='whirlwind_11ab_legacy',
channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
ssid=self.open_network_2g['SSID'],
dtim_period=1,
beacon_interval=300)
asserts.assert_true(self.dut.associate(self.open_network_2g['SSID']),
'Failed to associate.')
def test_associate_11b_only_with_WMM_with_default_values(self):
setup_ap(
access_point=self.access_point,
profile_name='whirlwind_11ab_legacy',
channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
ssid=self.open_network_2g['SSID'],
force_wmm=True,
additional_ap_parameters=hostapd_constants.WMM_11B_DEFAULT_PARAMS)
asserts.assert_true(self.dut.associate(self.open_network_2g['SSID']),
'Failed to associate.')
def test_associate_11b_only_with_WMM_with_non_default_values(self):
setup_ap(
access_point=self.access_point,
profile_name='whirlwind_11ab_legacy',
channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
ssid=self.open_network_2g['SSID'],
force_wmm=True,
additional_ap_parameters=hostapd_constants.WMM_NON_DEFAULT_PARAMS)
asserts.assert_true(self.dut.associate(self.open_network_2g['SSID']),
'Failed to associate.')
def test_associate_11b_only_with_WMM_ACM_on_BK(self):
wmm_acm_bits_enabled = utils.merge_dicts(
hostapd_constants.WMM_11B_DEFAULT_PARAMS,
hostapd_constants.WMM_ACM_BK)
setup_ap(access_point=self.access_point,
profile_name='whirlwind_11ab_legacy',
channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
ssid=self.open_network_2g['SSID'],
force_wmm=True,
additional_ap_parameters=wmm_acm_bits_enabled)
asserts.assert_true(self.dut.associate(self.open_network_2g['SSID']),
'Failed to associate.')
def test_associate_11b_only_with_WMM_ACM_on_BE(self):
wmm_acm_bits_enabled = utils.merge_dicts(
hostapd_constants.WMM_11B_DEFAULT_PARAMS,
hostapd_constants.WMM_ACM_BE)
setup_ap(access_point=self.access_point,
profile_name='whirlwind_11ab_legacy',
channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
ssid=self.open_network_2g['SSID'],
force_wmm=True,
additional_ap_parameters=wmm_acm_bits_enabled)
asserts.assert_true(self.dut.associate(self.open_network_2g['SSID']),
'Failed to associate.')
def test_associate_11b_only_with_WMM_ACM_on_VI(self):
wmm_acm_bits_enabled = utils.merge_dicts(
hostapd_constants.WMM_11B_DEFAULT_PARAMS,
hostapd_constants.WMM_ACM_VI)
setup_ap(access_point=self.access_point,
profile_name='whirlwind_11ab_legacy',
channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
ssid=self.open_network_2g['SSID'],
force_wmm=True,
additional_ap_parameters=wmm_acm_bits_enabled)
asserts.assert_true(self.dut.associate(self.open_network_2g['SSID']),
'Failed to associate.')
def test_associate_11b_only_with_WMM_ACM_on_VO(self):
wmm_acm_bits_enabled = utils.merge_dicts(
hostapd_constants.WMM_11B_DEFAULT_PARAMS,
hostapd_constants.WMM_ACM_VO)
setup_ap(access_point=self.access_point,
profile_name='whirlwind_11ab_legacy',
channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
ssid=self.open_network_2g['SSID'],
force_wmm=True,
additional_ap_parameters=wmm_acm_bits_enabled)
asserts.assert_true(self.dut.associate(self.open_network_2g['SSID']),
'Failed to associate.')
def test_associate_11b_only_with_WMM_ACM_on_BK_BE_VI(self):
wmm_acm_bits_enabled = utils.merge_dicts(
hostapd_constants.WMM_11B_DEFAULT_PARAMS,
hostapd_constants.WMM_ACM_BK, hostapd_constants.WMM_ACM_BE,
hostapd_constants.WMM_ACM_VI)
setup_ap(access_point=self.access_point,
profile_name='whirlwind_11ab_legacy',
channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
ssid=self.open_network_2g['SSID'],
force_wmm=True,
additional_ap_parameters=wmm_acm_bits_enabled)
asserts.assert_true(self.dut.associate(self.open_network_2g['SSID']),
'Failed to associate.')
def test_associate_11b_only_with_WMM_ACM_on_BK_BE_VO(self):
wmm_acm_bits_enabled = utils.merge_dicts(
hostapd_constants.WMM_11B_DEFAULT_PARAMS,
hostapd_constants.WMM_ACM_BK, hostapd_constants.WMM_ACM_BE,
hostapd_constants.WMM_ACM_VO)
setup_ap(access_point=self.access_point,
profile_name='whirlwind_11ab_legacy',
channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
ssid=self.open_network_2g['SSID'],
force_wmm=True,
additional_ap_parameters=wmm_acm_bits_enabled)
asserts.assert_true(self.dut.associate(self.open_network_2g['SSID']),
'Failed to associate.')
def test_associate_11b_only_with_WMM_ACM_on_BK_VI_VO(self):
wmm_acm_bits_enabled = utils.merge_dicts(
hostapd_constants.WMM_11B_DEFAULT_PARAMS,
hostapd_constants.WMM_ACM_BK, hostapd_constants.WMM_ACM_VI,
hostapd_constants.WMM_ACM_VO)
setup_ap(access_point=self.access_point,
profile_name='whirlwind_11ab_legacy',
channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
ssid=self.open_network_2g['SSID'],
force_wmm=True,
additional_ap_parameters=wmm_acm_bits_enabled)
asserts.assert_true(self.dut.associate(self.open_network_2g['SSID']),
'Failed to associate.')
def test_associate_11b_only_with_WMM_ACM_on_BE_VI_VO(self):
wmm_acm_bits_enabled = utils.merge_dicts(
hostapd_constants.WMM_11B_DEFAULT_PARAMS,
hostapd_constants.WMM_ACM_BE, hostapd_constants.WMM_ACM_VI,
hostapd_constants.WMM_ACM_VO)
setup_ap(access_point=self.access_point,
profile_name='whirlwind_11ab_legacy',
channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
ssid=self.open_network_2g['SSID'],
force_wmm=True,
additional_ap_parameters=wmm_acm_bits_enabled)
asserts.assert_true(self.dut.associate(self.open_network_2g['SSID']),
'Failed to associate.')
def test_associate_11b_only_with_country_code(self):
country_info = utils.merge_dicts(
hostapd_constants.ENABLE_IEEE80211D,
hostapd_constants.COUNTRY_STRING['ALL'],
hostapd_constants.COUNTRY_CODE['UNITED_STATES'])
setup_ap(access_point=self.access_point,
profile_name='whirlwind_11ab_legacy',
channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
ssid=self.open_network_2g['SSID'],
additional_ap_parameters=country_info)
asserts.assert_true(self.dut.associate(self.open_network_2g['SSID']),
'Failed to associate.')
def test_associate_11b_only_with_non_country_code(self):
country_info = utils.merge_dicts(
hostapd_constants.ENABLE_IEEE80211D,
hostapd_constants.COUNTRY_STRING['ALL'],
hostapd_constants.COUNTRY_CODE['NON_COUNTRY'])
setup_ap(access_point=self.access_point,
profile_name='whirlwind_11ab_legacy',
channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
ssid=self.open_network_2g['SSID'],
additional_ap_parameters=country_info)
asserts.assert_true(self.dut.associate(self.open_network_2g['SSID']),
'Failed to associate.')
def test_associate_11b_only_with_hidden_ssid(self):
setup_ap(access_point=self.access_point,
profile_name='whirlwind_11ab_legacy',
channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
ssid=self.open_network_2g['SSID'],
hidden=True)
asserts.assert_true(self.dut.associate(self.open_network_2g['SSID']),
'Failed to associate.')
def test_associate_11b_only_with_vendor_ie_in_beacon_correct_length(self):
setup_ap(access_point=self.access_point,
profile_name='whirlwind_11ab_legacy',
channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
ssid=self.open_network_2g['SSID'],
additional_ap_parameters=hostapd_constants.
VENDOR_IE['correct_length_beacon'])
asserts.assert_true(self.dut.associate(self.open_network_2g['SSID']),
'Failed to associate.')
def test_associate_11b_only_with_vendor_ie_in_beacon_zero_length(self):
setup_ap(access_point=self.access_point,
profile_name='whirlwind_11ab_legacy',
channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
ssid=self.open_network_2g['SSID'],
additional_ap_parameters=hostapd_constants.
VENDOR_IE['zero_length_beacon_without_data'])
asserts.assert_true(self.dut.associate(self.open_network_2g['SSID']),
'Failed to associate.')
def test_associate_11b_only_with_vendor_ie_in_assoc_correct_length(self):
setup_ap(access_point=self.access_point,
profile_name='whirlwind_11ab_legacy',
channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
ssid=self.open_network_2g['SSID'],
additional_ap_parameters=hostapd_constants.
VENDOR_IE['correct_length_association_response'])
asserts.assert_true(self.dut.associate(self.open_network_2g['SSID']),
'Failed to associate.')
def test_associate_11b_only_with_vendor_ie_in_assoc_zero_length(self):
setup_ap(access_point=self.access_point,
profile_name='whirlwind_11ab_legacy',
channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
ssid=self.open_network_2g['SSID'],
additional_ap_parameters=hostapd_constants.VENDOR_IE[
'zero_length_association_'
'response_without_data'])
asserts.assert_true(self.dut.associate(self.open_network_2g['SSID']),
'Failed to associate.')
def test_associate_11a_only_long_preamble(self):
setup_ap(access_point=self.access_point,
profile_name='whirlwind_11ab_legacy',
channel=hostapd_constants.AP_DEFAULT_CHANNEL_5G,
ssid=self.open_network_5g['SSID'],
preamble=False)
asserts.assert_true(self.dut.associate(self.open_network_5g['SSID']),
'Failed to associate.')
def test_associate_11a_only_short_preamble(self):
setup_ap(access_point=self.access_point,
profile_name='whirlwind_11ab_legacy',
channel=hostapd_constants.AP_DEFAULT_CHANNEL_5G,
ssid=self.open_network_5g['SSID'],
preamble=True)
asserts.assert_true(self.dut.associate(self.open_network_5g['SSID']),
'Failed to associate.')
def test_associate_11a_only_minimal_beacon_interval(self):
setup_ap(access_point=self.access_point,
profile_name='whirlwind_11ab_legacy',
channel=hostapd_constants.AP_DEFAULT_CHANNEL_5G,
ssid=self.open_network_5g['SSID'],
beacon_interval=15)
asserts.assert_true(self.dut.associate(self.open_network_5g['SSID']),
'Failed to associate.')
def test_associate_11a_only_maximum_beacon_interval(self):
setup_ap(access_point=self.access_point,
profile_name='whirlwind_11ab_legacy',
channel=hostapd_constants.AP_DEFAULT_CHANNEL_5G,
ssid=self.open_network_5g['SSID'],
beacon_interval=1024)
asserts.assert_true(self.dut.associate(self.open_network_5g['SSID']),
'Failed to associate.')
def test_associate_11a_only_frag_threshold_430(self):
setup_ap(access_point=self.access_point,
profile_name='whirlwind_11ab_legacy',
channel=hostapd_constants.AP_DEFAULT_CHANNEL_5G,
ssid=self.open_network_5g['SSID'],
frag_threshold=430)
asserts.assert_true(self.dut.associate(self.open_network_5g['SSID']),
'Failed to associate.')
def test_associate_11a_only_rts_threshold_256(self):
setup_ap(access_point=self.access_point,
profile_name='whirlwind_11ab_legacy',
channel=hostapd_constants.AP_DEFAULT_CHANNEL_5G,
ssid=self.open_network_5g['SSID'],
rts_threshold=256)
asserts.assert_true(self.dut.associate(self.open_network_5g['SSID']),
'Failed to associate.')
def test_associate_11a_only_rts_256_frag_430(self):
setup_ap(access_point=self.access_point,
profile_name='whirlwind_11ab_legacy',
channel=hostapd_constants.AP_DEFAULT_CHANNEL_5G,
ssid=self.open_network_5g['SSID'],
rts_threshold=256,
frag_threshold=430)
asserts.assert_true(self.dut.associate(self.open_network_5g['SSID']),
'Failed to associate.')
def test_associate_11a_only_high_dtim_low_beacon_interval(self):
setup_ap(access_point=self.access_point,
profile_name='whirlwind_11ab_legacy',
channel=hostapd_constants.AP_DEFAULT_CHANNEL_5G,
ssid=self.open_network_5g['SSID'],
dtim_period=3,
beacon_interval=100)
asserts.assert_true(self.dut.associate(self.open_network_5g['SSID']),
'Failed to associate.')
def test_associate_11a_only_low_dtim_high_beacon_interval(self):
setup_ap(access_point=self.access_point,
profile_name='whirlwind_11ab_legacy',
channel=hostapd_constants.AP_DEFAULT_CHANNEL_5G,
ssid=self.open_network_5g['SSID'],
dtim_period=1,
beacon_interval=300)
asserts.assert_true(self.dut.associate(self.open_network_5g['SSID']),
'Failed to associate.')
def test_associate_11a_only_with_WMM_with_default_values(self):
setup_ap(access_point=self.access_point,
profile_name='whirlwind_11ab_legacy',
channel=hostapd_constants.AP_DEFAULT_CHANNEL_5G,
ssid=self.open_network_5g['SSID'],
force_wmm=True,
additional_ap_parameters=hostapd_constants.
WMM_PHYS_11A_11G_11N_11AC_DEFAULT_PARAMS)
asserts.assert_true(self.dut.associate(self.open_network_5g['SSID']),
'Failed to associate.')
def test_associate_11a_only_with_WMM_with_non_default_values(self):
setup_ap(
access_point=self.access_point,
profile_name='whirlwind_11ab_legacy',
channel=hostapd_constants.AP_DEFAULT_CHANNEL_5G,
ssid=self.open_network_5g['SSID'],
force_wmm=True,
additional_ap_parameters=hostapd_constants.WMM_NON_DEFAULT_PARAMS)
asserts.assert_true(self.dut.associate(self.open_network_5g['SSID']),
'Failed to associate.')
def test_associate_11a_only_with_WMM_ACM_on_BK(self):
wmm_acm_bits_enabled = utils.merge_dicts(
hostapd_constants.WMM_PHYS_11A_11G_11N_11AC_DEFAULT_PARAMS,
hostapd_constants.WMM_ACM_BK)
setup_ap(access_point=self.access_point,
profile_name='whirlwind_11ab_legacy',
channel=hostapd_constants.AP_DEFAULT_CHANNEL_5G,
ssid=self.open_network_5g['SSID'],
force_wmm=True,
additional_ap_parameters=wmm_acm_bits_enabled)
asserts.assert_true(self.dut.associate(self.open_network_5g['SSID']),
'Failed to associate.')
def test_associate_11a_only_with_WMM_ACM_on_BE(self):
wmm_acm_bits_enabled = utils.merge_dicts(
hostapd_constants.WMM_PHYS_11A_11G_11N_11AC_DEFAULT_PARAMS,
hostapd_constants.WMM_ACM_BE)
setup_ap(access_point=self.access_point,
profile_name='whirlwind_11ab_legacy',
channel=hostapd_constants.AP_DEFAULT_CHANNEL_5G,
ssid=self.open_network_5g['SSID'],
force_wmm=True,
additional_ap_parameters=wmm_acm_bits_enabled)
asserts.assert_true(self.dut.associate(self.open_network_5g['SSID']),
'Failed to associate.')
def test_associate_11a_only_with_WMM_ACM_on_VI(self):
wmm_acm_bits_enabled = utils.merge_dicts(
hostapd_constants.WMM_PHYS_11A_11G_11N_11AC_DEFAULT_PARAMS,
hostapd_constants.WMM_ACM_VI)
setup_ap(access_point=self.access_point,
profile_name='whirlwind_11ab_legacy',
channel=hostapd_constants.AP_DEFAULT_CHANNEL_5G,
ssid=self.open_network_5g['SSID'],
force_wmm=True,
additional_ap_parameters=wmm_acm_bits_enabled)
asserts.assert_true(self.dut.associate(self.open_network_5g['SSID']),
'Failed to associate.')
def test_associate_11a_only_with_WMM_ACM_on_VO(self):
wmm_acm_bits_enabled = utils.merge_dicts(
hostapd_constants.WMM_PHYS_11A_11G_11N_11AC_DEFAULT_PARAMS,
hostapd_constants.WMM_ACM_VO)
setup_ap(access_point=self.access_point,
profile_name='whirlwind_11ab_legacy',
channel=hostapd_constants.AP_DEFAULT_CHANNEL_5G,
ssid=self.open_network_5g['SSID'],
force_wmm=True,
additional_ap_parameters=wmm_acm_bits_enabled)
asserts.assert_true(self.dut.associate(self.open_network_5g['SSID']),
'Failed to associate.')
def test_associate_11a_only_with_WMM_ACM_on_BK_BE_VI(self):
wmm_acm_bits_enabled = utils.merge_dicts(
hostapd_constants.WMM_PHYS_11A_11G_11N_11AC_DEFAULT_PARAMS,
hostapd_constants.WMM_ACM_BK, hostapd_constants.WMM_ACM_BE,
hostapd_constants.WMM_ACM_VI)
setup_ap(access_point=self.access_point,
profile_name='whirlwind_11ab_legacy',
channel=hostapd_constants.AP_DEFAULT_CHANNEL_5G,
ssid=self.open_network_5g['SSID'],
force_wmm=True,
additional_ap_parameters=wmm_acm_bits_enabled)
asserts.assert_true(self.dut.associate(self.open_network_5g['SSID']),
'Failed to associate.')
def test_associate_11a_only_with_WMM_ACM_on_BK_BE_VO(self):
wmm_acm_bits_enabled = utils.merge_dicts(
hostapd_constants.WMM_PHYS_11A_11G_11N_11AC_DEFAULT_PARAMS,
hostapd_constants.WMM_ACM_BK, hostapd_constants.WMM_ACM_BE,
hostapd_constants.WMM_ACM_VO)
setup_ap(access_point=self.access_point,
profile_name='whirlwind_11ab_legacy',
channel=hostapd_constants.AP_DEFAULT_CHANNEL_5G,
ssid=self.open_network_5g['SSID'],
force_wmm=True,
additional_ap_parameters=wmm_acm_bits_enabled)
asserts.assert_true(self.dut.associate(self.open_network_5g['SSID']),
'Failed to associate.')
def test_associate_11a_only_with_WMM_ACM_on_BK_VI_VO(self):
wmm_acm_bits_enabled = utils.merge_dicts(
hostapd_constants.WMM_PHYS_11A_11G_11N_11AC_DEFAULT_PARAMS,
hostapd_constants.WMM_ACM_BK, hostapd_constants.WMM_ACM_VI,
hostapd_constants.WMM_ACM_VO)
setup_ap(access_point=self.access_point,
profile_name='whirlwind_11ab_legacy',
channel=hostapd_constants.AP_DEFAULT_CHANNEL_5G,
ssid=self.open_network_5g['SSID'],
force_wmm=True,
additional_ap_parameters=wmm_acm_bits_enabled)
asserts.assert_true(self.dut.associate(self.open_network_5g['SSID']),
'Failed to associate.')
def test_associate_11a_only_with_WMM_ACM_on_BE_VI_VO(self):
wmm_acm_bits_enabled = utils.merge_dicts(
hostapd_constants.WMM_PHYS_11A_11G_11N_11AC_DEFAULT_PARAMS,
hostapd_constants.WMM_ACM_BE, hostapd_constants.WMM_ACM_VI,
hostapd_constants.WMM_ACM_VO)
setup_ap(access_point=self.access_point,
profile_name='whirlwind_11ab_legacy',
channel=hostapd_constants.AP_DEFAULT_CHANNEL_5G,
ssid=self.open_network_5g['SSID'],
force_wmm=True,
additional_ap_parameters=wmm_acm_bits_enabled)
asserts.assert_true(self.dut.associate(self.open_network_5g['SSID']),
'Failed to associate.')
def test_associate_11a_only_with_country_code(self):
country_info = utils.merge_dicts(
hostapd_constants.ENABLE_IEEE80211D,
hostapd_constants.COUNTRY_STRING['ALL'],
hostapd_constants.COUNTRY_CODE['UNITED_STATES'])
setup_ap(access_point=self.access_point,
profile_name='whirlwind_11ab_legacy',
channel=hostapd_constants.AP_DEFAULT_CHANNEL_5G,
ssid=self.open_network_5g['SSID'],
additional_ap_parameters=country_info)
asserts.assert_true(self.dut.associate(self.open_network_5g['SSID']),
'Failed to associate.')
def test_associate_11a_only_with_non_country_code(self):
country_info = utils.merge_dicts(
hostapd_constants.ENABLE_IEEE80211D,
hostapd_constants.COUNTRY_STRING['ALL'],
hostapd_constants.COUNTRY_CODE['NON_COUNTRY'])
setup_ap(access_point=self.access_point,
profile_name='whirlwind_11ab_legacy',
channel=hostapd_constants.AP_DEFAULT_CHANNEL_5G,
ssid=self.open_network_5g['SSID'],
additional_ap_parameters=country_info)
asserts.assert_true(self.dut.associate(self.open_network_5g['SSID']),
'Failed to associate.')
def test_associate_11a_only_with_hidden_ssid(self):
setup_ap(access_point=self.access_point,
profile_name='whirlwind_11ab_legacy',
channel=hostapd_constants.AP_DEFAULT_CHANNEL_5G,
ssid=self.open_network_5g['SSID'],
hidden=True)
asserts.assert_true(self.dut.associate(self.open_network_5g['SSID']),
'Failed to associate.')
def test_associate_11a_only_with_vendor_ie_in_beacon_correct_length(self):
setup_ap(access_point=self.access_point,
profile_name='whirlwind_11ab_legacy',
channel=hostapd_constants.AP_DEFAULT_CHANNEL_5G,
ssid=self.open_network_5g['SSID'],
additional_ap_parameters=hostapd_constants.
VENDOR_IE['correct_length_beacon'])
asserts.assert_true(self.dut.associate(self.open_network_5g['SSID']),
'Failed to associate.')
def test_associate_11a_only_with_vendor_ie_in_beacon_zero_length(self):
setup_ap(access_point=self.access_point,
profile_name='whirlwind_11ab_legacy',
channel=hostapd_constants.AP_DEFAULT_CHANNEL_5G,
ssid=self.open_network_5g['SSID'],
additional_ap_parameters=hostapd_constants.
VENDOR_IE['zero_length_beacon_without_data'])
asserts.assert_true(self.dut.associate(self.open_network_5g['SSID']),
'Failed to associate.')
def test_associate_11a_only_with_vendor_ie_in_assoc_correct_length(self):
setup_ap(access_point=self.access_point,
profile_name='whirlwind_11ab_legacy',
channel=hostapd_constants.AP_DEFAULT_CHANNEL_5G,
ssid=self.open_network_5g['SSID'],
additional_ap_parameters=hostapd_constants.
VENDOR_IE['correct_length_association_response'])
asserts.assert_true(self.dut.associate(self.open_network_5g['SSID']),
'Failed to associate.')
def test_associate_11a_only_with_vendor_ie_in_assoc_zero_length(self):
setup_ap(access_point=self.access_point,
profile_name='whirlwind_11ab_legacy',
channel=hostapd_constants.AP_DEFAULT_CHANNEL_5G,
ssid=self.open_network_5g['SSID'],
additional_ap_parameters=hostapd_constants.VENDOR_IE[
'zero_length_association_'
'response_without_data'])
asserts.assert_true(self.dut.associate(self.open_network_5g['SSID']),
'Failed to associate.')
def test_associate_11g_only_long_preamble(self):
data_rates = utils.merge_dicts(hostapd_constants.OFDM_DATA_RATES,
hostapd_constants.OFDM_ONLY_BASIC_RATES)
setup_ap(access_point=self.access_point,
profile_name='whirlwind_11ag_legacy',
channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
ssid=self.open_network_2g['SSID'],
preamble=False,
additional_ap_parameters=data_rates)
asserts.assert_true(self.dut.associate(self.open_network_2g['SSID']),
'Failed to associate.')
def test_associate_11g_only_short_preamble(self):
data_rates = utils.merge_dicts(hostapd_constants.OFDM_DATA_RATES,
hostapd_constants.OFDM_ONLY_BASIC_RATES)
setup_ap(access_point=self.access_point,
profile_name='whirlwind_11ag_legacy',
channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
ssid=self.open_network_2g['SSID'],
preamble=True,
additional_ap_parameters=data_rates)
asserts.assert_true(self.dut.associate(self.open_network_2g['SSID']),
'Failed to associate.')
def test_associate_11g_only_minimal_beacon_interval(self):
data_rates = utils.merge_dicts(hostapd_constants.OFDM_DATA_RATES,
hostapd_constants.OFDM_ONLY_BASIC_RATES)
setup_ap(access_point=self.access_point,
profile_name='whirlwind_11ag_legacy',
channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
ssid=self.open_network_2g['SSID'],
beacon_interval=15,
additional_ap_parameters=data_rates)
asserts.assert_true(self.dut.associate(self.open_network_2g['SSID']),
'Failed to associate.')
def test_associate_11g_only_maximum_beacon_interval(self):
data_rates = utils.merge_dicts(hostapd_constants.OFDM_DATA_RATES,
hostapd_constants.OFDM_ONLY_BASIC_RATES)
setup_ap(access_point=self.access_point,
profile_name='whirlwind_11ag_legacy',
channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
ssid=self.open_network_2g['SSID'],
beacon_interval=1024,
additional_ap_parameters=data_rates)
asserts.assert_true(self.dut.associate(self.open_network_2g['SSID']),
'Failed to associate.')
def test_associate_11g_only_frag_threshold_430(self):
data_rates = utils.merge_dicts(hostapd_constants.OFDM_DATA_RATES,
hostapd_constants.OFDM_ONLY_BASIC_RATES)
setup_ap(access_point=self.access_point,
profile_name='whirlwind_11ag_legacy',
channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
ssid=self.open_network_2g['SSID'],
frag_threshold=430,
additional_ap_parameters=data_rates)
asserts.assert_true(self.dut.associate(self.open_network_2g['SSID']),
'Failed to associate.')
def test_associate_11g_only_rts_threshold_256(self):
data_rates = utils.merge_dicts(hostapd_constants.OFDM_DATA_RATES,
hostapd_constants.OFDM_ONLY_BASIC_RATES)
setup_ap(access_point=self.access_point,
profile_name='whirlwind_11ag_legacy',
channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
ssid=self.open_network_2g['SSID'],
rts_threshold=256,
additional_ap_parameters=data_rates)
asserts.assert_true(self.dut.associate(self.open_network_2g['SSID']),
'Failed to associate.')
def test_associate_11g_only_rts_256_frag_430(self):
data_rates = utils.merge_dicts(hostapd_constants.OFDM_DATA_RATES,
hostapd_constants.OFDM_ONLY_BASIC_RATES)
setup_ap(access_point=self.access_point,
profile_name='whirlwind_11ag_legacy',
channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
ssid=self.open_network_2g['SSID'],
rts_threshold=256,
frag_threshold=430,
additional_ap_parameters=data_rates)
asserts.assert_true(self.dut.associate(self.open_network_2g['SSID']),
'Failed to associate.')
def test_associate_11g_only_high_dtim_low_beacon_interval(self):
data_rates = utils.merge_dicts(hostapd_constants.OFDM_DATA_RATES,
hostapd_constants.OFDM_ONLY_BASIC_RATES)
setup_ap(access_point=self.access_point,
profile_name='whirlwind_11ag_legacy',
channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
ssid=self.open_network_2g['SSID'],
dtim_period=3,
beacon_interval=100,
additional_ap_parameters=data_rates)
asserts.assert_true(self.dut.associate(self.open_network_2g['SSID']),
'Failed to associate.')
def test_associate_11g_only_low_dtim_high_beacon_interval(self):
data_rates = utils.merge_dicts(hostapd_constants.OFDM_DATA_RATES,
hostapd_constants.OFDM_ONLY_BASIC_RATES)
setup_ap(access_point=self.access_point,
profile_name='whirlwind_11ag_legacy',
channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
ssid=self.open_network_2g['SSID'],
dtim_period=1,
beacon_interval=300,
additional_ap_parameters=data_rates)
asserts.assert_true(self.dut.associate(self.open_network_2g['SSID']),
'Failed to associate.')
def test_associate_11g_only_with_WMM_with_default_values(self):
data_rates = utils.merge_dicts(
hostapd_constants.OFDM_DATA_RATES,
hostapd_constants.OFDM_ONLY_BASIC_RATES,
hostapd_constants.WMM_PHYS_11A_11G_11N_11AC_DEFAULT_PARAMS)
setup_ap(access_point=self.access_point,
profile_name='whirlwind_11ag_legacy',
channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
ssid=self.open_network_2g['SSID'],
force_wmm=True,
additional_ap_parameters=data_rates)
asserts.assert_true(self.dut.associate(self.open_network_2g['SSID']),
'Failed to associate.')
def test_associate_11g_only_with_WMM_with_non_default_values(self):
data_rates = utils.merge_dicts(
hostapd_constants.OFDM_DATA_RATES,
hostapd_constants.OFDM_ONLY_BASIC_RATES,
hostapd_constants.WMM_NON_DEFAULT_PARAMS)
setup_ap(access_point=self.access_point,
profile_name='whirlwind_11ag_legacy',
channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
ssid=self.open_network_2g['SSID'],
force_wmm=True,
additional_ap_parameters=data_rates)
asserts.assert_true(self.dut.associate(self.open_network_2g['SSID']),
'Failed to associate.')
def test_associate_11g_only_with_WMM_ACM_on_BK(self):
data_rates = utils.merge_dicts(hostapd_constants.OFDM_DATA_RATES,
hostapd_constants.OFDM_ONLY_BASIC_RATES)
wmm_acm_bits_enabled = utils.merge_dicts(
hostapd_constants.WMM_PHYS_11A_11G_11N_11AC_DEFAULT_PARAMS,
hostapd_constants.WMM_ACM_BK, data_rates)
setup_ap(access_point=self.access_point,
profile_name='whirlwind_11ag_legacy',
channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
ssid=self.open_network_2g['SSID'],
force_wmm=True,
additional_ap_parameters=wmm_acm_bits_enabled)
asserts.assert_true(self.dut.associate(self.open_network_2g['SSID']),
'Failed to associate.')
def test_associate_11g_only_with_WMM_ACM_on_BE(self):
data_rates = utils.merge_dicts(hostapd_constants.OFDM_DATA_RATES,
hostapd_constants.OFDM_ONLY_BASIC_RATES)
wmm_acm_bits_enabled = utils.merge_dicts(
hostapd_constants.WMM_PHYS_11A_11G_11N_11AC_DEFAULT_PARAMS,
hostapd_constants.WMM_ACM_BE, data_rates)
setup_ap(access_point=self.access_point,
profile_name='whirlwind_11ag_legacy',
channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
ssid=self.open_network_2g['SSID'],
force_wmm=True,
additional_ap_parameters=wmm_acm_bits_enabled)
asserts.assert_true(self.dut.associate(self.open_network_2g['SSID']),
'Failed to associate.')
def test_associate_11g_only_with_WMM_ACM_on_VI(self):
data_rates = utils.merge_dicts(hostapd_constants.OFDM_DATA_RATES,
hostapd_constants.OFDM_ONLY_BASIC_RATES)
wmm_acm_bits_enabled = utils.merge_dicts(
hostapd_constants.WMM_PHYS_11A_11G_11N_11AC_DEFAULT_PARAMS,
hostapd_constants.WMM_ACM_VI, data_rates)
setup_ap(access_point=self.access_point,
profile_name='whirlwind_11ag_legacy',
channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
ssid=self.open_network_2g['SSID'],
force_wmm=True,
additional_ap_parameters=wmm_acm_bits_enabled)
asserts.assert_true(self.dut.associate(self.open_network_2g['SSID']),
'Failed to associate.')
def test_associate_11g_only_with_WMM_ACM_on_VO(self):
data_rates = utils.merge_dicts(hostapd_constants.OFDM_DATA_RATES,
hostapd_constants.OFDM_ONLY_BASIC_RATES)
wmm_acm_bits_enabled = utils.merge_dicts(
hostapd_constants.WMM_PHYS_11A_11G_11N_11AC_DEFAULT_PARAMS,
hostapd_constants.WMM_ACM_VO, data_rates)
setup_ap(access_point=self.access_point,
profile_name='whirlwind_11ag_legacy',
channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
ssid=self.open_network_2g['SSID'],
force_wmm=True,
additional_ap_parameters=wmm_acm_bits_enabled)
asserts.assert_true(self.dut.associate(self.open_network_2g['SSID']),
'Failed to associate.')
def test_associate_11g_only_with_WMM_ACM_on_BK_BE_VI(self):
data_rates = utils.merge_dicts(hostapd_constants.OFDM_DATA_RATES,
hostapd_constants.OFDM_ONLY_BASIC_RATES)
wmm_acm_bits_enabled = utils.merge_dicts(
hostapd_constants.WMM_PHYS_11A_11G_11N_11AC_DEFAULT_PARAMS,
hostapd_constants.WMM_ACM_BK, hostapd_constants.WMM_ACM_BE,
hostapd_constants.WMM_ACM_VI, data_rates)
setup_ap(access_point=self.access_point,
profile_name='whirlwind_11ag_legacy',
channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
ssid=self.open_network_2g['SSID'],
force_wmm=True,
additional_ap_parameters=wmm_acm_bits_enabled)
asserts.assert_true(self.dut.associate(self.open_network_2g['SSID']),
'Failed to associate.')
def test_associate_11g_only_with_WMM_ACM_on_BK_BE_VO(self):
data_rates = utils.merge_dicts(hostapd_constants.OFDM_DATA_RATES,
hostapd_constants.OFDM_ONLY_BASIC_RATES)
wmm_acm_bits_enabled = utils.merge_dicts(
hostapd_constants.WMM_PHYS_11A_11G_11N_11AC_DEFAULT_PARAMS,
hostapd_constants.WMM_ACM_BK, hostapd_constants.WMM_ACM_BE,
hostapd_constants.WMM_ACM_VO, data_rates)
setup_ap(access_point=self.access_point,
profile_name='whirlwind_11ag_legacy',
channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
ssid=self.open_network_2g['SSID'],
force_wmm=True,
additional_ap_parameters=wmm_acm_bits_enabled)
asserts.assert_true(self.dut.associate(self.open_network_2g['SSID']),
'Failed to associate.')
def test_associate_11g_only_with_WMM_ACM_on_BK_VI_VO(self):
data_rates = utils.merge_dicts(hostapd_constants.OFDM_DATA_RATES,
hostapd_constants.OFDM_ONLY_BASIC_RATES)
wmm_acm_bits_enabled = utils.merge_dicts(
hostapd_constants.WMM_PHYS_11A_11G_11N_11AC_DEFAULT_PARAMS,
hostapd_constants.WMM_ACM_BK, hostapd_constants.WMM_ACM_VI,
hostapd_constants.WMM_ACM_VO, data_rates)
setup_ap(access_point=self.access_point,
profile_name='whirlwind_11ag_legacy',
channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
ssid=self.open_network_2g['SSID'],
force_wmm=True,
additional_ap_parameters=wmm_acm_bits_enabled)
asserts.assert_true(self.dut.associate(self.open_network_2g['SSID']),
'Failed to associate.')
def test_associate_11g_only_with_WMM_ACM_on_BE_VI_VO(self):
data_rates = utils.merge_dicts(hostapd_constants.OFDM_DATA_RATES,
hostapd_constants.OFDM_ONLY_BASIC_RATES)
wmm_acm_bits_enabled = utils.merge_dicts(
hostapd_constants.WMM_PHYS_11A_11G_11N_11AC_DEFAULT_PARAMS,
hostapd_constants.WMM_ACM_BE, hostapd_constants.WMM_ACM_VI,
hostapd_constants.WMM_ACM_VO, data_rates)
setup_ap(access_point=self.access_point,
profile_name='whirlwind_11ag_legacy',
channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
ssid=self.open_network_2g['SSID'],
force_wmm=True,
additional_ap_parameters=wmm_acm_bits_enabled)
asserts.assert_true(self.dut.associate(self.open_network_2g['SSID']),
'Failed to associate.')
def test_associate_11g_only_with_country_code(self):
data_rates = utils.merge_dicts(hostapd_constants.OFDM_DATA_RATES,
hostapd_constants.OFDM_ONLY_BASIC_RATES)
country_info = utils.merge_dicts(
hostapd_constants.ENABLE_IEEE80211D,
hostapd_constants.COUNTRY_STRING['ALL'],
hostapd_constants.COUNTRY_CODE['UNITED_STATES'], data_rates)
setup_ap(access_point=self.access_point,
profile_name='whirlwind_11ag_legacy',
channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
ssid=self.open_network_2g['SSID'],
additional_ap_parameters=country_info)
asserts.assert_true(self.dut.associate(self.open_network_2g['SSID']),
'Failed to associate.')
def test_associate_11g_only_with_non_country_code(self):
data_rates = utils.merge_dicts(hostapd_constants.OFDM_DATA_RATES,
hostapd_constants.OFDM_ONLY_BASIC_RATES)
country_info = utils.merge_dicts(
hostapd_constants.ENABLE_IEEE80211D,
hostapd_constants.COUNTRY_STRING['ALL'],
hostapd_constants.COUNTRY_CODE['NON_COUNTRY'], data_rates)
setup_ap(access_point=self.access_point,
profile_name='whirlwind_11ag_legacy',
channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
ssid=self.open_network_2g['SSID'],
additional_ap_parameters=country_info)
asserts.assert_true(self.dut.associate(self.open_network_2g['SSID']),
'Failed to associate.')
def test_associate_11g_only_with_hidden_ssid(self):
data_rates = utils.merge_dicts(hostapd_constants.OFDM_DATA_RATES,
hostapd_constants.OFDM_ONLY_BASIC_RATES)
setup_ap(access_point=self.access_point,
profile_name='whirlwind_11ag_legacy',
channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
ssid=self.open_network_2g['SSID'],
hidden=True,
additional_ap_parameters=data_rates)
asserts.assert_true(self.dut.associate(self.open_network_2g['SSID']),
'Failed to associate.')
def test_associate_11g_only_with_vendor_ie_in_beacon_correct_length(self):
data_rates = utils.merge_dicts(
hostapd_constants.OFDM_DATA_RATES,
hostapd_constants.OFDM_ONLY_BASIC_RATES,
hostapd_constants.VENDOR_IE['correct_length_beacon'])
setup_ap(access_point=self.access_point,
profile_name='whirlwind_11ag_legacy',
channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
ssid=self.open_network_2g['SSID'],
additional_ap_parameters=data_rates)
asserts.assert_true(self.dut.associate(self.open_network_2g['SSID']),
'Failed to associate.')
def test_associate_11g_only_with_vendor_ie_in_beacon_zero_length(self):
data_rates = utils.merge_dicts(
hostapd_constants.OFDM_DATA_RATES,
hostapd_constants.OFDM_ONLY_BASIC_RATES,
hostapd_constants.VENDOR_IE['zero_length_beacon_without_data'])
setup_ap(access_point=self.access_point,
profile_name='whirlwind_11ag_legacy',
channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
ssid=self.open_network_2g['SSID'],
additional_ap_parameters=data_rates)
asserts.assert_true(self.dut.associate(self.open_network_2g['SSID']),
'Failed to associate.')
def test_associate_11g_only_with_vendor_ie_in_assoc_correct_length(self):
data_rates = utils.merge_dicts(
hostapd_constants.OFDM_DATA_RATES,
hostapd_constants.OFDM_ONLY_BASIC_RATES,
hostapd_constants.VENDOR_IE['correct_length_association_response'])
setup_ap(access_point=self.access_point,
profile_name='whirlwind_11ag_legacy',
channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
ssid=self.open_network_2g['SSID'],
additional_ap_parameters=data_rates)
asserts.assert_true(self.dut.associate(self.open_network_2g['SSID']),
'Failed to associate.')
def test_associate_11g_only_with_vendor_ie_in_assoc_zero_length(self):
data_rates = utils.merge_dicts(
hostapd_constants.OFDM_DATA_RATES,
hostapd_constants.OFDM_ONLY_BASIC_RATES,
hostapd_constants.VENDOR_IE['correct_length_association_response'],
hostapd_constants.VENDOR_IE['zero_length_association_'
'response_without_data'])
setup_ap(access_point=self.access_point,
profile_name='whirlwind_11ag_legacy',
channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
ssid=self.open_network_2g['SSID'],
additional_ap_parameters=data_rates)
asserts.assert_true(self.dut.associate(self.open_network_2g['SSID']),
'Failed to associate.')
def test_associate_11bg_only_long_preamble(self):
setup_ap(access_point=self.access_point,
profile_name='whirlwind_11ag_legacy',
channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
ssid=self.open_network_2g['SSID'],
preamble=False)
asserts.assert_true(self.dut.associate(self.open_network_2g['SSID']),
'Failed to associate.')
def test_associate_11bg_short_preamble(self):
setup_ap(access_point=self.access_point,
profile_name='whirlwind_11ag_legacy',
channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
ssid=self.open_network_2g['SSID'],
preamble=True)
asserts.assert_true(self.dut.associate(self.open_network_2g['SSID']),
'Failed to associate.')
def test_associate_11bg_minimal_beacon_interval(self):
setup_ap(access_point=self.access_point,
profile_name='whirlwind_11ag_legacy',
channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
ssid=self.open_network_2g['SSID'],
beacon_interval=15)
asserts.assert_true(self.dut.associate(self.open_network_2g['SSID']),
'Failed to associate.')
def test_associate_11bg_maximum_beacon_interval(self):
setup_ap(access_point=self.access_point,
profile_name='whirlwind_11ag_legacy',
channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
ssid=self.open_network_2g['SSID'],
beacon_interval=1024)
asserts.assert_true(self.dut.associate(self.open_network_2g['SSID']),
'Failed to associate.')
def test_associate_11bg_frag_threshold_430(self):
setup_ap(access_point=self.access_point,
profile_name='whirlwind_11ag_legacy',
channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
ssid=self.open_network_2g['SSID'],
frag_threshold=430)
asserts.assert_true(self.dut.associate(self.open_network_2g['SSID']),
'Failed to associate.')
def test_associate_11bg_rts_threshold_256(self):
setup_ap(access_point=self.access_point,
profile_name='whirlwind_11ag_legacy',
channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
ssid=self.open_network_2g['SSID'],
rts_threshold=256)
asserts.assert_true(self.dut.associate(self.open_network_2g['SSID']),
'Failed to associate.')
def test_associate_11bg_rts_256_frag_430(self):
setup_ap(access_point=self.access_point,
profile_name='whirlwind_11ag_legacy',
channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
ssid=self.open_network_2g['SSID'],
rts_threshold=256,
frag_threshold=430)
asserts.assert_true(self.dut.associate(self.open_network_2g['SSID']),
'Failed to associate.')
def test_associate_11bg_high_dtim_low_beacon_interval(self):
setup_ap(access_point=self.access_point,
profile_name='whirlwind_11ag_legacy',
channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
ssid=self.open_network_2g['SSID'],
dtim_period=3,
beacon_interval=100)
asserts.assert_true(self.dut.associate(self.open_network_2g['SSID']),
'Failed to associate.')
def test_associate_11bg_low_dtim_high_beacon_interval(self):
setup_ap(access_point=self.access_point,
profile_name='whirlwind_11ag_legacy',
channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
ssid=self.open_network_2g['SSID'],
dtim_period=1,
beacon_interval=300)
asserts.assert_true(self.dut.associate(self.open_network_2g['SSID']),
'Failed to associate.')
def test_associate_11bg_with_WMM_with_default_values(self):
setup_ap(access_point=self.access_point,
profile_name='whirlwind_11ag_legacy',
channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
ssid=self.open_network_2g['SSID'],
force_wmm=True,
additional_ap_parameters=hostapd_constants.
WMM_PHYS_11A_11G_11N_11AC_DEFAULT_PARAMS)
asserts.assert_true(self.dut.associate(self.open_network_2g['SSID']),
'Failed to associate.')
def test_associate_11bg_with_WMM_with_non_default_values(self):
setup_ap(
access_point=self.access_point,
profile_name='whirlwind_11ag_legacy',
channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
ssid=self.open_network_2g['SSID'],
force_wmm=True,
additional_ap_parameters=hostapd_constants.WMM_NON_DEFAULT_PARAMS)
asserts.assert_true(self.dut.associate(self.open_network_2g['SSID']),
'Failed to associate.')
def test_associate_11bg_with_WMM_ACM_on_BK(self):
wmm_acm_bits_enabled = utils.merge_dicts(
hostapd_constants.WMM_PHYS_11A_11G_11N_11AC_DEFAULT_PARAMS,
hostapd_constants.WMM_ACM_BK)
setup_ap(access_point=self.access_point,
profile_name='whirlwind_11ag_legacy',
channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
ssid=self.open_network_2g['SSID'],
force_wmm=True,
additional_ap_parameters=wmm_acm_bits_enabled)
asserts.assert_true(self.dut.associate(self.open_network_2g['SSID']),
'Failed to associate.')
def test_associate_11bg_with_WMM_ACM_on_BE(self):
wmm_acm_bits_enabled = utils.merge_dicts(
hostapd_constants.WMM_PHYS_11A_11G_11N_11AC_DEFAULT_PARAMS,
hostapd_constants.WMM_ACM_BE)
setup_ap(access_point=self.access_point,
profile_name='whirlwind_11ag_legacy',
channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
ssid=self.open_network_2g['SSID'],
force_wmm=True,
additional_ap_parameters=wmm_acm_bits_enabled)
asserts.assert_true(self.dut.associate(self.open_network_2g['SSID']),
'Failed to associate.')
def test_associate_11bg_with_WMM_ACM_on_VI(self):
wmm_acm_bits_enabled = utils.merge_dicts(
hostapd_constants.WMM_PHYS_11A_11G_11N_11AC_DEFAULT_PARAMS,
hostapd_constants.WMM_ACM_VI)
setup_ap(access_point=self.access_point,
profile_name='whirlwind_11ag_legacy',
channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
ssid=self.open_network_2g['SSID'],
force_wmm=True,
additional_ap_parameters=wmm_acm_bits_enabled)
asserts.assert_true(self.dut.associate(self.open_network_2g['SSID']),
'Failed to associate.')
def test_associate_11bg_with_WMM_ACM_on_VO(self):
wmm_acm_bits_enabled = utils.merge_dicts(
hostapd_constants.WMM_PHYS_11A_11G_11N_11AC_DEFAULT_PARAMS,
hostapd_constants.WMM_ACM_VO)
setup_ap(access_point=self.access_point,
profile_name='whirlwind_11ag_legacy',
channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
ssid=self.open_network_2g['SSID'],
force_wmm=True,
additional_ap_parameters=wmm_acm_bits_enabled)
asserts.assert_true(self.dut.associate(self.open_network_2g['SSID']),
'Failed to associate.')
def test_associate_11bg_with_WMM_ACM_on_BK_BE_VI(self):
wmm_acm_bits_enabled = utils.merge_dicts(
hostapd_constants.WMM_PHYS_11A_11G_11N_11AC_DEFAULT_PARAMS,
hostapd_constants.WMM_ACM_BK, hostapd_constants.WMM_ACM_BE,
hostapd_constants.WMM_ACM_VI)
setup_ap(access_point=self.access_point,
profile_name='whirlwind_11ag_legacy',
channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
ssid=self.open_network_2g['SSID'],
force_wmm=True,
additional_ap_parameters=wmm_acm_bits_enabled)
asserts.assert_true(self.dut.associate(self.open_network_2g['SSID']),
'Failed to associate.')
def test_associate_11bg_with_WMM_ACM_on_BK_BE_VO(self):
wmm_acm_bits_enabled = utils.merge_dicts(
hostapd_constants.WMM_PHYS_11A_11G_11N_11AC_DEFAULT_PARAMS,
hostapd_constants.WMM_ACM_BK, hostapd_constants.WMM_ACM_BE,
hostapd_constants.WMM_ACM_VO)
setup_ap(access_point=self.access_point,
profile_name='whirlwind_11ag_legacy',
channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
ssid=self.open_network_2g['SSID'],
force_wmm=True,
additional_ap_parameters=wmm_acm_bits_enabled)
asserts.assert_true(self.dut.associate(self.open_network_2g['SSID']),
'Failed to associate.')
def test_associate_11bg_with_WMM_ACM_on_BK_VI_VO(self):
wmm_acm_bits_enabled = utils.merge_dicts(
hostapd_constants.WMM_PHYS_11A_11G_11N_11AC_DEFAULT_PARAMS,
hostapd_constants.WMM_ACM_BK, hostapd_constants.WMM_ACM_VI,
hostapd_constants.WMM_ACM_VO)
setup_ap(access_point=self.access_point,
profile_name='whirlwind_11ag_legacy',
channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
ssid=self.open_network_2g['SSID'],
force_wmm=True,
additional_ap_parameters=wmm_acm_bits_enabled)
asserts.assert_true(self.dut.associate(self.open_network_2g['SSID']),
'Failed to associate.')
def test_associate_11bg_with_WMM_ACM_on_BE_VI_VO(self):
wmm_acm_bits_enabled = utils.merge_dicts(
hostapd_constants.WMM_PHYS_11A_11G_11N_11AC_DEFAULT_PARAMS,
hostapd_constants.WMM_ACM_BE, hostapd_constants.WMM_ACM_VI,
hostapd_constants.WMM_ACM_VO)
setup_ap(access_point=self.access_point,
profile_name='whirlwind_11ag_legacy',
channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
ssid=self.open_network_2g['SSID'],
force_wmm=True,
additional_ap_parameters=wmm_acm_bits_enabled)
asserts.assert_true(self.dut.associate(self.open_network_2g['SSID']),
'Failed to associate.')
def test_associate_11bg_with_country_code(self):
country_info = utils.merge_dicts(
hostapd_constants.ENABLE_IEEE80211D,
hostapd_constants.COUNTRY_STRING['ALL'],
hostapd_constants.COUNTRY_CODE['UNITED_STATES'])
setup_ap(access_point=self.access_point,
profile_name='whirlwind_11ag_legacy',
channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
ssid=self.open_network_2g['SSID'],
additional_ap_parameters=country_info)
asserts.assert_true(self.dut.associate(self.open_network_2g['SSID']),
'Failed to associate.')
def test_associate_11bg_with_non_country_code(self):
country_info = utils.merge_dicts(
hostapd_constants.ENABLE_IEEE80211D,
hostapd_constants.COUNTRY_STRING['ALL'],
hostapd_constants.COUNTRY_CODE['NON_COUNTRY'])
setup_ap(access_point=self.access_point,
profile_name='whirlwind_11ag_legacy',
channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
ssid=self.open_network_2g['SSID'],
additional_ap_parameters=country_info)
asserts.assert_true(self.dut.associate(self.open_network_2g['SSID']),
'Failed to associate.')
def test_associate_11bg_only_with_hidden_ssid(self):
setup_ap(access_point=self.access_point,
profile_name='whirlwind_11ag_legacy',
channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
ssid=self.open_network_2g['SSID'],
hidden=True)
asserts.assert_true(self.dut.associate(self.open_network_2g['SSID']),
'Failed to associate.')
def test_associate_11bg_with_vendor_ie_in_beacon_correct_length(self):
setup_ap(access_point=self.access_point,
profile_name='whirlwind_11ag_legacy',
channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
ssid=self.open_network_2g['SSID'],
additional_ap_parameters=hostapd_constants.
VENDOR_IE['correct_length_beacon'])
asserts.assert_true(self.dut.associate(self.open_network_2g['SSID']),
'Failed to associate.')
def test_associate_11bg_with_vendor_ie_in_beacon_zero_length(self):
setup_ap(access_point=self.access_point,
profile_name='whirlwind_11ag_legacy',
channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
ssid=self.open_network_2g['SSID'],
additional_ap_parameters=hostapd_constants.
VENDOR_IE['zero_length_beacon_without_data'])
asserts.assert_true(self.dut.associate(self.open_network_2g['SSID']),
'Failed to associate.')
def test_associate_11g_only_with_vendor_ie_in_assoc_correct_length(self):
data_rates = utils.merge_dicts(
hostapd_constants.OFDM_DATA_RATES,
hostapd_constants.OFDM_ONLY_BASIC_RATES,
hostapd_constants.VENDOR_IE['correct_length_association_response'])
setup_ap(access_point=self.access_point,
profile_name='whirlwind_11ag_legacy',
channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
ssid=self.open_network_2g['SSID'],
additional_ap_parameters=data_rates)
asserts.assert_true(self.dut.associate(self.open_network_2g['SSID']),
'Failed to associate.')
def test_associate_11g_only_with_vendor_ie_in_assoc_zero_length(self):
data_rates = utils.merge_dicts(
hostapd_constants.OFDM_DATA_RATES,
hostapd_constants.OFDM_ONLY_BASIC_RATES,
hostapd_constants.VENDOR_IE['correct_length_association_response'],
hostapd_constants.VENDOR_IE['zero_length_association_'
'response_without_data'])
setup_ap(access_point=self.access_point,
profile_name='whirlwind_11ag_legacy',
channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
ssid=self.open_network_2g['SSID'],
additional_ap_parameters=data_rates)
asserts.assert_true(self.dut.associate(self.open_network_2g['SSID']),
'Failed to associate.')
def test_minimum_ssid_length_2g_11n_20mhz(self):
setup_ap(access_point=self.access_point,
profile_name='whirlwind_11ab_legacy',
channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
ssid=self.open_network_min_len_2g['SSID'])
asserts.assert_true(
self.dut.associate(self.open_network_min_len_2g['SSID']),
'Failed to associate.')
def test_minimum_ssid_length_5g_11ac_80mhz(self):
setup_ap(access_point=self.access_point,
profile_name='whirlwind_11ab_legacy',
channel=hostapd_constants.AP_DEFAULT_CHANNEL_5G,
ssid=self.open_network_min_len_5g['SSID'])
asserts.assert_true(
self.dut.associate(self.open_network_min_len_5g['SSID']),
'Failed to associate.')
def test_maximum_ssid_length_2g_11n_20mhz(self):
setup_ap(access_point=self.access_point,
profile_name='whirlwind_11ab_legacy',
channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
ssid=self.open_network_max_len_2g['SSID'])
asserts.assert_true(
self.dut.associate(self.open_network_max_len_2g['SSID']),
'Failed to associate.')
def test_maximum_ssid_length_5g_11ac_80mhz(self):
setup_ap(access_point=self.access_point,
profile_name='whirlwind_11ab_legacy',
channel=hostapd_constants.AP_DEFAULT_CHANNEL_5G,
ssid=self.open_network_max_len_5g['SSID'])
asserts.assert_true(
self.dut.associate(self.open_network_max_len_5g['SSID']),
'Failed to associate.')
def test_ssid_with_UTF8_characters_2g_11n_20mhz(self):
setup_ap(access_point=self.access_point,
profile_name='whirlwind_11ab_legacy',
channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
ssid=self.utf8_ssid_2g)
asserts.assert_true(self.dut.associate(self.utf8_ssid_2g),
'Failed to associate.')
def test_ssid_with_UTF8_characters_5g_11ac_80mhz(self):
setup_ap(access_point=self.access_point,
profile_name='whirlwind_11ab_legacy',
channel=hostapd_constants.AP_DEFAULT_CHANNEL_5G,
ssid=self.utf8_ssid_5g)
asserts.assert_true(self.dut.associate(self.utf8_ssid_5g),
'Failed to associate.')
def test_ssid_with_UTF8_characters_french_2g_11n_20mhz(self):
setup_ap(access_point=self.access_point,
profile_name='whirlwind_11ab_legacy',
channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
ssid=self.utf8_ssid_2g_french)
asserts.assert_true(self.dut.associate(self.utf8_ssid_2g_french),
'Failed to associate.')
def test_ssid_with_UTF8_characters_german_2g_11n_20mhz(self):
setup_ap(access_point=self.access_point,
profile_name='whirlwind_11ab_legacy',
channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
ssid=self.utf8_ssid_2g_german)
asserts.assert_true(self.dut.associate(self.utf8_ssid_2g_german),
'Failed to associate.')
def test_ssid_with_UTF8_characters_dutch_2g_11n_20mhz(self):
setup_ap(access_point=self.access_point,
profile_name='whirlwind_11ab_legacy',
channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
ssid=self.utf8_ssid_2g_dutch)
asserts.assert_true(self.dut.associate(self.utf8_ssid_2g_dutch),
'Failed to associate.')
def test_ssid_with_UTF8_characters_swedish_2g_11n_20mhz(self):
setup_ap(access_point=self.access_point,
profile_name='whirlwind_11ab_legacy',
channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
ssid=self.utf8_ssid_2g_swedish)
asserts.assert_true(self.dut.associate(self.utf8_ssid_2g_swedish),
'Failed to associate.')
def test_ssid_with_UTF8_characters_norwegian_2g_11n_20mhz(self):
setup_ap(access_point=self.access_point,
profile_name='whirlwind_11ab_legacy',
channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
ssid=self.utf8_ssid_2g_norwegian)
asserts.assert_true(self.dut.associate(self.utf8_ssid_2g_norwegian),
'Failed to associate.')
def test_ssid_with_UTF8_characters_danish_2g_11n_20mhz(self):
setup_ap(access_point=self.access_point,
profile_name='whirlwind_11ab_legacy',
channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
ssid=self.utf8_ssid_2g_danish)
asserts.assert_true(self.dut.associate(self.utf8_ssid_2g_danish),
'Failed to associate.')
def test_ssid_with_UTF8_characters_japanese_2g_11n_20mhz(self):
setup_ap(access_point=self.access_point,
profile_name='whirlwind_11ab_legacy',
channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
ssid=self.utf8_ssid_2g_japanese)
asserts.assert_true(self.dut.associate(self.utf8_ssid_2g_japanese),
'Failed to associate.')
def test_ssid_with_UTF8_characters_spanish_2g_11n_20mhz(self):
setup_ap(access_point=self.access_point,
profile_name='whirlwind_11ab_legacy',
channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
ssid=self.utf8_ssid_2g_spanish)
asserts.assert_true(self.dut.associate(self.utf8_ssid_2g_spanish),
'Failed to associate.')
def test_ssid_with_UTF8_characters_italian_2g_11n_20mhz(self):
setup_ap(access_point=self.access_point,
profile_name='whirlwind_11ab_legacy',
channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
ssid=self.utf8_ssid_2g_italian)
asserts.assert_true(self.dut.associate(self.utf8_ssid_2g_italian),
'Failed to associate.')
def test_ssid_with_UTF8_characters_korean_2g_11n_20mhz(self):
setup_ap(access_point=self.access_point,
profile_name='whirlwind_11ab_legacy',
channel=hostapd_constants.AP_DEFAULT_CHANNEL_2G,
ssid=self.utf8_ssid_2g_korean)
asserts.assert_true(self.dut.associate(self.utf8_ssid_2g_korean),
'Failed to associate.')