tests: Current Operating Class value from STA
Verify Supported Operating Classes element contents from STA in various HT and VHT cases. Signed-off-by: Jouni Malinen <jouni@codeaurora.org>
This commit is contained in:
parent
2b9713d616
commit
55093c8014
2 changed files with 52 additions and 0 deletions
|
@ -73,6 +73,18 @@ def test_ap_ht40_scan(dev, apdev):
|
||||||
sta = hapd.get_sta(dev[0].own_addr())
|
sta = hapd.get_sta(dev[0].own_addr())
|
||||||
logger.info("hostapd STA: " + str(sta))
|
logger.info("hostapd STA: " + str(sta))
|
||||||
|
|
||||||
|
res = dev[0].request("SIGNAL_POLL")
|
||||||
|
logger.info("STA SIGNAL_POLL:\n" + res.strip())
|
||||||
|
sig = res.splitlines()
|
||||||
|
if "WIDTH=40 MHz" not in sig:
|
||||||
|
raise Exception("Not a 40 MHz connection")
|
||||||
|
|
||||||
|
if 'supp_op_classes' not in sta or len(sta['supp_op_classes']) < 2:
|
||||||
|
raise Exception("No Supported Operating Classes information for STA")
|
||||||
|
opclass = int(sta['supp_op_classes'][0:2], 16)
|
||||||
|
if opclass != 84:
|
||||||
|
raise Exception("Unexpected Current Operating Class from STA: %d" % opclass)
|
||||||
|
|
||||||
def test_ap_ht_wifi_generation(dev, apdev):
|
def test_ap_ht_wifi_generation(dev, apdev):
|
||||||
"""HT and wifi_generation"""
|
"""HT and wifi_generation"""
|
||||||
clear_scan_cache(apdev[0])
|
clear_scan_cache(apdev[0])
|
||||||
|
@ -892,6 +904,13 @@ def test_ap_require_ht(dev, apdev):
|
||||||
ampdu_density="1", disable_ht40="1", disable_sgi="1",
|
ampdu_density="1", disable_ht40="1", disable_sgi="1",
|
||||||
disable_ldpc="1", rx_stbc="2", tx_stbc="1")
|
disable_ldpc="1", rx_stbc="2", tx_stbc="1")
|
||||||
|
|
||||||
|
sta = hapd.get_sta(dev[0].own_addr())
|
||||||
|
if 'supp_op_classes' not in sta or len(sta['supp_op_classes']) < 2:
|
||||||
|
raise Exception("No Supported Operating Classes information for STA")
|
||||||
|
opclass = int(sta['supp_op_classes'][0:2], 16)
|
||||||
|
if opclass != 81:
|
||||||
|
raise Exception("Unexpected Current Operating Class from STA: %d" % opclass)
|
||||||
|
|
||||||
def test_ap_ht_stbc(dev, apdev):
|
def test_ap_ht_stbc(dev, apdev):
|
||||||
"""HT STBC overrides"""
|
"""HT STBC overrides"""
|
||||||
params = {"ssid": "ht"}
|
params = {"ssid": "ht"}
|
||||||
|
|
|
@ -75,6 +75,11 @@ def test_ap_vht80(dev, apdev):
|
||||||
raise Exception("Missing STA flag: HT")
|
raise Exception("Missing STA flag: HT")
|
||||||
if "[VHT]" not in sta['flags']:
|
if "[VHT]" not in sta['flags']:
|
||||||
raise Exception("Missing STA flag: VHT")
|
raise Exception("Missing STA flag: VHT")
|
||||||
|
if 'supp_op_classes' not in sta or len(sta['supp_op_classes']) < 2:
|
||||||
|
raise Exception("No Supported Operating Classes information for STA")
|
||||||
|
opclass = int(sta['supp_op_classes'][0:2], 16)
|
||||||
|
if opclass != 128:
|
||||||
|
raise Exception("Unexpected Current Operating Class from STA: %d" % opclass)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
if isinstance(e, Exception) and str(e) == "AP startup failed":
|
if isinstance(e, Exception) and str(e) == "AP startup failed":
|
||||||
if not vht_supported():
|
if not vht_supported():
|
||||||
|
@ -290,6 +295,13 @@ def test_ap_vht_20(devs, apdevs):
|
||||||
hapd = hostapd.add_ap(ap, params)
|
hapd = hostapd.add_ap(ap, params)
|
||||||
dev.connect("test-vht20", scan_freq="5180", key_mgmt="NONE")
|
dev.connect("test-vht20", scan_freq="5180", key_mgmt="NONE")
|
||||||
hwsim_utils.test_connectivity(dev, hapd)
|
hwsim_utils.test_connectivity(dev, hapd)
|
||||||
|
|
||||||
|
sta = hapd.get_sta(dev.own_addr())
|
||||||
|
if 'supp_op_classes' not in sta or len(sta['supp_op_classes']) < 2:
|
||||||
|
raise Exception("No Supported Operating Classes information for STA")
|
||||||
|
opclass = int(sta['supp_op_classes'][0:2], 16)
|
||||||
|
if opclass != 115:
|
||||||
|
raise Exception("Unexpected Current Operating Class from STA: %d" % opclass)
|
||||||
finally:
|
finally:
|
||||||
dev.request("DISCONNECT")
|
dev.request("DISCONNECT")
|
||||||
clear_regdom(hapd, devs)
|
clear_regdom(hapd, devs)
|
||||||
|
@ -313,6 +325,13 @@ def test_ap_vht_40(devs, apdevs):
|
||||||
hapd = hostapd.add_ap(ap, params)
|
hapd = hostapd.add_ap(ap, params)
|
||||||
dev.connect("test-vht40", scan_freq="5180", key_mgmt="NONE")
|
dev.connect("test-vht40", scan_freq="5180", key_mgmt="NONE")
|
||||||
hwsim_utils.test_connectivity(dev, hapd)
|
hwsim_utils.test_connectivity(dev, hapd)
|
||||||
|
|
||||||
|
sta = hapd.get_sta(dev.own_addr())
|
||||||
|
if 'supp_op_classes' not in sta or len(sta['supp_op_classes']) < 2:
|
||||||
|
raise Exception("No Supported Operating Classes information for STA")
|
||||||
|
opclass = int(sta['supp_op_classes'][0:2], 16)
|
||||||
|
if opclass != 116:
|
||||||
|
raise Exception("Unexpected Current Operating Class from STA: %d" % opclass)
|
||||||
finally:
|
finally:
|
||||||
dev.request("DISCONNECT")
|
dev.request("DISCONNECT")
|
||||||
clear_regdom(hapd, devs)
|
clear_regdom(hapd, devs)
|
||||||
|
@ -395,6 +414,13 @@ def test_ap_vht160(dev, apdev):
|
||||||
raise Exception("Unexpected SIGNAL_POLL value(1): " + str(sig))
|
raise Exception("Unexpected SIGNAL_POLL value(1): " + str(sig))
|
||||||
if "WIDTH=160 MHz" not in sig:
|
if "WIDTH=160 MHz" not in sig:
|
||||||
raise Exception("Unexpected SIGNAL_POLL value(2): " + str(sig))
|
raise Exception("Unexpected SIGNAL_POLL value(2): " + str(sig))
|
||||||
|
|
||||||
|
sta = hapd.get_sta(dev[0].own_addr())
|
||||||
|
if 'supp_op_classes' not in sta or len(sta['supp_op_classes']) < 2:
|
||||||
|
raise Exception("No Supported Operating Classes information for STA")
|
||||||
|
opclass = int(sta['supp_op_classes'][0:2], 16)
|
||||||
|
if opclass != 129:
|
||||||
|
raise Exception("Unexpected Current Operating Class from STA: %d" % opclass)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
if isinstance(e, Exception) and str(e) == "AP startup failed":
|
if isinstance(e, Exception) and str(e) == "AP startup failed":
|
||||||
if not vht_supported():
|
if not vht_supported():
|
||||||
|
@ -644,6 +670,13 @@ def test_ap_vht80plus80(dev, apdev):
|
||||||
raise Exception("Unexpected SIGNAL_POLL value(3): " + str(sig))
|
raise Exception("Unexpected SIGNAL_POLL value(3): " + str(sig))
|
||||||
if "CENTER_FRQ2=5775" not in sig:
|
if "CENTER_FRQ2=5775" not in sig:
|
||||||
raise Exception("Unexpected SIGNAL_POLL value(4): " + str(sig))
|
raise Exception("Unexpected SIGNAL_POLL value(4): " + str(sig))
|
||||||
|
|
||||||
|
sta = hapd2.get_sta(dev[1].own_addr())
|
||||||
|
if 'supp_op_classes' not in sta or len(sta['supp_op_classes']) < 2:
|
||||||
|
raise Exception("No Supported Operating Classes information for STA")
|
||||||
|
opclass = int(sta['supp_op_classes'][0:2], 16)
|
||||||
|
if opclass != 130:
|
||||||
|
raise Exception("Unexpected Current Operating Class from STA: %d" % opclass)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
if isinstance(e, Exception) and str(e) == "AP startup failed":
|
if isinstance(e, Exception) and str(e) == "AP startup failed":
|
||||||
if not vht_supported():
|
if not vht_supported():
|
||||||
|
|
Loading…
Reference in a new issue